Se você tem idade suficiente (não se preocupe, não vou pedir para você levantar a mão), você pode se lembrar dos desenhos animados de sábado de manhã e, em particular, de “School House Rock”.
Se você se lembra disso, provavelmente se lembrará de que muitos de nós aprendemos (ou reforçamos nossas lições) sobre conjunções com o maquinista de um trem que cantava “Conjunction, junction, what’s your function?”
Vá em frente, cante. Você sabe que quer.
Agora, essa pequena viagem pela nostalgia tem um propósito, que é explicar que os serviços de aplicativos — e em particular o balanceamento de carga — são as conjunções do data center. Em vez de conectar “palavras” e “frases”, no entanto, estamos conectando “usuários” e “aplicativos”.
Da mesma forma que você usaria as palavras "e", "mas" e "nem" para conectar duas frases ou cláusulas em uma frase, você usa serviços de aplicativos para conectar usuários (sejam coisas ou pessoas) a aplicativos (sejam eles na nuvem ou no local).
O melhor exemplo disso é o balanceamento de carga. É um exemplo clássico de um “serviço de aplicativo” que atua como “e” entre duas coisas relacionadas. Maçãs e laranjas. Beisebol e cachorros-quentes. Cerveja e salsichas. Os proxies de balanceamento de carga fornecem a ligação entre usuários e aplicativos, garantindo que ambos fiquem conectados, o que, por sua vez, faz com que o trem dos negócios funcione sem problemas. Conectamos o usuário Bob à instância três do aplicativo. E a usuária Alice para a instância dois do aplicativo. E da primeira coisa ao aplicativo quatro. E da versão dois da API para o backend três da API.
Agora, isso é verdade para POLB (Plain Old Load Balancing) , que faz proxy de solicitações e escolhe a instância de aplicativo correta com base em uma decisão algorítmica, e também é verdade para L7 Load Balancing, que usa informações da camada de aplicativo como o URI, o host ou valores no cabeçalho HTTP, para tomar a decisão sobre como "conectar" um usuário e um aplicativo. Esta é uma função crítica no data center e é o meio pelo qual alcançamos a escala (e disponibilidade) necessária para dar suporte a aplicativos modernos.
Essa capacidade conjunta é cada vez mais importante para permitir a implementação de uma variedade de padrões de implantação DevOps. Testes A/B, implantação azul-verde , implantações canário , medição de API e controle de versão de API são todos bons exemplos de padrões de implantação operacional que dão suporte a aplicativos conectando usuários e aplicativos com base em necessidades comerciais e operacionais específicas que existem naquele momento ( a propósito, isso é contexto ).
Quando você percebe que o balanceamento de carga com proxies modernos e programáveis é mais do que apenas escala ou disponibilidade, você começa a reconhecer seu potencial como parte da arquitetura do aplicativo em si; como um meio de melhorar o desempenho , agregar valor comercial e fornecer uma plataforma na qual você pode padronizar e colher os benefícios de custos operacionais mais baixos e processos de implantação repetíveis.