O Oracle Cloud Infrastructure (OCI) Flexible Load Balancer é um serviço nativo da nuvem de alta disponibilidade para distribuir conexões de aplicações de entrada automaticamente, da Internet e internamente, para vários recursos de computação para resiliência e desempenho. Os balanceadores de carga podem distribuir o tráfego entre vários domínios de falha, domínios de disponibilidade e regiões da OCI com base em características de persistência, solicitação e URL.
Essa imagem mostra três casos de uso comuns detalhando como balanceadores de carga flexíveis podem ser usados pelos clientes. Esses casos de uso são:
No primeiro dos três casos de uso, uma rede de nuvem virtual é mostrada. Ela contém um balanceador de carga flexível que é conectado bidirecionalmente a duas máquinas virtuais, que estão na mesma rede de nuvem virtual.
O balanceador de carga é conectado bidirecionalmente a um usuário externo fora da rede de nuvem virtual.
As solicitações vêm do usuário externo para o balanceador de carga, que pode enviá-las para qualquer máquina virtual. Isso permite que a aplicação suporte mais usuários do que uma única máquina virtual consegue.
No segundo dos três casos de uso, uma rede de nuvem virtual é mostrada. Ela contém um balanceador de carga flexível. Na mesma rede de nuvem virtual há dois grupos. Cada grupo tem uma máquina virtual e um banco de dados. Eles representam duas instâncias de uma aplicação legada, não nativa da nuvem.
O balanceador de carga é conectado bidirecionalmente a cada grupo.
As solicitações vêm dos usuários para o balanceador de carga, que pode enviá-las para qualquer aplicação legada. Isso permite que uma aplicação legada ofereça suporte a mais usuários do que o normal, distribuindo solicitações de usuários para várias instâncias da aplicação.
No terceiro dos três casos de uso, uma rede de nuvem virtual é mostrada. Ela contém um balanceador de carga flexível que é conectado bidirecionalmente a três máquinas virtuais.
As solicitações são enviadas para a primeira máquina virtual com base nos valores no cabeçalho HTTP da solicitação.
As solicitações são enviadas para a segunda máquina virtual com base nos valores no nome do host virtual da solicitação.
As solicitações são enviadas para a terceira máquina virtual com base nos valores na URL da solicitação.
Isso permite que as solicitações sejam direcionadas a um recurso diferente com base em valores relacionados ao HTTP na própria solicitação.
Um balanceador de carga melhora a utilização de recursos ao direcionar solicitações entre serviços de aplicações que operam em paralelo. À medida que a demanda aumenta, o número de serviços de aplicações pode ser aumentado, e o balanceador de carga os utilizará para balancear o processamento de solicitações.
Aplicações legadas que são monolíticas normalmente são dimensionadas ao serem executadas em hardware maior. Usando balanceadores de carga, instâncias menores, mas múltiplas, podem ser executadas em paralelo e ainda apresentar um único ponto de entrada. Para recursos de aplicações legadas e nativas da nuvem, o balanceador de carga deixará de usar recursos de back-end que não respondem, direcionando solicitações para recursos saudáveis.
Os serviços de aplicações podem residir em vários locais, incluindo OCI, on-premises e outras nuvens. Um balanceador de carga fornece um ponto de entrada único e conveniente e pode direcionar solicitações para o backend apropriado, que pode estar na OCI, on-premises ou em outras nuvens.
O OCI Flexible Load Balancer oferece suporte a solicitações da web (HTTP, HTTPS) e tráfego na camada de aplicação usando TCP. Um balanceador de carga público aceita tráfego da Internet, enquanto um privado não.
Um balanceador de carga tem listeners que aceitam um único tipo de solicitação (HTTP, HTTPS, TCP). Ele pode suportar múltiplos listeners para aceitar múltiplos fluxos.
Balanceadores de carga são serviços regionais. Cada balanceador de carga tem dois dispositivos que fornecem capacidade de failover. Em uma região com vários domínios de disponibilidade, os dispositivos serão distribuídos automaticamente entre dois dos domínios de disponibilidade.
Defina um ou mais conjuntos de back-end e inclua recursos de computação como servidores de back-end nesses conjuntos. Em seguida, você pode definir verificações de integridade para que o balanceador de carga possa determinar se um recurso de computação está operacional ou deve ser excluído.
A persistência de sessão está disponível, o que ajuda a garantir que solicitações de um cliente específico sempre irão para o mesmo recurso de computação.
As solicitações são direcionadas aos recursos de computação com base em uma das várias estratégias de roteamento, como a menor carga.
Opcionalmente, você pode definir políticas de roteamento com base no cabeçalho HTTP ou URL para direcionar ainda mais solicitações a recursos de computação específicos.
Esta imagem mostra um layout lógico de recursos e conexões em uma arquitetura típica de balanceador de carga flexível.
Uma região da OCI é mostrada. Dentro da região há três domínios de disponibilidade separados numerados um, dois e três.
Uma rede de nuvem virtual cruza e inclui todos os três domínios de disponibilidade. A rede de nuvem virtual também inclui um gateway que é conectado bidirecionalmente à internet.
Dentro do primeiro domínio de disponibilidade está a primeira sub-rede. Ela contém o balanceador de carga flexível primário.
Dentro do segundo domínio de disponibilidade está a segunda sub-rede. Ela contém o balanceador de carga de failover.
Entre os dois domínios de disponibilidade e sub-redes há um listener com um endereço de IP público. O listener é conectado bidirecionalmente ao gateway de internet. Ele pode receber solicitações da internet.
O listener faz parte de um grupo que inclui o balanceador de carga flexível primário e de failover. Esse grupo atua como um balanceador de carga lógico que continua operando, mesmo se o componente principal do balanceador de carga falhar.
Há mais três sub-redes, uma em cada domínio de disponibilidade. Elas são numeradas três, quatro e cinco. Cada sub-rede tem recursos de computação.
O balanceador de carga primário é conectado bidirecionalmente às sub-redes três, quatro e cinco. O balanceador de carga de failover é conectado bidirecionalmente às sub-redes três, quatro e cinco.
As solicitações vêm da Internet para o listener e são enviadas para o balanceador de carga primário. O balanceador de carga então roteia a solicitação para uma das sub-redes com recursos baseados em pesos ou características HTTP.
Essa arquitetura de referência mostra uma aplicação da web de alta disponibilidade em execução na OCI usando balanceadores de carga.
Essa arquitetura de referência mostra como implementar uma arquitetura de DevOps moderna usando balanceadores de carga.
Essa arquitetura de referência usa serviços nativos de monitoramento e notificação da OCI para responder às condições de limite do balanceador de carga, chamar o Oracle Functions para avaliar a condição e usar regras de redirecionamento para encaminhar mensagens de erro personalizadas armazenadas no OCI Object Storage.
Crie, teste e implemente aplicações na Oracle Cloud gratuitamente. Inscreva-se uma vez e tenha acesso a duas ofertas gratuitas.
Interessado em saber mais sobre a Oracle Cloud Infrastructure? Deixe um de nossos especialistas ajudar.