Rencontrez nos experts
English Content

Articles récent

ICT Experts LuxembourgICT & Cloud DevOps : vers l’infrastructure self-service
Blog ICT Experts - DevOps

DevOps : vers l’infrastructure self-service

DevOps est le rapprochement entre l’univers du développement et celui de l’infrastructure. Le développement logiciel devient une collaboration étroite entre deux mondes qui travaillaient traditionnellement de manière cloisonnée. Aujourd’hui, l’échange de compétences est de mise. Chacun acquiert du métier de l’autre des idées et pratiques pour développer sa propre efficacité.
Les développeurs ont besoin de connaissances réseau et système pour déployer leurs applications sur des infrastructures virtuelles. Tandis que les Ops acquièrent les bonnes pratiques issues du développement d’applications fonctionnelles, l’infrastructure s’automatise et devient plus fiable à mesure que les profils IT deviennent plus hybrides.

L’infrastructure embrasse de nouveaux concepts

  • Infrastructure as code

Au nombre des nouvelles tendances, on compte l’infrastructure as code qui conçoit la configuration de l’infrastructure comme la gestion des fichiers sources d’une application. Elle peut alors être régie par un outil de gestion de versions pour suivre l’évolution et mieux gérer son exécution.
Des outils de provisionnement tels que Chef, Puppet ou Ansible, sont en plein essor. Ils remplacent progressivement l’utilisation de scripts par une formalisation déclarative de l’état dans lequel les serveurs doivent se trouver à la fin de leur configuration.

  • Infrastructure immuable

Ces outils atteignent pourtant leurs limites. D’abord parce qu’ils sont conçus pour opérer sur des serveurs existants. Ensuite parce que la configuration des serveurs évolue et s’altère au fil du temps en rendant l’exécution de ces outils imprévisible. A l’heure du Cloud privé ou public, la création d’un serveur est l’affaire d’un simple appel d’API. Il est donc possible d’industrialiser la construction et destruction d’instances virtuelles par l’utilisation d’outil de provisionnement dédiés comme Terraform par exemple.
Quant à l’instabilité liée à l’évolution du serveur, la solution est aussi simple que radicale : la configuration d’un serveur doit être systématiquement reconstruite et ne plus changer au cours de la vie du serveur. On parle alors d’infrastructure immuable.

  • Docker

Les développeurs d’applications utilisent déjà ce paradigme lorsqu’ils font usage de la containérisation à l’aide de Docker par exemple. Sur ce type de plateformes, les applications sont construites à partir d’un système de fichier de base, auquel on ajoute le nécessaire pour l’exécution de l’application, ainsi que son script ou binaire. Lorsqu’une nouvelle version est nécessaire, ce processus est répété et le conteneur précédent est détruit pour être remplacé par une nouvelle instance. Pour fiabiliser ce processus, il est nécessaire d’appliquer les pratiques bien connues des développeurs : la création des conteneurs est automatisée par la mise en place d’une chaîne d’intégration et/ou de déploiement continu, permettant de construire les images et d’exécuter les tests au fil du développement pour s’assurer de son bon fonctionnement.

  • Chaîne automatisée

Docker n’est pas la réponse ultime à tous les cas de figure. Il est en effet fréquent de devoir se reposer sur la création de machines virtuelles pour exécuter des services. Mais le principe reste le même. Les images sont construites sur une chaîne automatisée à partir de l’installation de base du système d’exploitation. On y ajoute l’installation des services nécessaires et souvent d’une application. Cette image est instanciée, les volumes de données éventuellement montés. Des tests peuvent être menés pour s’assurer de la conformité de l’image, opération primordiale pour s’assurer du bon fonctionnement des images avant leur utilisation en production.

Les systèmes de fichiers contenant les exécutables peuvent être placés en lecture seule. Plus aucune modification ne doit pouvoir être réalisée manuellement, renforçant ainsi la sécurité des installations.

Même dans le cas d’opérations comme le provisionnement d’hôtes physiques et leur inclusion dans une IaaS, des solutions existent. Elles sont notamment basées sur PXE (Pre-Boot eXecution Environment). La gestion d’un data centre s’oriente donc vers le maintien d’une chaîne automatisée, qui débute à l’allumage du serveur puis déclenche l’installation du nécessaire sans aucune autre intervention humaine. Cette automatisation s’appuie sur des pratiques de développement d’applications traditionnelles.

  • IaaS & réseau virtuel

Les plateformes IaaS ne permettent pas uniquement l’instanciation de serveurs : le réseau peut lui aussi être virtuel. Il est en effet possible de provisionner une architecture qui corresponde aux besoins de l’application et permette de déployer différents composants sur différents sous-réseaux. Des règles de communication strictes renforcent la sécurisation de l’ensemble.

Cette configuration peut alors faire partie du code de l’application elle-même et évoluer tout comme les besoins fonctionnels. Les équipes de développement doivent pour cela disposer des compétences pour faire évoluer cette architecture et des connaissances système pour la constitution des images Docker ou de VM.

Vers une organisation plus d’autonome

Comment s’organiser autour de ces concepts ? Les géants du Web se tournent vers l’architecture en micro-services pour répondre partiellement à cette question. Au-delà des considérations techniques, celle-ci consiste à confier à des équipes de développement un périmètre fonctionnel réduit, en échange d’une grande autonomie. Elles sont en contact direct avec le métier, dont elles prennent en charge le déploiement en production des applications avec une agilité inédite.

Attendre la disponibilité d’un administrateur pour le déploiement d’un schéma de base de données ou la mise à disposition d’un espace de stockage par l’équipe système est aujourd’hui problématique car ce délai d’attente bloque la livraison des applications sur des cycles courts.
Les Ops doivent fournir le nécessaire pour permettre aux autres équipes d’être complètement autonomes. La mise à disposition des ressources devient l’affaire de quelques clics, ou mieux, d’un simple appel d’API permettant aux développeurs d’automatiser le déploiement de leur application. Pour pouvoir atteindre ce degré de service, les équipes auparavant exclusivement composées de spécialistes, se voient adjoindre des compétences de développement.

Les spécialistes du Cloud l’ont bien compris.  Sur les plateformes Microsoft Azure ou Amazon Web Service (AWS), les développeurs disposent de manière simple et rapide de l’ensemble des ressources dont ils pourraient avoir besoin : de l’hébergement des applications jusqu’à la création des médias de persistance (base de données, stockage…), en passant par la sauvegarde et le monitoring.

L’organisation de demain utilise le numérique comme un axe de compétitivité.

Si elle souhaite conserver la gestion de son infrastructure, elle devra alors imiter les Clouds publiques et offrir ses services de manière à conserver l’autonomie des développeurs. Ce n’est cependant pas la voie unique et beaucoup feront le choix d’utiliser les Clouds publiques ou semi-privés.

Aux côtés de spécialistes systèmes, administrateurs de base de données ou réseau, il convient d’intégrer des développeurs dans l’objectif de préserver l’autonomie globale de l’organisation et d’accélérer l’évolution de ses produits et services pour accroître la satisfaction des utilisateurs finaux.

En qualité de Manager Expert chez InTech, j’ai développé une expertise dans de nombreux domaines tels qu’en ingénierie logicielle, en méthodes et qualité, en architectures logicielles et dans le développement de la sécurité.

POST et ses filiales fédèrent un ensemble de compétences couvrant l’ensemble de l’IT (réseau, télécom, systèmes, développement), permettant la réalisation de projets ambitieux et innovants.

Depuis mon diplôme d’ingénieur de l’ESSTIN (Nancy, France), j’ai acquis 10 ans d’expérience qui m’ont permis de découvrir une grande diversité de cultures d’entreprise. En effet, pour le compte d’InTech, j’ai travaillé pour des places financières telles que Caceis ou la Banque du Luxembourg ou encore des startups telles que Flashiz.

Ayant eu mon 1er ordinateur à 8 ans, je me suis intéressé relativement tôt au domaine des nouvelles technologies. Cette passion m’a suivi jusqu’à en faire mon métier. C’est un domaine qui mêle à la fois créativité, innovation et savoir-faire mais pas que… Un analyste fonctionnel m’a dit un jour, suite à une expérience malheureuse avec l’un de mes prédécesseurs « Avec toi, au moins, on peut discuter et travailler en équipe ». On oublie trop souvent que l’IT (comme la plupart des métiers) est avant tout une affaire de personnes qui communiquent entre elles, et que sa finalité est de rendre service aux autres.

Dans ma vie extra-professionnelle, j’aime aller nager. Dans l’eau, la vie est simple et les problèmes s’effacent. J’aime aussi le squash qui m’amène à me dépasser et à donner le meilleur de moi-même, aussi bien tactiquement que physiquement.

Pas de commentaires

Laisser une réponse