Apresentamos um caso de uso multicloud que abrange a utilização de duas clouds públicas diferentes para suportar os acessos a uma determinada aplicação com garantia de Failover. É importante frisar que para a construção dessa infraestrutura e indispensável o uso de alguma ferramenta de IaC (Infraestrutura como Código), sendo o Terraform a ferramenta mais recomendada. Outro ponto importante é perceber que esse ambiente garante uma ação mais rápida em caso de uma recuperação em caso de desastres. Neste caso de uso estamos utilizando as plataformas da AWS e GCP como exemplos, mas é claro que elas poderias ser substituídas por qualquer outra plataforma como Azure, Oracle Cloud e etc. Sendo assim, o importante é que os ambientes se integrem, garantindo que a conexão, dados e visualizações sejam iguais no acesso do cliente a aplicação, fazendo com que as plataformas em nuvem sejam apenas uma abstração para o usuário final.
O primeiro passo para entender essa infraestrutura é saber que ela precisa seguir uma estratégia para a distribuição das requisições. Nesse momento é interessante pensarmos se queremos dois ambientes que recebam, por exemplo, 50% das requisições cada ou que um ambiente seja um failover do outro. Isso varia do nível de alta disponibilidade que o negócio necessita em relação a quantidade de dados que serão trafegados. Ou seja, temos como possibilidades algumas abordagens como a utilização de um Loadbalancer multicloud, CDN, DNS failover e outras opções que podem variar com a necessidade deste ambiente. Para este nosso exemplo, podemos atuar em um DNS Failover, que permite que a aplicação fique sempre disponível. Dessa forma, podemos citar o serviço Route 53 da AWS. Esse serviço permite que façamos a configuração de um registro DNS primário e secundário levando em consideração uma validação de integridade de cada um desses serviços. Ou seja, se o DNS Primário, por exemplo a aplicação da GCP, estivesse indisponível, o serviço de DNS seria automaticamente modificado para responder pelo seu DNS Secundário, a aplicação da AWS. Já os ambientes teriam uma estrutura muito parecida. Nesse exemplo estamos usando os serviços de Loadbalancer de cada cloud para que as requisições sejam enviadas para um conjunto de instâncias onde a aplicação está configurada, podendo estar com uma escalabilidade automática para suprir altas demandas de acesso. Essa aplicação, por sua vez, está conectado a um banco de dados que se replica para que os mesmos dados sejam propagados entre cloud. De forma objetiva usamos serviços de loadbalancer, computação e bancos de dados, sendo eles, respectivamente, Cloud Load Balancer, GCE – Compute Engine e Cloud SQL para a GCP e ELB, EC2 e RDS para a AWS. Nesta solução, temos a utilização de duas plataformas com uma estratégia de garantir o acesso as aplicações mesmo em caso de falhas e fazendo com que ambos os ambientes, AWS ou GCP, sejam gerenciados e versionados usando o melhor da automação e dos serviços de cloud de forma ágil e eficiente.