Natif dans Cloud
Les services en nuage natifs sont une approche visant à créer et à exécuter des applications qui tirent parti des technologies d'infonuagique. Il comprend l'utilisation de technologies et de pratiques en nuage natives pour concevoir, développer et déployer des applications évolutives, résilientes et agiles pouvant s'exécuter dans Oracle Cloud Infrastructure (OCI), d'autres infrastructures en nuage et des centres de données sur place.
Les services en nuage natifs sont conçus et développés pour tirer parti des avantages de l'informatique en nuage, tels que l'extensibilité, la disponibilité et la réduction des frais généraux d'exploitation. Il utilise des conteneurs, des microservices et des architectures sans serveur, en plus de mettre en œuvre les pratiques DevOps pour automatiser et rationaliser la livraison de logiciels.
L'objectif des services en nuage natifs est de fournir à votre organisation une flexibilité et une évolutivité de l'infrastructure qui peuvent être rapidement adaptées aux besoins changeants de l'entreprise. Cette approche de mise en œuvre vous permet d'atteindre des délais de mise sur le marché plus rapides, une agilité accrue et des coûts réduits, en plus d'offrir une meilleure expérience utilisateur et une meilleure confiance.
Évolution
L'évolution des services en nuage natifs implique le passage d'applications monolithiques traditionnelles à des architectures basées sur des microservices qui sont conçues pour s'exécuter dans des environnements en nuage. Cette évolution est motivée par la nécessité d'une évolutivité, d'une fiabilité et d'une agilité accrues dans le développement et le déploiement de logiciels. Cela implique également l'adoption de technologies et de pratiques modernes, telles que les conteneurs, Kubernetes et DevOps, qui vous permettent de créer, de déployer et de gérer plus efficacement des applications natives en nuage. L'avenir des services en nuage natifs 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-service (IaaS).
Architecture
L'architecture en nuage native fait référence à un ensemble de principes et de modèles de conception pour créer et déployer des applications en nuage qui sont évolutives, résilientes et sécurisées. Il implique l'utilisation de technologies et de pratiques modernes telles que les conteneurs, les microservices et DevOps pour concevoir et fournir des applications en nuage.
Dans une architecture en nuage native, les applications sont décomposées en services plus petits, indépendants et à couplage lâche qui peuvent être développés, déployés et gérés de manière indépendante. Ces services communiquent entre eux à l'aide d'API et sont emballé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 interruption du système global.
L'architecture en nuage 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 fonctions et de nouvelles corrections de bogues, et de surveiller et d'optimiser en continu la performance et la disponibilité de vos applications.
En résumé, l'architecture native en nuage vous aide à créer et à déployer des applications basées sur le nuage qui sont évolutives, résilientes et sécurisées, et qui peuvent profiter des avantages de l'informatique en nuage.
Base de l'informatique native en nuage
Cloud Native Computing Foundation (CNCF) est un organisme sans but lucratif qui héberge et fait la promotion de projets et de technologies en code source libre liés à l'informatique native en nuage. La fondation vise à créer un écosystème florissant de technologies natives en nuage et à favoriser sa croissance et son adoption.
La CNCF fournit une plate-forme neutre permettant aux fournisseurs, aux utilisateurs et aux développeurs de technologies de collaborer sur des projets natifs en nuage et de stimuler le développement de technologies et de normes natives en nuage. Parmi les projets populaires hébergés par la CNCF figurent Kubernetes, Prometheus, Envoy et Linkerd.
La CNCF opère sous les auspices de la Linux Foundation et fournit un foyer neutre et neutre pour les technologies natives du nuage. La fondation travaille également en étroite collaboration avec d'autres organisations et groupes sectoriels pour promouvoir les meilleures pratiques en nuage natif et faire progresser l'état de l'informatique native en nuage.
L'objectif de la CNCF est de faciliter l'adoption et l'utilisation des technologies natives du cloud, tout en assurant la durabilité et la croissance à long terme de ces technologies. En fournissant une plate-forme de collaboration et d'innovation, la CNCF contribue à stimuler le développement de l'informatique native en nuage et à façonner son avenir.
Nuage natif par rapport à la CNCF
Les services en nuage natifs font 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 nuage. CNCF est une fondation logicielle open-source qui héberge et promeut le développement de technologies natives en nuage. En d'autres termes, la CNCF est l'organisation derrière le mouvement natif du nuage.
Pourquoi adopter le nuage natif?
Le nuage natif est la tendance actuelle et il existe une demande du marché correspondant aux dernières innovations technologiques dans le nuage. Vous pouvez tirer parti des avantages du nuage natif de différentes façons, selon vos besoins et vos objectifs. Les avantages des services en nuage natifs sont les suivants :
- Extensibilité : Les applications peuvent s'étendre horizontalement en ajoutant d'autres instances ou verticalement en augmentant la taille des machines virtuelles.
- Résilience : Les applications peuvent se remettre automatiquement en cas de défaillance et gérer l'augmentation du trafic à l'aide des équilibreurs de charge et de l'ajustement automatique.
- Économie de coûts : Les applications en nuage natives peuvent tirer parti du modèle de paiement à l'utilisation et affecter des ressources de manière dynamique, réduisant les coûts et augmentant l'efficacité.
- Délai de mise sur le marché plus rapide : Les applications en nuage natives peuvent être développées et déployées plus rapidement à l'aide des pratiques de livraison continue et DevOps.
- Sécurité améliorée : La sécurité peut être intégrée à l'application à l'aide de fonctions de sécurité natives en nuage, telles que la segmentation et le chiffrement du réseau.
Nuage natif par rapport aux applications traditionnelles
Les applications traditionnelles, également appelées applications monolithiques, sont conçues pour offrir des fonctionnalités dans des environnements sur place et nécessitent des applications supplémentaires pour répondre aux besoins d'exploitation et de maintenance. Les avantages du nuage natif par rapport aux applications traditionnelles sont les suivants :
- Extensibilité : Les applications en nuage natives sont conçues pour s'adapter automatiquement à la hausse ou à la baisse en fonction de la demande de capacité en constante évolution des charges de travail. Elles sont donc flexibles et rentables par rapport aux applications traditionnelles monolithiques.
- Résilience : Décomposez les applications en composants plus petits et indépendants afin que les applications en nuage natives puissent continuer à fonctionner indépendamment, même si un ou plusieurs composants ne sont pas fonctionnels ou disponibles.
- Flexibilité : Les applications en nuage natives peuvent être déployées dans OCI, sur d'autres plates-formes en nuage et sur place, offrant plus de flexibilité dans votre choix d'infrastructure.
- Rapidité : Les technologies en nuage natives, similaires aux conteneurs et aux microservices, permettent des cycles accélérés de développement, de test et de déploiement, ce qui accélère la mise sur le marché.
- Économie de coûts : Les applications en nuage natives tirent parti du modèle de paiement à l'utilisation et du modèle de consommation d'engagement du nuage, réduisant les coûts d'infrastructure et de maintenance par rapport aux solutions traditionnelles sur place.
Cadres
Les cadres natifs en nuage fournissent les composants de base pour le développement, le déploiement et la gestion d'applications natives en nuage et sont largement adoptés par les organisations de tous les secteurs. En tirant parti de ces technologies, vous pouvez profiter des avantages de l'infonuagique et créer des applications modernes, évolutives et résilientes.
Les cadres natifs du nuage sont des modules, des bibliothèques, des ensembles et des référentiels disponibles pour une mise en oeuvre native auprès de fournisseurs infonuagiques, qui peuvent également être intégrés au code d'application et chargés par le côté. Voici certains des cadres de travail natifs en nuage populaires :
- Kubernetes : Une plate-forme à code source libre pour automatiser le déploiement, l'évolutivité et les opérations des applications conteneurisées.
- Istio : Maillage de services à code source libre qui fournit la gestion du trafic réseau, l'observabilité et la sécurité pour les microservices.
- Knatif : Cadre à code source libre pour créer, déployer et gérer des applications sans serveur sur Kubernetes.
- Envoy : Mandataire de service à code source libre pour les applications en nuage natives qui fournit l'équilibrage de charge, la gestion du trafic et l'observabilité.
- Prometheus : Système d'alerte et de surveillance à code source libre pour les applications natives en nuage.
- Fluentd : Collecteur de données à code source libre pour la journalisation et l'analyse natives en nuage.
- OpenFaaS : Cadre à code source libre pour créer et déployer des fonctions sans serveur sur Kubernetes.
- Jaeger : Système de suivi distribué de bout en bout à code source libre pour les applications en nuage natives.
- OpenTracing : Norme d'API et d'instrumentation à code source libre pour le suivi distribué des applications en nuage natives.
Les cadres natifs en nuage ne se limitent pas à cette liste. La liste est à titre de référence seulement.
Technologies
Les technologies natives en nuage sont une autre couche d'abstraction sur les cadres natifs en nuage pour créer des solutions consommables. Ces services sont souvent connus sous le nom de plate-forme-service (PaaS) proposée dans le nuage afin de réduire les frais généraux de maintenance et d'exploitation. Certaines des technologies populaires sont :
- Conteneurs : Unités de logiciel légères, portables et autonomes pouvant s'exécuter sur n'importe quelle infrastructure.
- Kubernetes : Plate-forme à code source libre pour automatiser le déploiement, l'évolutivité, l'orchestration et la gestion des applications conteneurisées.
- Microservices : Conception d'architecture logicielle dans laquelle une application est décomposée en petits composants indépendants qui peuvent être développés, déployés et gérés de manière indépendante.
- Calcul sans serveur : Modèle de calcul dans lequel le fournisseur de services en nuage gère l'infrastructure et affecte automatiquement la capacité des ressources nécessaire pour exécuter les applications.
- Pipelines d'IC/DC : Série de processus automatisés pour créer, tester et déployer du code en continu.
- 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.
- Équilibreurs de charge : Composant qui répartit le trafic entrant entre plusieurs instances d'une application pour une évolutivité et une fiabilité supérieures.
- Ajustement automatique : Capacité d'une application à ajuster automatiquement son utilisation des ressources en réponse aux modifications de la demande.
Les technologies natives en nuage évoluent constamment. Cette liste n'est pas exhaustive et n'est utilisée qu'à titre de référence.
Meilleures pratiques
Utilisez les meilleures pratiques pour créer des applications natives en nuage qui sont évolutives, résilientes, sécurisées et capables d'offrir de meilleures expériences utilisateur. Ces pratiques vous permettent également d'adopter l'informatique en nuage et de tirer parti de ses avantages, notamment en réduisant les frais généraux d'exploitation, en accélérant la mise sur le marché et en augmentant l'agilité. Les meilleures pratiques pour créer des applications natives en nuage sont les suivantes :
- Architecture de microservices : Répartissez les applications en services petits, indépendants et à couplage étroit qui peuvent être développés, déployés et gérés de manière indépendante.
- Conteneurisation : Encapsulez des applications et des 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 et de développement en continu, Kubernetes et les outils d'orchestration natifs en nuage.
- Résilience et extensibilité : Concevez des applications pour être résilientes et évolutives à l'aide de techniques telles que l'autoréparation, le basculement et l'ajustement automatique.
- Observabilité : Surveillez et mesurez la performance et le comportement des applications à l'aide d'outils tels que Prometheus, Grafana et des outils de suivi.
- Sécurité : Mettez en oeuvre les meilleures pratiques et technologies de sécurité pour sécuriser les applications et les données, notamment le chiffrement, 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é.
- Sans nuage : Concevez des applications indépendantes du nuage et capables de s'exécuter dans n'importe quelle infrastructure en nuage ou centre de données sur place.
Modèles de conception
Les modèles de conception natifs en nuage vous aident à créer et à déployer des applications natives en nuage qui sont évolutives, résilientes et sécurisées. En suivant ces modèles, vous pouvez profiter des avantages de l'informatique en nuage et offrir une meilleure expérience utilisateur.
- Microservices : Briser une application monolithique en services plus petits, indépendants et à couplage lâche qui peuvent être développés, déployés et gérés de manière indépendante.
- Maillage de services : Mise en oeuvre de la communication réseau entre les microservices à l'aide d'un maillage de services, tel qu'Istio ou Linkerd, pour fournir des fonctions telles que la gestion du trafic, la sécurité et l'observabilité.
- Disjoncteur : Mise en oeuvre d'un modèle de disjoncteur pour prévenir les défaillances en cascade et améliorer la résilience des microservices.
- Passerelle d'API : Mise en oeuvre d'une passerelle d'API pour gérer et sécuriser l'accès aux microservices et fournir un point d'entrée unique aux consommateurs externes.
- Conteneurisation : Regroupement d'applications et de dépendances dans des conteneurs afin de fournir un environnement d'exécution cohérent et portable pour les applications.
- Ajustement automatique : Ajustement automatique des instances d'application en fonction de la demande pour améliorer la performance, la fiabilité et la rentabilité.
- Déploiement bleu/vert : Déploiement de nouvelles versions d'application dans un environnement parallèle et commutation du trafic entre l'ancienne et la nouvelle version afin de réduire les temps d'arrêt.
- Version de test canari : Libération progressive de nouvelles versions d'application pour un sous-ensemble d'utilisateurs à tester et à valider avant de les lancer dans l'ensemble de la base d'utilisateurs.
- Modèle de programme étrange : Remplacer progressivement des parties d'une application monolithique par des microservices au fil du temps afin de réduire les interruptions et les risques.
Adoption
L'adoption des services en nuage natifs nécessite un changement culturel dans l'approche de votre organisation en matière de développement de logiciels, en plus des changements apportés aux personnes, aux processus et aux technologies. Vous pouvez adopter le nuage 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 à suivre pour adopter les services natifs en nuage.
- Évaluation
- Évaluez l'état actuel de votre infrastructure, de vos processus et de votre architecture d'application afin de déterminer le niveau de préparation des services en nuage natifs.
- Planification
- Développez une stratégie en nuage natif qui décrit les résultats souhaités, le calendrier et les étapes à suivre pour adopter le nuage natif.
- Pilote
- Commencez petit, avec un projet pilote ou un seul microservice, pour tester le processus natif en nuage et acquérir de l'expérience avec la technologie.
- Outillage
- Investissez dans les bons outils et technologies pour créer et gérer des applications natives en nuage, telles que des conteneurs, des outils Kubernetes et DevOps.
- Transition
- Modifiez l'architecture des applications à une architecture basée sur des microservices, en décomposant les applications monolithiques en services plus petits et plus faciles à gérer.
- DevOps
- Mettez en œuvre des pipelines d'intégration et de livraison en continu pour automatiser le processus de livraison du logiciel.
- Formation
- Formez les équipes de développement sur les principes, les pratiques et les outils natifs du nuage.
- Culture
- Favoriser une culture de collaboration et d'expérimentation au sein de votre organisation, en encourageant les équipes à expérimenter de nouvelles technologies et processus.
- Exploiter
- Surveillez et évaluez en continu l'efficacité de votre adoption native du nuage et apportez les ajustements nécessaires.
Mise en oeuvre
La mise en oeuvre native en nuage comporte en général deux cas d'utilisation : une charge de travail d'application non native en nuage qui est déjà en cours d'exécution en production et la création d'une nouvelle charge de travail d'application à l'aide d'outils et de technologies natifs en nuage. 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; | Nouvelle conception | Réécrire |
---|---|---|
Complexité | Modérée | Low |
Coût | Low | High |
Effort | Low | High |
Flexibilité | Low | High |
Choix | Low | High |
Maintenance | High | Low |
Délai de mise sur le marché | Low | High |
L'avenir des services en nuage natifs
L'avenir de la technologie native en nuage 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 en nuage pour l'infrastructure et les applications, la demande de technologies en nuage natives augmentera. Les informations suivantes décrivent certaines des tendances clés en matière de technologie en nuage native.
- Adoption accrue de l'architecture de microservices
- Cela mènera à une plus grande adoption des technologies en nuage natives qui prennent en charge les microservices, comme Kubernetes, Istio et Envoy.
- Mettre l'accent sur la sécurité et la conformité
- Comme les données plus sensibles sont stockées dans le nuage, la sécurité et la conformité continuent d'être une préoccupation majeure. Les organisations chercheront des solutions en nuage natives qui peuvent répondre aux exigences en matière de sécurité et de conformité.
- Intégration à l'intelligence artificielle et à l'apprentissage automatique
- Les solutions en nuage natives s'intégreront de plus en plus aux technologies d'intelligence artificielle (IA) et d'apprentissage automatique afin de fournir de meilleures analyses et d'automatiser les processus.
- Émergence de solutions en nuage hybrides
- Les entreprises chercheront à combler l'écart entre les solutions sur place et celles basées sur le nuage, ce qui entraînera une augmentation de la demande de solutions en nuage hybrides.
La technologie en nuage native continue d'offrir l'agilité, l'extensibilité et les économies de coûts nécessaires aux environnements d'affaires en constante évolution d'aujourd'hui.
Offres en nuage natives à partir d'OCI
OCI fournit une gamme d'offres natives en nuage, notamment :
- Container Engine pour Kubernetes (OKE) : Service Container Engine pour Kubernetes entièrement géré qui facilite le déploiement, la gestion et l'ajustement des conteneurs dans OCI.
- Fonctions : Une 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.
- Équilibreur de charge : Service d'équilibrage de charge hautement disponible et évolutif permettant de répartir le trafic entrant entre plusieurs services dorsaux.
- Stockage d'objets : Service de stockage d'objets évolutif, hautement disponible et sécurisé permettant de stocker et d'extraire de grandes quantités de données.
- Volumes par blocs : Service de stockage par blocs persistant pour le stockage et la gestion des données attachées aux instances de calcul.
- Réseau en nuage virtuel (VCN) : Un 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 : Un 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 autonome des transactions : Un 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 natives en nuage d'OCI vous permettent de créer, de déployer et de gérer des applications natives en nuage dans un environnement sécurisé et évolutif. En utilisant ces services, vous pouvez profiter des avantages de l'informatique en nuage et offrir de meilleures expériences utilisateur.
Défis des services en nuage natifs
La technologie en nuage native présente plusieurs défis à considérer avant de l'adopter :
- Complexité : Les solutions en nuage natives peuvent être complexes et difficiles à mettre en oeuvre, et nécessitent des compétences et une expérience spécialisées.
- Sécurité et conformité : Bien que les solutions en nuage natives fournissent des fonctions 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 en nuage natives à des systèmes existants, qui nécessitent beaucoup de temps, d'efforts et de ressources.
- Coût : Bien que les solutions en nuage natives permettent de réaliser 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 d'applications et de données existantes vers le nuage.
- Performance : La performance peut être un problème avec des solutions en nuage natives, en particulier pour traiter de grandes quantités de données ou des applications nécessitant des performances élevées.
- Dépendance vis-à-vis des fournisseurs de nuage : Les organisations qui adoptent des solutions en nuage natives dépendent fortement des fournisseurs de nuage, 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 en nuage native convient à votre organisation. Bien qu'elle offre de nombreux avantages, elle n'est peut-être pas la meilleure solution pour chaque organisation, et des solutions alternatives telles que les solutions sur place ou hybrides peuvent être plus appropriées.