IBM Well-Architected Framework
L’hybridité est la capacité d’exécuter des workloads dans un ou plusieurs clouds publics, clouds privés et sur site. Le cloud hybride offre orchestration, gestion et portabilité des applications sur les infrastructures publiques, privées et sur site. Le résultat est un environnement informatique distribué unifié et flexible, dans lequel l’entreprise peut exécuter et faire évoluer ses workloads traditionnelles ou cloud natives selon le modèle informatique le plus approprié.
La portabilité est la capacité de déplacer les workloads et les données entre différents environnements de cloud computing, ce qui permet de migrer d’un cloud public vers un autre, voire vers un cloud privé, sans avoir à reconfigurer (significativement) la workload.
La combinaison des principes hybrides et portables facilite l’interopérabilité. Cela englobe la plateforme, les données et l’application. Les applications créées selon des principes de conception présentent un degré d’interopérabilité plus élevé.
Les entreprises adoptent une stratégie multi-cloud pour éviter l’enfermement propriétaire ou en raison d’exigences relatives à la résidence des données. Elles veulent avoir la capacité d’opérer une migration de type lift-and-shift des workloads, de les migrer d’un cloud à un autre ou d’exécuter des applications sur plusieurs clouds. Concevoir des applications cloud en tenant compte de la portabilité et de l’interopérabilité est essentiel pour ces entreprises.
Les workloads doivent être créés une seule fois et déployés partout de manière cohérente. Ils n’ont pas besoin d’être modifiés ou configurés pour s’adapter aux services et contraintes de la plateforme sur laquelle ils sont hébergés. C’est en effet le mantra d’IBM Red Hat OpenShift, une plateforme de conteneurs cloud hybride disponible sur la quasi-totalité des clouds publics. Les autres principes de ce pilier visent à atteindre cet idéal.
Les conteneurs dissocient les workloads de l’infrastructure sous-jacente qui les héberge. Les workloads conteneurisés peuvent ainsi être transférés sur n’importe quelle plateforme hébergeant un moteur d’exécution de conteneur compatible, ce qui fait des conteneurs la technologie de conditionnement et de déploiement préférée pour les applications.
Kubernetes est une plateforme open source qui permet de déployer et de gérer les workloads conteneurisées déployées sur tout moteur de conteneurs prenant en charge l’interface d’exécution de conteneurs Kubernetes (CRI). Kubernetes et les plateformes de gestion dérivées permettent de gérer les workloads conteneurisées sur les clouds publics et privés, ainsi que sur les infrastructures privées.
Les workloads qui reposent sur une représentation ou un type d’infrastructure spécifique ne sont portables que vers les environnements dotés de cette infrastructure. Utilisez un outil de codage indépendant du type de cloud pour définir l’environnement ou la façon dont les applications doivent être configurées. Utilisez ensuite l’outil d’automatisation pour un déploiement cohérent sur n’importe quel cloud, et même sur site. L’utilisation de l’infrastructure en tant que code (IaC) pour déployer des applications facilite le déploiement sur tout type de cloud et le passage d’un cloud à un autre. Un autre avantage de l’approche IaC est qu’elle facilite la mise à l’échelle et empêche les dérives de configuration. Cela rend aussi le processus de déploiement plus portable.
Les workloads qui s’appuient sur des services plateforme natifs sont « verrouillées » sur la plateforme. Les solutions doivent plutôt adopter des API et des interfaces de service normalisées par le secteur, indépendantes de la plateforme sur laquelle le service est déployé.
Pour une vraie portabilité, les équipes peuvent adopter des solutions open source dans leur pile, afin de minimiser l’enfermement qui compliquerait autrement la situation.
Les logiciels open source peuvent être choisis pour leur coût faible (ou nul), la possibilité de personnaliser le code source ou l'existence d’une grande communauté soutenant l’application. Cependant, ils peuvent entraîner d’autres coûts, généralement pour l’intégration réseau, le support utilisateur final et informatique, ainsi que d’autres services généralement inclus dans les logiciels propriétaires. Dans l’ensemble, cette décision doit être mise en balance avec l’étude d’opportunité et la probabilité d’avoir à déplacer les workloads.
Choisir une plateforme de déploiement comme Red Hat OpenShift, commune à tous les environnements, est fondamental pour assurer la portabilité et l’interopérabilité dans les environnements multicloud et sur site. Les solutions bien architecturées utilisent les conteneurs comme unité de déploiement commune en raison de leur petite taille et de leur support étendu sur la majorité des systèmes d’exploitation, des services cloud et des plateformes d’infrastructure.
Les conteneurs, comme Docker, découplent les workloads de l’infrastructure sous-jacente qui les héberge. Les workloads conteneurisées sont donc portables sur toute plateforme hébergeant un environnement d’exécution des conteneurs compatible.
Une plateforme d’orchestration de conteneurs comme Kubernetes automatise le déploiement des applications dans les environnements cloud. Elle peut également gérer les workloads conteneurisées. Kubernetes est une plateforme open source qui permet de déployer et de gérer les workloads conteneurisées déployées sur tout moteur de conteneurs prenant en charge l’interface d’exécution de conteneurs Kubernetes (CRI). Kubernetes et les plateformes de gestion dérivées permettent de gérer les workloads conteneurisées sur les clouds publics et privés, ainsi que sur les infrastructures privées.
Configurer et déployer sur différents clouds peut être complexe, tout comme les opérations post-déploiement. Les outils indépendants du cloud comme Ansible, Terraform, Chef et Puppet sont indispensables. Ansible est un outil d’automatisation informatique open source qui automatise le provisionnement, la gestion des configurations, le déploiement d’applications et l’orchestration dans le cloud et sur site. Il peut être utilisé pour automatiser l’installation de logiciels, provisionner l’infrastructure et même améliorer la sécurité et la conformité en appliquant des correctifs aux systèmes en temps opportun.
Provisionner manuellement des centaines ou des milliers de serveurs n’est pas réalisable, c’est pourquoi les playbooks Ansible sont privilégiés par les entreprises qui cherchent à faire évoluer leur informatique rapidement et de manière fiable. Avec un playbook Ansible, vous pouvez créer une instance, puis utiliser instantanément la même instance ou un nombre illimité de serveurs supplémentaires avec les mêmes paramètres d’infrastructure.
Configurer un cloud distribué qui vous permet de consommer des services cloud où que vous soyez et de déployer, gérer et contrôler vos workloads sur site, dans les environnements edge computing et de cloud public, quel que soit le fournisseur de cloud. IBM Cloud Satellite fournit des services cloud, des API, des politiques d’accès, une journalisation et une surveillance sur tous les sites. Cela permet de bénéficier de tous les avantages du cloud comme service pour votre infrastructure sur site, et d’une flexibilité permettant de déplacer ces workloads sur les clouds d’autres fournisseurs selon la politique en place. Avec la prolifération des dispositifs edge et l’explosion des données, la possibilité de rapprocher le calcul de la gravité des données est plus rentable. Cette portabilité permet également de renforcer la sécurité et de simplifier les opérations post-déploiement.
Bien que la sécurité soit un pilier distinct, elle concerne tous les aspects du cloud computing, qu’il s’agisse du cloud privé, du cloud public ou de l’infrastructure sur site. La flexibilité de déplacer les workloads vers différents environnements s’accompagne de défis de sécurité supplémentaires. La sécurité ne doit pas être sacrifiée au détriment de la portabilité. Il faut adopter une stratégie de sécurité hiérarchisée et approfondie sur l’ensemble de l’infrastructure, de la pile d’applications et du cycle de vie.