IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'adoption de Kubernetes par les développeurs est en hausse et le serverless en baisse,
Selon une enquête du Cloud Native Computing Foundation

Le , par Bruno

101PARTAGES

8  0 
Dans un rapport publié le 20 décembre à l’issue d’une enquête menée par le cabinet d'études SlashData auprès de plus de 19 000 développeurs de 155 pays fin 2020 et début 2021, la Cloud Native Computing Foundation (CNCF), qui a ordonné l’enquête, révèle que l'adoption du système d'orchestration de conteneurs Kubernetes est en hausse, et que le serverless par contre est en baisse. L'enquête a également révélé que 5,6 millions de développeurs utilisaient Kubernetes au premier trimestre 2021, soit une augmentation de 67 % par rapport au premier trimestre 2020. Les technologies de périphérie présentent le taux d'adoption de Kubernetes le plus élevé de tous les secteurs étudiés.

Kubernetes est une plateforme d'orchestration de conteneurs opens source qui permet l'exploitation d'un framework de serveur web élastique pour les applications en cloud. Kubernetes peut prendre en charge l'externalisation de centres de données vers des fournisseurs de services de cloud public ou peut être utilisé pour l'hébergement web à l'échelle. Les sites Web et les applications mobiles comportant un code personnalisé complexe peuvent être déployés à l'aide de Kubernetes sur du matériel de base afin de réduire les coûts de mise à disposition des serveurs Web auprès des hôtes du cloud public et d'optimiser les processus de développement logiciel.


La proportion de développeurs impliqués dans l'architecture sans serveur a chuté de 27 % à 24 %, selon l'enquête. L'informatique sans serveur implique l'allocation dynamique de cycles de calcul via des services tels que AWS Lambda. Selon le rapport, cette tendance à la baisse pourrait être due au manque de flexibilité des solutions sans serveur, les entreprises ayant peur de s'enfermer dans des fournisseurs spécifiques. AWS Lambda reste la sans serveur la plus populaire, utilisée par 53 % des développeurs. Selon une étude de Red Hat, l'attrait des développeurs pour les conteneurs et Kubernetes est principalement motivé par l'évolution de leur carrière.

Caractéristiques de Kubernetes

Kubernetes offre la possibilité d'automatiser le provisionnement des serveurs web en fonction du niveau de trafic web en production. Le matériel des serveurs Web peut être situé dans différents centres de données, sur différents matériels, ou par l'intermédiaire de différents fournisseurs d'hébergement. Kubernetes met à l'échelle les serveurs Web en fonction de la demande des applications logicielles, puis dégrade les instances de serveurs Web pendant les temps d'arrêt. Kubernetes dispose également de capacités avancées d'équilibrage de charge pour l'acheminement du trafic web vers les serveurs web en exploitation.

Architecture de Kubernetes et fonctionnement

Kubernetes a évolué à partir du code que Google utilisait pour gérer ses centres de données à l'échelle avec la plateforme « Borg ». AWS a présenté au public les cadres de serveurs web élastiques avec le lancement de la plateforme EC2. Kubernetes permet aux entreprises d'orchestrer des conteneurs comme EC2 mais en utilisant un code open source. Google, AWS, Azure et les autres grands hébergeurs de nuages publics offrent tous une prise en charge de Kubernetes pour l'orchestration de serveurs web en nuage. Les clients peuvent utiliser Kubernetes pour l'externalisation complète des centres de données, les applications web/mobiles, le support SaaS, l'hébergement web en nuage ou le calcul haute performance.

Terminologie de Kubernetes

Kubernetes (souvent abrégé en "K8s" fait partie de la Cloud Native Computing Foundation, qui soutient le développement de normes de mise en réseau partagées dans les logiciels de gestion de centres de données en cloud. Docker est la norme de virtualisation de conteneurs la plus populaire utilisée par Kubernetes. Docker offre des outils intégrés de développement du cycle de vie des logiciels pour les équipes de programmeurs. RancherOS, CoreOS et Alpine Linux sont des systèmes d'exploitation populaires spécifiquement conçus pour l'utilisation de conteneurs. La virtualisation des conteneurs est différente des outils VM ou VPS utilisant des hyperviseurs et nécessite généralement une empreinte de système d'exploitation plus petite en production.

Où les utilisateurs de Kubernetes exécutent-ils leur code ?


Avantages de Kubernetes

Le principal avantage de Kubernetes est la possibilité d'exploiter une plateforme de serveurs Web automatisée et élastique en production sans être lié à AWS par le service EC2. Kubernetes fonctionne sur la plupart des services d'hébergement en cloud public. Kubernetes permet l'externalisation complète du centre de données d'une entreprise. Kubernetes peut également être utilisé pour faire évoluer les applications web et mobiles en production vers les plus hauts niveaux de trafic web. Il permet à n'importe quelle entreprise d'exploiter son code logiciel au même niveau d'évolutivité que les plus grandes entreprises du monde.

Orchestration de conteneurs

L'orchestration de conteneurs est la gestion de serveurs web individuels fonctionnant dans des conteneurs par le biais de partitions virtuelles sur le matériel du centre de données. L'orchestration de conteneurs est un moyen de maintenir le cadre élastique des serveurs Web dans un centre de données sur une base automatisée en production. Les administrateurs peuvent établir des ressources qui peuvent être automatiquement démarrées si le trafic web augmente au-delà de la capacité d'un seul serveur. Pour les applications SaaS, cela peut permettre de prendre en charge des millions d'utilisateurs simultanés.

Kubernetes et Docker

Kubernetes est une plateforme d'orchestration de conteneurs à code source ouvert. Docker est la principale norme de virtualisation de conteneurs utilisée avec Kubernetes. Les autres systèmes d'orchestration de serveurs web élastiques sont Docker Swarm, CoreOS Tectonic et Mesosphere. Intel dispose également d'une norme de conteneur concurrente avec Kata, et il existe plusieurs versions de conteneurs Linux. Docker détient la plus grande part du marché de la virtualisation de conteneurs pour les produits logiciels. Docker est une société de développement de logiciels spécialisée dans la virtualisation de conteneurs, tandis que Kubernetes est un projet open source soutenu par une communauté de codeurs qui comprend des programmeurs professionnels de toutes les grandes entreprises informatiques.

Informatique sans serveur

L'nformatique sans serveur ou serverless est un modèle de développement cloud-native qui permet aux développeurs de créer et d'exécuter des applications sans avoir à gérer des serveurs. Ce modèle nécessite quand même des serveurs, mais leur gestion est dissociée du développement des applications. Un fournisseur de cloud se charge du travail de routine : il approvisionne l'infrastructure de serveurs, assure son bon fonctionnement et la met à l'échelle. Les développeurs n'ont alors plus qu'à mettre en paquet leur code dans des conteneurs pour déployer les applications.

Une fois que les applications sans serveur sont déployées, elles répondent à la demande et se mettent à l'échelle automatiquement en cas de besoin. En général, les offres sans serveur des fournisseurs de cloud public sont facturées à la demande, sur la base d'un modèle d'exécution orienté événements. Par conséquent, lorsqu'une fonction sans serveur est inactive, elle ne coûte rien.

Architecture de serverless et fonctionnement

L'informatique sans serveur se distingue des autres modèles de cloud computing, car le fournisseur de cloud est non seulement responsable de la gestion de l'infrastructure cloud, mais aussi de la mise à l'échelle des applications. Les applications sans serveur sont déployées dans des conteneurs qui démarrent automatiquement sur simple demande.

Dans un modèle standard de cloud computing IaaS (Infrastructure-as-a-Service), les utilisateurs achètent à l'avance des unités de capacité. Ainsi, ils paient un fournisseur de cloud public pour des composants de serveur actifs en permanence pour l'exécution de leurs applications. Il incombe à l'utilisateur d'augmenter la capacité du serveur pendant les périodes de forte demande et de la réduire lorsque cette capacité n'est plus nécessaire. L'infrastructure cloud reste active même lorsque l'application n'est pas utilisée.

Avec une architecture sans serveur, en revanche, les applications ne sont lancées qu'en cas de besoin. Lorsqu'un événement déclenche l'exécution d'un code d'application, le fournisseur de cloud public alloue des ressources pour ce code de manière dynamique. L'utilisateur cesse de payer une fois le code exécuté. En plus des avantages qu'il offre en matière de coûts et d'efficacité, le modèle sans serveur libère les développeurs des tâches courantes et subalternes associées à la mise à l'échelle des applications et à l'approvisionnement des serveurs.

L'informatique sans serveur permet de sous-traiter à un fournisseur de services cloud les tâches courantes telles que la gestion du système d'exploitation et du système de fichiers, l'application des correctifs de sécurité, l'équilibrage de la charge, la gestion de la capacité, la mise à l'échelle, la journalisation et la surveillance.
Il est également possible de créer une application entièrement serverless ou une application qui intègre des composants de type microservices partiellement sans serveur et partiellement traditionnels.

Dans l'ensemble, l'utilisation des technologies natives du cloud par les développeurs back-end a diminué en Amérique du Nord, en Europe de l'Est et au Moyen-Orient/Afrique, selon le rapport CNCF. Ce rapport indique qu'il y a 6,8 millions de développeurs cloud-native dans le monde, soit une augmentation de 0,3 million, dont 4,6 millions utilisent des outils d'orchestration de conteneurs et 4 millions des plateformes serverless, avec un chevauchement de 1,8 million de développeurs utilisant les deux.

Les précédents rapports CNCF de SlashData, de mai 2020 et août 2020, dénombraient respectivement 4,7 millions et 6,5 millions de développeurs cloud-native. Dans le même temps, la proportion de développeurs back-end utilisant des technologies cloud-natives a diminué de trois points de pourcentage, à 41 %, en raison de la baisse de l'adoption de l'architecture serverless. La croissance de la population des développeurs "cloud-native" a été stimulée par une augmentation du nombre total de développeurs "back-end", qui est passé de 14,7 millions à 16,6 millions, indique le rapport. L'approche "cloud-native" est illustrée par des technologies telles que les microservices, l'infrastructure immuable et les API déclaratives.

L'état du développement « cloud native » au 1er trimestre 2021


Le rapport révèle que la différence entre l'utilisation des conteneurs et de Kubernetes n'est que de 5 % au sein des grandes entreprises qui affichent des taux d'adoption élevés pour les conteneurs (83 %) et Kubernetes (78 %). Les technologies qui présentent la plus grande différence entre l'utilisation des conteneurs et de Kubernetes parmi les développeurs travaillant dans de grandes entreprises sont les voitures autonomes, la biométrie pour la vérification d'identité, les applications blockchain autres que les cryptomonnaies et la 5G.

Source : CNCF

Et vous ?

Que pensez-vous de Kubernetes ?

Quel commentaire faites-vous de la baisse de l'adoption des serverless au profit de Kubernetes ?

Voir aussi :

L'attrait des développeurs pour les conteneurs et Kubernetes est principalement motivé par l'évolution de leur carrière, selon une étude de Red Hat

Les dépenses liées à la plateforme d'orchestration de containers Kubernetes sont difficilement maîtrisées, selon un nouveau rapport de la CNCF en collaboration avec a Fondation FinOps

Kubernetes 1.18 est disponible et apporte la prise en charge de ContainerD sous Windows, Canonical a déjà annoncé la prise en charge de cette version

La version 1.23 Kubernetes est annoncée avec la mise en réseau IPv4/IPv6 en double pile et Pod Security en version bêta

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de defZero
Membre extrêmement actif https://www.developpez.com
Le 27/12/2021 à 23:55
Que pensez-vous de Kubernetes ?

C'est l'orchestrateur de container le plus utilisé (merci Google) et donc les plus intéressant à utiliser (beaucoup de ressources dispo).

Quel commentaire faites-vous de la baisse de l'adoption des serverless au profit de Kubernetes ?

En quoi les deux notions sont mutuellement exclusive ?

Développer avec des conteneurs permet de faire du serverless selon l'infra utilisé (AWS, GCloud, Azure, ....etc) et donc peut utilisé Kubernetes qui reste l'orchestrateur on est pas au même niveau d'abstraction.

La relation d'exclusion mutuelle et plus du coté du choix d'utiliser des PaaS / IaaS qui n'offres pas les mêmes niveaux d'abstractions / indépendances vis à vis des projets (cf.: OpenStack par exemple)

Et faire de l'orchestration de containers en étant sur un même serveur, ça n'as pas masse d'intérêt pour de la prod, sauf peut-être de complexifier la maintenance.
2  0