Escalar contêineres é muito mais do que simplesmente colocar um proxy na frente de um serviço e dar o trabalho por encerrado. A escalabilidade vai além da mera distribuição e, no dinâmico mundo dos contêineres, há cinco recursos distintos necessários para garanti-la: novas tentativas, disjuntores, descoberta, distribuição e monitoramento.
Neste post sobre a arte de escalar contêineres, vamos nos aprofundar na distribuição.
Distribuição
O segredo para escalar qualquer coisa sempre dependeu, em parte, de como as solicitações são distribuídas entre um conjunto finito de recursos. Nem mesmo a nuvem e sua oferta aparentemente infinita de capacidade computacional mudam essa fórmula. No momento em que uma solicitação é recebida, a lista de recursos disponíveis para aceitá-la e processá-la é finita. Ponto final.
A decisão sobre para onde direcionar uma solicitação torna-se, portanto, bastante importante. Se ela for enviada ao recurso errado, o desempenho poderá ser prejudicado. Se for enviada ao recurso certo, o consumidor ou funcionário ficará satisfeito com o resultado.
Nos primórdios da escalabilidade, essas decisões se baseavam exclusivamente em algoritmos: round-robin, menor número de conexões e resposta mais rápida. Esses mecanismos consagrados ainda existem, mas, lenta e seguramente, deixaram de ser o único fator e passaram a ser apenas mais um elemento no processo de tomada de decisão.
Isso acontece porque já não dependemos exclusivamente de processos de tomada de decisão baseados em conexões (também conhecidos como “o bom e velho balanceamento de carga”). Quando o balanceamento de carga consistia principalmente em gerenciar conexões TCP, os esquemas de distribuição baseados em conexões faziam sentido. Mas agora a escalabilidade depende tanto da arquitetura quanto dos algoritmos, e a distribuição de solicitações pode envolver um cálculo complexo com muitas variáveis acima (literalmente) e além dos protocolos da camada 4.
O que torna a distribuição mais complexa é o fato de que as arquiteturas atuais estão cada vez mais distribuídas. Não apenas entre nuvens, mas também entre contêineres. Várias versões do mesmo aplicativo (ou API) podem estar em operação ao mesmo tempo. O sistema responsável por distribuir a solicitação deve estar ciente disso, ser capaz de distingui-las e garantir o encaminhamento para o endpoint correto .
Hoje, as decisões são tomadas não apenas com base na capacidade da conexão, mas cada vez mais em parâmetros da camada 7 (HTTP): nomes de host, métodos de API (também conhecidos como URI), chaves de API, cabeçalhos HTTP personalizados com números de versão incorporados, localização, dispositivo e usuário. As solicitações são avaliadas no contexto em que são feitas, e as decisões são tomadas em microssegundos.

Atualmente, a distribuição exige uma abordagem arquitetural em camadas. Quanto mais fundo se avança na arquitetura do aplicativo, menor é a granularidade. Quando um proxy toma uma decisão de balanceamento de carga entre X clones do mesmo microsserviço, é bem possível que esteja usando apenas equações tradicionais baseadas em algoritmos. Enquanto isso, nas extremidades do ambiente, os controladores de entrada às vezes tomam decisões complexas com base em variáveis da camada HTTP.
Externamente, a distribuição é orientada pela arquitetura. Internamente, por algoritmos.
Ambos são componentes essenciais — talvez os mais essenciais — para escalar contêineres.
Ambos dependem de informações precisas e em tempo real sobre o estado (a integridade) dos recursos aos quais podem distribuir solicitações. Abordaremos o monitoramento nas próximas publicações desta série.
Sobre o autor

Lori MacVittie é engenheira distinta e evangelista-chefe no Escritório do CTO da F5, com ampla experiência em entrega de aplicações, estratégia de automação e infraestrutura. Ela é conhecida por transformar complexidade em clareza, seja definindo diretrizes para agentes de IA, analisando arquiteturas multinuvem frágeis ou investigando os limites de sistemas escaláveis. Ela acumula mais de trinta anos de experiência no setor, abrangendo desenvolvimento de aplicações, arquitetura de TI e operações de redes e sistemas. Antes de ingressar na F5, atuou como editora de tecnologia e recebeu diversos prêmios. MacVittie tem mestrado em Ciência da Computação e é uma autora prolífica, com publicações que abrangem segurança, nuvem e arquitetura empresarial. Ela também é uma entusiasta de jogos de tabuleiro e videogames, além de ter opiniões assumidamente fortes sobre queijos.
Mais publicações de Lori Mac VittiePublicações relacionadas no blog

Entrega e proteção de agentes de IA em fábricas de IA: F5 para a arquitetura de referência NVIDIA OpenShell para agentes de IA seguros
As soluções da F5 ampliam a Arquitetura de Referência NVIDIA OpenShell para agentes de IA seguros.
Como medir – e minimizar – o custo total de propriedade do seu Kubernetes
O Kubernetes pode ser baixado e executado gratuitamente, mas sua manutenção está longe de não ter custos. Assim como outras grandes plataformas de código aberto que são “gratuitas” apenas em um sentido simplista, o Kubernetes quase certamente exigirá investimentos para ser implantado e operado.
As-Code: a pilha de TI contínua
Infraestrutura, configuração, pipeline, operações. De repente, tudo é “como código”. Lori MacVittie busca esclarecer a terminologia e identificar os diferentes componentes de uma stack contínua de TI.
O estado da entrega de aplicações em 2017: automação, APIs e DevOps
Explore o relatório State of Application Delivery de 2017. Leia o blog retrospectivo da F5 sobre o início da ascensão das redes declarativas e dos pipelines de DevOps.
DevOps Summit: onde a rede foi convidada para a festa
No DevOps Summit NY, falou-se muito não apenas sobre DevOps, mas também sobre contêineres, IoT e microsserviços. As sessões se concentraram não só na mudança cultural necessária para crescer em escala com uma abordagem DevOps, mas também fizeram questão de incluir...
F5 e Nutanix convergem em infraestrutura no .NEXT
Aplicações empresariais como Microsoft SharePoint e Exchange, juntamente com a VDI, continuam sendo a espinha dorsal da sua empresa. A produtividade, embora não seja tão atraente quanto o lucro, é um fator essencial para o sucesso das operações empresariais atuais. Deixar de...