Resumo
- Os aplicativos de nuvem devem tomar precauções para garantir que usem recursos que os ajudam a atender aos requisitos de largura de banda e latência, além de seguir as práticas recomendadas de segurança.
- Aplicativos implantados na nuvem geralmente estão sujeitos à variância de desempenho devido à natureza compartilhada da nuvem.
- A nuvem facilita a manutenção de vários ambientes diferentes, além da produção. Os pipelines de aplicativos são mantidos usando sistemas de controle de versão e repositório de código e são automatizados usando ferramentas de integração contínua.
- O planejamento para falhas é crucial. A redundância é a principal técnica usada para garantir a resiliência, geralmente usando réplicas implantadas em regiões e zonas de disponibilidade.
- Recursos redundantes geralmente são monitorados e acessados usando um balanceador de carga central e altamente disponível. A alta disponibilidade é garantida alternando para uma instância de backup quando uma falha.
- Empresas como Netflix e Facebook injetam falhas grandes e aleatórias (ou planejadas) em seus datacenters e operações de nuvem para testar a tolerância a falhas.
- O balanceamento de carga também dá suporte à escala horizontal, em que mais recursos idênticos podem ser lançados para um problema. O outro tipo de escala é a vertical, em que o tamanho ou a capacidade de recursos existentes é aumentado.
- A escala horizontal em muitos nós leva ao problema da latência de cauda, em que o desempenho do aplicativo é determinado por seu componente mais lento. Isso ocorre devido à variabilidade de desempenho na nuvem e também porque aplicativos com distribuição ampla disparam picos de atividade em cada fase.
- Por fim, a falta de padronização e a alta competitividade do mercado de nuvem levam a oportunidades e desafios interessantes para minimizar os custos.