O primeiro passo para criar uma infraestrutura confiável para suas cargas de trabalho na nuvem é identificar os requisitos de confiabilidade das cargas de trabalho. Esta parte do Guia de confiabilidade da infraestrutura do Google Cloud fornece diretrizes para ajudar você a definir os requisitos de confiabilidade das cargas de trabalho implantados no Google Cloud.
Determinar requisitos específicos da carga de trabalho
Os requisitos de confiabilidade de um aplicativo dependem da natureza do serviço prestado ou do processo realizado. Por exemplo, um aplicativo que fornece serviços de caixa eletrônico para um banco pode precisar de disponibilidade de 5 noves. Um site compatível com uma plataforma de negociação on-line pode precisar de disponibilidade de 5 noves e um tempo de resposta rápido. Um processo em lote que grava transações bancárias em um livro contábil no final de cada dia pode ter uma meta de atualização de dados de oito horas.
Em um aplicativo, as operações ou os componentes individuais podem ter requisitos de confiabilidade variados. Por exemplo, um aplicativo de processamento de pedidos pode precisar de maior confiabilidade para operações que gravam dados no banco de dados de pedidos em comparação com solicitações de leitura.
Ao avaliar os requisitos de confiabilidade das cargas de trabalho de maneira granular, você pode concentrar seus gastos e esforços nas cargas de trabalho essenciais para os negócios.
Identificar períodos críticos
Pode haver períodos em que um aplicativo seja mais essencial para os negócios do que em outros momentos. Esses períodos geralmente são aqueles em que o aplicativo tem uma carga de pico. Identifique esses períodos, planeje a capacidade adequada e teste o aplicativo em relação às condições de carga de pico. Para evitar o risco de interrupções do aplicativo durante os períodos de pico de carga, use práticas operacionais apropriadas, como congelar o código de produção.
Veja a seguir exemplos de aplicativos que enfrentam picos sazonais na carga:
- O módulo de inventário de um aplicativo de contabilidade financeira normalmente é usado mais intensamente nos dias em que as auditorias de inventário mensais, trimestrais ou anuais são programadas.
- Um site de e-commerce teria picos significativos de carga durante os períodos de pico de compras ou eventos promocionais.
- Um banco de dados que oferece suporte ao módulo de admissão de alunos de uma universidade teria um alto volume de operações de gravação durante alguns meses de cada ano.
- Um serviço de declaração de imposto de renda on-line teria uma carga alta durante a época de declaração de impostos.
- Uma plataforma de negociação on-line pode precisar de disponibilidade de 5 noves e de tempo de resposta rápido, mas apenas durante o horário de negociação. Por exemplo, de 8h às 17h, de segunda a sexta-feira.
Considerar outros requisitos não funcionais
Além dos requisitos de confiabilidade, os aplicativos corporativos podem ter outros requisitos não funcionais importantes para segurança, desempenho, custo e eficiência operacional. Ao avaliar os requisitos de confiabilidade de um aplicativo, considere as dependências e as vantagens e desvantagens com esses outros requisitos.
Veja a seguir exemplos de requisitos que não são confiáveis, mas podem exigir compensações.
- Otimização de custos: para otimizar o custo de TI, sua organização pode impor cotas para determinados recursos de nuvem. Por exemplo, para reduzir o custo de licenças de software de terceiros, sua organização pode definir cotas para o número de núcleos de computação que podem ser provisionados. Há cotas semelhantes para a quantidade de dados que podem ser armazenados e o volume de tráfego de rede entre regiões. Considere os efeitos dessas restrições de custo nas opções disponíveis para projetar uma infraestrutura confiável.
- Residência dos dados: para atender a requisitos regulamentares, seu aplicativo pode armazenar e processar dados em países específicos, mesmo que a empresa atenda aos usuários globalmente. Considere essas restrições de residência de dados ao decidir as regiões e zonas em que os aplicativos podem ser implantados.
Certas decisões de design tomadas para atender a outros requisitos podem ajudar a melhorar a confiabilidade dos aplicativos. Confira alguns exemplos:
- Automação de implantação: para operar as implantações na nuvem de maneira eficiente, é possível automatizar o fluxo de provisionamento usando infraestrutura como código (IaC). Da mesma forma, é possível automatizar o processo de criação e implantação de aplicativos usando um pipeline de integração e implantação contínuas (CI/CD). O uso de pipelines de CI/CD e IaC pode ajudar a melhorar a eficiência operacional e a confiabilidade das cargas de trabalho.
- Controles de segurança: os controles de segurança implementados também podem ajudar a melhorar a disponibilidade do aplicativo. Por exemplo, as políticas de segurança do Google Cloud Armor podem ajudar a garantir que o aplicativo permaneça disponível durante ataques de negação de serviço (DoS).
- Armazenamento em cache de conteúdo: para melhorar o desempenho de um aplicativo de exibição de conteúdo, ative o armazenamento em cache como parte da configuração do balanceador de carga. Com esse design, os usuários têm acesso mais rápido ao conteúdo e mais disponibilidade. Eles podem acessar conteúdo em cache mesmo quando os servidores de origem estão inativos.
Reavaliar os requisitos periodicamente
À medida que sua empresa evolui e cresce, os requisitos dos aplicativos podem mudar. Reavalie seus requisitos de confiabilidade periodicamente e verifique se eles estão alinhados com as metas e as prioridades de negócios atuais da sua organização.
Pense em um aplicativo que atualmente oferece um nível padrão de disponibilidade para todos os usuários. Você pode ter implantado o aplicativo em duas zonas de uma região, com um balanceador de carga regional como front-end. Se a organização planeja lançar uma opção de serviço premium que oferece maior disponibilidade, os requisitos de confiabilidade do aplicativo mudaram. Para atender aos novos requisitos de disponibilidade, implante o aplicativo em várias regiões e use um balanceador de carga global com o Cloud CDN ativado.
Outra oportunidade para reavaliar os requisitos de disponibilidade dos aplicativos é após uma falha temporária. As interrupções podem expor expectativas não consistentes entre diferentes equipes na sua empresa. Por exemplo, uma equipe pode considerar uma falha temporária de 45 minutos uma vez por ano (ou seja, 99,99% de disponibilidade anual) como aceitável. No entanto, outra equipe pode esperar um tempo de inatividade máximo de 4,3 minutos por mês, ou seja, 99,99% de disponibilidade mensal. Dependendo de como decidir modificar ou esclarecer os requisitos de disponibilidade, ajuste sua arquitetura para atender aos novos requisitos.