Para nós que sempre trabalhamos com desenvolvimento de software, é estranho parar para pensar em infra já que até alguns anos atras éramos acostumados a codificar sem pensar onde nossa aplicação iria rodar.
Cansei de ouvir de desenvolvedores a seguinte frase “Quero codar, não me importa aonde vai rodar”. Mas essa visão vem mudando, e se torna cada vez mais necessário aos desenvolvedores o conhecimento de infra. Ou por pré requisito das vagas / empresas, ou por uma necessidade real da forma de pensar na sua aplicação.
A cerca de um ano a Netflix publicou um artigo onde ela reforça esse conceito, de um desenvolvedor “Full Cycle”, que seria responsável por todas as áreas de abrangência de um ciclo de vida de software.

Dado esse cenário, se torna cada vez mais necessário incluir no debate do nosso dia a dia conceitos de infraestrutura.
Portanto, vamos começar com o básico, neste artigo vamos falar um pouco sobre a divisão de operação da AWS, regions e AZs, e como isso muda ou não o seu dia a dia como eng. ou dev.
Vamos começar com o que é uma Region.
Bom, hoje sabemos que a AWS está presente em 190 países, e para conseguir essa façanha ela trabalha com alguns conceitos, e um deles são as Regions.
Segundo a definição da própria AWS, uma Region é uma área geográfica separada das demais, de forma prática estamos falando de “São Paulo”, “Ohio”, “Paris” e assim por diante.
Tá legal, mas pra que eu quero saber isso?
Você vai precisar conhecer as Regions para tomar algumas decisões. A primeira dela é de cunho financeiro, pois os preços dos serviços prestados pela AWS variam de acordo com a Region. Normalmente, os serviços que rodam em São Paulo, são muito mais caros dos que rodam em (us-east-1) Norte da Virgínia.
Boa, então é só rodar sempre na Virgínia. Uhm, não é bem assim, outro fator para decisão é o tipo de operação que você pretende rodar. Caso seja uma operação regulamentada, e que não permita processamento em outro pais, seu plano de rodar na Virgínia foi por água a baixo.
Outro fator importante para decisão é referente a disponibilidade do serviço, pois a AWS não disponibiliza o mesmo catalogo de produtos para todas as Regions, sendo assim é bom confirmar se o serviço que você pretende usar está disponível naquela região.
Ok, agora que temos um panorama geral sobre Regions, vamos para o próximo nível, as Zonas de Disponibilidade (AZs)
Zona de Disponibilidade
São vários locais isolados dentro de uma Region, a ideia dessa subdivisão como o nome já diz, é de permitir a disponibilidade da sua aplicação. A AWS promete disponibilidade de cerca de 99,99%, e por esse motivo as AZs foram pensadas para replicar a sua aplicação, garantindo que você não tenha uma falha de infra.
Aqui vai um desenho para ajudar no entendimento dessa divisão:

Considerações
Estamos participando de uma mudança cada vez maior no perfil dos profissionais de Engenharia e Desenvolvimento de software, que trazem a necessidade de conhecimentos que até então não tínhamos domínio.
Cada vez mais vamos precisar conhecer onde e como nossas aplicações serão executadas, pois isso deve interferir na forma como desenhamos a solução das mesmas. Caso você trabalhe em uma grande empresa, possivelmente grande parte dessas decisões serão tomadas por uma equipe apartada, ou ao menos é isso que tenho visto acontecer nas empresas com as quais tenho contato. Dificilmente você escolherá a Region onde sua aplicação será executada, mas ainda assim é importante entender como isso funciona, pois precisamos nos apropriar cada vez mais do meio ambiente das nossas aplicações.
Caso você esteja em uma empresa de porte menor, possivelmente esse tipo de conhecimento será crucial para as tomadas de decisão.
É uma jornada nova, aprendo a cada dia algo novo sobre esse tema, e conto com vocês para juntos aprendermos cada vez mais.
Curtiu ? Compartilhe esse conteúdo com seus amigos e equipe.
Quer ver ainda mais dicas de tecnologia ? Me siga no insta @natanpf.
Até semana que vem.
Natan Pasquarelli Freitas
Deixe uma resposta