Práticas recomendadas para a gestão de aplicações

Este guia fornece práticas recomendadas para conceber, definir e gerir as suas aplicações do App Hub na Google Cloud centrada em aplicações, através do App Hub e do Application Design Center. Seguir estas práticas é fundamental para criar aplicações operáveis, geríveis e eficientes que se alinham com os objetivos da sua empresa.

Princípios essenciais da gestão de aplicações

A adesão aos seguintes princípios essenciais ajuda a maximizar o valor que obtém da gestão da sua Google Cloud infraestrutura de forma centrada na aplicação:

  • Defina limites claros: defina o limite de gestão de aplicações de uma forma lógica para as suas operações, monitorização, governação e resolução de problemas. Além disso, os recursos dentro deste limite que usa como componentes da aplicação devem, idealmente, partilhar um ciclo de vida operacional ou um valor empresarial conjunto para simplificar a gestão e reduzir o risco.

    Para fins operacionais, é importante compreender a diferença entre um limite de gestão de aplicações e âmbitos de observabilidade.

    • O limite de gestão de aplicações define a coleção de projetos que contêm os Google Cloud recursos que pode usar para conceber, criar e gerir aplicações, conforme descrito em Conceitos principais.
    • Os âmbitos de observabilidade no Google Cloud Observability permitem-lhe ver a telemetria de vários projetos em conjunto.

    Os âmbitos de registo, métricas e rastreio devem incluir dados dos mesmos projetos que estão incluídos no limite de gestão da aplicação. Para mais informações sobre os âmbitos de observabilidade, consulte o artigo Configure âmbitos de observabilidade.

  • Refletir as capacidades da empresa: defina as suas aplicações em torno das funções da empresa ou dos fluxos de trabalho completos, e não apenas das camadas técnicas. Uma aplicação deve representar um fluxo de valor distinto para a sua empresa.

  • Estabeleça uma propriedade e metadados claros: atribua atributos claros a cada aplicação para permitir que as equipas as encontrem, compreendam e geram eficazmente no App Hub. Estes atributos suportam a capacidade de descoberta e a governação. A capacidade de descoberta significa que as equipas relevantes, como os programadores e os operadores, podem encontrar aplicações. A governação define claramente quem é o proprietário e o responsável por cada aplicação.

    No App Hub, pode definir atributos importantes, como os seguintes:

    • Ambiente: a fase no ciclo de vida da aplicação, como produção, preparação, teste ou desenvolvimento. Este atributo ajuda as equipas a filtrar e gerir componentes com base na respetiva fase de implementação.
    • Criticidade: a importância empresarial da aplicação e dos respetivos componentes, como se são essenciais para a missão. Este atributo pode informar as prioridades de monitorização e resposta a incidentes.
    • Proprietários: informações de contacto das diferentes equipas responsáveis pela aplicação, o que promove a responsabilização, simplifica a comunicação e esclarece as responsabilidades.

    O Application Design Center suporta estes atributos e também inclui detalhes de localização e configuração para componentes de aplicações. A aplicação consistente desses atributos e detalhes é fundamental para a descoberta, a gestão e os relatórios.

  • Crie designs para evolução: o Application Design Center ajuda a criar designs para evolução, permitindo-lhe criar modelos reutilizáveis para as suas aplicações. Se atualizar o modelo subjacente, pode aplicar essas alterações implementando novamente as aplicações, o que ajuda a satisfazer a procura, introduzir novas funcionalidades ou fazer alterações arquitetónicas, acomodando o crescimento futuro e as necessidades de infraestrutura em evolução.

  • Itere e refine os modelos de aplicações: reveja e ajuste regularmente as definições das aplicações para refletir as alterações na estrutura da sua organização, nas prioridades da empresa e na arquitetura técnica. O Cloud Hub oferece vistas centralizadas das atualizações disponíveis para aplicações implementadas a partir de modelos do Application Design Center, o que ajuda a rever e ajustar as definições das aplicações para refletir estas necessidades em evolução.

Recomendações de modelos de dados

Ao compreender como modelar os seus sistemas reais como aplicações, serviços e cargas de trabalho na estrutura do App Hub, pode usar eficazmente as capacidades de gestão de aplicações no seu Google Cloudambiente.

À medida que define as suas aplicações, é importante aplicar os princípios essenciais da gestão de aplicações, como usar atributos para estabelecer uma propriedade e metadados claros.

Para modelar os componentes da sua aplicação tendo em conta esta estrutura, considere os seguintes exemplos de utilizações recomendadas.

Exemplo: aplicação baseada em microsserviços

Um sistema de comércio eletrónico, como o descrito na demonstração do OpenTelemetry para uma loja online, é um exemplo de uma aplicação baseada em microsserviços. Recomendamos que modele este tipo de sistema como uma única aplicação. Esta abordagem oferece uma vista unificada de toda a função empresarial, desde a descoberta de produtos até ao pagamento. Por exemplo, considere o seguinte modelo para recursos existentes em execução em Google Cloud:

  • Aplicação: crie ou defina uma única aplicação no App Hub com o nome, por exemplo, my-ecommerce-site. Esta aplicação representa a loja online completa como uma unidade única e gerível. Registe os seguintes recursos na aplicação para criar um agrupamento lógico de componentes que, em conjunto, fornecem a função empresarial da sua loja online:

    • Microsserviços como cargas de trabalho: registe os microsserviços individuais que compõem o sistema de comércio eletrónico, como Ad, Cart e Checkout, como cargas de trabalho na aplicação. Estes são os recursos de computação com o código binário que executam uma parte discreta da lógica empresarial, executados como implementações do Google Kubernetes Engine (GKE).
    • Terminais de rede como serviços: registe os terminais de rede para estes microsserviços, como os respetivos balanceadores de carga, como serviços da aplicação. Estas expõem a funcionalidade da loja online aos clientes.

Evite registar cada microsserviço como a sua própria aplicação. Essa abordagem fragmenta o contexto empresarial e dificulta a obtenção de uma vista abrangente do estado e do desempenho da sua loja online.

Ao agrupar todos os microsserviços numa única aplicação, obtém as seguintes vantagens:

  • Visibilidade abrangente: pode monitorizar o estado e o desempenho de todo o percurso do utilizador de comércio eletrónico, desde a funcionalidade de anúncios à funcionalidade de pagamento, numa vista única e unificada.
  • Contexto empresarial claro: a aplicação alinha a infraestrutura com a função empresarial que serve, que é a loja online. Esta abordagem facilita a compreensão do estado e do custo da aplicação.
  • Resolução de problemas simplificada: quando surge um problema, pode ver as dependências entre os diferentes microsserviços na aplicação, o que acelera a análise da causa principal.

Exemplo: aplicação Web de três camadas

Uma aplicação Web de três camadas é um padrão de arquitetura que separa uma aplicação numa camada de frontend, numa camada de backend e numa camada de base de dados. Este exemplo de utilização demonstra como modelar uma função empresarial completa como uma única aplicação, em vez de tratar cada nível como um componente isolado.

O modelo seguinte mapeia as camadas técnicas numa aplicação Web de três camadas:

  • Aplicação: crie uma única aplicação, por exemplo, my-web-app, para servir como contentor lógico para todos os componentes que compõem a sua aplicação Web.

  • Serviços: registe as interfaces de rede que expõem a funcionalidade a outros níveis ou a utilizadores como serviços, por exemplo:

    • O equilibrador de carga de front-end que recebe o tráfego de utilizadores.
    • O balanceador de carga interno que gere o tráfego entre a interface e o back-end.
    • A instância da base 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: registe os recursos de computação que executam o código da sua aplicação como cargas de trabalho, por exemplo:

    • Os grupos de instâncias geridos (MIGs) ou as implementações do Google Kubernetes Engine que servem a interface do utilizador de front-end.
    • Os MIGs ou as implementações do Google Kubernetes Engine que executam a lógica de negócio de back-end.

Ao agrupar os três níveis numa única candidatura, tem as seguintes vantagens:

  • Observabilidade unificada: pode monitorizar o estado e o desempenho de toda a aplicação a partir de um único painel de controlo na monitorização de aplicações, em vez de ter de juntar dados de três aplicações separadas.
  • Propriedade clara: pode atribuir proprietários da empresa, programadores e operadores à aplicação my-web-app, o que clarifica a responsabilidade por toda a função empresarial.
  • Administração simplificada: pode aplicar políticas e controlos de acesso ao nível da my-web-app, o que suporta uma administração consistente em todos os níveis.

Estratégias de design e gestão de aplicações

Adote as seguintes estratégias para garantir que a configuração do App Hub e do Application Design Center é escalável, governável e alinhada com as suas práticas operacionais.

Escolha entre aplicações globais e regionais

A localização que escolher para uma aplicação, seja global ou regional, é uma decisão fundamental que afeta o tratamento de dados, a latência e a conformidade:

  • Dê prioridade às aplicações regionais: sempre que possível, defina as suas aplicações como regionais. Esta prática oferece vantagens como a redução da latência, potenciais poupanças de custos e alinhamento com os requisitos de residência de dados. As aplicações regionais são recomendadas quando todos os componentes da aplicação residem numa única Google Cloud região, o que oferece uma compatibilidade inerente com as funcionalidades Google Cloud específicas da região e os domínios de falhas. Para orientações sobre a criação de sistemas de elevada disponibilidade, consulte o artigo Crie sistemas de elevada disponibilidade através da redundância de recursos.
  • Use aplicações globais estrategicamente: opte por uma aplicação global apenas quando os componentes do seu sistema estiverem necessariamente distribuídos por várias regiões ou envolverem recursos Google Cloud globais, como um balanceador de carga de aplicações externo global.
  • Decomponha sistemas multirregionais: se tiver recursos em várias regiões que não formam uma única função global coesa, considere definir aplicações regionais separadas para componentes em cada região respetiva. Esta prática maximiza as vantagens da regionalização para cada implementação.

Para uma comparação detalhada entre as diferentes geografias de implementação no App Hub, consulte o artigo Aplicações globais e regionais.

Separe os ambientes em aplicações distintas

Para suportar o isolamento para segurança, autorizações e risco operacional, represente diferentes ambientes de implementação, como desenvolvimento, teste e produção, como aplicações distintas. Por exemplo, pode estruturar as suas candidaturas como my-app-dev, my-app-staging e my-app-prod.

A separação dos ambientes em aplicações distintas oferece limites precisos para o controlo de acesso, a aplicação de políticas e a monitorização. Além disso, a utilização consistente de atributos, detalhes de configuração e localização nos componentes da aplicação melhora a capacidade de descoberta e aplica a governação. Estes atributos fornecem metadados detalhados para filtragem, relatórios e aplicação de políticas. Por exemplo, o atributo Environment fornece detalhes detalhados e controlo específico do recurso para políticas de ambiente de implementação distintas. Para mais informações sobre este e outros atributos, consulte Propriedades e atributos.

Alinhe os limites de gestão de aplicações com as estruturas das equipas

Representar a estrutura organizacional, especificamente as equipas responsáveis pelo desenvolvimento e funcionamento de aplicações, dentro dos seus limites de gestão de aplicações.

Esta prática simplifica a propriedade e a comunicação, porque o modelo de aplicação reflete a estrutura que a sua empresa usa para definir como as tarefas são divididas, agrupadas e coordenadas para alcançar as suas funções.

Siga o ciclo de vida da aplicação

Integre o App Hub com o Application Design Center para uma experiência integrada do ciclo de vida da aplicação:

  • Tem recursos pré-existentes para registar numa aplicação: use o App Hub para registar os seus recursos existentes como serviços ou cargas de trabalho em aplicações. Google Cloud Esta prática oferece visibilidade unificada e controlo operacional rápido sobre a sua infraestrutura atual. Opcionalmente, pode criar mais tarde um modelo no Application Design Center a partir de uma aplicação em execução para padronizar a arquitetura para implementações futuras.
  • Não tem recursos pré-existentes para registar numa aplicação: use o Application Design Center para criar e implementar novas aplicações a partir de modelos reutilizáveis e regidos. Quando implementa uma aplicação a partir de um modelo do Application Design Center, os componentes são automaticamente registados no App Hub para que o modelo da aplicação reflita com precisão o design pretendido. O Application Design Center também ajuda a gerir atualizações consistentes de aplicações com base em revisões de modelos. Se atualizar o modelo, pode voltar a implementar a aplicação para propagar as alterações, o que garante a consistência e a governação.

Considerações sobre a hierarquia de recursos

A sua hierarquia de recursos em Google Cloud é a base para a gestão prática de aplicações. Introduz uma camada de gestão de aplicações acima dessa hierarquia através da configuração de um projeto de gestão para definir o limite de gestão de aplicações. Para uma vista geral de como os diferentes produtos funcionam em conjunto como parte das soluções do Google Cloud centradas em aplicações, consulte Google Cloud centrado em aplicações.

O planeamento ponderado da Google Cloud hierarquia de recursos para a gestão de aplicações é essencial para estabelecer agrupamentos lógicos. A sua escolha de um único projeto, uma pasta ou um conjunto de projetos para definir o limite de gestão de aplicações molda fundamentalmente a governação, a aplicação de políticas e a descoberta de recursos. Além disso, o apoio técnico do produto Google Cloud centrado na aplicação varia consoante a forma como define este limite de gestão de aplicações.

Para definir o melhor limite de gestão de aplicações para a sua hierarquia de recursos e necessidades empresariais, e saber mais sobre o apoio técnico de produtos para diferentes padrões de estrutura de recursos, consulte o artigo Escolha o modelo de configuração da aplicação.

Refinamento contínuo

Os designs das aplicações não são estáticos; normalmente, evoluem ao longo do tempo. Reveja e refine regularmente as suas aplicações para se certificar de que continuam a estar alinhadas com as suas funções empresariais, estruturas de equipas e arquiteturas em constante mudança.

Recomendamos que use as estatísticas do Cloud Hub e do Gemini Cloud Assist para identificar oportunidades de otimização e adaptar as suas aplicações em conformidade. Use o Application Design Center para modelar e implementar alterações arquitetónicas e gerir o ciclo de vida das suas aplicações através de modelos.