As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Etapa 2: projetar e implementar
Esta seção discute como transformar seus objetivos de resiliência em realidade. Você mapeou o que é mais importante para o seu negócio e agora é hora de criá-lo. Como você constrói resiliência sem desacelerar a inovação?
Pense nos serviços AWS gerenciados como um atalho de resiliência. Em vez de gastar horas preciosas de engenharia mantendo a infraestrutura, use serviços que lidem com redundância para você. Por exemplo, considere o Amazon Simple Storage Service (Amazon S3). Ele armazena automaticamente várias cópias de seus dados dentro de um Região da AWS para maior durabilidade. Não requer código extra ou tarefas noturnas de pager.
E quanto aos principais componentes do seu aplicativo? Escolhas inteligentes podem multiplicar o impacto da sua equipe. Considere um banco de dados que seja a espinha dorsal do seu serviço. Em vez de criar seu próprio sistema de replicação, considere usar o Amazon Aurora, que gerencia automaticamente o failover. Esses recursos podem custar mais, mas mudam o foco da sua equipe da manutenção da infraestrutura para a solução de problemas de negócios. Esse custo pode ser compensado por meio da entrega mais rápida de recursos e da prevenção da perda de receita durante interrupções.
Às vezes, as startups precisam criar soluções personalizadas. Essa é a natureza das startups inovadoras. Ao fazer isso, mantenha-o simples, mas inteligente. Distribua seu aplicativo em várias zonas de disponibilidade usando os grupos do Elastic Load Balancing e do Amazon EC2 Auto Scaling. Defina a capacidade mínima do grupo Auto Scaling para lidar com seu tráfego de linha de base, mesmo se uma zona de disponibilidade falhar. Isso fornece resiliência contra falhas localizadas sem padrões arquitetônicos complexos. À medida que sua startup cresce e os clientes exigem maior resiliência, você pode evoluir para abordagens mais sofisticadas.
Recomendamos que você mantenha seus ambientes de produção e desenvolvimento separados Contas da AWS. É tentador misturá-los quando você está se movendo rapidamente, mas esse limite é sua rede de segurança. Isso impede que um experimento bem-intencionado derrube seu serviço de produção. Pense nisso como um seguro para sua cultura de desenvolvimento de “agir rápido e quebrar coisas” — interrompa o desenvolvimento, mantenha a produção estável.
Se seu aplicativo depender de serviços de terceiros, planeje suas falhas. Quando seu processador de pagamento tem problemas, seu sistema consegue lidar com isso normalmente? Crie disjuntores simples e opções alternativas. Talvez coloque essas transações na fila em vez de mostrar mensagens de erro. Seus clientes apreciarão o fato de você ter mantido as coisas funcionando, mesmo que não perfeitamente.
Documente à medida que você cria, mas mantenha-o prático. Concentre-se em registrar o porquê por trás das principais decisões e crie manuais de recuperação simples. É importante tê-los prontos quando ocorrerem incidentes.
Você não está construindo para uma resiliência perfeita; você está construindo para uma resiliência adequada. Cada hora gasta em excesso de engenharia de resiliência é uma hora não gasta em recursos que os clientes estão solicitando. Use serviços AWS gerenciados como sua base, adicione resiliência direcionada onde for mais importante e crie caminhos claros para aumentar a resiliência à medida que sua empresa cresce.
O próximo capítulo discute como validar essas opções de projeto sem gastar recursos de engenharia. Para startups, o teste deve ser um impulso razoável e um investimento inteligente na resiliência do seu aplicativo.