Existem cenários em que aplicações precisam ser utilizadas em regiões geográficas distintas e/ou por milhares de usuários simultâneos, com o máximo de disponibilidade, performance e segurança. A abordagem ingênua para tratar esse desafio dá ênfase exagerada ao desenvolvimento de soluções complexas de software, mas ignora a correta distribuição dos pontos de execução de código e a infraestrutura necessária para atingir os objetivos, além da capacidade do time em suportá-la.
Uma boa performance em sistemas na internet tem relação direta com métricas como largura de banda, latência, carga e confiabilidade do backend, número de saltos e custo. Essas métricas são voláteis, e, por consequência, a decisão de onde executar o código deve ser muito bem avaliada e, de preferência, automatizada.
Além disso, de pouco adianta termos uma aplicação de ótima performance, se não tivermos garantias de disponibilidade através da replicação da infraestrutura e soluções relacionadas.
Por último, as aplicações devem estar protegidas de ataques massivos (uma
preocupação diretamente proporcional ao “tamanho e relevância” da aplicação) e com requisições com níveis adequados de criptografadas e autorização.
Dentre as estratégias mais utilizadas para atender essas demandas, estão sistemas do tipo ADN (Application Delivery Network) provendo tecnologias, que, quando utilizadas de forma conjunta, entregam disponibilidade, segurança e performance para sistemas distribuídos.
ADN - Application Delivery Network
Um application delivery network (ADN) é um conjunto de tecnologias que, quando empregadas juntas, colaboram para disponibilidade, segurança, visibilidade e aceleração.
Gartner define ADN como sendo a combinação de controllers para otimização WAN (WOCs) e controllers para distribuição de aplicações (ADCs).
No início de abril de 2019 a Microsoft disponibilizou sua solução de ADN, chamada Azure Front Door, sendo um ponto de entrada seguro e escalável para aplicações web, baseado em tecnologias já utilizadas pela companhia há mais de cinco anos, protegendo e escalando várias de suas soluções, como Office 365, Bing, Xbox, LinkedIn e Microsoft Teams.
Como principais características do Azure Front Door destacamos:
- Aceleração de aplicações e APIs através do uso de Anycast, otimizando a conectividade com serviços do Azure e reduzindo a latência para os usuários finais.
- Load Balancing em nível global para aplicações HTTP, permitindo a construção de serviços distribuídos em várias regiões geográficas e deixando para o Azure o trabalho de determinar a disponibilidade dos endpoints e a inteligência de roteamento para o melhorlocal.
- SSL Offloading, liberando os endpoints das tarefas custosas de encriptação e decriptação HTTPS, deixando para o Azure Front Door a gestão de certificados e a carga de processamento.
- Web Application Firewall (WAF) que entrega filtros e proteção contra ataques DDoS e tentativas de invasão na borda, sem impactar os serviços no backend.
Anycast
Anycast é uma forma de endereçamento one-to-one-of-many, em que os datagramas são roteados para qualquer membro de um grupo de receptores em potencial agrupados pelo mesmo endereço de destino.
O algoritmo de roteamento seleciona um único receptor do grupo, com base na métrica de roteamento menos custosa. Na prática, isso significa que os pacotes são roteados para o membro topologicamente mais próximo dentro do grupo.
Anycasting na arquitetura da Internet foi descrito pela primeira vez na RFC 1546.
[tweet]Soluções escaláveis precisam bem mais do que abordagens ingênuas. Não basta conhecer recursos de desenvolvimento de software, mas também são necessários conhecimentos das melhores práticas para distribuição.[/tweet] O Azure Front Door consolida anos de experiencia da Microsoft suportando aplicações de escala global, e está à disposição para contratação como serviço.