S’accomplir dans la complexité du cloud

La migration dans le cloud est souvent perçue comme une épreuve car gérer cet environnement s’avère plus complexe que d’administrer des datacenters. En effet, le cloud est si riche et dynamique que cette profusion peut vite engendrer le sentiment d’être désemparé.

Créer une activité basée sur des technologies cloud permet aux entreprises de délivrer plus rapidement, de meilleurs résultats / produits à leurs clients. La capacité d’accélérer son expansion, d’itérer sur les retours d’expérience, et de répondre aux attentes des clients, confère aux développeurs et aux services informatiques opérationnels un rôle essentiel à la réussite de l’entreprise. Mais alors que l’efficacité de l’entreprise s’accroît grâce à une infrastructure dynamique, aux applications conteneurisées, et aux micro-services, la complexité des applications augmente également. Pour tirer parti des technologies modernes du cloud, les entreprises doivent moderniser leur culture en offrant une vision commune des systèmes et des applications en production, et actualiser leurs outils et processus afin qu’ils s’intègrent à leur quotidien. Mais la migration est souvent perçue comme une épreuve car l’écosystème du cloud est si riche et dynamique que cette profusion peut vite engendrer le sentiment d’être désemparé.

Garder pied dans la dynamique des conteneurs

Cette nouvelle vague populaire de virtualisation permet à plusieurs services, chacun encapsulé dans un conteneur, de partager un système d’exploitation (OS) hôte unique, évitant ainsi l’achat d’une licence d’OS par instance virtuelle. Allégé d'une couche OS, le conteneur est immutable. Ainsi, quel que soit l’environnement dans lequel il sera déployé, le résultat sera consistant. Il sera donc également plus facile à migrer ou à télécharger, et plus rapide à sauvegarder ou à restaurer. 

Les conteneurs sont bien plus dynamiques que les machines virtuelles traditionnelles et les technologies d’orchestration associées, telles que Kubernetes n’y sont pas étrangères puisqu’elles permettent notamment le démarrage et l’arrêt automatisés des conteneurs. On considère que la durée de vie standard d’un conteneur Docker utilisé avec un orchestrateur est actuellement de moins d’une journée ! La courte durée de vie et la densité accrue des conteneurs impliquent une augmentation permanente du nombre d’éléments qui doivent être contrôlés individuellement. Vu le niveau de complexité que peuvent atteindre les architectures de conteneurs, il est crucial d’automatiser au maximum une plateforme de monitoring capable de s’autoconfigurer en fonction de l’ajout de nouveaux conteneurs. Mais les enjeux du monitoring des conteneurs comportent également une dimension humaine essentielle afin notamment d’intégrer les développeurs au processus de déploiement des applications. Grâce à la corrélation de la performance des applications avec celles des conteneurs et des infrastructures sous-jacentes, les développeurs bénéficient dès la phase de codage de tableaux de bord qui peuvent être partagés avec les équipes de test et de production, puis enrichis au fur et à mesure de l’avancée du projet. Un précieux confort qui fournit aux diverses équipes le même niveau de compréhension au travers d’indicateurs communs mais adaptés à chacun afin de créer des applications dans le cloud en toute sérénité.

Propulser les applications héritées dans la modernité du cloud

Les micro-services consistent à diviser les applications en une série de modules indépendants et interconnectés, chacun prenant en charge une série de fonction distinctes. Cette nouvelle approche d’application est conçue sous forme d’un ensemble de services développés, testés et étendus individuellement. Et parce que ces micro-services peuvent être déployés de façon indépendante, n’importe quelle technologie et infrastructure peut être utilisée. Ceci offre un haut niveau de personnalisation et de flexibilité. Lorsque la conteneurisation est pertinente, les avantages sont considérables en termes d’indépendance et de facilité de déploiement. La liberté de choisir quelle pile technologique est appropriée à la tâche, et surtout, la capacité à facilement connecter les technologies par la suite si nécessaire, sont simplement impossibles avec des applications monolithiques reposant sur des infrastructures existantes. De plus, si les services sont véritablement séparés et isolés, un composant défectueux ne peut affecter toute l’application.

Cependant, repenser l’architecture des applications clés en micro-services n’est pas une tâche simple. De nombreux métiers commencent à propulser sous cette forme leurs applications vers le cloud, mais tirer parti de la façon dont les applications modernes génèrent de la valeur demande certains dispositifs de nouvelle-génération. En effet, l’équipe d’exploitation doit pouvoir s’appuyer sur une plateforme capable de lui procurer de la visibilité et des analyses sur la performance de telles applications distribuées.

Savoir jouer du serverless

La technologie émergente d’infrastructure serverless signifie que le client final ne gère pas physiquement de serveurs. Ce sont les acteurs du cloud tels qu’AWS, GCP ou Microsoft Azure qui s’en chargent. Le serverless repose véritablement sur le code de l’application qui va enclencher la quantité nécessaire de ressources pour compléter une tâche. Il suffit de programmer un déclencheur pour que la plateforme serverless effectue le travail réclamé. L’utilisateur final n’a donc pas à gérer cette configuration plus d’une fois et ne paie qu’à l’usage.

Alors que de nombreuses entreprises utilisent une Plateforme as a Service (PaaS), telle que les populaires Heroku or OpenShift pour développer ou restreindre des applications, la responsabilité d’allocation des ressources demeure un processus manuel réalisé par le développeur ou l’administrateur système. Les PaaS sont conçues pour permettre aux applications exécutées sur un serveur d'être prêtes à satisfaire les requêtes entrantes et de continuer à fonctionner même quand il n'y a plus de requêtes à satisfaire. A l’inverse avec une infrastructure serverless, une fonction démarre à réception d’une requête et prend fin une fois que celle-ci est traitée. Certes, nous ne sommes pas encore au point où toutes les requêtes peuvent être honorées à la demande. Mais en supposant que cela soit possible, et selon les modèles de tarification actuels, utiliser le serverless pour des longues tâches coûterait plus cher que d’exécuter une charge de travail sur une VM.  

La conception d’applications distribuées dans le cloud utilisant des conteneurs, micro-services et architectures serverless va devenir de plus en plus populaire. La capacité de créer et fournir un logiciel plus rapidement, d’améliorer l’expérience utilisateur grâce à des algorithmes d’analyses, et de piloter des indicateurs clés pour l’entreprise va rapidement primer sur les dépenses supplémentaires d’exploitation informatique. Un tel accomplissement sous-entend l’adoption simultanée d’une plateforme de monitoring de nouvelle génération, garante de la visibilité complète et partagée qu’impose la maîtrise de cette prolifération incontournable d’applications résolument modernes.