Architecture cloud native et services de conteneurs
Outre la plateforme elle-même, une solution cloud native efficace requiert des services d'infrastructure supplémentaires. Il arrive que ces derniers soient fournis avec les déploiements ou ajoutés en tant que services distincts. Ils comprennent bien souvent certaines fonctionnalités de base, comme :
- le registre de conteneurs,
- un Ingress,
- l'équilibreur de charge,
- les objets secrets,
- le gestionnaire de certificats, etc.
Les applications cloud natives sur Nutanix
De plus en plus d'entreprises créent et déploient des applications cloud natives sur la plateforme Nutanix. À ce titre, bon nombre des services de base dont elles dépendent sont désormais exécutés sur la plateforme. Il s'agit notamment :
- des bases de données (par ex., Redis, Postgres),
- Pub/Sub (Kafka),
- de l’indexation (ElasticSearch),
- des services CI/CD (Gitlab, Jenkins),
- du stockage (Portworx, MayaData, Minio, Red Hat).
Différentes entreprises ont développé des offres permettant de gérer ou prendre en charge ces applications cloud natives sur la distribution Kubernetes du choix du client. L'exemple le plus connu est peut-être celui des services de données Microsoft Azure Arc. Ils proposent Postgres et MS SQL en tant que services managés dans les environnements des clients, mais il en existe aussi beaucoup d'autres. Par exemple : Confluent pour Kafka, Crunchy Data pour Postgres, Redis Enterprise pour Redis, Percona, ElasticSearch, Minio, Mayadata, etc.
Le rôle des conteneurs dans un système cloud native
Les conteneurs constituent l’unité atomique des logiciels cloud native. Un conteneur comprend un morceau de code empaqueté avec toutes ses dépendances (binaires, bibliothèques, etc.). Il est exécuté en tant que processus isolé et il en résulte alors un nouveau niveau d'abstraction. À l'instar de la machine virtuelle (VM) qui extrait les ressources de calcul du matériel sous-jacent, un conteneur extrait une application du système d’exploitation (OS) sous-jacent.
Les conteneurs diffèrent des machines virtuelles sur plusieurs aspects. Leur empreinte est considérablement réduite en termes de ressources, et ils peuvent être créés plus rapidement. Ils sont aussi plus faciles à transférer d'un environnement cloud native à un autre. Contrairement aux VM, ils sont éphémères de nature.
Les conteneurs ouvrent la voie à l'architecture logicielle en microservices, soit l’architecture cloud native. Les applications traditionnelles sont monolithiques par nature. Les applications cloud natives, quant à elles, sont construites comme des collections de pièces plus petites et composables (services). Elles peuvent ainsi évoluer indépendamment et permettre des mises à niveau non perturbatrices. Un service comprend un ou plusieurs conteneurs qui remplissent une fonction commune.
Les applications conteneurisées et basées sur des microservices permettent des pratiques de développement logiciel rationalisées et accélérées. Ces pratiques requièrent une intégration et une coordination plus étroites entre les développeurs et l'équipe chargée des opérations informatiques. Ensemble, ils forment ce qu'on appelle le DevOps informatique.