Neste guia, apresentamos as práticas recomendadas para projetar, definir e gerenciar seus aplicativos do App Hub no Google Cloud focado em aplicativos usando o App Hub e o Application Design Center. Seguir essas práticas é fundamental para criar aplicativos operáveis, gerenciá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 a seguir ajuda a maximizar o valor que você recebe ao gerenciar sua infraestrutura do Google Cloud de maneira centrada em aplicativos:
Defina limites claros:defina o limite de gerenciamento de aplicativos de uma forma 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 precisam compartilhar um ciclo de vida operacional ou valor comercial conjunto para simplificar o gerenciamento e reduzir o risco.
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 você pode usar para projetar, criar e gerenciar aplicativos, conforme descrito em Conceitos principais.
- Com os escopos de observabilidade no Google Cloud Observability, é possível ver a telemetria de vários projetos juntos.
Os escopos de registros, métricas e rastreamentos precisam incluir dados dos mesmos projetos que estão incluídos no limite de gerenciamento de aplicativos. 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 comerciais ou fluxos de trabalho completos, e 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 encontrar, entender e gerenciar com eficiência no App Hub. Esses atributos ajudam na capacidade de descoberta e na governança. A capacidade de descoberta significa que 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, você pode definir atributos principais, como:
- Ambiente:a etapa no ciclo de vida do aplicativo, como Production, preparo, teste ou desenvolvimento. Esse atributo ajuda as equipes a filtrar e gerenciar componentes com base na fase de implantação.
- Importância:a importância comercial do aplicativo e dos componentes dele, como se são essenciais. Esse atributo pode informar as prioridades de monitoramento e resposta a incidentes.
- Proprietários:informações de contato das diferentes equipes responsáveis pelo aplicativo, o que promove a responsabilização, simplifica a comunicação e esclarece as responsabilidades.
O Application Design Center oferece suporte a esses atributos e também inclui detalhes de localização e configuração para componentes de aplicativos. Aplicar esses atributos e detalhes de forma consistente é fundamental para a descoberta, a governança e a geração de relatórios.
Design para evolução:o Application Design Center ajuda você a criar designs para evolução, permitindo que você crie modelos reutilizáveis para seus aplicativos. Se você atualizar o modelo subjacente, poderá aplicar essas mudanças reimplantando aplicativos, o que ajuda a atender à demanda, introduzir novos recursos ou fazer mudanças arquitetônicas, acomodando o crescimento futuro e as necessidades de infraestrutura em evolução.
Itere e refine modelos de aplicativos:revise e ajuste regularmente as definições de aplicativos para refletir mudanças na estrutura da organização, nas prioridades de negócios e na arquitetura técnica. O Cloud Hub oferece visualizações centralizadas das atualizações disponíveis para aplicativos implantados com modelos da Central de design de aplicativos, ajudando você a revisar 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 do mundo real como aplicativos, serviços e cargas de trabalho na estrutura do App Hub, você pode usar com eficiência os recursos de gerenciamento de aplicativos no seu ambiente Google Cloud.
Ao definir seus aplicativos, é importante aplicar os princípios básicos do gerenciamento de aplicativos, como usar atributos para estabelecer propriedade e metadados claros.
Para modelar os componentes do aplicativo com base nesse framework, considere os exemplos a seguir de casos de uso recomendados.
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 visão unificada de toda a função comercial, desde a descoberta de produtos até o pagamento. 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 a loja on-line inteira como uma única unidade gerenciável. Registre os seguintes recursos no aplicativo para criar um agrupamento lógico de componentes que oferecem em conjunto a função comercial 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. 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 independente. Essa abordagem fragmenta o contexto de negócios e dificulta a obtenção de uma visão abrangente da integridade e da performance 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 a performance de toda a jornada do usuário de e-commerce, desde a funcionalidade de anúncio até a de finalização da compra, em uma única visualização unificada.
- Contexto comercial claro:o aplicativo alinha a infraestrutura com a função comercial 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 arquitetônico que separa um aplicativo em uma camada de front-end, uma camada de back-end e uma camada de banco de dados. Este caso de uso demonstra como modelar uma função comercial 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 contêiner lógico de todos os componentes que formam seu aplicativo da Web.Serviços:registre as interfaces de rede que expõem funcionalidades a outras camadas 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 à camada de lógica do 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, na sigla em inglês) ou as implantações do Google Kubernetes Engine que atendem à interface de usuário de front-end.
- As MIGs ou implantações do Google Kubernetes Engine que executam a lógica de negócios de back-end.
Ao agrupar todos os três níveis em um único aplicativo, você ganha os seguintes benefícios:
- Capacidade de observação unificada:é possível monitorar a integridade e o desempenho de todo o aplicativo em um único painel no Application Monitoring, em vez de precisar juntar dados de três aplicativos separados.
- Propriedade clara:você pode atribuir proprietários de negócios, desenvolvedores e operadores ao aplicativo
my-web-app, esclarecendo a responsabilidade por toda a função comercial. - Governança simplificada:é possível aplicar políticas e controles de acesso no nível
my-web-app, oferecendo suporte a 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 da Central de design de aplicativos seja escalonável, governável e alinhada às suas práticas operacionais.
Escolher entre aplicativos globais e regionais
A localização escolhida para um aplicativo, seja global ou regional, é uma decisão fundamental que afeta o tratamento 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 redução da latência, possível economia de custos e alinhamento com os requisitos de residência de dados. Os aplicativos regionais são recomendados quando todos os componentes do aplicativo residem em uma única região Google Cloud , oferecendo uma compatibilidade inerente com recursos Google Cloud específicos da região e domínios de falha. Para orientações sobre como criar sistemas altamente disponíveis, consulte Criação de sistemas altamente disponíveis com redundância de recursos.
- Use aplicativos globais de forma estratégica:opte por um aplicativo global somente quando os componentes do sistema estiverem necessariamente distribuídos em várias regiões ou envolverem recursos Google Cloud globais, como um balanceador de carga de aplicativo externo global.
- Decomponha 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.
Separe ambientes em aplicativos distintos
Para oferecer 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, você pode estruturar seus aplicativos como
my-app-dev, my-app-staging e my-app-prod.
A separação dos ambientes em aplicativos distintos oferece limites precisos para controle de acesso, aplicação de políticas e monitoramento. Além disso, usar atributos, detalhes de configuração e localização de forma consistente nos componentes do aplicativo melhora a capacidade de descoberta e reforça a governança. Esses atributos fornecem metadados avançados para filtragem, geração de 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 distintas do ambiente de implantação. Para mais informações sobre esse e outros atributos, consulte Propriedades e atributos.
Alinhar os limites do gerenciamento de aplicativos com as estruturas de equipe
Represente sua estrutura organizacional, especificamente as equipes responsáveis pelo desenvolvimento e operação de aplicativos, nos limites de gerenciamento de aplicativos.
Essa prática simplifica a propriedade e a comunicação porque o modelo de aplicativo espelha a estrutura que sua empresa usa para definir como as tarefas são divididas, agrupadas e coordenadas para atingir as funções.
Siga o ciclo de vida do aplicativo
Integre o App Hub com o Application Design Center para ter uma experiência de ciclo de vida do aplicativo integrada:
- Você tem recursos preexistentes para registrar em um aplicativo:use o App Hub para registrar seus recursos Google Cloud atuais como serviços ou cargas de trabalho em aplicativos. Essa prática oferece visibilidade unificada e controle operacional rápido sobre sua infraestrutura atual. Se quiser, crie um modelo no Application Design Center com um aplicativo em execução para padronizar a arquitetura de futuras implantações.
- Você não tem recursos preexistentes para registrar em um aplicativo:use a central de design de aplicativos para criar e implantar novos aplicativos com modelos reutilizáveis e governados. Ao implantar um aplicativo de um modelo da central de design de aplicativos, os componentes são registrados automaticamente no App Hub para que o modelo do aplicativo reflita com precisão o design pretendido. A Central de design de aplicativos 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, mantendo a consistência e a 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 ao configurar 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 sua Google Cloud hierarquia de recursos para gerenciamento de aplicativos é essencial para estabelecer agrupamentos lógicos. Sua 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 a produtos do Google Cloud centrados em aplicativos varia de acordo com a definição desse limite de gerenciamento de aplicativos.
Para definir o melhor limite de gerenciamento de aplicativos para sua hierarquia de recursos e necessidades comerciais e saber mais sobre o suporte a produtos para diferentes padrões de estrutura de recursos, consulte Escolher seu modelo de configuração de aplicativos.
Refinamento contínuo
Os designs de aplicativos não são estáticos. Eles geralmente evoluem com o tempo. Revise e refine regularmente seus aplicativos para garantir que eles continuem alinhados às funções comerciais, estruturas de equipe e arquiteturas em constante mudança.
Recomendamos usar insights do Cloud Hub e do Gemini Cloud Assist para identificar oportunidades de otimização e adaptar seus aplicativos de acordo com elas. Use o Application Design Center para modelar e implantar mudanças arquitetônicas e gerenciar o ciclo de vida dos aplicativos usando modelos.