O Google Cloud centrado em aplicativos permite criar e gerenciar aplicativos de maneira consistente no Google Cloud. Seguir as práticas recomendadas para design e gerenciamento de aplicativos no App Hub e no Application Design Center ajuda a criar aplicativos operáveis, governáveis e eficientes que se alinham aos seus objetivos de negócios.
Princípios básicos do gerenciamento de aplicativos
Seguir os princípios básicos abaixo ajuda a maximizar o valor que você recebe ao gerenciar sua infraestrutura do Google Cloud de maneira centrada no aplicativo:
Defina limites claros: defina o limite de gerenciamento de aplicativos de uma maneira lógica para suas operações, monitoramento, governança e solução de problemas. Além disso, os recursos dentro desse limite que você usa como componentes de aplicativo devem, idealmente, compartilhar um ciclo de vida operacional conjunto ou valor comercial para simplificar o gerenciamento e reduzir riscos.
Para fins operacionais, é importante entender a diferença entre um limite de gerenciamento de aplicativos e escopos de observabilidade.
- O limite de gerenciamento de aplicativos define a coleção de projetos que contêm os recursos do Google Cloud que podem ser usados para projetar, criar e gerenciar aplicativos, conforme descrito em Conceitos-chave.
- Os escopos de observabilidade no Google Cloud Observability permitem visualizar a telemetria de vários projetos juntos.
Os escopos de registro, métricas e trace precisam incluir dados dos mesmos projetos que estão incluídos no limite de gerenciamento do aplicativo. Para mais informações sobre escopos de observabilidade, consulte Configurar escopos de observabilidade.
Refletir as capacidades de negócios: defina seus aplicativos em torno de funções de negócios ou fluxos de trabalho completos, não apenas camadas técnicas. Um aplicativo precisa representar um fluxo de valor distinto para sua empresa.
Estabeleça propriedade e metadados claros: atribua atributos claros a cada aplicativo para que as equipes possam encontrá-los, entendê-los e gerenciá-los de maneira eficaz no App Hub. Esses atributos dão suporte à facilidade de descoberta e à governança. A facilidade de descoberta significa que as equipes relevantes, como desenvolvedores e operadores, podem encontrar aplicativos. A governança define claramente quem é o proprietário e o responsável por cada aplicativo.
No App Hub, é possível definir atributos importantes, como:
- Ambiente: o estágio no ciclo de vida do aplicativo, como Production, preparo, teste ou desenvolvimento. Esse atributo ajuda as equipes a filtrar e gerenciar componentes com base no estágio de implantação.
- Importância: a importância comercial do aplicativo e dos componentes dele, como se são essenciais para a missão. Esse atributo pode informar as prioridades de monitoramento e resposta a incidentes.
- Proprietários: dados de contato das diferentes equipes responsáveis pelo aplicativo, o que promove a responsabilidade, simplifica a comunicação e esclarece as responsabilidades.
O Application Design Center é compatível com esses atributos e também inclui detalhes de localização e configuração para componentes de aplicativo. A aplicação consistente desses atributos e detalhes é crucial para descoberta, governança e geração de relatórios.
Design para evolução: o Application Design Center ajuda você a projetar para evolução, permitindo criar modelos reutilizáveis para seus aplicativos. Se você atualizar o modelo, poderá aplicar essas mudanças reimplantando os aplicativos, o que ajuda a atender à demanda, introduzir novos recursos ou fazer mudanças na arquitetura, acomodando o crescimento futuro e as necessidades de infraestrutura em evolução.
Iterar e refinar os modelos de aplicativos: revise e ajuste regularmente as definições de aplicativos para refletir as mudanças na estrutura, nas prioridades de negócios e na arquitetura técnica da organização. O Cloud Hub oferece visualizações centralizadas das atualizações disponíveis para aplicativos implantados com base em modelos do Application Design Center, ajudando você a analisar e ajustar as definições do aplicativo para refletir essas necessidades em evolução.
Recomendações de modelo de dados
Ao entender como modelar seus sistemas reais como aplicativos, serviços e cargas de trabalho no framework do App Hub, é possível usar de maneira eficaz os recursos de gerenciamento de aplicativos no seu ambiente do Google Cloud.
Ao definir seus aplicativos, é importante aplicar os princípios fundamentais do gerenciamento de aplicativos, como o uso de atributos para estabelecer propriedade e metadados claros.
Para modelar os componentes de aplicativo com esse framework em mente, considere os exemplos de casos de uso recomendados a seguir.
Exemplo: aplicativo baseado em microsserviços
Um sistema de e-commerce, como o descrito na demonstração do OpenTelemetry para uma loja on-line, é um exemplo de aplicativo baseado em microsserviços. Recomendamos modelar esse tipo de sistema como um único aplicativo. Essa abordagem oferece uma visualização unificada de toda a função de negócios, desde a descoberta do produto até a finalização da compra. Por exemplo, considere o seguinte modelo para recursos atuais em execução no Google Cloud:
Aplicativo: crie ou defina um único aplicativo no App Hub chamado, por exemplo,
my-ecommerce-site. Esse aplicativo representa toda a loja on-line como uma única unidade gerenciável. Registre os seguintes recursos no aplicativo para criar um agrupamento lógico de componentes que, juntos, fornecem a função de negócios da sua loja on-line:- Microsserviços como cargas de trabalho: registre os microsserviços individuais que compõem o sistema de e-commerce, como Anúncio, Carrinho e Finalização da compra, como cargas de trabalho no aplicativo. Esses são os recursos de computação com o código binário que executam uma parte discreta da lógica de negócios, sendo executados como implantações do Google Kubernetes Engine (GKE).
- Endpoints de rede como serviços: registre os endpoints de rede desses microsserviços, como os balanceadores de carga, como serviços do aplicativo. Elas expõem a funcionalidade da loja on-line aos clientes.
Evite registrar cada microsserviço como um aplicativo próprio. Essa abordagem fragmenta o contexto de negócios e dificulta uma visão abrangente da integridade e do desempenho da sua loja on-line.
Ao agrupar todos os microsserviços em um único aplicativo, você tem os seguintes benefícios:
- Visibilidade abrangente: é possível monitorar a integridade e o desempenho de toda a jornada do usuário de e-commerce, desde a funcionalidade do anúncio até a funcionalidade de finalização da compra, em uma única visualização unificada.
- Contexto de negócios claro: o aplicativo alinha a infraestrutura à função de negócios que ele atende, que é a loja on-line. Essa abordagem facilita a compreensão da integridade e do custo do aplicativo.
- Solução de problemas simplificada: quando um problema surge, é possível ver as dependências entre os diferentes microsserviços no aplicativo, acelerando a análise da causa raiz.
Exemplo: aplicativo da Web de três camadas
Um aplicativo da Web de três camadas é um padrão de arquitetura que separa um aplicativo em uma camada de front-end, uma camada de back-end e uma camada de banco de dados. Esse caso de uso demonstra como modelar uma função de negócios completa como um único aplicativo, em vez de tratar cada nível como um componente isolado.
O modelo a seguir mapeia camadas técnicas em um aplicativo da Web de três camadas:
Aplicativo: crie um único aplicativo, por exemplo,
my-web-app, para servir como o contêiner lógico de todos os componentes que compõem seu aplicativo da Web.Serviços: registre as interfaces de rede que expõem funcionalidades a outros níveis ou a usuários como serviços, por exemplo:
- O balanceador de carga de front-end que recebe o tráfego do usuário.
- O balanceador de carga interno que gerencia o tráfego entre o front-end e o back-end.
- A instância de banco de dados do Cloud SQL ou do Spanner, que expõe um serviço de dados ao nível de lógica de back-end.
Cargas de trabalho: registre os recursos de computação que executam o código do aplicativo como cargas de trabalho, por exemplo:
- Os grupos gerenciados de instâncias (MIGs) ou as implantações do Google Kubernetes Engine que atendem à interface do usuário de front-end.
- Os MIGs ou as implantações do Google Kubernetes Engine que executam a lógica de negócios de back-end.
Ao agrupar as três camadas em um único aplicativo, você tem os seguintes benefícios:
- Observabilidade unificada: é possível monitorar a integridade e o desempenho de todo o aplicativo em um único painel no Monitoramento de aplicativos, em vez de ter que juntar dados de três aplicativos separados.
- Propriedade clara: é possível atribuir proprietários de negócios, desenvolvedores e operadores
ao aplicativo
my-web-app, esclarecendo a responsabilidade por toda a função de negócios. - Governança simplificada: é possível aplicar políticas e controles de acesso no nível
my-web-app, o que garante uma governança consistente em todos os níveis.
Estratégias de design e governança de aplicativos
Adote as estratégias a seguir para garantir que a configuração do App Hub e do Application Design Center seja escalonável, governável e alinhada às suas práticas operacionais.
Escolher entre aplicativos globais e regionais
O local escolhido para um aplicativo, seja global ou regional, é uma decisão fundamental que afeta o processamento de dados, a latência e a conformidade:
- Priorize aplicativos regionais: sempre que possível, defina seus aplicativos como regionais. Essa prática oferece benefícios como latência reduzida, economia de custos em potencial e alinhamento com os requisitos de residência de dados. Os aplicativos regionais são recomendados quando todos os componentes residem em uma única região do Google Cloud , o que oferece uma compatibilidade inerente com recursos e domínios de falha específicos da região do Google Cloud . Para orientações sobre como criar sistemas altamente disponíveis, consulte Criar sistemas altamente disponíveis usando a redundância de recursos.
- Use aplicativos globais de forma estratégica: opte por um aplicativo global apenas quando os componentes do sistema estiverem necessariamente espalhados por várias regiões ou envolverem recursos globais do Google Cloud , como um balanceador de carga de aplicativo externo global.
- Decompor sistemas multirregionais: se você tiver recursos em várias regiões que não formam uma única função global coesa, considere definir aplicativos regionais separados para componentes em cada região. Essa prática maximiza os benefícios da regionalização para cada implantação.
Para uma comparação detalhada entre as diferentes geografias de implantação no App Hub, consulte Aplicativos globais e regionais.
Separar ambientes em aplicativos distintos
Para dar suporte ao isolamento de segurança, permissões e risco operacional, represente
diferentes ambientes de implantação, como desenvolvimento, preparo e produção,
como aplicativos distintos. Por exemplo, é possível estruturar os aplicativos como
my-app-dev, my-app-staging e my-app-prod.
Separar ambientes em aplicativos distintos oferece limites precisos para controle de acesso, aplicação de políticas e monitoramento. Além disso, o uso consistente
de atributos, detalhes de configuração e localização nos componentes do aplicativo
melhora a facilidade de descoberta e impõe a governança. Esses atributos
fornecem metadados avançados para filtragem, relatórios e aplicação de políticas. Por
exemplo, o atributo Environment fornece detalhes granulares e
controle específico de recursos para políticas de ambiente de implantação distintas. Para mais
informações sobre esse e outros atributos, consulte
Propriedades e atributos.
Alinhar os limites de gerenciamento de aplicativos com as estruturas da equipe
Represente sua estrutura organizacional, especificamente as equipes responsáveis pelo desenvolvimento e operação de aplicativos, dentro dos limites de gerenciamento de aplicativos.
Essa prática simplifica a propriedade e a comunicação porque o modelo de aplicativo reflete a estrutura que seu uso comercial usa para definir como as tarefas são divididas, agrupadas e coordenadas para alcançar as funções.
Seguir o ciclo de vida do aplicativo
Integre o App Hub ao Application Design Center para uma experiência perfeita de ciclo de vida do aplicativo:
- Você tem recursos preexistentes para registrar em um aplicativo: use o App Hub para registrar seus recursos do Google Cloud como serviços ou cargas de trabalho em aplicativos. Essa prática oferece visibilidade unificada e controle operacional sobre sua infraestrutura atual de forma rápida. Se quiser, você pode criar um modelo no Application Design Center com base em um aplicativo em execução para padronizar a arquitetura para implantações futuras.
- Você não tem recursos preexistentes para registrar em um aplicativo: use o Application Design Center para projetar e implantar novos aplicativos com base em modelos controlados e reutilizáveis. Quando você implanta um aplicativo de um modelo do App Design Center, os componentes são registrados automaticamente no App Hub para que o modelo do aplicativo reflita com precisão o design pretendido. O Application Design Center também ajuda a gerenciar atualizações consistentes de aplicativos com base em revisões de modelos. Se você atualizar o modelo, poderá reimplantar o aplicativo para propagar as mudanças, garantindo consistência e governança.
Considerações sobre a hierarquia de recursos
Sua hierarquia de recursos no Google Cloud é a base para o gerenciamento prático de aplicativos. Você introduz uma camada de gerenciamento de aplicativos sobre essa hierarquia por meio da configuração de um projeto de gerenciamento para definir o limite de gerenciamento de aplicativos. Para uma visão geral de como diferentes produtos funcionam juntos como parte das soluções do Google Cloud centradas em aplicativos, consulte Google Cloud centrado em aplicativos.
O planejamento cuidadoso da hierarquia de recursos do Google Cloud para o gerenciamento de aplicativos é essencial para estabelecer agrupamentos lógicos. A escolha de um único projeto, uma pasta ou um conjunto de projetos para definir o limite de gerenciamento de aplicativos molda fundamentalmente a governança, a aplicação de políticas e a descoberta de recursos. Além disso, o suporte do Google Cloud para produtos centrados em aplicativos varia de acordo com a forma como você define esse limite de gerenciamento de aplicativos.
Para definir o melhor limite de gerenciamento de aplicativos para sua hierarquia de recursos e necessidades de negócios e aprender mais sobre o suporte do produto para diferentes padrões de estrutura de recursos, consulte Escolher o modelo de configuração do aplicativo.
Refinamento contínuo
Os designs de aplicativos não são estáticos. Eles costumam evoluir com o tempo. Revise e refine regularmente seus aplicativos para garantir que eles continuem alinhados com suas funções de negócios, estruturas de equipe e arquiteturas em constante mudança.
Recomendamos usar os insights do Cloud Hub e do Gemini Cloud Assist para identificar oportunidades de otimização e adaptar seus aplicativos de acordo. Use o Application Design Center para modelar e implantar mudanças na arquitetura e gerenciar o ciclo de vida dos aplicativos usando modelos.