AVIS D’EXPERT – Les technologies cloud sont vantées comme la solution pour surmonter rapidement les obstacles et créer de la valeur pour votre entreprise. En réalité, l’adoption du cloud conduit à une complexité croissante et à une surcharge cognitive, avec parfois pour les collaborateurs l’impression de tourner en rond tel un hamster dans sa roue. Shaun O’Meara, Field CTO chez Mirantis, nous partage ses bonnes pratiques.
Pour les entreprises, la question centrale est toujours la même : comment répondre aux exigences de développement de nouvelles sources de revenus, attirer de nouveaux clients et fidéliser les clients existants, tout en réduisant les coûts et en livrant les produits plus rapidement. La réponse est souvent la même : en optimisant régulièrement les fonctionnalités des applications. Cependant, la complexité de la tâche nécessite des compétences spécialisées ainsi qu’une feuille de route claire. Ici, les difficultés commencent et les défis s’accumulent :
• Effectifs limités et compétences spécialisées.
• Contraintes économiques.
• Le vaste choix d’options.
Pour ajouter à nos dilemmes, nous sommes constamment bombardés de nouvelles technologies très médiatisées vendues comme les réponses à tous nos problèmes. Dans la réalité, elles ne sont pas toujours faciles à utiliser, encore moins à comprendre, et elles fournissent rarement tout ce dont vous avez besoin dans un seul package.
Dernière tendance en date : passer à un modèle de « consommation » plutôt qu’à un modèle de développement traditionnel. La différence clé est que nous consommons désormais des solutions complètes en tant que service plutôt que de déployer des logiciels (de préférence open source). Cela permet de se concentrer sur la création du code qui est unique et précieux pour notre entreprise et de laisser un tiers fournir, intégrer et gérer tous les composants sous-jacents. Tout ce que vous auriez à faire, idéalement, est de télécharger votre code.
Changer de perspective
Les solutions en tant que service nécessitent un changement d’état d’esprit. Nous devons clairement définir les résultats attendus et éviter d’accumuler les outils. Pratiquement parlant, certaines offres nécessitent de déployer trop d’outils là où d’autres services permettraient de vous lancer et de vous concentrer sur la création de valeur. Au lieu d’utiliser des plateformes gérées par des tiers proposant de la gestion de services conteneurisés ou de la virtualisation qui vous forcerait à déployer et à maintenir toutes les dépendances, il existe des offres complètes qui vous permettent de charger votre code d’application unique. Ces services prendraient en charge tous les aspects et veilleront à l’entretien et au suivi de tous les systèmes.
Que doit-on attendre d’un fournisseur de services ?
Un bon fournisseur de services devrait proposer un service complet et personnalisé qui comprendrait au moins cette liste de composants de base, tout en offrant suffisamment de flexibilité pour répondre à vos besoins spécifiques :
- Hébergement (cloud public, sur site, edge) ;
- Outils d’orchestration (Kubernetes, Swarm, Terraform) ;
- Outils de sécurité (sécurisation de votre code, validation de vos bibliothèques, gestion des CVE, détection des vulnérabilités) ;
- Réseau (connectivité entre les fournisseurs, contrôle des entrées et sorties, gestion du trafic) ;
- CI/CD (tests, validation du code, construction, déploiement) ;
- Dépôt de code (quel système de gestion de versions ?) ;
- Observabilité (surveillance, journalisation, traçabilité et métriques) ;
- Bonnes pratiques et documentation (il y a toujours besoin de plus de documentation que vous ne le pensez).
Pourquoi ne pas le faire à l’interne ?
L’une des questions les plus courantes posées par les dirigeants est de savoir pourquoi ils ne peuvent pas simplement demander à leurs développeurs compétents et à leurs équipes informatiques de télécharger tous les composants open source et de construire cette solution automatisée de bout en bout.
Bien que cela soit possible, vous devez vous poser les questions suivantes :
- Combien d’ingénieurs ai-je à ma disposition ?
- Leur valeur est-elle mieux utilisée pour créer des logiciels innovants ou résoudre des problèmes déjà résolus par ailleurs ?
- Qui va maintenir les systèmes ?
- Que faire lorsque ces ingénieurs s’ennuient ou reçoivent une meilleure offre ?
Automatiser la livraison de logiciels, le processus de test et la gestion de l’infrastructure sous-jacente est une tâche herculéenne en soi et nécessite des compétences spécialisées et des outils associés.
C’est compter sans la maintenance continue, le point central de cette approche. L’un des véritables défis liés à l’utilisation de logiciels open source est qu’ils sont constamment mis à jour par une large communauté de développeurs qui peuvent avoir des priorités différentes des vôtres. Pour garantir la sécurité et la fonctionnalité continue, vous devez tester et valider minutieusement l’intégration de tous les composants entre eux, ce qui peut prendre beaucoup de temps et coûter de gros efforts à chaque mise à jour.
Faire des progrès
Comme pour tout problème, il existe plusieurs solutions pour répondre à vos besoins spécifiques. Voici quelques enseignements clés qui peuvent être appliqués pour éviter certains écueils potentiels :
- Définissez clairement ce que vous souhaitez réaliser et soyez précis sur les personnes que vous servez. Cela peut sembler évident, et tous les livres d’entreprise et de développement personnel conseillent de le faire. À la différence ici est que vous ne l’écrivez pas pour vous-même, mais pour clarifier aux équipes vos attentes quant à la manière dont vous souhaitez qu’elles abordent le défi.
- Évaluez vos capacités, et en particulier les compétences de votre équipe. Soyez honnête, non seulement sur les compétences dont vous disposez actuellement, mais aussi sur ce qu’il faudrait pour développer et conserver ou embaucher des personnes compétentes.
- Recherchez des partenaires et des services disponibles auxquels vous pouvez accéder ; vous aurez probablement besoin des deux. Les services doivent être complémentaires à vos besoins et offrir des solutions de travail complètes dès le départ, tout en vous permettant de les modifier pour répondre à vos besoins spécifiques. En substance : vous souhaitez des services qui fonctionnent simplement, mais restent flexibles.
Les services doivent respecter des normes de base pour garantir qu’ils puissent évoluer avec vos besoins ou être remplacés avec un minimum de perturbations. (Soyez réaliste, cela nécessitera un certain effort.) Ces normes de base devraient inclure les éléments suivants :
- Interfaces de programmation (API) ouvertes et bien documentées, basées dans la mesure du possible sur l’open source ;
- Des mécanismes d’intégration clairs qui vous permettent de travailler dans un large écosystème.
En conclusion, vous devez prendre une décision sur ce qui vous apporte le plus de valeur ainsi qu’à vos parties prenantes, et envisager les fournisseurs appropriés qui ont de l’expérience dans la fourniture des systèmes sous-jacents. Ces systèmes sont essentiels à votre réussite. Se reposer sur des partenaires consiste aussi à tirer profit des connaissances et des économies d’échelle qu’ils obtiennent en travaillant avec plusieurs entreprises et organisations.
Shaun O’Meara, Field CTO chez Mirantis