Entre la rapidité de l'entrée en production des développements et l'automatisation du provisionnement et des mises à l'échelle, DevOps et cloud ont tout intérêt à se rapprocher… sauf que DevOps dans le nuage est encore loin de la culture du développeur et de l'entreprise.
Voici donc quelques conseils 'meilleures pratiques' qui devraient en faciliter les usages conjoints.
-
Choisir des outils qui fonctionnent dans le cloud
Et oui, cela paraît évidant, mais tous les outils DevOps ne tournent pas dans tous les clouds ! Certains sont même fortement intégrés à des plateformes de cloud public. Ils sont souvent attirants car rapides à déployer et faciles à exploiter. Mais ce n'est jamais une bonne idée, surtout dans un double environnement aussi riche et mouvant, que de s'enfermer sur une plateforme cloud unique.
-
Ne pas lésiner sur la formation
La compréhension et l'acceptation tant de DevOps que du cloud passent par l'adoption d'une culture commune apportée par la formation des acteurs clés de l'entreprise.
-
Ne pas oublier la sécurité
La sécurité est un élément essentiel de tous les projets. Deux axes viennent se greffer aux problématiques habituelles : sécuriser les outils DevOps et les environnements dans le nuage, et cela en intégration continue dans les process. Il serait probablement judicieux de nommer un responsable de la sécurité au sein de l'équipe DevOps.
-
Ne pas oublier la gouvernance des ressources
La gouvernance du DevOps comme du cloud est souvent négligée dans un premier temps, avant de basculer en préoccupation critique dès que les ressources, les services, et les API deviennent pléthore. La construction d'une infrastructure de gouvernance, avec ses politiques de gestion, va s'imposer pour gérer les ressources et les services.
-
Automatiser les tests de performance
Les tests de performance ont pour but de contrôler que les applications fournissent les performances annoncées, avec la précision et la stabilité attendues. Si les performances DevOps ne sont pas respectées, la consommation des ressources pourrait en prendre un coup, ainsi que la facture du cloud.
-
Pas d'économies pour sous-financer DevOps
Certaines entreprises prennent en considération les économies potentielles de DevOps et du cloud, et réduisent d'autant le budget des projets. Erreur magistrale, si le potentiel de réduction des coûts est réel, le démarrage des projets est toujours consommateur de ressources et donc source de coûts, tandis que les opérations déjà engagées continuent de courir. Sans oublier que DevOps et cloud vont pour un temps fonctionner indépendamment l'un de l'autre.
-
Considérez les containers
Les containers applicatifs sont un moyen de simplifier la gestion et l'orchestration des applications déployées sous la forme d'objets 'containers' portables, et un outil d'ajustement de la construction et du déploiement des applications. Attention cependant à évaluer les technologies, s'assurer quelles fonctionnent correctement sous cette forme, sans oublier de considérer la sécurité, la gouvernance, la gestion de cluster, et les outils d'orchestration dans la plate-forme.
-
Ne poussez pas toutes les applications vers le nuage
La migration de toutes les applications vers le cloud n'est pas toujours possible. Elles peuvent reposer sur des technologies traditionnelles (à l'exemple des applications Cobol), le coût de migration peut ne pas être justifié, un ordre des priorités doit être établi, et la quantité de travail doit être évaluée.
-
Rendez vos applications natives cloud
Quitte à basculer vos applications dans le nuage, pourquoi ne pas envisager d'aller jusqu'au bout via IaaS et PaaS, afin de découpler vos applications de vos propres ressources physiques ? Plus que l'économie financière, c'est la performance et l'efficacité du développement, du déploiement et de l'orchestration qui sont à considérer. A la condition que le surcroit de travail initial ne balaie les avantages d'un service natif dans le cloud.
-
To do ou Not to do ?
Si les avantages qui découlent de DevOps utilisé en conjonction avec les plateformes de cloud peuvent se révéler importants, ils ne sont pas automatiques. Ils exigent des investissements initiaux lourds avant d'espérer en tirer des bénéfices. Cela ne dévalorise par le projet de rassembler DevOps et cloud, mais comme pour la plupart des technologies émergentes, il faut accepter d'entrer d'abord dans une courbe d'apprentissage, et de faire des erreurs, avant d'exploiter les technologies de manière efficace. L'augmentation de l'agilité et la réduction du 'time to market' comme des coûts d'exploitation, ont un prix et prendront du temps. Le niveau d'engagement est donc fort et doit être accepté.