Pour réussir, un développeur doit empaqueter et transporter efficacement différents types d'applications. Le modèle CaaS (Containers as a Service) peut être un moyen de simplifier le déploiement, les opérations et la maintenance de votre infrastructure et de vos conteneurs.
Containers as a Service (CaaS) est un modèle de service cloud qui fournit une plate-forme gérée et automatisée pour l'orchestration de conteneurs. Il s'agit d'un moyen d'organiser et de simplifier les opérations de cluster.
Imaginez que tous vos programmes se trouvent dans un espace de bureau virtuel, et qu'un responsable s'occupe du bureau et veille à ce qu'il ne soit pas détruit ou submergé. C'est le principe de la conteneurisation. Vous n'avez pas à vous soucier des problèmes. Vous pouvez vous concentrer sur l'exécution de votre code.
Le modèle CaaS comble efficacement le fossé entre le conteneur fini du développeur et un environnement d'exécution de niveau production. Il fait abstraction de l'infrastructure sous-jacente et permet aux équipes de se concentrer sur la logique d'application plutôt que sur la gestion des clusters.
Le modèle CaaS fournit un environnement géré basé sur un moteur d'orchestration de conteneurs, Kubernetes étant la norme du secteur pour ce type de moteur. Ce processus permet de séparer les préoccupations des développeurs de celles de l'infrastructure de base :
Les jobs d'un développeur : il doit d'abord pouvoir prendre toutes les dépendances et son application, et les empaqueter dans une image de conteneur. Cette image est un plan portable de l'application.
Une fois le processus terminé, un produit CaaS prend le relais : une fois le conteneur créé et stocké, il ne reste plus qu'à appliquer la gestion via une API ou une interface. Un produit CaaS tel que Google Kubernetes Engine peut vous aider à gérer tout le reste. Nous allons maintenant définir l'état du programme. Vous avez besoin de trois serveurs exécutant le même programme ? Ce service peut vous aider.
Ensuite, le nouveau déploiement est géré automatiquement. Cela peut inclure :
CaaS est une plate-forme polyvalente qui peut servir de base pour les architectures et les pratiques de développement.
Peut être une plate-forme idéale pour les déploiements d'applications et de microservices
Peut être un excellent moyen d'empaqueter des applications plus anciennes avec la modernisation des applications existantes.
Pour les structures de développement, une plate-forme CaaS peut être très utile. Un système automatisé peut créer une image de conteneur, exécuter des tests et la déployer sur la plate-forme CaaS sans temps d'arrêt.
Le CaaS automatise les besoins en trafic. La plate-forme peut ajouter ou supprimer automatiquement des instances de conteneur pour répondre à la demande des utilisateurs.
Les plates-formes CaaS basées sur des normes ouvertes comme Kubernetes peuvent fournir un environnement opérationnel cohérent dans les centres de données sur site et plusieurs clouds publics. Cela permet aux entreprises d'exécuter leurs applications conteneurisées n'importe où sans avoir à les réarchitecturer.
Le paysage "as a service" comprend plusieurs modèles, chacun offrant un niveau différent d'abstraction et de gestion. Le CaaS se situe entre l'infrastructure as a service (IaaS) et la plate-forme as a service (PaaS).
Modèle cloud | Ce que vous gérez | Niveau d'abstraction | Cas d'utilisation typique |
Infrastructure as a Service (IaaS) | Système d'exploitation, middleware, environnement d'exécution, application, données. | Faible : fournit un accès aux ressources de calcul brutes, comme les machines virtuelles et le stockage. | Créer une infrastructure personnalisée de A à Z. |
Containers as a Service (CaaS) | Application et configuration. | Moyen : vous gérez le cluster et l'OS, mais vous contrôlez l'environnement de conteneur. | Orchestrer des applications conteneurisées à grande échelle. |
Platform as a Service (PaaS) | Application et données | Élevé : gère presque tout. Vous fournissez le code source et la plate-forme l'exécute. | Déployer rapidement des applications Web et des API simples |
Function as a Service (FaaS) (sans serveur) | Uniquement la fonction de code | Très élevé : exécute des fonctions individuelles sans état en réponse à des événements. | Tâches de traitement de données légères basées sur des événements |
Software as a Service (SaaS) | Rien (vous êtes l'utilisateur final) | Complet : fournit un produit logiciel fini sur le Web. | Utiliser des logiciels prêts à l'emploi comme messagerie ou CRM |
Modèle cloud
Ce que vous gérez
Niveau d'abstraction
Cas d'utilisation typique
Infrastructure as a Service (IaaS)
Système d'exploitation, middleware, environnement d'exécution, application, données.
Faible : fournit un accès aux ressources de calcul brutes, comme les machines virtuelles et le stockage.
Créer une infrastructure personnalisée de A à Z.
Containers as a Service (CaaS)
Application et configuration.
Moyen : vous gérez le cluster et l'OS, mais vous contrôlez l'environnement de conteneur.
Orchestrer des applications conteneurisées à grande échelle.
Platform as a Service (PaaS)
Application et données
Élevé : gère presque tout. Vous fournissez le code source et la plate-forme l'exécute.
Déployer rapidement des applications Web et des API simples
Function as a Service (FaaS) (sans serveur)
Uniquement la fonction de code
Très élevé : exécute des fonctions individuelles sans état en réponse à des événements.
Tâches de traitement de données légères basées sur des événements
Software as a Service (SaaS)
Rien (vous êtes l'utilisateur final)
Complet : fournit un produit logiciel fini sur le Web.
Utiliser des logiciels prêts à l'emploi comme messagerie ou CRM
Les conteneurs sont conçus pour déployer vos logiciels partout. En savoir plus sur les conteneurs.
Oui. En fait, ils vous donnent accès à de nombreux autres avantages, tels que la séparation des responsabilités, l'isolation des applications, le traitement par lot et les déploiements cloud hybrides.
Google Kubernetes Engine (GKE) simplifie la découverte des services grâce à son intégration parfaite aux mécanismes natifs de Kubernetes, tels que les objets Service et le DNS. En tant qu'offre de services gérés, GKE améliore ces capacités avec des fonctionnalités telles que les services multicluster (MCS) et l'intégration directe à l'Annuaire des services.
Le nouveau code peut être créé et déployé plus rapidement, mais les ressources ne sont pas gérées ni repensées à chaque fois.
L'adoption d'une plate-forme CaaS peut apporter plusieurs avantages stratégiques aux équipes chargées du développement et des opérations dans les entreprises.
Portabilité
Le CaaS aide les charges de travail. Si une application basée sur des conteneurs s'exécute sur votre framework CaaS standard, elle peut être modifiée facilement.
Évolutivité
Vous pouvez adapter les ressources à vos besoins.
Codage rapide
Cela permet d'améliorer les pratiques d'automatisation.
Maintenance améliorée
En cas de défaillance d'un composant, la plate-forme traite le problème et le résout rapidement pour maintenir les fonctionnalités utilisateur.
Le fournisseur gère les tâches de base, ce qui vous amène à vous concentrer sur le code de votre application, l'accès aux comptes, le pare-feu et les règles d'accès. Dans un environnement CaaS, la sécurité repose sur un modèle de responsabilité partagée. Le fournisseur de services CaaS est responsable de la sécurisation de l'infrastructure de base, y compris de la protection du plan de contrôle de l'orchestration des conteneurs, de la sécurisation des centres de données physiques et du réseau, ainsi que du maintien de l'intégrité du service géré lui-même.
Le client gère la sécurité des composants qu'il contrôle. Il doit donc sécuriser le code d'application, gérer l'accès au cluster à l'aide d'Identity and Access Management (IAM), configurer des règles de réseau pour contrôler le trafic entre les conteneurs et, surtout, sécuriser la chaîne d'approvisionnement logicielle. Cela implique d'utiliser un registre de conteneurs sécurisé et d'analyser les images de conteneurs afin d'identifier les failles connues avant de les déployer.
Responsabilités de l'équipe informatique :
Google Kubernetes Engine (GKE) est la principale offre CaaS de Google Cloud. La configuration d'un déploiement de base suit un workflow logique et natif en conteneurs.
Étape 1 : Conteneurisez votre application.
Commencez par écrire un fichier texte pour votre application. Ce simple fichier texte contient les instructions permettant de compiler votre application, ses dépendances et son environnement d'exécution dans une image de conteneur statique.
Étape 2 : Stockez votre image dans un registre.
Créez l'image de conteneur à partir de votre fichier texte et transférez-la vers un registre privé sécurisé. Artifact Registry est le service géré de Google Cloud qui permet de stocker vos images de conteneurs et de gérer leurs versions.
Étape 3 : Créez un cluster GKE.
Provisionnez un cluster Kubernetes à l'aide de la console Google Cloud ou de l'outil de ligne de commande gcloud. Pour une expérience entièrement gérée qui automatise la gestion et le scaling des nœuds, vous pouvez choisir un cluster GKE Autopilot.
Étape 4 : Définissez votre déploiement.
Créez un fichier manifeste Kubernetes (par exemple, deployment.yaml). Dans ce fichier, vous définissez de manière déclarative l'état souhaité de votre application, en spécifiant l'image de conteneur à utiliser, le nombre d'instances répliquées souhaité, et les ressources de processeur et de mémoire requises.
Étape 5 : Déployez votre application sur le cluster.
Utilisez l'outil de ligne de commande Kubernetes, kubectl, pour appliquer votre fichier manifeste au cluster. Le plan de contrôle de GKE reçoit la requête et planifie l'exécution des conteneurs de votre application sur les nœuds de calcul du cluster.
Étape 6 : Exposez votre application.
Pour rendre votre application accessible aux utilisateurs sur Internet, créez un fichier manifeste de service Kubernetes de type LoadBalancer. Lorsque vous appliquez ce fichier manifeste, GKE provisionne automatiquement un équilibreur de charge cloud et lui attribue une adresse IP publique, ce qui a pour effet d'acheminer le trafic externe vers vos conteneurs en cours d'exécution.
Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.