Cloud
Le cloud natif est une approche de création et d'exécution d'applications qui exploite les technologies de cloud computing. Elle inclut l'utilisation de technologies et de pratiques cloud natives pour concevoir, développer et déployer des applications évolutives, résilientes et agiles pouvant être exécutées dans Oracle Cloud Infrastructure (OCI), d'autres infrastructures cloud et des centres de données sur site.
Le cloud natif est conçu et évolué pour tirer parti des avantages du cloud computing, tels que l'évolutivité, la disponibilité et la réduction des frais opérationnels. Il utilise des conteneurs, des microservices et des architectures sans serveur, en plus de mettre en œuvre des pratiques DevOps pour automatiser et rationaliser la livraison de logiciels.
L'objectif du cloud natif est de fournir à votre entreprise une flexibilité et une évolutivité de l'infrastructure qui peuvent être rapidement adaptées pour répondre à l'évolution des besoins de l'entreprise. Cette approche d'implémentation vous permet d'accélérer la mise sur le marché, d'augmenter l'agilité et de réduire les coûts, tout en offrant une meilleure expérience utilisateur et une meilleure confiance.
Évolution
L'évolution du cloud natif implique le passage d'applications monolithiques traditionnelles à des architectures basées sur des microservices conçues pour être exécutées dans des environnements cloud. Cette évolution est motivée par la nécessité d'une plus grande évolutivité, fiabilité et agilité dans le développement et le déploiement de logiciels. Elle implique également l'adoption de technologies et de pratiques innovantes, telles que les conteneurs, Kubernetes et DevOps, qui vous permettent de créer, de déployer et de gérer plus efficacement des applications cloud natives. L'avenir du cloud natif devrait continuer d'être façonné par des technologies et des innovations modernes dans les domaines de l'automatisation, de la sécurité et de l'infrastructure en tant que service (IaaS).
Architecture
L'architecture cloud native fait référence à un ensemble de principes et de modèles de conception permettant de créer et de déployer des applications cloud évolutives, résilientes et sécurisées. Elle implique l'utilisation de technologies et de pratiques modernes telles que les conteneurs, les microservices et DevOps pour concevoir et fournir des applications cloud.
Dans une architecture native du cloud, les applications sont divisées en services plus petits, indépendants et à couplage lâche qui peuvent être développés, déployés et gérés indépendamment. Ces services communiquent entre eux à l'aide d'API, et sont packagés et déployés à l'aide de conteneurs. Cela vous permet de créer des applications qui peuvent être facilement mises à l'échelle, gérées et mises à jour sans perturber le système global.
L'architecture cloud native met également l'accent sur l'utilisation de pipelines de livraison automatisés et continus pour déployer des applications et des services. Cela vous permet de déployer rapidement et facilement de nouvelles fonctionnalités et corrections de bogues, et de surveiller et d'optimiser en permanence les performances et la disponibilité de vos applications.
En résumé, l'architecture cloud native vous aide à créer et à déployer des applications cloud évolutives, résilientes et sécurisées, qui peuvent tirer parti des avantages du cloud computing.
Base de l'informatique cloud native
La Cloud Native Computing Foundation (CNCF) est une organisation à but non lucratif qui héberge et promeut des projets et technologies open source liés au cloud natif. La fondation vise à créer un écosystème florissant de technologies natives du cloud et à favoriser sa croissance et son adoption.
La CNCF fournit une plate-forme neutre pour les fournisseurs de technologies, les utilisateurs et les développeurs afin de collaborer sur des projets natifs du cloud et de stimuler le développement de technologies et de normes natives du cloud. Parmi les projets populaires hébergés par la CNCF figurent Kubernetes, Prometheus, Envoy et Linkerd.
La CNCF fonctionne sous les auspices de la Fondation Linux et fournit un foyer neutre et neutre pour les technologies natives du cloud. La fondation travaille également en étroite collaboration avec d'autres organisations et groupes sectoriels pour promouvoir les meilleures pratiques natives du cloud et faire progresser l'état de l'informatique cloud native.
L'objectif de la CNCF est de faciliter l'adoption et l'utilisation des technologies natives du cloud par les entreprises, tout en assurant la durabilité et la croissance à long terme de ces technologies. En fournissant une plateforme de collaboration et d'innovation, la CNCF contribue au développement de l'informatique cloud native et façonne son avenir.
Cloud natif et CNCF
Le cloud natif fait référence à un ensemble de pratiques et de technologies qui vous permettent de créer et d'exécuter des applications évolutives dans le cloud. La CNCF est une fondation logicielle open source qui héberge et promeut le développement de technologies natives du cloud. En d'autres termes, la CNCF est l'organisation derrière le mouvement natif du cloud.
Pourquoi adopter le cloud natif ?
Le cloud natif est la tendance actuelle et il existe une demande du marché pour correspondre aux dernières innovations technologiques dans le cloud. Vous pouvez tirer parti des avantages du cloud natif de différentes manières en fonction de vos besoins et de vos objectifs. Les avantages du cloud natif sont les suivants :
- Evolutivité : les applications peuvent évoluer horizontalement en ajoutant d'autres instances ou verticalement en augmentant la taille des machines virtuelles.
- Résilience : les applications peuvent effectuer une récupération automatique en cas de panne et gérer l'augmentation du trafic à l'aide des équilibreurs de charge et du redimensionnement automatique.
- Economies de coûts : les applications cloud natives peuvent tirer parti du modèle de paiement à l'utilisation et allouer les ressources de manière dynamique, ce qui réduit les coûts et augmente l'efficacité.
- Délai de mise sur le marché plus rapide : les applications cloud natives peuvent être développées et déployées plus rapidement à l'aide de pratiques de livraison continue et DevOps.
- Sécurité améliorée : la sécurité peut être intégrée à l'application à l'aide de fonctionnalités de sécurité natives du cloud, telles que la segmentation et le cryptage du réseau.
Cloud natif sur les applications traditionnelles
Les applications traditionnelles, également appelées applications monolithiques, sont conçues pour fournir des fonctionnalités dans les environnements sur site et nécessitent des applications supplémentaires pour répondre aux besoins opérationnels et de maintenance. Les avantages du cloud natif par rapport aux applications traditionnelles sont les suivants :
- Évolutivité : les applications cloud natives sont conçues pour une augmentation et une réduction automatisées en fonction de l'évolution de la demande de capacité des workloads, ce qui rend les applications flexibles et rentables par rapport aux applications monolithiques traditionnelles.
- Résilience : décomposez les applications en composants indépendants plus petits, afin que les applications cloud natives puissent continuer à fonctionner indépendamment, même si un ou plusieurs composants ne sont pas fonctionnels ou disponibles.
- Flexibilité : les applications cloud natives peuvent être déployées dans OCI, sur d'autres plates-formes cloud et sur site, ce qui offre plus de flexibilité dans votre choix d'infrastructure.
- Vitesse : les technologies cloud natives, similaires aux conteneurs et aux microservices, permettent d'accélérer le développement, les tests et les cycles de déploiement, ce qui accélère la mise sur le marché.
- Economies de coûts : les applications cloud natives tirent parti du modèle de paiement à l'utilisation et du modèle de consommation d'engagement du cloud computing, réduisant ainsi les coûts d'infrastructure et de maintenance par rapport aux solutions traditionnelles sur site.
Structures
Les structures natives du cloud fournissent les composants de base pour le développement, le déploiement et la gestion d'applications natives du cloud, et sont largement adoptées par les entreprises de tous les secteurs. En tirant parti de ces technologies, vous pouvez tirer parti des avantages du cloud computing et créer des applications modernes, évolutives et résilientes.
Les structures natives du cloud sont des modules, des bibliothèques, des packages et des référentiels disponibles pour une implémentation native à partir de fournisseurs de cloud. Ils peuvent également être intégrés au code d'application et chargés en parallèle. Voici quelques frameworks cloud natifs populaires :
- Kubernetes : plate-forme open source pour automatiser le déploiement, le redimensionnement et les opérations des applications en conteneur.
- Istio : un maillage de services open source qui fournit la gestion du trafic réseau, l'observabilité et la sécurité pour les microservices.
- Knative : structure open source permettant de créer, de déployer et de gérer des applications sans serveur sur Kubernetes.
- Envoy : proxy de service open source pour les applications cloud natives qui fournit l'équilibrage de charge, la gestion du trafic et l'observabilité.
- Prometheus : système d'alerte et de surveillance open source pour les applications cloud natives.
- Fluentd : collecteur de données open source pour la journalisation et l'analyse natives du cloud.
- OpenFaaS : structure open source permettant de créer et de déployer des fonctions sans serveur sur Kubernetes.
- Jaeger : système de trace distribué open source de bout en bout pour les applications cloud natives.
- OpenTracing : norme d'instrumentation et d'API open source pour la fonction de trace distribuée des applications cloud natives.
Les structures natives du cloud ne sont pas limitées à cette liste. La liste est fournie à titre de référence uniquement.
Technologies
Les technologies natives du cloud constituent une autre couche d'abstraction sur les structures natives du cloud pour créer des solutions consommables. Celles-ci sont souvent appelées plate-forme en tant que service (PaaS) proposées dans le cloud afin de réduire les frais de maintenance et d'exploitation. Certaines des technologies populaires sont :
- Conteneurs : unités logicielles légères, portables et autonomes pouvant être exécutées sur n'importe quelle infrastructure.
- Kubernetes : plate-forme open source pour automatiser le déploiement, la mise à l'échelle, l'orchestration et la gestion des applications en conteneur.
- Microservices : conception d'architecture logicielle dans laquelle une application est décomposée en petits composants indépendants pouvant être développés, déployés et gérés indépendamment.
- Informatique sans serveur : modèle informatique dans lequel le fournisseur cloud gère l'infrastructure et alloue automatiquement la capacité de ressources nécessaire à l'exécution des applications.
- Pipelines CI/CD : série de processus automatisés pour la création, le test et le déploiement continus de code.
- Maillage de services : couche d'infrastructure configurable pour les applications de microservices qui rend la communication entre les instances de service flexible, rapide et fiable.
- Equilibreurs de charge : composant qui répartit le trafic entrant entre plusieurs instances d'une application pour une meilleure évolutivité et fiabilité.
- Redimensionnement automatique : capacité d'une application à redimensionner automatiquement son utilisation des ressources en fonction de l'évolution de la demande.
Les technologies natives du cloud sont en constante évolution. Cette liste n'est pas exhaustive et est à titre de référence seulement.
Meilleures pratiques
Utilisez les meilleures pratiques pour créer des applications cloud natives évolutives, résilientes, sécurisées et capables de fournir de meilleures expériences utilisateur. Ces pratiques vous permettent également d'adopter le cloud computing et de tirer parti de ses avantages, tels que la réduction des frais opérationnels, une mise sur le marché plus rapide et une agilité accrue. Les meilleures pratiques pour créer des applications cloud natives sont les suivantes :
- Architecture des microservices : décomposez les applications en petits services indépendants à couplage faible pouvant être développés, déployés et gérés indépendamment.
- Conteneurisation : packagez les applications et les dépendances dans des conteneurs afin de fournir un environnement d'exécution cohérent et portable pour les applications.
- Déploiement automatisé : automatisez le déploiement et la gestion des applications à l'aide d'outils tels que les pipelines d'intégration continue et de livraison continue (CI/CD), Kubernetes et les outils d'orchestration cloud natifs.
- Résilience et évolutivité : concevez des applications pour qu'elles soient résilientes et évolutives à l'aide de techniques telles que l'autoréparation, le basculement et l'évolutivité automatique.
- Observation : surveillez et mesurez les performances et le comportement des applications à l'aide d'outils tels que Prometheus, Grafana et des outils de suivi.
- Sécurité : implémentez les meilleures pratiques et technologies de sécurité pour sécuriser les applications et les données, telles que le cryptage, les protocoles de communication sécurisés et les mécanismes de contrôle d'accès.
- Culture DevOps : adoptez une culture DevOps qui met l'accent sur la collaboration, la communication et l'amélioration continue au sein des équipes de développement, d'exploitation et de sécurité.
- Normes en matière de cloud : concevez des applications indépendantes du cloud et pouvant être exécutées dans n'importe quelle infrastructure cloud ou centre de données sur site.
Modèles de conception
Les modèles de conception natifs du cloud vous aident à créer et à déployer des applications natives du cloud évolutives, résilientes et sécurisées. En suivant ces modèles, vous pouvez tirer parti des avantages du cloud computing et offrir de meilleures expériences utilisateur.
- Microservices : décomposition d'une application monolithique en services plus petits, indépendants et à couplage faible pouvant être développés, déployés et gérés indépendamment.
- Service Mesh : implémentation de la communication réseau entre les microservices à l'aide d'un maillage de services, tel qu'Istio ou Linkerd, pour fournir des fonctionnalités telles que la gestion du trafic, la sécurité et l'observabilité.
- Disjoncteur : implémentation d'un modèle de disjoncteur pour empêcher les pannes en cascade et améliorer la résilience des microservices.
- API Gateway : implémentation d'une passerelle d'API pour gérer et sécuriser l'accès aux microservices et fournir un point d'entrée unique pour les destinataires externes.
- Conteneurisation : regroupez les applications et les dépendances dans des conteneurs afin de fournir un environnement d'exécution cohérent et portable pour les applications.
- Redimensionnement automatique : redimensionnement automatique des instances d'application en fonction de la demande pour améliorer les performances, la fiabilité et la rentabilité.
- Déploiement bleu/vert : déploiement de nouvelles versions d'application dans un environnement parallèle et basculement du trafic entre les anciennes et les nouvelles versions pour réduire les temps d'inactivité.
- Version de canari : publication progressive de nouvelles versions d'application vers un sous-ensemble d'utilisateurs à tester et valider avant publication vers l'ensemble de la base d'utilisateurs.
- Modèle plus étrange : remplacement progressif des parties d'une application monolithique par des microservices au fil du temps afin de minimiser les perturbations et les risques.
Adoption
L'adoption du cloud natif nécessite un changement culturel dans l'approche de votre entreprise en matière de développement logiciel, en plus des changements apportés aux personnes, aux processus et aux technologies. Vous pouvez adopter le cloud natif de manière stratégique et efficace, en tirant parti des avantages d'une évolutivité, d'une fiabilité et d'une agilité accrues. Les informations suivantes décrivent les étapes courantes d'adoption du cloud natif.
- Evaluation
- Evaluez l'état actuel de votre infrastructure, de vos processus et de votre architecture d'application pour déterminer le niveau de préparation native du cloud.
- Planification
- Développez une stratégie native du cloud qui décrit les résultats souhaités, le calendrier et les étapes à suivre pour adopter le cloud natif.
- Pilote
- Commencez petit, avec un projet pilote ou un microservice unique, pour tester le processus natif du cloud et acquérir de l'expérience avec la technologie.
- Outils
- Investissez dans les outils et technologies appropriés pour créer et gérer des applications cloud natives, telles que les conteneurs, Kubernetes et les outils DevOps.
- Transition
- Nouvelle architecture des applications vers une architecture basée sur les microservices, décomposant les applications monolithiques en services plus petits et plus gérables.
- DevOps
- Implémentez des pipelines d'intégration continue et de déploiement continu pour automatiser le processus de livraison de logiciels.
- Formation
- Former les équipes de développement aux principes, pratiques et outils cloud natifs.
- Culture
- Favorisez une culture de collaboration et d'expérimentation au sein de votre organisation, en encourageant les équipes à expérimenter de nouvelles technologies et de nouveaux processus.
- Utiliser
- Surveillez et évaluez en permanence l'efficacité de votre adoption native du cloud et effectuez les ajustements nécessaires.
Implémentation
L'implémentation cloud native comporte généralement deux cas d'utilisation : la charge de travail des applications non cloud native est déjà en production et la création d'une nouvelle charge de travail d'application à l'aide d'outils et de technologies cloud natives. Les deux scénarios présentent des avantages et des inconvénients en fonction des besoins de l'entreprise. Vous pouvez en choisir un en fonction de la comparaison suivante.
scénario | Refonte | Réécrire |
---|---|---|
Complexité | Modéré | Low |
Coût | Low | High |
Effort | Low | High |
Flexibilité | Low | High |
Options | Low | High |
Maintenance | High | Low |
Délai de mise sur le marché | Low | High |
L'avenir du cloud natif
L'avenir des technologies cloud natives devrait croître et devenir de plus en plus répandu dans les années à venir. Alors que les entreprises continuent d'adopter des solutions cloud pour l'infrastructure et les applications, la demande en technologies cloud natives augmentera. Les informations suivantes décrivent certaines des tendances clés des technologies cloud natives.
- Adoption accrue de l'architecture des microservices
- Cela conduira à une plus grande adoption des technologies cloud natives qui prennent en charge les microservices, telles que Kubernetes, Istio et Envoy.
- Mettre l'accent sur la sécurité et la conformité
- À mesure que des données plus sensibles sont stockées dans le cloud, la sécurité et la conformité continuent d'être une préoccupation majeure. Les entreprises recherchent des solutions cloud natives capables de répondre aux exigences de sécurité et de conformité.
- Intégration à l'IA et au machine learning
- Les solutions cloud natives s'intégreront de plus en plus aux technologies d'intelligence artificielle (IA) et de machine learning (ML) pour fournir des informations plus pertinentes et automatiser les processus.
- Emergence de solutions cloud hybrides
- Les entreprises chercheront à combler le fossé entre les solutions sur site et dans le cloud, ce qui entraînera une augmentation de la demande de solutions de cloud hybride.
La technologie cloud native continue de fournir l'agilité, l'évolutivité et les économies nécessaires pour les environnements d'entreprise en constante évolution.
Offres Cloud natives d'OCI
OCI fournit une gamme d'offres natives du cloud, notamment :
- Container Engine for Kubernetes (OKE) : service Container Engine for Kubernetes entièrement géré, qui facilite le déploiement, la gestion et le redimensionnement des conteneurs dans OCI.
- Fonctions : plate-forme informatique sans serveur qui permet aux développeurs de créer et d'exécuter des microservices sans avoir à gérer l'infrastructure.
- Equilibreur de charge : service d'équilibrage de charge hautement disponible et évolutif permettant de distribuer le trafic entrant à plusieurs services back-end.
- Object Storage : service Object Storage évolutif, hautement disponible et sécurisé permettant de stocker et d'extraire de grandes quantités de données.
- Block Volume : service de stockage de blocs persistant permettant de stocker et de gérer les données attachées aux instances de calcul.
- Réseau cloud virtuel (VCN) : réseau virtuel hautement sécurisé et évolutif qui vous permet d'isoler et de sécuriser les applications et les données.
- Base de données : service de base de données relationnel entièrement géré qui prend en charge plusieurs moteurs de base de données, notamment Oracle Database, MySQL et PostgreSQL.
- Traitement des transactions autonomes : service de base de données entièrement géré qui fournit des services de base de données rapides, automatisés et hautement sécurisés.
Ces offres cloud natives d'OCI vous permettent de créer, de déployer et de gérer des applications cloud natives dans un environnement sécurisé et évolutif. Grâce à ces services, vous pouvez tirer parti des avantages du cloud computing et offrir de meilleures expériences utilisateur.
Défis natifs du cloud
La technologie cloud native présente plusieurs défis à relever avant de l'adopter :
- Complexité : les solutions cloud natives peuvent être complexes et difficiles à implémenter, nécessitant des compétences et une expérience spécialisées à gérer.
- Sécurité et conformité : bien que les solutions cloud natives fournissent des fonctionnalités de sécurité améliorées, elles apportent également de nouveaux défis en matière de sécurité et de conformité, tels que la confidentialité des données et les exigences réglementaires.
- Intégration aux systèmes existants : il peut être difficile d'intégrer des solutions cloud natives aux systèmes existants, ce qui nécessite beaucoup de temps, d'efforts et de ressources.
- Coût : bien que les solutions cloud natives offrent des économies dans certains domaines, elles peuvent également entraîner des coûts supplémentaires, tels que le besoin de compétences et d'infrastructure spécialisées, en plus du coût de la migration des applications et des données existantes vers le cloud.
- Performances : les performances peuvent être un problème avec les solutions cloud natives, en particulier lorsque vous traitez de grandes quantités de données ou d'applications avec des exigences de performances élevées.
- Dépendance vis-à-vis des fournisseurs de cloud : les entreprises qui adoptent des solutions cloud natives dépendent fortement des fournisseurs de cloud, ce qui peut limiter la flexibilité et le contrôle de l'infrastructure et des applications.
Tenez compte de ces limites lorsque vous décidez si la technologie cloud native convient à votre entreprise. Bien qu'elle offre de nombreux avantages, elle n'est peut-être pas la meilleure solution pour chaque entreprise, et des solutions alternatives telles que des solutions sur site ou hybrides peuvent être plus appropriées.