Google Cloud axé sur les applications vous permet de créer et de gérer des applications de manière cohérente dans Google Cloud. Suivre les bonnes pratiques de conception et de gestion des applications dans App Hub et App Design Center vous aide à créer des applications opérationnelles, gérables et efficaces qui s'alignent sur vos objectifs d'entreprise.
Principes de base de la gestion des applications
Le respect des principes fondamentaux suivants vous aide à maximiser la valeur que vous obtenez en gérant votre infrastructure Google Cloud de manière centrée sur l'application :
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 afin de simplifier la gestion et de réduire les risques.
À des fins opérationnelles, il est important de comprendre la différence entre une limite de gestion des applications et les champs d'application de l'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 les données de télémétrie de plusieurs projets simultanément.
Vos champs d'application des journaux, des métriques et des traces doivent inclure les données des mêmes projets que ceux inclus dans la limite de gestion de votre application. Pour en savoir plus sur les champs d'application d'observabilité, consultez Configurer des champs d'application d'observabilité.
Refléter les capacités de l'entreprise : définissez vos applications autour des fonctions de l'entreprise 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.
Établir une propriété et des métadonnées claires : 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 visibilité et la gouvernance. La visibilité signifie que les équipes concernées, telles que les développeurs et les opérateurs, peuvent trouver des applications. La gouvernance définit clairement qui est propriétaire et responsable de chaque application.
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 commerciale de l'application et de ses composants, par exemple s'ils sont critiques. Cet attribut peut vous aider à définir les priorités de surveillance et de réponse aux incidents.
- Propriétaires : coordonnées des différentes équipes responsables de l'application, ce qui favorise la responsabilité, simplifie la communication et clarifie les responsabilités.
Application Design Center accepte ces attributs et inclut également des détails sur l'emplacement et la configuration des composants d'application. L'application cohérente de ces attributs et détails est essentielle pour la découverte, la gouvernance et la création de rapports.
Concevoir 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 appliquer ces modifications en redéployant les applications. Cela vous permet de répondre à la demande, d'introduire de nouvelles fonctionnalités ou d'apporter des modifications architecturales, en tenant compte de la croissance future et de l'évolution des besoins de l'infrastructure.
Itérer et affiner les modèles d'application : examinez et ajustez régulièrement vos définitions d'application pour refléter les changements de structure, de priorités commerciales et d'architecture technique de votre organisation. Cloud Hub fournit des vues centralisées des mises à jour disponibles pour les applications déployées à partir de modèles App Design Center, ce qui vous aide à examiner et à ajuster vos définitions d'application pour refléter l'évolution de ces besoins.
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 d'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 fondamentaux de la gestion des applications, par exemple en utilisant des attributs pour établir clairement la propriété et les métadonnées.
Pour modéliser vos composants d'application en tenant compte de ce framework, tenez compte des exemples de cas d'utilisation recommandés suivants.
Exemple : Application basée sur des microservices
Un système d'e-commerce, tel que celui décrit dans la démo 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 en tant qu'application unique. Cette approche offre une vue unifiée de l'ensemble de la fonction commerciale, de la découverte du produit au paiement. Par exemple, considérons le modèle suivant pour les ressources existantes exécutées 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'intégralité de la boutique en ligne sous la forme d'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 effectuent une partie distincte de la logique métier, s'exécutant en tant que déploiements Google Kubernetes Engine (GKE).
- Points de terminaison du réseau en tant que services : enregistrez les points de terminaison du réseau pour ces microservices, tels que leurs équilibreurs de charge, en tant que services de l'application. Elles exposent les fonctionnalités de la boutique en ligne aux clients.
Évitez d'enregistrer chaque microservice en tant qu'application distincte. Cette approche fragmente le contexte de l'entreprise 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, de la fonctionnalité d'annonce à la fonctionnalité de paiement, dans une vue unifiée unique.
- 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 de la cause principale.
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 d'entreprise 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 seule application, 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 :
- L'équilibreur de charge d'interface qui reçoit le trafic utilisateur.
- L'équilibreur de charge interne qui gère le trafic entre l'interface et le backend.
- L'instance de base de données Cloud SQL ou Spanner, qui expose un service de données au niveau de la logique de 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 :
- Les groupes d'instances gérés (MIG) ou les déploiements Google Kubernetes Engine qui diffusent l'interface utilisateur de l'interface.
- 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 de devoir rassembler les données de trois applications distinctes.
- Propriété claire : vous pouvez attribuer des propriétaires d'entreprise, de développement et d'exploitation à l'application
my-web-app, ce qui clarifie la responsabilité de l'ensemble de la fonction métier. - Gouvernance simplifiée : vous pouvez appliquer des règles et des contrôles des accès au niveau de
my-web-app, ce qui permet 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 votre configuration d'App Hub et d'Application Design Center est évolutive, gérable et conforme à vos pratiques opérationnelles.
Choisir entre des applications mondiales et régionales
L'emplacement que vous choisissez pour une application, qu'il soit mondial ou régional, est une décision fondamentale qui a un impact sur le traitement des données, la latence et la conformité :
- Donnez la priorité aux applications régionales : dans la mesure du possible, définissez vos applications comme régionales. Cette pratique offre des avantages tels qu'une latence réduite, 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 offre une compatibilité inhérente avec les fonctionnalités et les domaines de défaillance spécifiques à la région Google Cloud . Pour savoir comment créer des 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 maximise les avantages de la régionalisation pour chaque déploiement.
Pour une comparaison détaillée des 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 de la sécurité, des autorisations et des risques opérationnels, représentez les différents environnements de déploiement, tels que le développement, la préproduction et la production, sous la forme d'applications distinctes. Par exemple, vous pouvez structurer vos applications en tant que 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 d'attributs, de détails de configuration et d'emplacement sur vos composants d'application améliore la visibilité et applique la gouvernance. Ces attributs fournissent des métadonnées enrichies pour le filtrage, la création de rapports et l'application de règles. Par exemple, l'attribut Environment fournit des détails précis et un contrôle spécifique aux ressources pour différentes règles 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 votre structure organisationnelle, en particulier les équipes responsables du développement et de l'exploitation des applications, dans les limites de gestion de vos 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 réaliser ses fonctions.
Suivre le cycle de vie de l'application
Intégrez App Hub à App Design Center pour une expérience fluide du cycle de vie des applications :
- Vous avez des 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 offre 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 afin que votre modèle d'application reflète précisément la conception prévue. App Design Center vous aide également à gérer des mises à jour d'application cohérentes 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
La hiérarchie des ressources dans Google Cloud est 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 de vos applications. Pour découvrir comment différents produits fonctionnent ensemble dans le cadre des solutions Google Cloud axées sur les applications, consultez Google Cloud axé sur les applications.
Il est essentiel de planifier soigneusement votre hiérarchie de ressources Google Cloud pour la gestion des applications afin d'établir des regroupements logiques. Le choix d'un projet unique, d'un dossier ou d'un ensemble de projets pour définir la limite de gestion de votre application détermine fondamentalement la gouvernance, l'application des règles et la découverte des ressources. De plus, la compatibilité des produits Google Cloud centré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 meilleure limite de gestion des applications pour votre hiérarchie de ressources et vos besoins métier, 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.
Amélioration continue
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 restent alignées sur vos fonctions métier, vos structures d'équipe et l'évolution de vos architectures.
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.