Modelo de arquitetura do Google Cloud

Last reviewed 2024-08-27 UTC

O framework de arquitetura do Google Cloud fornece recomendações e descreve as práticas recomendadas para ajudar arquitetos, desenvolvedores, administradores e outros profissionais de nuvem a projetar e operar uma topologia de nuvem segura, eficiente, resiliente, de alto desempenho e econômica. O Google Cloud Architecture Framework é nossa versão de um framework bem arquitetado.

Uma equipe multifuncional de especialistas do Google valida as recomendações de design e as práticas recomendadas que compõem o framework de arquitetura. A equipe seleciona o framework de arquitetura para refletir os recursos de expansão do Google Cloud, as práticas recomendadas do setor, o conhecimento da comunidade e o feedback que você envia. Para ver um resumo das mudanças significativas, consulte O que há de novo.

As orientações de design no framework de arquitetura se aplicam a aplicativos criados para a nuvem e para cargas de trabalho migradas do local para o Google Cloud, de implantações de nuvem híbrida e de várias nuvens.

Categorias do framework de arquitetura

O framework de arquitetura do Google Cloud é organizado em cinco categorias, também conhecidas como pilares, conforme mostrado no diagrama a seguir:

Modelo de arquitetura do Google Cloud.

Excelência operacional
Implemente, opere, monitore e gerencie com eficiência suas cargas de trabalho na nuvem.
Segurança, privacidade e conformidade
Maximizar a segurança dos dados e cargas de trabalho na nuvem, projetar para privacidade e alinhar com os padrões e requisitos regulamentares.
Confiabilidade
Projete e opere cargas de trabalho resilientes e altamente disponíveis na nuvem.
Otimização de custos
Maximizar o valor comercial do seu investimento no Google Cloud.
Otimização de desempenho
Projete e ajuste os recursos da nuvem para um desempenho ideal.

Princípios básicos

Antes de conferir as recomendações em cada categoria do Framework de arquitetura, revise os seguintes princípios básicos:

Design para mudança

Nenhum sistema é estático. As necessidades dos usuários, os objetivos da equipe que cria o sistema e o próprio sistema estão em constante mudança. Com a necessidade de mudanças em mente, crie um processo de desenvolvimento e produção que permita que as equipes façam pequenas mudanças regularmente e recebam feedback rápido sobre elas. Demonstrar de maneira consistente a capacidade de implantar mudanças ajuda a criar confiança com as partes interessadas, incluindo as equipes responsáveis e os usuários do sistema. O uso das Software Delivery Metrics da DORA pode ajudar sua equipe a monitorar a velocidade, a facilidade e a segurança de fazer mudanças no sistema.

Documentar sua arquitetura

Quando você começa a mover cargas de trabalho para a nuvem ou a criar aplicativos, a falta de documentação sobre o sistema pode ser um grande obstáculo. A documentação é especialmente importante para visualizar corretamente a arquitetura das implantações atuais.

A documentação de qualidade não é alcançada com a produção de uma quantidade específica de documentação, mas com a clareza, a utilidade e a manutenção do conteúdo à medida que o sistema muda.

Uma arquitetura de nuvem bem documentada estabelece uma linguagem e padrões comuns, o que permite que equipes multifuncionais se comuniquem e colaborem de maneira eficaz. A documentação também fornece as informações necessárias para identificar e orientar futuras decisões de design. A documentação precisa ser escrita de acordo com os casos de uso para fornecer contexto às decisões de design.

Com o tempo, suas decisões de design vão evoluir e mudar. O histórico de alterações fornece o contexto que suas equipes precisam para alinhar iniciativas, evitar a duplicação e avaliar as mudanças de desempenho com eficiência ao longo do tempo. Os registros de alterações são especialmente importantes quando você integra um novo arquiteto de nuvem que ainda não está familiarizado com o design, a estratégia ou o histórico atual.

A análise da DORA descobriu um vínculo claro entre a qualidade da documentação e o desempenho organizacional, ou seja, a capacidade da organização de atingir as metas de desempenho e lucratividade.

Simplifique o design e use serviços totalmente gerenciados

Simplicidade é crucial para o design. Se sua arquitetura for muito complexa para entender, será difícil implementar o design e gerenciá-lo ao longo do tempo. Quando possível, use serviços totalmente gerenciados para minimizar os riscos, tempo e esforço associados ao gerenciamento e à manutenção de sistemas de referência.

Se você já estiver executando as cargas de trabalho em produção, teste com serviços gerenciados para ver como eles podem ajudar a reduzir as complexidades operacionais. Se você estiver desenvolvendo novas cargas de trabalho, comece de maneira simples, estabeleça um produto mínimo viável (MVP, na sigla em inglês) e resista ao impulso de trabalhar demais com engenharia. É possível identificar casos de uso excepcionais, iterar e melhorar seus sistemas gradualmente ao longo do tempo.

Dissocie a arquitetura

Uma pesquisa da DORA mostra que a arquitetura é um preditor importante para alcançar a entrega contínua. A dissociação é uma técnica usada para separar os aplicativos e componentes de serviço em componentes menores que podem operar de forma independente. Por exemplo, é possível separar uma pilha de aplicativos monolíticos em componentes de serviço individuais. Em uma arquitetura acoplada com flexibilidade, um aplicativo pode executar as funções de maneira independente, independentemente das várias dependências.

Uma arquitetura desacoplada aumenta a flexibilidade para:

  • Aplicar upgrades independentes.
  • Aplicar controles de segurança específicos.
  • Estabelecer metas de confiabilidade para cada subsistema.
  • Monitorar a saúde.
  • Controlar os parâmetros de desempenho e custo de forma granular.

É possível iniciar o processo de dissociação no início da fase de design ou incorporar como parte dos upgrades do sistema conforme você escalona.

Usar uma arquitetura sem estado

Uma arquitetura sem estado pode aumentar a confiabilidade e a escalonabilidade dos aplicativos.

Os aplicativos com estado dependem de várias dependências para executar tarefas, como armazenamento em cache local de dados. Os aplicativos com estado geralmente precisam de mecanismos adicionais para capturar o progresso e reiniciar sem problemas. Aplicativos sem estado podem executar tarefas sem dependências locais significativas usando armazenamento compartilhado ou serviços em cache. Uma arquitetura sem estado permite que seus aplicativos sejam escalonados rapidamente com dependências mínimas de inicialização. Os aplicativos são resistentes a reinicializações rígidas, têm menor inatividade e fornecem melhor desempenho para os usuários finais.