Les organisations qui poursuivent (ou entament) leur transformation numérique doivent adopter de nouvelles façons d’utiliser et de déployer les technologies d’intégration. Objectif : tirer parti des avantages du cloud, des conteneurs et des microservices. Sans négliger la protection de leurs données…
Dans les architectures d’application modernes, la capacité à apporter rapidement des modifications à l’environnement de production donne un avantage certain. Être plus agile est devenu un atout majeur face à des concurrents réactifs ou disruptifs.
Les professionnels en ont conscience. Selon une étude récente de Market Research Expertz, 78 % des responsables informatiques souhaitent accélérer le cycle de livraison des applications et du développement grâce au DevOps et aux méthodes agiles. Si actuellement un tiers des sondés de cette étude disent utiliser les conteneurs, cette proportion devrait rapidement progresser de 27 à 47 %.
Par agilité, nous entendons la capacité d’adapter les changements continus dans le développement de logiciels et d’apporter les améliorations là où elles sont nécessaires. Dans le développement de logiciels, cette méthodologie permet d’effectuer des itérations continues de développement et de test tout au long de la phase de développement du logiciel.
Conteneurs & Cloud : Évolutivité et flexibilité
Les conteneurs et les microservices apparaissent comme deux éléments clés d’une stratégie de trandformation numérique. En termes simples, les conteneurs offrent une forme d’isolation des processus qui est beaucoup plus légère que la virtualisation. Ils favorisent ainsi la portabilité, en permettant aux applications de s’exécuter à l’endroit le plus approprié et le plus souple (cloud public ou privé, on-premise…).
La conteneurisation permet également aux applications de démarrer plus rapidement et d’adapter automatiquement les ressources du cloud à la demande. En outre, le DevOps maximise les avantages de la conteneurisation en offrant la flexibilité, la portabilité et l’efficacité nécessaires à une politique time to market.
Les conteneurs permettent également de créer un ensemble commun de blocs de construction qui peuvent être réutilisés à n’importe quel stade du développement pour recréer des environnements identiques pour le développement, les tests, la mise en scène et la production, ce qui étend le concept de « écrire une fois, déployer n’importe où ».
Cette architecture offre une agilité qui n’est pas réalisable avec les VM. En outre, les conteneurs prennent en charge un modèle plus flexible en matière de ressources de calcul et de mémoire, et ils permettent des modes de rupture de ressources afin que les applications puissent consommer plus de ressources, si nécessaire, dans les limites définies. En d’autres termes, les conteneurs offrent une évolutivité et une flexibilité que vous ne pouvez pas obtenir en exécutant une application sur une machine virtuelle.
Ce cher legacy
Les microservices permettent de réduire la complexité en traitant les logiciels comme de petits morceaux de code digestibles et agiles, livrés comme un « service » plutôt que comme un programme logiciel traditionnel. Les microservices remplacent de plus en plus le legacy, coûteux et difficile à gérer.
Couplés au cloud, ces deux maillons sont essentiels pour devenir plus agile. Ils accélèrent non seulement la sortie de nouveaux logiciels, mais ils peuvent aussi contribuer à réduire la complexité du code logiciel qui est trop souvent à l’origine de failles de sécurité.
Si la rapidité, l’agilité et la flexibilité sont les principales promesses de la conteneurisation avec DevOps, la sécurité doit rester un facteur essentiel. D’où cette culture DevSecOps qui intègre la sécurité dans le développement d’applications dès le début et tout au long du cycle de vie d’une application conteneurisée.
Il est donc indispensable de mettre en place une politique de sécurité adaptée ! Lorsqu’il s’agit de gérer les nouveaux risques liés aux conteneurs, de nombreuses équipes de sécurité adoptent l’une des deux approches suivantes : ignorer cette problématique ou la traiter par une solution de sécurité. Deux approches qui ne garantissent pas un niveau suffisant de protection.
Migration en plusieurs étapes
Du point de vue de la sécurité, la véritable valeur des conteneurs et des microservices ne peut être atteinte que lorsqu’ils sont sécurisés dans le cadre d’une stratégie globale de sécurité dans le cloud qui repose sur des normes. Il est essentiel que l’équipe de sécurité se concentre sur la détection et la correction des vulnérabilités connues, ainsi que sur l’identification de nouvelles vulnérabilités (que l’on appelle également « 0-day »).
Au final, la containerisation permet d’obtenir, selon les termes utilisés par Microsoft, des applications optimisées pour le Cloud (Cloud Optimized applications). En divisant un logiciel complexe en plusieurs modules indépendants, la transition vers le Cloud est plus efficace et se déroule de manière plus fluide. Elle permet une migration en plusieurs étapes d’un logiciel sans toucher le code de l’application.
Mais il ne peut y avoir d’agilité sans sécurité.