A computação em nuvem já está consolidada a alguns anos como uma excelente opção para aplicações simples ou complexas e seus recursos e serviços não param de crescer. Vide a AWS que já conta com mais de 100 serviços disponíveis em várias regiões do mundo.

Criar novas aplicações ou migrar do on-premise para a nuvem utilizando essa gama de serviços não é nada fácil. Por isso algumas práticas e estratégias devem ser seguidas para conseguir bons resultados e tirar todo o proveito dos serviços.

Quando criamos arquiteturas de sistemas, podemos fazer uma analogia com a construção de um edifício, se a fundação não for sólida, problemas estruturais podem aparecer. Ao arquitetar, não podemos negligenciar princípios básicos como os cinco pilares propostos pela AWS: confiabilidade, performance, otimização de custo, excelência operacional e segurança.

A incorporação desses pilares ajudará você a produzir sistemas estáveis e eficientes e permitir que se concentre em outros aspectos do design, como requisitos funcionais.

Confiabilidade

O pilar da Confiabilidade pode ser explicado pela capacidade de um sistema se recuperar de falhas de infraestrutura ou serviços, subir novos recursos dinamicamente para atender a picos de demanda ou se recuperar de interrupções, como configurações incorretas ou problemas de rede temporários.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Recuperação de testes: Geralmente quando executamos testes da aplicação é para provar que está tudo funcionando corretamente em um cenário específico, o teste não valida estratégias de recuperação caso ocorra algum falha em um componente do sistema. Na nuvem é possível validar como o seu sistema irá falhar e avaliar os procedimentos de recuperação em diferentes cenários ou recriar cenários em que aconteceram falhas anteriormente. É possível entender mais um pouco sobre recuperação de teste sobre a visão da Engenharia do Caos.
  • Escalar Horizontalmente: Uma arquitetura onde um grande recurso é dividido em vários recursos menores, possibilita que a alocação dinâmica seja feita em momentos de grande demanda, garantindo sempre o atendimento das requisições e eliminando o ponto único de falhas.
  • Não adivinhe a capacidade: É muito comum que em sistemas on-premise a alocação de recursos computacionais seja saturada, por conta do atendimento de altas demandas pontuais. Na nuvem, você pode monitorar a demanda e a utilização do sistema e automatizar a adição ou remoção de recursos para manter o nível ideal sem provisionamento excessivo ou insuficiente.

Performance

O pilar da Performance inclui a capacidade de utilizar os recursos de maneira eficiente e otimizada para atender os requisitos do sistema e manter essa capacidade mesmo com alteração da demanda.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Democratizar novas tecnologias: Algumas tecnologias podem ser difíceis de implementar ou pouco acessíveis devido a falta de conhecimento e complexidade de instalação. Ao invés de aprender como manter uma tecnologia, o mais fácil é apenas consumi-la como um serviço, por exemplo: bancos NoSQL e serviços de Inteligência Artificial.
  • Serviços Globais: Implemente facilmente o sistema em várias regiões em todo o mundo com apenas alguns cliques. Isso permite que você forneça menor latência e uma melhor experiência para seus clientes a um custo mínimo.
  • Serverless: Com arquiteturas Serverless não se faz necessário configurar e manter servidores para a sua aplicação e escalar recursos para altas demandas. Isso remove os problemas operacionais, reduz o custo da aplicação e atende globalmente os usuários.

Otimização de Custo

O pilar da Otimização de Custo pode ser resumido pela capacidade de executar aplicações pelo preço mais baixo comercialmente.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Adote um modelo de consumo: Pague apenas pelo tempo necessário dos recursos e aumente ou diminua o uso dependendo dos requisitos do negócio, sem precisar fazer previsões muito elaboradas de custo. Um exemplo são ambientes de desenvolvimento e testes que acabam sendo utilizados apenas 8 horas ao dia durante a semana. É possível pará-los quando não estão em uso e economizar até 75% do custo.
  • Não gaste dinheiro com operações: Elimine os gastos de manutenção de servidores, equipamentos de rede, resfriamento do datacenter e fornecimento de energia. Sem esses gastos e preocupações é possível focar nos clientes e projetos e não em infraestrutura de TI.
  • Análise da distribuição de custos: É possível identificar o uso e o custo de cada sistema que está rodando na nuvem de forma transparente. Isso ajuda a medir o retorno do investimento (ROI) e oferece uma oportunidade de otimizar seus recursos e reduzir custos.

Excelência Operacional

O pilar da Excelência Operacional é a capacidade de executar e monitorar sistemas para diminuir custos e melhorar continuamente os processos de otimização e suporte.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Infraestrutura como código: Da mesma forma que o código é utilizado para construir uma aplicação, por ser utilizado também para construir e manter a infraestrutura de todo o seu ambiente na nuvem. Você pode utilizar scripts para automatizar procedimentos operacionais que podem ser disparados automaticamente, limitando erros humanos.
  • Alterações frequentes, pequenas e reversíveis: Projete a utilização dos recursos para permitir que os componentes sejam atualizados frequentemente. Faça pequenas alterações incrementais que possam ser revertidas em caso de falha.
  • Antecipe falhas: Realize testes para identificar potenciais falhas e monitore para aprender e melhorar o processo. Crie cenários onde os procedimentos de respostas sejam acionados para garantir que sejam eficazes e que as equipes conheçam a sua execução.

Segurança

O pilar Segurança se resume pela capacidade de proteger informações e sistemas, ao mesmo tempo em que agrega valor aos negócios por meio de avaliações de risco e estratégias de mitigação.

As melhores práticas que podem ser aplicadas nesse pilar são:

  • Rastreabilidade: Monitore, alerte e analise as transações do seu ambiente em tempo real. Utilize logs e métricas de integração com sistemas para responder e agir automaticamente.
  • Proteja os dados: Utilize mecanismos, como criptografia ponta a ponta, tokens e controle de acesso, quando apropriado.
  • Afaste as pessoas dos dados: Crie mecanismos e análise ou elimine a necessidade de acesso direto ou processamento manual de dados. Isso reduz o risco de perda ou modificação e erros humanos ao manusear dados confidenciais.

Conclusão

Seguir as práticas dos cinco pilares da arquitetura em nuvem para projetar e operar suas aplicações, fará com que elas sejam seguras, confiáveis e eficientes economicamente. Você estará aproveitando todas as vantagens que a nuvem tem a oferecer e poderá focar seus esforços nos clientes e requisitos funcionais.

Samuel Pisa

Samuel Pisa

Desenvolvedor de Software na Tegra Soluções Digitais

E-mail: samuel.pisa@tegra.com.br