LE GUIDE ULTIME

Cloud Native

La Cloud Native Computing Foundation (CNCF) définit le Cloud Native comme des applications évolutives fonctionnant dans des environnements dynamiques modernes. Il est question de la manière dont les applications sont créées et déployées, mais pas du fait qu’elles soient installées sur un cloud public, privé ou hybride.

Introduction

Les entreprises qui migrent depuis un environnement sur site vers le monde du cloud doivent envisager de repenser leur infrastructure informatique. Le principe consiste à déployer l’infrastructure sur plusieurs environnements informatiques et à distribuer simultanément les applications pour soutenir la transformation numérique d’une entreprise.

Dans cet environnement informatique distribué et plus complexe, il est essentiel que les architectes d’entreprise, les DSI et les dirigeants d’entreprise disposent d’une vue d’ensemble automatisée et complète de l’infrastructure et des applications de l’entreprise.

À mesure que l’infrastructure informatique migre vers le cloud, les entreprises doivent non seulement comprendre la valeur métier du développement et du déploiement des applications Cloud Native, mais elles doivent également apprendre à relever les défis d’une gestion informatique stratégique dans des environnements multi-cloud et hybrides. Bien que le terme Cloud Native devienne omniprésent, les entreprises ne comprennent pas encore tout à fait comment bénéficier du plein potentiel du Cloud Native.

  • Que signifie vraiment Cloud Native et pourquoi est-ce si important ?
  • Que doivent savoir les architectes d’entreprise, les DSI et les développeurs pour accélérer et optimiser la transition vers le Cloud Native ?
YouTube

This content is hosted on Youtube.
By showing the external content you accept the privacy policy of Youtube.

 

Qu’est-ce que le Cloud Native ?

La Cloud Native Computing Foundation (CNCF) définit le Cloud Native comme des applications évolutives fonctionnant dans des environnements dynamiques modernes. Il est question de la manière dont les applications sont créées et déployées, mais pas du fait qu’elles soient installées sur un cloud public, privé ou hybride. Les applications Cloud Native sont conçues pour s’étendre horizontalement plutôt que verticalement et se basent sur des technologies comme les conteneurs, les microservices et les API.

L’évolutivité permet aux modules de microservice de s’améliorer individuellement sans dépendre d’aucun autre processus. La technologie garantit la résistance, l’évolutivité et la réutilisabilité des systèmes développés avec une approche Cloud Native.

En d’autres termes, une stratégie Cloud Native permet une utilisation des services commune aux applications et à d’autres services.Cloud_Native

Même si le Cloud Native est important dans le monde du développement actuel, il est également important de comprendre l’évolution de la technologie Cloud Native.

Winning in the Cloud Native World [White Paper]: A White Paper on Cloud Native  IT management for enterprises. »

Pourquoi le Cloud Native est-il important ?

Grâce à l’adoption de technologies et de pratiques Cloud Native, les entreprises peuvent créer leurs logiciels en interne, ce qui permet à des services comme les finances de collaborer étroitement avec l’informatique, de rester compétitifs et de fournir de meilleurs services à leurs clients. Les technologies de la CNCF permettent la portabilité sur le cloud sans être bloqué chez un fournisseur.

En effet, le Cloud Native présente des avantages certains par rapport au développement et à la programmation traditionnels :

  • Développement et déploiement de code plus rapides
  • Rotation plus rapide des services
  • Adoption d’une programmation sans serveur
  • Plus grande incitation à l’utilisation de processus DevOps
  • Évolutivité
  • Résilience
  • Services réutilisables

Cette fourniture rapide de services logiciels est largement due au fait qu’il est beaucoup plus simple pour les organisations d’utiliser une stratégie mono-cloud ou multi-cloud pour mettre en service et supprimer des actifs informatiques sur des plates-formes cloud (par ex. la mise en service d’un nouveau serveur prend moins de 30 secondes sur Amazon Web Services).

Une stratégie Cloud Native permet de basculer les frais généraux opérationnel des technologies de l’information vers des fournisseurs de cloud. Les entreprises peuvent ainsi concentrer leurs efforts sur l’innovation métier et sur les clients.

 

Qu’est-ce que le développement Cloud Native ?

Pourquoi le Cloud Native est-il important pour les développeurs ? Avec une architecture Cloud Native, les développeurs doivent comprendre les bases des exigences pour la création d’applications Cloud Native modernes. Le développement comprend la mise en œuvre d’une méthodologie agile, ainsi que l’adoption de pratiques DevOps, des microservices, d’une stratégie mono-cloud ou multi-cloud, et de conteneurs comme Kubernetes et Docker.

Les microservices constituent la base d’une architecture Cloud Native. Ils sont conçus pour lancer ou pour exécuter différentes fonctions de l’application. Un microservice peut, par exemple, être conçu pour la mise en œuvre d’un processus tandis qu’un autre peut être utilisé pour lancer ce processus.

Ces microservices sont souvent intégrés dans des conteneurs afin que des développeurs puissent travailler sur un ensemble de microservices plutôt que sur l’ensemble de l’application Cloud Native.
Les développeurs de logiciels doivent prendre en compte certains éléments quand ils créent des applications Cloud Native :

  • Résilience : Les applications Cloud Native doivent fonctionner en toutes circonstances. Le développement d’une application doit être réalisé en envisageant le pire scénario afin que le produit final soit une application sûre.
  • Évolutivité : Les applications Cloud Native doivent favoriser la croissance de l’infrastructure et du paysage Cloud Native d’une organisation. La prise en charge du stockage, des bases de données et du réseau nécessite, par exemple, la capacité d’étendre l’application Cloud Native afin de répondre à une demande grandissante. Les applications Cloud Native s’adaptent aux évolutions de la charge de travail.
  • Prise en charge de plusieurs langages et frameworks : Les applications Cloud Native utilisent les langages et les frameworks les mieux adaptés à chaque service.
  • Réaffectation des services : Les applications Cloud Native doivent être capables de réaffecter les services sur les autres applications et services, plutôt que de nécessiter un nouveau service pour chaque fonction.
  • API : Les applications Cloud Native utilisent des API, entre autres REST (representational state transfer) ou gRPC (Google remote procedure call), dans les services Cloud Native.
  • Agile DevOps : les applications Cloud Native nécessitent une gestion des services à l’aide des processus agiles DevOps.
  • Gouvernance : Les applications Cloud Native nécessitent un modèle de gouvernance qui utilise un ensemble défini de politiques. Les politiques sont définies par les opérations informatiques afin qu’elles puissent affecter les bonnes ressources aux développeurs et aux équipes DevOps, en vue de leur partage dans leurs services.

Quels sont les défis du Cloud Native ?

Si certaines applications peuvent aussi être compatibles cloud, il existe néanmoins une différence avec celles qui sont réellement Cloud Native. L’infrastructure des entreprises devient de plus en plus complexe. Tandis que les entreprises adoptent une stratégie de transformation numérique, elles constatent que la migration d’un environnement sur site vers le Cloud Native n’est pas un processus simple. En effet, les architectes d’entreprise, les développeurs et les DSI continuent de faire face à de multiples défis pour passer leur organisation d’un environnement sur site au cloud.

  • Complexité : Les opérations informatiques prennent en charge une infrastructure d’entreprise complexe et distribuée, qui nécessite de simplifier automatiquement la vision globale de l’environnement.
  • Dépendance au matériel : Les microservices dépendent des systèmes d’exploitation et/ou des machines qui utilisent leurs capacités pour certaines opérations comme les SSD (disques à circuits intégrés) ou les GPU (processeurs graphiques). Le matériel ne peut donc pas tomber en panne.
  • Gouvernance : La détection des risques et l’identification des vulnérabilités sont impératives compte tenu de l’exposition potentielle aux problèmes de sécurité et de conformité.
  • DevOps : Malgré l’essor de DevOps, une collaboration parfaite entre le développement (Dev) et les opérations (Ops) n’est pas encore évidente car ces équipes continuent de rechercher les meilleurs moyens de travailler ensemble.
  • Temps : Le processus de migration des actifs informatiques vers le cloud peut être long et fastidieux.
  • Revoir la conception et l’architecture : Revoir la conception et l’architecture des applications pour le cloud nécessite un effort intense.

 

La stratégie et la feuille de route du Cloud Native

Une réflexion approfondie et une bonne planification sont nécessaires pour adopter une stratégie et une feuille de route Cloud Native. Quelques points importants doivent être pris en compte par les architectes d’entreprise et les DSI qui réfléchissent à la transformation de leur organisation afin d’entrer dans le monde du Cloud Native.

Les équipes des opérations informatiques doivent évoluer pour prendre en charge le monde du Cloud Native. Au lieu de se concentrer uniquement sur l’infrastructure informatique, elles doivent apporter de la valeur à l’entreprise et s’impliquer davantage dans l’amélioration des processus et de l’automatisation, plutôt que d’être seulement les gardiennes de la technologie dans leur organisation.

En effet, le passage au Cloud Native nécessite que les charges de travail soient priorisées dans l’infrastructure. Dans le nouveau monde du Cloud Native, la synergie attendue entre les professionnels du métier et ceux de l’informatique nécessite une forte collaboration afin d’évaluer la manière dont les deux groupes travaillent ensemble, tout en déterminant la qualité de l’exécution des charges de travail dans le monde du Cloud Native. Ces équipes doivent prioriser les charges de travail anciennes ainsi que les charges nouvelles/émergentes afin de déterminer, parmi ces charges, celles qui doivent devenir Cloud Native et celles qui ne devraient pas changer.

Les développeurs devront normaliser leurs plates-formes et leurs services afin de prendre en charge une plate-forme Cloud Native en utilisant la méthodologie 12 facteurs et une architecture de microservices. Ces 12 facteurs représentent les caractéristiques d’une application Cloud Native.

 

Conclusion

Passer au monde du Cloud Native n’est pas chose facile. La prise en charge des microservices et des éléments clés qui représentent les caractéristiques du produit des applications Cloud Native doit aider une organisation à créer une infrastructure Cloud Native disposant de tout le soutien nécessaire à la sécurité inhérente au produit. Bien que l’adoption d’applications Cloud Native puisse être passionnante et permette à une entreprise de devenir beaucoup plus agile, les avantages et les défis doivent être soigneusement abordés afin de mettre en phase la stratégie Cloud Native avec l’entreprise.

Réponses aux questions fréquemment posées sur le Cloud Native

Qu’est-ce que le Cloud Native ?

Une application Cloud Native est une application qui s’étend horizontalement et qui se base sur des technologies comme les conteneurs, les microservices et les API. Ce concept permet aux entreprises de mettre en œuvre des décisions technologiques plus agiles et plus rapides. Cloud Native fait référence à la création et la fourniture de ces applications, mais pas à l’utilisation du stockage cloud.

Quels sont les avantages de Cloud Native par rapport au développement et à la programmation traditionnels ?

Cloud Native possède des avantages certains par rapport au développement et à la programmation traditionnels :

  • Développement et déploiement de code plus rapides
  • Rotation plus rapide des services
  • Adoption d’une programmation sans serveur
  • Plus grande incitation à l’utilisation de processus DevOps
  • Évolutivité
  • Résilience
  • Services réutilisables

Que doivent prendre en compte les développeurs de logiciels quand ils créent des applications Cloud Native ?

Résilience : Les applications Cloud Native doivent fonctionner en toutes circonstances. Le développement d’une application doit être réalisé en envisageant le pire scénario afin que le produit final soit une application sûre.

Évolutivité : Les applications Cloud Native doivent favoriser la croissance de l’infrastructure et du paysage Cloud Native d’une organisation. La prise en charge du stockage, des bases de données et du réseau nécessite, par exemple, la capacité d’étendre l’application Cloud Native afin de répondre à une demande grandissante. Les applications Cloud Native s’adaptent aux évolutions de la charge de travail. Prise en charge de plusieurs langages et frameworks : Les applications Cloud Native utilisent les langages et les frameworks les mieux adaptés à chaque service.

Réaffectation des services : Les applications Cloud Native doivent être capables de réaffecter les services sur les autres applications et services, plutôt que de nécessiter un nouveau service pour chaque fonction.

API : Les applications Cloud Native utilisent des API, entre autres REST (representational state transfer) ou gRPC (Google remote procedure call), dans les services Cloud Native.

Agile DevOps : les applications Cloud Native nécessitent une gestion des services à l’aide des processus agiles DevOps.

Gouvernance : Les applications Cloud Native nécessitent un modèle de gouvernance qui utilise un ensemble défini de politiques. Les politiques sont définies par les opérations informatiques afin qu’elles puissent affecter les bonnes ressources aux développeurs et aux équipes DevOps, en vue de leur partage dans leurs services.