Optimisez votre infrastructure avec notre guide « Architecture Framework Principles »
Omkar Suram
Solutions Engineer, Project Lead - Architecture Framework
Rob Rosen
Director Solutions Architecture, Google Cloud
Essayer GCP
Les nouveaux clients peuvent explorer et évaluer Google Cloud avec des conditions exceptionnelles.
EssayerAfin d’accompagner nos clients dans leur réussite sur Google Cloud, nous avons publié un guide : « Google Cloud Architecture Framework » (Framework d'architecture Google Cloud). Il réunit les meilleures pratiques pour concevoir et exploiter des workloads sécurisés, résilients, performants et efficients.
Dans ce billet, nous allons approfondir l’un des piliers de ce framework : le volet « Architecture Framework System Design » (Framework d’architecture : Conception d’infrastructures). Ce dernier repose sur quatre grands principes de conception que nous allons ici explorer. Au passage, nous souhaitons aussi profiter de cette occasion pour aborder les récentes améliorations apportées à notre guide et vous présenter notre nouvel espace communautaire consacré à l’« Architecture Framework ». Constituée de pairs, de Googlers et d’experts produits en mesure de vous apporter un soutien et des conseils, cette communauté a été spécialement créée pour vous aider à atteindre vos objectifs.
Retour sur les grands principes de conception
Le volet “conception d’infrastructures” est le pilier de base de notre Framework d’Architecture. Il s’appuie sur les principes de conception, les produits et les fonctionnalités de Google Cloud pour vous aider à définir l’architecture, les composants et les données dont vous avez besoin pour répondre aux attentes métiers et techniques.
Les concepts et recommandations en matière de conception peuvent aussi s’appliquer aux cinq autres volets du Framework d’Architecture, à savoir : l’Excellence opérationnelle, la Sécurité, la Confidentialité et Conformité, la Fiabilité, l’Optimisation des coûts et, enfin, l’Optimisation des performances.
Vous pouvez également évaluer votre existant en vous référant aux conseils fournis dans le volet conception de ce guide et ainsi identifier les différences, les lacunes et autres aspects qui mériteraient d’être améliorés.
Principes de base
Une infrastructure applicative robuste repose sur une conception sécurisée, fiable, évolutive et qui ne présente pas d’adhérences. Car sans adhérence, vous pourrez appliquer des changements à un niveau très granulaire, minimiser les risques et améliorer l’efficacité opérationnelle. Afin d’atteindre cet objectif de robustesse, nous vous conseillons de suivre les quatre principes fondamentaux suivants :
1- Réalisez une documentation exhaustive
Quand ils envisagent d’aller dans le cloud ou quand ils commencent à concevoir leurs premières applications, nos clients se sentent parfois freinés dans leur démarche par un manque de documentation. C’est tout particulièrement vrai lorsqu’il s’agit de correctement visualiser leur architecture actuelle de déploiement.
En documentant correctement votre architecture cloud, vous posez les bases d’un langage et de normes communes qui permettront à vos différentes équipes de communiquer et collaborer efficacement. Cette documentation constitue également un socle regroupant toutes les informations nécessaires pour vous aider, par la suite, à prendre les bonnes décisions pour développer de nouveaux services et servir vos nouveaux cas d’usage.
Au fil du temps, vos décisions en matière de conception vont aussi évoluer. En conservant un historique de ces changements, vous fournissez à vos équipes toutes les informations dont elles ont besoin pour aligner les initiatives, éviter les doublons et mesurer efficacement l’évolution des performances dans le temps. Les journaux de modifications (les ‘change logs’) sont particulièrement utiles lorsque vous intégrez un nouvel architecte cloud à vos équipes : ils lui permettent de se familiariser rapidement avec vos principes de conception, la stratégie et l'historique de votre système.
2- Simplifiez la conception en vous appuyant sur des services managés
En matière de conception d’infrastructures, la simplicité se révèle une qualité primordiale. Si votre architecture est trop complexe, elle ne sera pas comprise. Confrontés à cette complexité, vos développeurs auront du mal à réaliser de nouveaux déploiements et vos responsables d’exploitation à en assurer la maintenance au quotidien.
Nous vous recommandons vivement d'utiliser autant que possible des services entièrement managés. Ils permettent de minimiser le risque lié à la gestion et à la maintenance des infrastructures applicatives. Devant fournir moins d’efforts, vos équipes gagnent aussi un temps précieux.
Si vos workloads sont déjà passés en production, testez notre offre de services managés. Ils peuvent simplifier la complexité opérationnelle existante.
Si vous démarrez de zéro, pensez simplicité, établissez un MVP (Minimum viable product – produit minimal viable) et résistez à l'envie de faire de l'ingénierie à outrance. Vous pourrez toujours identifier les améliorations et enrichissements à apporter à vos cas d’usage par la suite en itérant et en procédant par incrémentation pour améliorer vos workloads.
3- Découplez votre architecture
Le découplage est une technique fondamentale pour décomposer vos applications monolithiques en plus petits composants pouvant fonctionner indépendamment les uns des autres. Dans une architecture découplée, chaque fonction peut s’exécuter indépendamment des autres.
Vous bénéficiez ainsi d’une plus grande souplesse pour agir au niveau granulaire, qu’il s’agisse d’effectuer des mises à jour, d’appliquer des contrôles de sécurité ou encore de superviser le bon fonctionnement, les performances ou les coûts de composants spécifiques.
Un tel découplage devrait être mis en œuvre dès la phase de conception mais il peut aussi être appliqué au fil du temps, à l’occasion des mises à niveau de votre architecture.
4- Privilégiez les approches « stateless »
Pour effectuer une tâche, les applications à états (stateful applications) s'appuient sur diverses dépendances, telles que les données mises en cache localement. Dès lors, elles nécessitent l’intégration de mécanismes complexes pour mémoriser la progression des processus et assurer un redémarrage fiable (et sans perte de cohérence) si nécessaire.
Les applications sans état (stateless applications), en revanche, peuvent s’affranchir de ces dépendances locales en utilisant un stockage ou des caches partagés. Vos applications peuvent ainsi rapidement monter en charge avec un minimum de dépendances, ce qui permet de supporter des redémarrages inattendus, de réduire les indisponibilités et de maximiser les performances des services pour les utilisateurs finaux.
Vous trouverez dans le volet “Conception d’infrastructures” des recommandations pour faire évoluer vos applications vers cette approche « sans état » ainsi que des conseils pour utiliser des fonctionnalités nativement cloud permettant de capturer l'état des machines pour vos applications “stateful”.
Étendre les bonnes pratiques de conception aux autres piliers du framework
Les principes fondamentaux évoqués ci-dessus autour de la conception peuvent aussi être appliqués aux cinq autres piliers du Framework d’Architecture que sont l'excellence opérationnelle, la sécurité, la fiabilité, le rapport coûts/efficacité et l'optimisation des performances. Voici quelques exemples concrets :
- Utiliser des services managés et hautement disponibles pour déployer et superviser vos workloads, afin de minimiser l’ensemble des coûts liés à leur maintenance et à leur optimisation.
- Appliquer des contrôles de sécurité au niveau granulaire de chaque composant. En découplant et en isolant les composants, vous pouvez pratiquer une gouvernance fine et ainsi gérer efficacement la conformité et réduire le rayon d'action des potentielles vulnérabilités de sécurité.
- Définir des budgets et concevoir avec efficience (autrement dit avec un rapport coût/efficacité optimal). Le coût devient généralement un facteur déterminant lorsque vous définissez des objectifs de fiabilité. Il est donc important de prendre en compte diverses mesures en la matière dès la conception de vos applications. Une architecture découplée vous permettra de gérer les budgets et les dépenses avec plus de granularité, ce qui se traduira par une meilleure efficacité opérationnelle et une optimisation des coûts.
- Optimiser la conception pour la vitesse et les performances. En établissant la disponibilité d’un service en fonction de critères de coûts, n’oubliez pas lors de la conception de prendre aussi en compte les performances. Différents outils opérationnels vous permettront de visualiser les goulets d'étranglement et de mettre en évidence les leviers d’optimisation des performances.
Il ne s’agit là que de quelques exemples concrets. Ils vous donnent une petite idée de comment nos principes de conception peuvent être appliqués aux différents cas d’usage des cinq piliers du Framework d’Architecture.
Le Framework d’architecture rejoint la Communauté Google Cloud
Innovante, fiable et dynamique, la communauté Google Cloud permet aux utilisateurs de poser des questions et de trouver des réponses, d’entrer en contact avec les autres membres et établir des relations solides, de partager des idées et d'avoir un impact sur les roadmaps des produits ou encore d'acquérir de nouvelles compétences et développer des expertises.
Nous profitons de ce billet pour annoncer le lancement d'un nouvel espace dédié au sein de la Communauté Google Cloud. Dédié au Framework d'Architecture, il propose :
- Un accès à des articles fournissant des conseils pratiques et répondant aux questions et défis spécifiquement liés au pilier Conception d’infrastructures (System Design). Nous publierons des articles sur les cinq autres piliers dans les mois à venir.
- Des forums de discussion ouverts où les membres peuvent poser des questions et recevoir des réponses.
- Des évènements organisés par la Communauté, tels que notre série "Ask Me Anything". Nous y organiserons d’ailleurs prochainement un Webinar autour d’un pilier du Framework d’Architecture au cours duquel les participants pourront poser ouvertement leurs questions.
Combinés, la Communauté Google Cloud et l’espace Framework d’Architecture vous permettront d’atteindre vos objectifs grâce au soutien et aux conseils de pairs, de Googlers et d’experts produits du monde entier.
Découvrez dès aujourd’hui ce nouvel espace de notre Communauté et, si vous ne l'avez pas encore fait, inscrivez-vous pour devenir membre et pouvoir profiter pleinement de toutes les opportunités offertes.
Les nouveautés du “System Design 2.0”
En début d’année, nous avons actualisé notre Framework d’Architecture en publiant une version 2.0 de ce guide. Au passage, nous en avons profité pour enrichir notre catalogue de meilleures pratiques, sur la base des commentaires effectués par nos partenaires, nos clients à travers le monde et notre équipe d’experts produits Google.
Voici quelques-unes des améliorations apportées à cette occasion :
- Ajout de meilleures pratiques dans le domaine de l’étiquetage des ressources afin d’en simplifier la gestion.
- Réorganisation de la section "compute” afin de mieux appréhender les choix technologiques, la conception, l’exploitation et la montée en charge des workloads.
- Réorganisation de la section “database” autour de sujets tels que la sélection, la migration et l'exploitation des workloads de base de données afin de notamment mettre en évidence les meilleures pratiques sur la gestion des workflows.
- Ajout de sections sur le cycle de vie des données, leur traitement et leur transformation dans la partie "analyse des données".
- Ajout d’une nouvelle section portant sur l'intelligence artificielle (AI) et l'apprentissage machine (ML) qui couvre les meilleures pratiques de déploiement et de gestion des workloads ML.
Comme toujours, vos commentaires sont les bienvenus afin que nous puissions continuer à nous améliorer et à vous accompagner sur la voie du succès avec Google Cloud.