Move to cloud & culture DevOps
« Move to cloud » !
Cet objectif se retrouve dans des sociétés qui peuvent être hétérogènes mais partagent des enjeux communs :
- S’abstraire des problématiques de maintenance de matériel physique (disques durs, machines physiques) qui ne sont pas leur coeur de métier
- S’ouvrir à des technologies qu’elles ne veulent pas reproduire sur leur base serveurs existante
- S’abstraire de problèmes physiques (espace disque par exemple) pour des coûts maîtrisés
Si ces objectifs sont atteignables, il ne faut pas sous-estimer deux éléments clés :
- La montée en connaissances et en compétences des équipes sur des outils et des concepts nouveaux.
- Le pragmatisme dont il faut faire preuve pour prendre en considération l’existant, souvent incompatible en partie avec ces nouveaux concepts. Il est par exemple classique de découvrir qu’un applicatif développé avec un monolithe ne peut pas être pris en charge correctement avec un hébergement géré par Kubernetes et Docker. Le coût d’adaptation étant trop lourd, il faut trouver des compromis pour que la migration aboutisse.
Kaliop connaît les principales solutions cloud du marché international et français (AWS, GCP, Azure, Scaleway) et a de nombreuses expériences de migration spécifiques. N’hésitez pas à faire appel à nous si vous avez des doutes stratégiques pour réussir votre “move to cloud !”
Les promesses du cloud
Robustesse et Fiabilité dans le Move to Cloud : Assurer Disponibilité et Sécurité
La capacité du cloud à offrir une infrastructure robuste et hautement disponible est l’un de ses principaux atouts. Les services cloud proposent tous un taux de disponibilité élevé, avec un niveau contractuel de 99,9 % ou plus pour leurs services. Cela signifie que les applications et les données sont accessibles presque en permanence. Le temps de récupération est mieux assuré. Les sauvegardes sont quasiment toujours actives par défaut, avec des processus de rétablissement optimisés.
L’aspect sécurité n’est pas oublié. Les services cloud intègrent généralement des protocoles de sécurité avancés pour protéger les données sensibles contre les cyberattaques. Cela comprend des pare-feu avancés, des systèmes de détection d’intrusion et d’autres mesures de sécurité avancées.
Dans le cas des entreprises internationales, la redondance géographique est aussi permise par les principaux opérateurs, répartis dans le monde entier. Il devient même plus facile d’optimiser son infrastructure par rapport aux besoins géographiques.
Accélérer l’Innovation avec la Vitesse d’Adaptation du Move to Cloud
Les clouds permettent de mettre en place plus rapidement de nouveaux services.
Dans un environnement cloud, les ressources informatiques telles que la capacité de stockage, la puissance de calcul et la mémoire peuvent être provisionnées presque instantanément à la demande. Comparativement, l’approvisionnement de ressources dans un environnement physique peut nécessiter des délais significatifs en raison de la nécessité d’acheter, de livrer et de configurer du matériel supplémentaire.
Les fournisseurs de services cloud mettent rapidement à disposition de nouvelles fonctionnalités et technologies, ce qui permet aux entreprises d’adopter aussitôt des innovations récentes sans avoir à investir dans du matériel coûteux ou à consacrer du temps à leur configuration.
Les outils de déploiement automatisés sont développés avec les principales solutions cloud. Les applications peuvent être déployées rapidement et de manière cohérente dans un environnement cloud. Cela réduit considérablement le temps nécessaire pour mettre de nouvelles fonctionnalités ou des applications entières à la disposition des utilisateurs finaux, ce qui accélère le délai de mise sur le marché.
Diversité et Évolution de l’Offre dans le Move to Cloud : Au-delà de l’Hébergement Physique
Chaque grand fournisseur d’offres cloud met à disposition des dizaines de services différents. Si initialement leur mission était d’étendre les possibilités d’un hébergement physique, en proposant des ressources faisant abstraction des limites physiques, on trouve maintenant de très nombreuses applications quasiment prêtes à l’emploi. On peut citer par exemple tout ce qui concerne la data, l’intelligence artificielle, les outils de déploiement, les solutions “serverless”…
Cette offre évolue en permanence, avec des ressources importantes investies en recherche et développement.
Enjeux de souveraineté des données
Le concept de cloud souverain répond à des préoccupations de souveraineté numérique, de protection des données. Il s’agit de solutions cloud développées par des entreprises françaises ou européennes, garantissant que les données sont stockées et traitées en en France, ou en Europe, à l’abri des lois extraterritoriales telles que le Cloud Act américain. Des acteurs comme OVHcloud et Scaleway proposent des services cloud souverains, assurant sécurité, transparence et respect des normes locales. Cet aspect peux donc être déterminant quant au choix d’un fournisseur cloud, en fonction du contexte réglementaire du projet de migration (organisme publique, de santé…).
La contrepartie de cette richesse des clouds
Un apprentissage permanent
Comme on l’a vu précédemment, les principaux acteurs du cloud innovent en permanence. Mais ils ne se contentent pas d’ajouter des nouveaux services, ils font aussi évoluer l’existant. On ne peut pas maîtriser tout ce qui est proposé, mais un temps de veille est nécessaire pour profiter d’opportunités qui sont pertinentes par rapport à ses propres besoins. D’autre part, il faut anticiper que des évolutions majeures peuvent apparaître. Même si elles sont rares, des services peuvent être amenés à évoluer de façon telle que la rétrocompatibilité n’est pas maintenue.
Même si le nécessaire est généralement fait pour accompagner et expliquer les mises à jour, les impacts ne peuvent pas être pris à la légère.
Prévoyez donc du temps pour monter en compétence, mais aussi pour avoir des compétences à jour.
Une maîtrise des coûts à gérer
La complexité des modèles de tarification cloud peut rendre difficile la prévision précise des coûts à long terme, ce qui peut conduire à des dépenses excessives ou inattendues. Comme on l’a vu précédemment, il est facile et rapide de modifier les services utilisés et leur configuration. C’est pourquoi il faut adopter une approche “finops” correspondante.
Les dépenses sont généralement liées à l’utilisation des ressources. Il est donc essentiel de surveiller régulièrement la consommation des ressources cloud à l’aide d’outils de surveillance et de gestion de coûts, afin d’identifier les anomalies et les sources de gaspillage. La planification des dépenses doit prendre en compte les aspects inconsistants de l’utilisation des ressources, pour éviter les surprises coûteuses.
Ces derniers peuvent être vus négativement, mais les solutions cloud ont aussi des possibilités d’optimisation des ressources qui ont un impact positif sur les coûts. La gestion de la mise en veille des ressources inutilisées, l’utilisation de réservations pour les instances et la sélection de types d’instances appropriés, peuvent réduire considérablement les frais opérationnels.
En comprenant les modèles de tarification des fournisseurs cloud, les entreprises peuvent choisir des offres tarifaires adaptées à leurs besoins spécifiques, ce qui peut réduire les coûts inutiles et optimiser l’utilisation des services cloud.
Des changements d’organisation
La migration vers le cloud implique souvent des changements organisationnels significatifs, notamment en termes de rôles et de responsabilités au sein des équipes informatiques. La mise en place d’une culture axée sur le cloud et la collaboration interfonctionnelle est essentielle pour assurer le succès de cette transition. En effet, l’impact sur une SI est profond, car on modifie des habitudes de travail qui portent sur l’architecture, la gestion des données, la sécurité, etc.
Les cycles de mise en œuvre ne sont plus les mêmes, certaines actions ne demandant plus le temps précédemment impossible à réduire. Même le principe de durée de vie d’un service doit être revu, car la coupure peut être immédiate, sans problématique de matériel à gérer.
Enfin, les outils vont devoir s’adapter au cloud, ce qui passe généralement par la mise en place de nouveaux outils, ce qui impacte aussi l’organisation existante.
Le DevOps
Qu’est-ce que le DevOps ?
Pour relever ces défis, l’approche DevOps s’avère être une solution efficace pour garantir une gestion fluide des opérations dans un environnement cloud.
Il est important de préciser que le DevOps n’est pas un métier à proprement parler, mais plutôt une approche culturelle et organisationnelle qui favorise la collaboration et l’intégration entre les équipes de développement logiciel (Dev) et d’opérations informatiques (Ops). Cependant, il existe des rôles et des responsabilités spécifiques liés à la pratique de DevOps au sein d’une organisation. Voici quelques-uns des rôles liés au DevOps :
- Ingénieur DevOps : ces professionnels sont responsables de la mise en œuvre des pratiques DevOps, y compris l’automatisation des processus de développement, de tests et de déploiement, ainsi que la gestion des pipelines d’intégration continue et de déploiement continu. Ils sont chargés de garantir une collaboration efficace entre les équipes de développement et d’opérations, tout en favorisant l’adoption d’outils et de pratiques de développement agiles.
- Administrateur système DevOps : ces professionnels sont responsables de la gestion et de la configuration des infrastructures informatiques, en veillant à ce que les systèmes soient configurés de manière optimale pour prendre en charge les pratiques de développement agiles et les processus d’automatisation. Ils travaillent en étroite collaboration avec les équipes de développement pour garantir des environnements de développement et de test stables et fiables.
Bien que le DevOps ne soit pas un métier en soi, il a donné naissance à de nouveaux rôles et titres professionnels qui sont devenus de plus en plus courants dans les organisations axées sur la transformation numérique et l’adoption de pratiques agiles de développement logiciel.
Pourquoi est-ce nécessaire dans un environnement cloud ?
Dans une architecture dédiée, il est indispensable de disposer de ressources de type ingénieur réseau et système d’exploitation. Dans une architecture cloud, on retrouve les mêmes besoins. Il faut toujours gérer des réseaux et des services, qui ont leur particularités en termes de configuration, avec des besoins de monitoring et de suivi.
De par la nature des outils utilisés, les ressources de développement ont une meilleure compréhension de ce qui est mis à leur disposition, notamment car ils peuvent potentiellement le reproduire en local avec l’utilisation de technologies comme Docker.
Mais ne vous y trompez pas, la compréhension de l’architecture par vos équipes de développement n’implique pas non plus une maîtrise de cette architecture. Cette compréhension est un facteur de succès pour le bon fonctionnement de vos applications, c’est déjà beaucoup, mais vous ne pourrez pas vous passer de compétences DevOps.
Les technologies en oeuvre
- Terraform : Terraform est un outil open source qui permet de gérer l’infrastructure en tant que code. Il permet aux équipes DevOps de décrire leur infrastructure cloud dans des fichiers de configuration, facilitant ainsi le déploiement et la gestion des ressources dans des environnements cloud hétérogènes. De plus, ce code sera géré au sein d’un outil de gestion comme Github ou Gitlab, avec les mêmes usages que l’on retrouve dans les équipes de développement (branches, revues de code, …). Les tests unitaires deviennent aussi possible. Et cet usage permet de garantir la capacité à se relever rapidement d’un incident de production majeur, car tout peut être reconstruit à partir de ce code.
- Docker : Docker est une plateforme open source qui permet de créer, de déployer et de gérer des applications dans des conteneurs. Il facilite le déploiement rapide et la gestion des applications, en garantissant la portabilité et la cohérence des environnements de développement et de production.
- Kubernetes : Kubernetes est une plateforme open source de gestion d’orchestration de conteneurs qui facilite le déploiement, la mise à l’échelle et la gestion des applications conteneurisées. Il permet aux équipes DevOps de gérer efficacement des charges de travail complexes dans des environnements cloud à grande échelle.
- Prometheus : Prometheus est un système open source de surveillance et d’alerte conçu pour surveiller les ressources cloud et les applications en temps réel. Il collecte les métriques de performance et les données de surveillance, permettant aux équipes DevOps de diagnostiquer et de résoudre rapidement les problèmes de performance.
Pour aller plus loin
Industrialiser sa roadmap multi-sites avec Strapi et Kubernetes
Voir le webinar