Este guia apresenta as práticas recomendadas para projetar e definir seus aplicativos no App Hub. Um design de aplicativo eficaz é fundamental para aproveitar todos os benefícios do Google Cloud centrado em aplicativos, oferecendo maior visibilidade, governança e eficiência operacional.
Princípios básicos de design de aplicativos
Seguir os princípios fundamentais abaixo ajuda você a criar aplicativos robustos, fáceis de manter e alinhados aos seus objetivos de negócios, maximizando o valor que você recebe do App Hub:
Refletir as capacidades de negócios:defina os aplicativos do App Hub em torno de funções comerciais ou fluxos de trabalho completos, e não apenas camadas técnicas ou microsserviços individuais. Um aplicativo precisa representar um fluxo de valor distinto para a empresa.
Determine uma propriedade clara:atribua propriedades e atributos claros a cada aplicativo, apoiando a capacidade de descoberta e a governança. Em especial, adicionar proprietários de aplicativos promove a responsabilidade e simplifica a comunicação.
Considere os limites do aplicativo:defina limites que façam sentido para operações, monitoramento e governança. O ideal é que os recursos de um aplicativo compartilhem um ciclo de vida operacional e um domínio de impacto comuns para simplificar o gerenciamento e reduzir o risco operacional.
Ao considerar os limites do seu aplicativo para fins operacionais, é importante entender como o Google Cloud Observability estrutura a coleta e a exibição de dados. Enquanto o App Hub se concentra nos limites do aplicativo, o Google Cloud Observability usa escopos para definir quais dados de telemetria são visíveis e analisáveis em todos os projetos. A configuração desses escopos de observabilidade tem uma relação específica com o projeto host ou de gerenciamento, determinando como você pode agregar e visualizar dados de telemetria de diferentes projetos. Para saber mais sobre como configurar esses escopos para uma visualização unificada, consulte Configurar escopos de observabilidade.
Adapte-se à evolução:projete seus aplicativos para acomodar mudanças e crescimento futuros na sua arquitetura.
Refine de forma iterativa:revise e ajuste regularmente seus aplicativos para refletir mudanças na estrutura, nas equipes e nas prioridades de negócios da organização.
O que definir como um aplicativo
Entender o que constitui um aplicativo no App Hub é fundamental para integrar de maneira eficaz os recursos de gerenciamento de aplicativos noGoogle Cloud. Um aplicativo agrupa serviços e cargas de trabalho que, juntos, oferecem uma função comercial específica. Para mais informações sobre os conceitos principais de aplicativos, serviços e cargas de trabalho no App Hub, consulte Conceitos e modelo de dados.
Para ajudar você a determinar o limite adequado para seus aplicativos do App Hub, considere as seguintes perguntas principais:
- Qual valor para o usuário ou para a empresa essa coleção de recursos oferece?
- Esses componentes compartilham um ciclo de vida operacional comum?
- Há uma propriedade clara e unificada em todos esses recursos?
- Esse agrupamento facilita o monitoramento e a solução de problemas eficazes?
Exemplo: arquitetura de demonstração do OpenTelemetry
A arquitetura de demonstração do OpenTelemetry representa um sistema de e-commerce que inclui microsserviços como Ad, Cart e Checkout. Para definir melhor esse aplicativo no App Hub, considere as seguintes recomendações:
Modele todo o sistema de e-commerce como um aplicativo do App Hub, por exemplo,
my-ecommerce-site
:- As instâncias de computação dos microsserviços individuais, como implantações do Google Kubernetes Engine (GKE), são mapeadas para cargas de trabalho do App Hub.
- Os endpoints de rede, como interfaces gRPC/HTTP com balanceamento de carga, são mapeados para serviços do Hub de apps.
Evite registrar cada microsserviço, como Ad, Cart e Checkout, como um aplicativo independente do App Hub. Essa abordagem fragmenta o contexto de negócios.
Para mais informações sobre os recursos de infraestrutura que o App Hub aceita como serviços e cargas de trabalho, consulte Recursos compatíveis com o App Hub.
Estratégias de design
Use as seguintes estratégias de design para garantir que a configuração do App Hub seja escalonável, governável e alinhada às suas práticas operacionais.
Escolher entre aplicativos globais e regionais
Ao projetar seus aplicativos do App Hub, uma decisão fundamental é definir se eles serão globais ou regionais. Essa escolha afeta quais recursos podem ser incluídos, o tratamento de dados, a latência, o custo e a compliance:
- Os aplicativos globais são mais adequados para serviços e cargas de trabalho que são distribuídos naturalmente em várias Google Cloud regiões ou dependem de recursos globais, como um balanceador de carga de aplicativo global.
- Os aplicativos regionais são recomendados quando todos os componentes do aplicativo estão em uma única região do Google Cloud . Essa prática geralmente é a melhor abordagem se a arquitetura permitir.
A lista de práticas recomendadas a seguir pode ajudar você a escolher entre aplicativos globais e regionais:
- Priorize aplicativos regionais:sempre que possível, crie seus aplicativos como regionais para aproveitar benefícios como latência reduzida, economia potencial de custos no tráfego de rede entre regiões, alinhamento com requisitos de localidade de dados e compatibilidade inerente comGoogle Cloud recursos e domínios de falha específicos da região.
- Use aplicativos globais de forma estratégica:opte por aplicativos globais apenas quando os componentes do sistema estiverem necessariamente espalhados por regiões ou envolverem serviços Google Cloud globais.
- 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 os recursos em cada região. Essa prática maximiza os benefícios da regionalização para cada implantação.
Para uma comparação detalhada e uma análise mais aprofundada das implicações dessa escolha, consulte Aplicativos globais e regionais.
Definir ambientes como aplicativos separados
É possível representar diferentes ambientes de implantação como aplicativos distintos do App Hub. Essa abordagem oferece isolamento forte para segurança, permissões e risco operacional, evitando impactos acidentais em todos os ambientes.
Por exemplo, você pode estruturar seus aplicativos como my-app-dev
, my-app-staging
e my-app-prod
para ambientes de desenvolvimento, preparação e produção, respectivamente.
É possível usar o atributo Environment
em um único aplicativo para marcar recursos, mas separar os ambientes em aplicativos distintos oferece limites precisos para controle de acesso, aplicação de políticas e monitoramento. Você ainda precisa usar o atributo Environment
de forma consistente nos recursos desses aplicativos específicos do ambiente para fornecer detalhes granulares e especificar ainda mais as funções. Para mais informações sobre esse e outros atributos, consulte
Usar atributos para governança.
Alinhar-se às estruturas de equipe
Considere alinhar os limites do aplicativo com as equipes responsáveis pelo desenvolvimento e operação dele. Essa prática simplifica a propriedade e a comunicação porque o modelo de aplicativo no App Hub reflete a estrutura da sua organização.
Usar atributos para governança
Aplique atributos de maneira consistente a todos os recursos do aplicativo para melhorar a capacidade de descoberta e aplicar a governança. Esses atributos fornecem metadados avançados para filtragem, geração de relatórios e aplicação de políticas:
- Gravidade:ajuda a priorizar recursos para monitoramento e resposta a incidentes.
- Ambiente:oferece suporte a políticas de filtragem e específicas do ambiente.
- Proprietários:oferecem visibilidade e responsabilidade.
Estabeleça padrões organizacionais para marcar recursos com esses atributos. Para mais detalhes, consulte Suporte à capacidade de descoberta e governança.
Identificar casos de uso de gerenciamento de aplicativos
Integre o App Hub à Central de design de aplicativos para ter uma experiência integrada de ciclo de vida do aplicativo, do design às operações:
- Você tem recursos preexistentes para registrar como um aplicativo:registre recursos Google Cloud existentes do seu modelo de configuração em um aplicativo no App Hub para ter visibilidade unificada e controle operacional.
- Você não tem recursos preexistentes para registrar como um aplicativo:use a central de design de aplicativos para criar e implantar novos aplicativos. A central de design de aplicativos registra automaticamente os recursos implantados no App Hub para que seu modelo reflita com precisão o design pretendido. O App Design Center também ajuda a gerenciar atualizações de aplicativos. Quando um modelo de aplicativo muda, é possível atualizar todas as instâncias baseadas nele, o que permite garantir que as atualizações do aplicativo sejam consistentes.
Hierarquia de recursos
A hierarquia de recursosGoogle Cloud padrão consiste em recursos de organização, pasta e projeto. O App Hub introduz uma camada de gerenciamento de aplicativos sobre essa hierarquia usando o conceito de pastas e projetos host habilitados para apps, dependendo do seu modelo de configuração.
Entender como o modelo de configuração escolhido se encaixa na hierarquia de recursos Google Cloudatual ajuda na governança, na aplicação de políticas e na descoberta de recursos. Analise as estruturas recomendadas e planeje sua hierarquia de recursos ao escolher o modelo de configuração para gerenciar 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 necessidades da sua empresa, às estruturas de equipe e às 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. Além disso, use o Application Design Center para gerenciar o ciclo de vida dos seus aplicativos. A página Implantações no Cloud Hub mostra os aplicativos que têm atualizações disponíveis do modelo do Application Design Center em que foram baseados, simplificando o processo de atualização.