Les conteneurs sont-ils la bonne approche ?
Il y a eu beaucoup de battage médiatique dans le communauté Sitecore autour de Docker et des conteneurs depuis l’annonce de la prise en charge officielle des installations conteneurisées. Le dépôt Docker community Docker a fourni beaucoup d’aide pour préparer les images et les scripts pour que les développeurs puissent les configurer très rapidement. Les développeurs sont enthousiasmés par la promesse d’une productivité accrue et d’une gestion plus facile de l’installation, et vous devez maintenant décider si l’organisation adopte la conteneurisation comme stratégie pour votre livraison de logiciels.
Quelle est la réponse rapide ?
Malheureusement, la réponse est : « Cela dépend ».
En règle générale, si vous êtes une organisation qui utilise des machines virtuelles, il est probablement préférable d’utiliser des conteneurs. Il convient de noter que vos développeurs individuels peuvent bénéficier de l’utilisation de Docker même si vous décidez de ne pas l’adopter dans toute l’entreprise pour le flux DevOps complet à la production.
En règle générale, les défis suivants indiquent que votre organisation pourrait bénéficier d’une stratégie de conteneur :
- Le flux DevOps actuel génère un coût d’infrastructure élevé en raison de la surutilisation des ressources nécessaires aux machines virtuelles.
- Il est difficile pour l’entreprise de gérer l’infrastructure Sitecore en raison des différentes dépendances entre les différentes versions de Sitecore.
- L’entreprise perd beaucoup de temps à mettre en place des environnements Sitecore.
- Les différents environnements sont déployés sur plusieurs environnements d’hébergement dans le Cloud.
- L’équipe doit être en mesure de répliquer rapidement des environnements propres, par exemple en prenant en charge les problèmes de production signalés.
- L’équipe doit travailler sur différents sites/solutions/projets, qui peuvent également utiliser différentes versions de Sitecore et nécessiter différentes dépendances (versions SQL Server, systèmes d’exploitation, versions Solr, etc.).
- Les développeurs passent d’un projet Sitecore à un autre, doivent démarrer rapidement, puis démonter rapidement.
- L’équipe s’efforce de trouver un moyen de tester de manière isolée avant le déploiement.
Les avantages pour l’entreprise
Voici mes 4 meilleurs choix d’avantages qui peuvent vous aider à expliquer les raisons d’adopter une stratégie de conteneurisation :
- Une mise sur le marché plus rapide. De nombreuses équipes marketing vont bénéficier de temps de configuration plus rapides pour les développeurs, de flux de déploiement plus fluides entre les environnements et de moins de scénarios « fonctionne sur ma machine » qui ralentissent la livraison technique. Cela permet à l’équipe d’itérer plus rapidement et de réduire les risques dans le flux de développement à production.
Défi : L’équipe doit s’adapter à une nouvelle façon de travailler, il y aura donc un retard dans la perception de ces avantages. En outre, si l’organisation a d’autres raisons qui empêchent le code d’atteindre production (telles que de longues étapes de test/acceptation), vous devrez peut-être vous concentrer d’abord sur ces problèmes de flux plus importants.
- Réduction des coûts d’exploitation. L’équipe IT constatera une réduction des coûts d’infrastructure lors de l’exploitation de plusieurs conteneurs sur un hôte par rapport à plusieurs machines virtuelles sur le même hôte. Moins de ressources sont nécessaires pour exécuter les conteneurs sur l’hôte, car le noyau du système d’exploitation est partagé et n’est plus dupliqué à chaque fois.
défi: La facilité de déploiement des conteneurs peut avoir un effet secondaire de « l’étalement des conteneurs », ce qui aurait en fait l’effet inverse sur vos coûts d’exploitation. Il est d’une importance cruciale de disposer d’une orchestration et d’une gestion appropriées des conteneurs pour garantir que vos coûts d’exploitation sont réduits. Kubernetes (K8s) est votre ami ici !
- Flexibilité dans le cloud. En raison de la nature de la façon dont les conteneurs font abstraction du système d’exploitation, vos conteneurs peuvent être déplacés entre différents fournisseurs de cloud. Cela donne à votre organisation une flexibilité quant aux personnes avec lesquelles elle traite pour son infrastructure cloud.
Défi : Bien que les conteneurs soient flexibles, si vous prévoyez d’utiliser Kubernetes as a Service (alias Managed Kubernetes Service), votre orchestration peut être différente d’un fournisseur de cloud à l’autre. C’est quelque chose à prévoir si vous souhaitez passer d’un fournisseur de cloud à l’autre ou exécuter plusieurs à la fois.
- Réduction du temps moyen de résolution (MTTR). Si votre stratégie de conteneur s’applique à tous les environnements, y compris production, vous pouvez demander à votre équipe d’assistance de répliquer rapidement production environnements localement afin qu’elle puisse résoudre les problèmes plus rapidement et avec moins de risques de disparité entre les environnements locaux et production.
défi: Avant de voir un avantage pour ce scénario, vous allez devoir l’adopter sur l’ensemble de la chaîne de flux, il ne suffira pas que quelques développeurs installent Docker. Cette question doit être abordée de manière holistique pour en reconnaître les avantages.
Quand les conteneurs seront-ils un défi ?
Il y a des signes qui indiquent qu’une organisation sera probablement confrontée à des difficultés avec l’adoption d’une stratégie de conteneur :
- Adopteurs tardifs. L’organisation a de la difficulté à adopter les nouvelles technologies au fur et à mesure qu’elles apparaissent. Ils ne veulent pas « comprendre », ils veulent faire les choses comme ils savent le faire et laisser les autres établir d’abord de nouvelles pratiques bien documentées. Ces organisations présentent généralement des comportements d’adoption tardive tels que des politiques de « version moins un », fonctionnant sur des systèmes d’exploitation et des versions de navigateur plus anciens, hésitant à passer à une infrastructure basée sur le cloud, etc. Dans certains scénarios, ces infrastructures plus anciennes peuvent même ne pas être en mesure de répondre aux exigences de virtualisation de Docker.
Bien que Kubernetes et Docker ne soient pas exactement nouveaux, il s’agit toujours d’une solution technique plus récente dans le communauté Sitecore et présentera donc des lacunes dans la documentation, les pratiques éprouvées et l’adoption généralisée.
Relever le défi : Identifiez des études de cas d’organisations actuellement sur Sitecore avec un profil similaire à celui de votre propre organisation. Cela contribuera à donner aux parties prenantes l’assurance que « cela a déjà été fait auparavant ». Ensuite, une analyse de l’état actuel de l’infrastructure technologie serait nécessaire pour assurer une disponibilité pour les conteneurs.
- Environnements hautement réglementés. Qu’il s’agisse de législation gouvernementale ou de politiques au niveau de l’entreprise, ces organisations ont mis en place de nombreuses règles sur la façon dont vous pouvez faire passer les logiciels du développement à la production. L’équipe DevSecOps ne sait peut-être pas comment transposer ses politiques et réglementations actuelles dans un monde de conteneurs. Comment toutes les équipes s’informent-elles sur la façon de s’assurer que les conteneurs respectent les politiques ? Certaines de ces politiques ont probablement été élaborées il y a de nombreuses années et n’ont pas été réexaminées par rapport aux technologies plus récentes.
Relever le défi : Celui-ci est tout au sujet de l’éducation. Ce n’est pas que vous ne pouvez pas le faire, mais les gens ne sauront pas nécessairement comment. Il est utile de définir des champions qui peuvent faire des preuves de concept et qui ont quelque chose à « montrer » aux différentes équipes afin qu’ils puissent comprendre les différences entre les technologie existants et proposés.
- Les coûts d’infrastructure semblent « sous contrôle ». Il y a très peu de frais généraux d’infrastructure, ou la livraison/les opérations techniques ont été externalisées à un groupe externe lorsque le coût du service est raisonnable par rapport à la responsabilité technique réduite.
note: L’équipe qui effectue le travail externalisé voudra peut-être envisager une stratégie de conteneur pour augmenter sa marge bénéficiaire !
Relever le défi : Si les coûts d’infrastructure actuels n’entravent pas l’entreprise et que vous pensez vraiment que les conteneurs sont la voie à suivre pour l’organisation, il peut être utile d’examiner le délai de résolution (MTTR) pour les défauts de production ou les avantages du délai de mise sur le marché au lieu de se concentrer uniquement sur les coûts d’infrastructure. Votre organisation verra-t-elle plus de valeur dans ces domaines ?
- Base d’applications mature et stable. Il y a très peu de changements qui se produisent au jour le jour dans les environnements hébergés par Sitecore. Peut-être y a-t-il une petite équipe qui travaille avec Sitecore, un seul site, une seule version du logiciel. Il n’y a pas de complexité autour de la maintenance des différents environnements, très peu de changements se produisent.
Relever le défi : Cet état est en fait un signe avant-coureur de l’innovation ! Vous devriez être dans un modèle d’amélioration continue et l’absence de changements n’est pas vraiment une bonne chose. Si l’équipe repousse l’adoption de nouvelles technologies pour cette raison, vous aurez peut-être besoin d’une analyse plus approfondie des problèmes qui conduisent à cette situation. Il y a peut-être une stratégie plus importante à traiter autre qu’un conteneur.
- Automatisation de l’infrastructure à la traîne. Si l’équipe responsable de toute l’infrastructure a actuellement du mal à suivre le rythme de l’automatisation de l’infrastructure, l’introduction d’une nouvelle technologie nécessitant l’automatisation de l’infrastructure peut s’avérer difficile. Si ces équipes n’innovent pas dans la façon dont elles gèrent l’infrastructure, elles sont parfois réticentes à prendre en charge ces nouvelles technologies, surtout si l’organisation tombe dans l’un des deux premiers défis énumérés ici.
Relever le défi : Avant de s’attaquer à une stratégie de conteneurs, ce défi peut indiquer que la priorité est de se concentrer sur la façon dont l’organisation automatise son infrastructure (ou ne l’automatise pas, selon le cas). Un investissement global dans la façon dont votre équipe priorise l’automatisation peut être une première étape. Peut-être qu’une stratégie de conteneur est le moyen d’y parvenir, mais vous devrez peut-être d’abord faire quelques petits pas ici pour amener l’équipe à un point où cette adoption culturelle fonctionnera.
Lectures complémentaires
- 5 entreprise raisons pour lesquelles chaque Directeur de l'information devrait envisager Kubernetes, Kalyan Ramanathan, Sumo Logic
- Qu’est-ce qu’un conteneur et pourquoi en avez-vous besoin ?, Paul Rubens, cio.com
- Architecture de référence Docker : sécurisation de Docker Enterprise et meilleures pratiques en matière de sécurité, Docker
- Kubernetes as a Service : GKE vs. AKS vs. EKS, Evan Klein, logz.io
Jason St-Cyr, Vice President, Engagement, Fishtank Consulting
https://jasonstcyr.com