Ce guide présente les bonnes pratiques pour concevoir, définir et gérer vos applications App Hub dans Google Cloud axé sur les applications, à l'aide d'App Hub et d'Application Design Center. Suivre ces pratiques est essentiel pour créer des applications fonctionnelles, contrôlables et efficaces qui correspondent à vos objectifs commerciaux.
Principes de base de la gestion des applications
En respectant les principes fondamentaux suivants, vous pourrez maximiser la valeur que vous obtenez en gérant votre infrastructure Google Cloud de manière axée sur les applications :
Définissez des limites claires : définissez la limite de gestion des applications de manière logique pour vos opérations, votre surveillance, votre gouvernance et votre dépannage. De plus, les ressources de cette limite que vous utilisez comme composants d'application doivent idéalement partager un cycle de vie opérationnel ou une valeur commerciale communs pour simplifier la gestion et réduire les risques.
Pour des raisons opérationnelles, il est important de comprendre la différence entre une limite de gestion des applications et des scopes d'observabilité.
- La limite de gestion des applications définit l'ensemble des projets contenant les ressources Google Cloud que vous pouvez utiliser pour concevoir, créer et gérer des applications, comme décrit dans Concepts clés.
- Les champs d'application de l'observabilité dans Google Cloud Observability vous permettent d'afficher ensemble les données de télémétrie de plusieurs projets.
Vos journaux, métriques et traces doivent inclure des données provenant des mêmes projets que ceux inclus dans la limite de gestion de vos applications. Pour en savoir plus sur les périmètres d'observabilité, consultez Configurer des périmètres d'observabilité.
Reflétez les capacités de l'entreprise : définissez vos applications en fonction des fonctions métier ou des workflows de bout en bout, et pas seulement des couches techniques. Une application doit représenter un flux de valeur distinct pour votre entreprise.
Définissez clairement la propriété et les métadonnées : attribuez des attributs clairs à chaque application pour permettre aux équipes de les trouver, de les comprendre et de les gérer efficacement dans App Hub. Ces attributs facilitent la découverte et la gouvernance. La détectabilité signifie que les équipes concernées, telles que les développeurs et les opérateurs, peuvent trouver les applications. La gouvernance définit clairement qui possède chaque application et en est responsable.
Dans App Hub, vous pouvez définir des attributs clés tels que les suivants :
- Environnement : étape du cycle de vie de l'application, par exemple production, préproduction, test ou développement. Cet attribut aide les équipes à filtrer et à gérer les composants en fonction de leur étape de déploiement.
- Criticité : importance de l'application et de ses composants pour l'entreprise, par exemple s'ils sont critiques. Cet attribut peut fournir des informations sur les priorités de surveillance et de réponse aux incidents.
- Propriétaires : coordonnées des différentes équipes responsables de l'application. Cela favorise la responsabilisation, simplifie la communication et clarifie les responsabilités.
Application Design Center est compatible avec ces attributs et inclut également des informations sur l'emplacement et la configuration des composants d'application. Il est essentiel d'appliquer ces attributs et ces détails de manière cohérente pour la découverte, la gouvernance et les rapports.
Concevez pour l'évolution : App Design Center vous aide à concevoir pour l'évolution en vous permettant de créer des modèles réutilisables pour vos applications. Si vous mettez à jour le modèle sous-jacent, vous pouvez ensuite appliquer ces modifications en redéployant les applications. Cela vous aide à répondre à la demande, à introduire de nouvelles fonctionnalités ou à apporter des modifications architecturales, en tenant compte de la croissance future et de l'évolution des besoins en infrastructure.
Itérez et affinez les modèles d'application : examinez et ajustez régulièrement vos définitions d'application pour refléter les changements dans la structure, les priorités commerciales et l'architecture technique de votre organisation. Cloud Hub fournit des vues centralisées des mises à jour disponibles pour les applications déployées à partir des modèles Application Design Center. Il vous aide ainsi à examiner et à ajuster les définitions de vos applications pour refléter ces besoins en constante évolution.
Recommandations concernant les modèles de données
En comprenant comment modéliser vos systèmes réels en tant qu'applications, services et charges de travail dans le framework App Hub, vous pouvez utiliser efficacement les fonctionnalités de gestion des applications dans votre environnement Google Cloud.
Lorsque vous définissez vos applications, il est important d'appliquer les principes de base de la gestion des applications, comme l'utilisation d'attributs pour établir une propriété et des métadonnées claires.
Pour modéliser les composants de votre application en gardant ce framework à l'esprit, examinez les exemples suivants de cas d'utilisation recommandés.
Exemple : Application basée sur des microservices
Un système d'e-commerce, tel que celui décrit dans la démonstration OpenTelemetry pour une boutique en ligne, est un exemple d'application basée sur des microservices. Nous vous recommandons de modéliser ce type de système comme une application unique. Cette approche offre une vue unifiée de l'ensemble de la fonction commerciale, de la découverte des produits au paiement. Par exemple, considérons le modèle suivant pour les ressources existantes s'exécutant dans Google Cloud :
Application : créez ou définissez une seule application dans App Hub, nommée, par exemple,
my-ecommerce-site. Cette application représente l'ensemble de la boutique en ligne comme une seule unité gérable. Enregistrez les ressources suivantes dans l'application pour créer un regroupement logique de composants qui fournissent conjointement la fonction métier de votre boutique en ligne :- Microservices en tant que charges de travail : enregistrez les microservices individuels qui composent le système d'e-commerce, tels que Ad, Cart et Checkout, en tant que charges de travail dans l'application. Il s'agit des ressources de calcul avec le code binaire qui exécutent une partie distincte de la logique métier, en tant que déploiements Google Kubernetes Engine (GKE).
- Points de terminaison réseau en tant que services : enregistrez les points de terminaison réseau de ces microservices, tels que leurs équilibreurs de charge, en tant que services de l'application. Ils exposent les fonctionnalités de la boutique en ligne aux clients.
Évitez d'enregistrer chaque microservice comme sa propre application. Cette approche fragmente le contexte commercial et rend difficile l'obtention d'une vue complète de l'état et des performances de votre boutique en ligne.
En regroupant tous les microservices dans une seule application, vous bénéficiez des avantages suivants :
- Visibilité complète : vous pouvez surveiller l'état et les performances de l'ensemble du parcours utilisateur d'e-commerce, des fonctionnalités des annonces à celles du règlement, dans une vue unique et unifiée.
- Contexte métier clair : l'application aligne l'infrastructure sur la fonction métier qu'elle dessert, à savoir la boutique en ligne. Cette approche permet de mieux comprendre l'état et le coût de l'application.
- Dépannage simplifié : en cas de problème, vous pouvez voir les dépendances entre les différents microservices de l'application, ce qui accélère l'analyse des causes premières.
Exemple : Application Web à trois niveaux
Une application Web à trois niveaux est un modèle architectural qui sépare une application en un niveau d'interface, un niveau de backend et un niveau de base de données. Ce cas d'utilisation montre comment modéliser une fonction métier complète en tant qu'application unique, plutôt que de traiter chaque niveau comme un composant isolé.
Le modèle suivant mappe les couches techniques dans une application Web à trois niveaux :
Application : créez une application unique, par exemple
my-web-app, qui servira de conteneur logique pour tous les composants de votre application Web.Services : enregistrez les interfaces réseau qui exposent des fonctionnalités à d'autres niveaux ou aux utilisateurs en tant que services, par exemple :
- Équilibreur de charge de l'interface qui reçoit le trafic utilisateur.
- Équilibreur de charge interne qui gère le trafic entre l'interface et le backend.
- Instance de base de données Cloud SQL ou Spanner, qui expose un service de données au niveau de la logique du backend.
Charges de travail : enregistrez les ressources de calcul qui exécutent le code de votre application en tant que charges de travail. Par exemple :
- Groupes d'instances gérées (MIG) ou déploiements Google Kubernetes Engine qui diffusent l'interface utilisateur du frontend.
- Les MIG ou les déploiements Google Kubernetes Engine qui exécutent la logique métier du backend.
En regroupant les trois niveaux dans une seule application, vous bénéficiez des avantages suivants :
- Observabilité unifiée : vous pouvez surveiller l'état et les performances de l'ensemble de l'application à partir d'un seul tableau de bord dans Application Monitoring, au lieu d'avoir à rassembler des données provenant de trois applications distinctes.
- Propriété claire : vous pouvez attribuer des propriétaires d'entreprise, de développeur et d'opérateur à l'application
my-web-app, ce qui clarifie la responsabilité de l'ensemble de la fonction commerciale. - Gouvernance simplifiée : vous pouvez appliquer des règles et des contrôles d'accès au niveau
my-web-app, ce qui permet d'assurer une gouvernance cohérente à tous les niveaux.
Stratégies de conception et de gouvernance des applications
Adoptez les stratégies suivantes pour vous assurer que la configuration d'App Hub et d'Application Design Center est évolutive, gérable et conforme à vos pratiques opérationnelles.
Choisir entre les applications globales et régionales
L'emplacement que vous choisissez pour une application (global ou régional) est une décision fondamentale qui a un impact sur le traitement des données, la latence et la conformité :
- Priorisez les applications régionales : dans la mesure du possible, définissez vos applications comme régionales. Cette pratique offre des avantages tels que la réduction de la latence, des économies potentielles et l'alignement sur les exigences de résidence des données. Les applications régionales sont recommandées lorsque tous les composants de l'application résident dans une seule région Google Cloud , ce qui assure une compatibilité inhérente avec les fonctionnalités Google Cloud et les domaines de défaillance spécifiques à la région. Pour obtenir des conseils sur la création de systèmes à disponibilité élevée, consultez Créer des systèmes disponibilité élevée grâce à la redondance des ressources.
- Utilisez les applications globales de manière stratégique : n'optez pour une application globale que lorsque les composants de votre système sont nécessairement répartis sur plusieurs régions ou impliquent des ressources Google Cloud globales, comme un équilibreur de charge d'application externe global.
- Décomposez les systèmes multirégionaux : si vous disposez de ressources dans plusieurs régions qui ne forment pas une seule fonction globale cohérente, envisagez de définir des applications régionales distinctes pour les composants de chaque région respective. Cette pratique permet de maximiser les avantages de la régionalisation pour chaque déploiement.
Pour une comparaison détaillée entre les différentes zones géographiques de déploiement dans App Hub, consultez Applications mondiales et régionales.
Séparer les environnements en applications distinctes
Pour assurer l'isolation en termes de sécurité, d'autorisations et de risque opérationnel, représentez les différents environnements de déploiement (développement, préproduction et production, par exemple) sous forme d'applications distinctes. Par exemple, vous pouvez structurer vos applications comme suit : my-app-dev, my-app-staging et my-app-prod.
La séparation des environnements en applications distinctes offre des limites précises pour le contrôle des accès, l'application des règles et la surveillance. De plus, l'utilisation cohérente des attributs, des détails de configuration et de l'emplacement sur les composants de votre application améliore la visibilité et renforce la gouvernance. Ces attributs fournissent des métadonnées détaillées pour le filtrage, les rapports et l'application des règles. Par exemple, l'attribut Environment fournit des informations détaillées et un contrôle spécifique aux ressources pour les différentes stratégies d'environnement de déploiement. Pour en savoir plus sur cet attribut et d'autres, consultez Propriétés et attributs.
Aligner les limites de gestion des applications sur les structures d'équipe
Représentez la structure de votre organisation, en particulier les équipes responsables du développement et de l'exploitation des applications, dans vos limites de gestion des applications.
Cette pratique simplifie la propriété et la communication, car le modèle d'application reflète le framework que votre entreprise utilise pour définir la manière dont les tâches sont divisées, regroupées et coordonnées pour remplir ses fonctions.
Suivre le cycle de vie de l'application
Intégrez App Hub à Application Design Center pour une expérience fluide du cycle de vie des applications :
- Vous disposez de ressources préexistantes à enregistrer dans une application : utilisez App Hub pour enregistrer vos ressources Google Cloud existantes en tant que services ou charges de travail dans des applications. Cette pratique permet d'obtenir rapidement une visibilité unifiée et un contrôle opérationnel sur votre infrastructure actuelle. Vous pouvez également créer un modèle dans App Design Center à partir d'une application en cours d'exécution pour standardiser l'architecture des futurs déploiements.
- Vous n'avez pas de ressources préexistantes à enregistrer dans une application : utilisez Application Design Center pour concevoir et déployer de nouvelles applications à partir de modèles réutilisables et régis. Lorsque vous déployez une application à partir d'un modèle Application Design Center, les composants sont automatiquement enregistrés dans App Hub. Votre modèle d'application reflète ainsi précisément la conception prévue. App Design Center vous aide également à gérer les mises à jour cohérentes des applications en fonction des révisions de modèles. Si vous mettez à jour le modèle, vous pouvez redéployer l'application pour propager les modifications, ce qui favorise la cohérence et la gouvernance.
Éléments à prendre en compte concernant la hiérarchie des ressources
Votre hiérarchie des ressources dans Google Cloud constitue la base de la gestion pratique des applications. Vous introduisez une couche de gestion des applications au-dessus de cette hiérarchie en configurant un projet de gestion pour définir la limite de gestion des applications. Pour obtenir une présentation de la façon dont différents produits fonctionnent ensemble dans les solutions Google Cloud axées sur les applications, consultez Google Cloud axé sur les applications.
Une planification minutieuse de la hiérarchie de vos ressources Google Cloud pour la gestion des applications est essentielle pour établir des regroupements logiques. Le choix d'un seul projet, d'un dossier ou d'un ensemble de projets pour définir la limite de gestion de vos applications a une incidence fondamentale sur la gouvernance, l'application des règles et la découverte des ressources. De plus, l'assistance pour les produits Google Cloud axés sur les applications varie en fonction de la façon dont vous définissez cette limite de gestion des applications.
Pour définir la limite de gestion des applications la mieux adaptée à votre hiérarchie de ressources et à vos besoins commerciaux, et pour en savoir plus sur la compatibilité des produits avec différents modèles de structure de ressources, consultez Choisir votre modèle de configuration d'application.
Affinement continu
Les conceptions d'applications ne sont pas statiques. Elles évoluent généralement au fil du temps. Examinez et affinez régulièrement vos applications pour vous assurer qu'elles continuent de s'aligner sur vos fonctions métier, vos structures d'équipe et les architectures en constante évolution.
Nous vous recommandons d'utiliser les insights de Cloud Hub et de Gemini Cloud Assist pour identifier les opportunités d'optimisation et adapter vos applications en conséquence. Utilisez Application Design Center pour modéliser et déployer des modifications architecturales, et gérer le cycle de vie de vos applications à l'aide de modèles.