L'économie de l'innovation numérique
Quel est le lien entre le Cloud Computing et DevOps ? DevOps est-il juste "l'informatique pour le Cloud" ? DevOps est-il limité au Cloud ? Est-ce que faire du Cloud impose DevOps ? La réponse à ces trois questions est "non". Le Cloud et DevOps sont indépendants mais restent des stratégies qui se renforcent mutuellement lorsqu'il s'agit d'apporter de la valeur via l'informatique.
Pour comprendre le lien qui unit le Cloud et DevOps, il faut prendre du recul et voir le contexte dans lequel ils prennent place. Le Cloud et DevOps ont évolué pour répondre à trois transformations sociales fondamentales. Premièrement, nous sommes au coeur de la transition d'une économie de produit à une économie de service. L'accent est mis non pas sur les objets mais sur les expériences. Les entreprises créent toujours des produits mais les entourent de services. BMW inclut la maintenance dans le prix d'une voiture neuve. Cadillac intègre le service OnStar dans ses véhicules. Une bonne partie de la puissance de l'iPhone vient de son intégration de iCloud et iTunes.
La transition de produits à services a un impact également sur le mécanisme de livraison logicielle. Jusqu'à maintenant, les éditeurs développaient un produit et le livraient au client qui prenait en charge le reste des opérations. Avec l'arrivée du Cloud, la majeur partie de ces entreprises gère maintenant l'opérationnel pour ses clients.
Le logiciel en tant que service se met en place à tous les étages de l'informatique. Tout en bas, l'infrastructure en tant que service fournit, à la demande, les machines virtuelles, le réseau et le stockage. La plateforme en tant que service fournit les bases de données, le cache, les moteurs de workflow et les conteneurs d'application. Le logiciel en tant que service fournit les fonctionnalités. À chaque niveau, ces fournisseurs permettent aux clients d'utiliser des services, de payer en fonction de leur utilisation et de laisser la responsabilité de leur gestion au fournisseur.
Deuxièmement, l'environnement entrepreneurial du 21e siècle force les entreprises à changer leur fonctionnement centré sur la stabilité et l'efficacité pour un fonctionnement agile et innovant. Le rythme s'accélère. Kodak a prospéré pendant des centaines d'années avant de devoir faire face à l'arrivée de la concurrence sur le marché. Microsoft a vu le vent tourner après à peine trente ans. Apple est passé, en deux ans, de l'entreprise la plus cotée à un point d'interrogation.
Pour s'adapter au marché, les entreprises doivent revoir leur approche du travail. Les cycles doivent être réduits, la fréquence de livraison augmentée et une attitude d'expérimentation permanente doit être adoptée. Les médias sociaux font passer le pouvoir du producteur au consommateur. La logique marketing n'est plus de diriger le comportement mais d'y répondre. De l'entreprise elle-même jusqu'à ses employés, l'accent doit être mis sur la réactivité créative et sur la réduction de tout ce qui pourrait l'empêcher.
Troisièmement, le numérique se mélange complètement au physique. Votre voiture est-elle faite de métal et de plastique ou est-ce un client Pandora ? Votre CVC est-il en train de créer une merveille sur la dynamique des fluides ou une merveille du Big Data ? La librairie du coin est-elle faite pour trouver des livres sur les étagères ou pour les consulter en ligne ? La réponse est "les deux".
L'intégration du numérique dans la vie de tous les jours augmente les enjeux liés à l'informatique. Nous arrivons à un point auquel il devient pratiquement impossible de réaliser la moindre activité sans recourir à la technologie numérique. Les entreprises dépendent de l'informatique pour exister et cette dernière se doit de fournir une plateforme convaincante aux entreprises qui veulent s'adapter.
Permettre l'agilité
Quel est le rapport entre ces transformations, le Cloud et DevOps ? Le Cloud répond directement au besoin d'agilité. À l'origine, c'était un moyen de faire des économies en transférant l'argent des investissements (CapEx) vers des dépenses opérationnelles (OpEx). Il est depuis évident que sa force réside dans la réduction d'un gaspillage qui empêche d'être rapide et détourne l'effort. Peu d'entreprises identifient la gestion d'un data center comme partie intégrante de leur activité. Les services Cloud permettent aux départements informatiques de se décharger de la responsabilité de l'opérationnel, comme le provisionning ou l'application de correctifs sur les systèmes d'exploitation, et de se concentrer sur l'apport de valeur ajoutée pour l'entreprise.
Le passage d'une économie de produit à une économie de service, en parallèle de l'intégration du numérique, signifie que les entreprises deviennent fournisseurs de services informatiques mais également clients de ces derniers. Aujourd'hui, 99% de mes interactions avec ma banque passent par leur site ou leur application mobile. Mon jugement se base sur la qualité de nos interactions numériques. J'évalue cela par rapport aux fonctionnalités, à l'opérabilité et à la façon dont c'est délivré. Je m'attends au même niveau de qualité sur tous ces aspects.
Le Cloud permet une plus grande agilité du business en rendant les infrastructures informatiques plus flexibles. Il rend possible la création d'un lien numérique entre les entreprises et leurs clients. Le Cloud n'est qu'une partie de la réponse à la question du business rendu adaptatif par l'informatique. Qu'une application tourne dans le data center de l'entreprise ou sur un Cloud, qu'il soit privé ou public, elle doit toujours être en phase avec les besoins business et non pas l'inverse. Une organisation en silos avec des processus manuels crée du gâchis et empêche la production continue ainsi que l'expérimentation. Des procédures de changement, coûteuses et longues à exécuter, provoquent une certaine forme de frustration et poussent les clients, comme les développeurs, à éviter de passer par l'informatique.
Les organisations opérationnelles se voient souvent attribué le malheureux surnom du "département du Non". Certaines entreprises frustrées attribuaient ce même surnom au pôle de développement. La mouvance Agile a permis une grande avancée dans l'établissement d'une confiance mutuelle entre business et développeurs. Agile peut prendre plusieurs formes et a ses propres défauts. Les racines d'Agile résident cependant dans l'optimisation du développement pour qu'il embrasse le changement plutôt que de le redouter.
Fonctionnel et Opérationnel sont inséparables
Du point de vue DevOps, l'importance du Logiciel en tant que Service est qu'il efface la séparation entre fonctionnel et opérationnel. Les utilisateurs expérimentent ces deux aspects comme un tout mais s'attendent à un haut niveau de qualité pour chacun. Ils attendent également des fournisseurs l'apport de changements en plus de cette qualité.
Ces attentes obligent l'adoption d'une approche fondamentalement différente en ce qui concerne la livraison de logiciels. Séparer le développement de l'opérationnel est contradictoire avec cette vision d'un ensemble. Fonctionnel + Opérationnel mène naturellement à Développement + Opérationnel. C'est ce que représente DevOps, un effort pour établir la même confiance dans le Logiciel en tant que Service qu'Agile a su établir pour le Logiciel en tant que Produit. Agile a appris au développement comment avancer à la même vitesse que le business. DevOps tente d'apprendre à l'opérationnel comment avancer à la même vitesse et avec la même flexibilité que le développement. Au 21e siècle, le succès demande un alignement radical des objectifs, des points de vue, du langage et de la cadence depuis le marketing jusqu'à l'opérationnel.
Le Cloud et DevOps ne se limitent pas au Web
Qu'en est-il des organisations informatiques dans les industries régulées ? Ne peuvent-elles pas utiliser le Cloud ? Quid des organisations informatiques qui exploitent des logiciels commerciaux plutôt que de développer leurs propres outils ? Ne peuvent-elles pas adapter le Cloud ou DevOps ? La réponse à ces deux questions est "Si, elles le peuvent".
Ces organisations ont besoin d'infrastructures flexibles, du développement jusqu'à la production. Des environnements de développement et de test partagés, centralisés, génèrent beaucoup de gâchis en polluant les données de test et en forçant à gérer les ressources. Les organisations informatiques n'ont pas besoin d'attendre pour utiliser le Cloud en production, qu'il soit privé ou public. Elles peuvent utiliser des outils comme Vagrant et Docker pour augmenter leur productivité sur les machines de bureau et les infrastructures de test.
Les entreprises qui gèrent des logiciels commerciaux doivent encore coordonner le fonctionnel et l'opérationnel. Elles doivent apporter du changement, fréquemment et de façon fiable, même si cela se limite à la configuration de règles business. Ceux qui supportent la production doivent comprendre tous les impacts d'un changement, des règles business en haut jusqu'à l'infrastructure tout en bas. Ce genre d'organisation peut tout à fait bénéficier d'une collaboration inter-fonctionnelle, d'un système de contrôle de version adapté, d'automatisations, comme n'importe quelle autre organisation.
En vérité, une économie de service, dans laquelle se fond le numérique, pourrait bien mettre au placard le simple support d'applications commerciales. L'informatique devient de plus en plus vitale pour l'apport de valeur et de plus en plus d'entreprises vont devoir investir dans une forme ou une autre de développement personnalisé, ne serait-ce que pour une intégration ou une API. La pratique de lier le développement à l'opérationnel est tout à fait pertinente.
Cloud, Agile et DevOps font partie d'une stratégie de transformation de l'informatique en un vecteur d'adaptabilité du business. Si le Cloud est un instrument, DevOps est le musicien qui en joue. Ensemble, ils aident l'informatique à passer d'une mentalité de "combien de temps tient-on sans coupure de courant ?" à "combien de temps nous prend une nouvelle fonctionnalité ?" ou "en combien de temps peut-on déployer une nouvelle fonctionnalité ?".
Adopter le Cloud et DevOps
Si vous êtes une organisation informatique "à l'ancienne" qui a du mal à s'adapter aux nouvelles exigences du marché, comment passer au cloud ou à DevOps ? Devez-vous faire éclater votre diagramme organisationnel ? Investir massivement dans un cloud privé ? Le principe d'amélioration continue est la clé de voute d'Agile, du Cloud et de DevOps. Cela doit guider votre approche dans leur adoption. L'amélioration continue doit "débuter de là où vous êtes". En vérité, il n'y a pas vraiment d'autre endroit d'où débuter.
Un business adaptatif repose sur une remise en question permanente :
- Qu'est-ce qui a changé depuis la dernière fois ?
- Comment peut-on améliorer ?
- Que peut-on faire différemment ?
- À quoi n'a-t-on pas pensé ?
L'informatique adaptative se base sur le même type de questions. Plutôt que de répondre "on ne peut pas parce que…" à chaque nouvelle idée ou méthodologie, demandez-vous :
- Pourquoi ne pourrait-on pas ?
- Comment pourrait-on ?
- Quelle-est la première étape pour aller d'ici à là ?
- Que peut-on arrêter de faire ?
Ces questions peuvent vous pousser à agir, comme essayer une nouvelle plateforme cloud, juste pour un environnement de test, ou inviter l'équipe InfoSec à intervenir pour un projet. Apprendre ce qui marche et ce qui ne marche pas pour votre organisation vous montre comment en profiter plus largement.
Pas de temps à perdre
Tout comme le business, l'informatique doit s'engager à une expérimentation continue. Les clouds publics comme AWS, ou encore Shadow IT, éloignent le business du département d'informatique interne. Le temps de la lutte pour tout garder sous contrôle est révolu. L'informatique ne doit plus être le département du "Non" mais le département du "à regarder d'urgence". Le Cloud et DevOps sont deux pratiques qui aident à gérer les plus importantes transformations - l'économie de service, la perturbation continue, l'élargissement du numérique - que subit le marché du 21e siècle.
À propos de l'auteur
Jeff Sussna est le Créateur et Président d'Ingineering.IT, une entreprise de Minneapolis spécialisée dans la livraison continue, le Cloud et la conception. Jeff a plus de vingt ans d'expérience en informatique et a dirigé des équipes à hautes performances en développement, assurance qualité et opérationnel. C'est un orateur très demandé sur les sujets de l'innovation informatique et a été classé au Top 50 Must-Read des bloggeurs informatique en 2012 et 2013 par BizTech Magazine. Il porte un grand intérêt aux intersections entre développement, opérationnel, design et business.