Simplifier la gestion de vos applications en conteneur à l'aide d'instances de conteneur OCI
L'exécution d'applications en conteneur peut nécessiter un temps système considérable, notamment l'instanciation de machines virtuelles, l'installation de composants pour exécuter des images de conteneur et toutes les dépendances pour la prendre en charge, y compris les mises à jour logicielles et de système d'exploitation, et la surveillance des applications pendant leur exécution pour s'assurer qu'elles fonctionnent de manière optimale, sont disponibles et n'ont pas été compromises.
Les instances de conteneur sont un service de calcul Oracle Cloud Infrastructure (OCI) entièrement géré qui permet aux clients d'exécuter des applications en conteneur sans gérer de serveurs. Cette solution offre une expérience sans serveur qui permet aux clients de se concentrer sur l'ajout de valeur à leurs applications au lieu de déployer et de gérer l'infrastructure.
Pour exécuter une application en conteneur sans instances de conteneur, les clients doivent également instancier une machine virtuelle et installer tous les composants afin d'exécuter une image de conteneur. Cela inclut l'exécution de conteneur, telle que Docker ou Podman, et toutes les dépendances pour la prendre en charge. En outre, les clients doivent sécuriser la machine virtuelle en installant les derniers patches de sécurité et en appliquant les paramètres de sécurité appropriés. Lorsque de nouvelles mises à jour de logiciels et de systèmes d'exploitation sont introduites, les mises à jour et les correctifs doivent être appliqués de manière cohérente. Lorsque l'application est en cours d'exécution, la surveillance doit être en place pour s'assurer qu'elle fonctionne de manière optimale, qu'elle est disponible et qu'elle n'a pas été compromise.
Avec les instances de conteneur, les clients n'ont besoin que de créer les images de conteneur de l'application et de les stocker dans un registre de conteneur. L'application en conteneur peut ensuite être déployée à l'aide d'une instance de conteneur à l'aide de commandes CLI ou d'un assistant d'interface graphique guidé dans la console OCI en procédant comme suit.
- Définir les paramètres d'instance de conteneur : le client définit la région OCI pour exécuter l'instance de conteneur et, éventuellement, le domaine de disponibilité et le domaine de pannes. Le client sélectionne ensuite la forme de calcul pour l'instance de conteneur. Pour chaque instance, vous pouvez allouer jusqu'à l'UC et la mémoire de la forme de calcul sélectionnée. Par exemple, si vous avez choisi une forme AMD E3/E4, vous pouvez avoir 64 OCPU (128 vCPU) et 1024 Go de mémoire dans une instance de conteneur. Vous devez ensuite ajouter les paramètres réseau, par exemple si l'instance de conteneur requiert une adresse IP publique et le sous-réseau de l'instance de conteneur, ainsi que les configurations réseau avancées facultatives. Cette étape vous permet également de spécifier un enregistrement DNS privé et un nom d'hôte, ce qui générerait un nom de domaine qualifié complet pour l'instance de conteneur. Il existe également une option avancée facultative permettant de définir la stratégie de redémarrage du conteneur.
- Indiquez la configuration de lancement de l'application : à cette étape, l'emplacement de l'image de conteneur à exécuter est indiqué, ainsi que toutes les variables d'environnement requises pour l'image de conteneur. L'image peut se trouver dans Oracle Cloud Infrastructure Registry ou dans tout registre conforme à Open Container Initiative, public ou privé, où l'instance de conteneur dispose d'une connectivité IP. Pour les registres privés, vous devez fournir des informations d'identification pour accéder à l'image de conteneur.
- Vérifier et créer : la dernière étape consiste à vérifier toutes les configurations et, si tout est exact, vous pouvez poursuivre la création et une instance de conteneur sera lancée en quelques secondes.
Les clients sont facturés uniquement pour les ressources d'UC et de mémoire allouées à leurs instances au même tarif qu'Oracle Cloud Infrastructure Compute standard. Grâce à une expérience simple, à des opérations transparentes et à l'absence de frais supplémentaires pour l'expérience sans serveur, les instances de conteneur offrent le meilleur rapport qualité-prix pour l'exécution de conteneurs dans le cloud. Les clients peuvent également intégrer des instances de conteneur à d'autres services OCI, tels que le service MySQL et Oracle Autonomous Database, à l'aide de mécanismes de connexion de base de données standard, ce qui facilite l'utilisation des autres services OCI pour les applications en conteneur.
Architecture
Cette architecture déploie une application WordPress en conteneur avec une base de données MySQL intégrée à l'aide d'instances de conteneur. L'instance de conteneur sera déployée dans un sous-réseau public avec une adresse IP publique accessible à partir d'Internet.
Les instances de conteneur sont conçues pour les applications autonomes qui ne nécessitent pas d'orchestration de conteneur. Il s'agit notamment des API, des applications Web, des travaux d'intégration continue et de déploiement continu, des tâches d'automatisation, du traitement des données et des médias, des environnements de développement et de test, etc. Pour les applications en conteneur nécessitant une orchestration, OCI fournit Oracle Container Engine for Kubernetes (OKE), un service Kubernetes géré avec une option sans serveur avec des noeuds virtuels.
Chaque instance de conteneur peut exécuter plusieurs conteneurs. Tous les conteneurs d'une instance de conteneur partagent le même cycle de vie, les mêmes ressources, le même réseau et le même stockage. Les conteneurs d'une instance de conteneur ont le même concept qu'un pod dans Kubernetes avec le conteneur d'application principal et les conteneurs sidecar pris en charge. Les conteneurs sidecar sont là pour améliorer ou étendre les fonctionnalités du conteneur d'application principal. Par exemple, une instance de conteneur avec l'application Web principale et un conteneur SID qui exporte les journaux d'application Web vers un serveur de journalisation.
Remarque :
L'exécution d'un conteneur de base de données et d'un conteneur d'application convient uniquement au développement et au test. Envisagez d'utiliser Oracle MySQL Database Service pour les déploiements de production.Nous allons déployer WordPress avec une base de données intégrée contenant des instances de conteneur dans cette architecture de référence. La vidéo qui suit tout au long du processus.
Le schéma suivant illustre cette architecture de référence.
oci-container-instance-wordpress-oracle.zip
L'architecture comprend les composants suivants :
- Location
Une location est une partition sécurisée et isolée qu'Oracle configure dans Oracle Cloud lors de l'inscription à Oracle Cloud Infrastructure. Vous pouvez créer, organiser et administrer vos ressources dans Oracle Cloud au sein de votre location. Une location est synonyme de société ou d'organisation. En général, une entreprise possède une seule location et reflète sa structure organisationnelle au sein de cette location. Une seule location est généralement associée à un seul abonnement, et un seul abonnement ne dispose généralement que d'une seule location.
- Région
Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient des centres de données, appelés domaines de disponibilité. Les régions sont indépendantes des autres régions, et de grandes distances peuvent les séparer (entre les pays ou même les continents).
- Compartiment
Les compartiments sont des partitions logiques inter-région au sein d'une location Oracle Cloud Infrastructure. Utilisez des compartiments pour organiser vos ressources dans Oracle Cloud, contrôler l'accès aux ressources et définir des quotas d'utilisation. Pour contrôler l'accès aux ressources d'un compartiment donné, vous définissez des stratégies qui indiquent qui peut accéder aux ressources et les actions réalisables.
- Domaine de disponibilité
Les domaines de disponibilité sont des centres de données autonomes et indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent pas les mêmes infrastructures : alimentation, refroidissement ou réseau de domaine de disponibilité interne. Ainsi, il est peu probable qu'un problème survenant dans un domaine de disponibilité affecte les autres domaines de disponibilité de la région.
- Domaine de pannes
Un domaine de pannes est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité dispose de trois domaines de pannes avec un matériel et une alimentation indépendants. Lorsque vous répartissez des ressources entre plusieurs domaines de pannes, les applications peuvent tolérer les pannes physiques du serveur, la maintenance du système et les pannes d'alimentation au sein d'un domaine de pannes.
- Réseau cloud virtuel (VCN) et sous-réseau
Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Tout comme les réseaux de centres de données traditionnels, les réseaux cloud virtuels vous donnent un contrôle total sur votre environnement réseau. Un VCN peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être ciblés vers une région ou vers un domaine de disponibilité. Chaque sous-réseau se compose d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux du VCN. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.
- Liste de sécurité
Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui spécifient la source, la destination et le type de trafic à autoriser à l'entrée et à la sortie du sous-réseau.
- Passerelle NAT (Network Address Translation)
Une passerelle NAT permet aux ressources privées d'un VCN d'accéder à des hôtes sur Internet, sans les exposer aux connexions Internet entrantes.
- Passerelle de service
La passerelle de service fournit l'accès d'un VCN à d'autres services, tels qu'Oracle Cloud Infrastructure Object Storage. Le trafic du VCN vers le service Oracle transite par la structure réseau Oracle et ne traverse jamais Internet.
- Registre de conteneurs
Registre géré par Oracle qui vous permet de simplifier votre workflow de développement à production.
Recommandations
- VCN
Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez de joindre aux sous-réseaux du VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adresses IP privées standard.
Sélectionnez les blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données on-premise ou un autre fournisseur cloud) sur lequel vous souhaitez configurer des connexions privées.
Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.
Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.
- Sécurité
Utilisez Oracle Cloud Guard pour surveiller et maintenir de manière proactive la sécurité de vos ressources dans Oracle Cloud Infrastructure. Cloud Guard utilise des recettes de détecteur que vous pouvez définir pour examiner vos ressources à la recherche de faiblesses en matière de sécurité et pour surveiller les opérateurs et les utilisateurs dans le cadre d'activités à risque. Lorsqu'une erreur de configuration ou une activité non sécurisée est détectée, Cloud Guard recommande des actions correctives et aide à effectuer ces actions, en fonction des recettes de répondeur que vous pouvez définir.
Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette définie par Oracle de stratégies de sécurité reposant sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et doivent être cryptées à l'aide de clés gérées par le client. Lorsque vous créez et mettez à jour des ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies de la recette security-zone, et refuse les opérations qui violent les stratégies.
- Cloud Guard
Clonez et personnalisez les recettes par défaut fournies par Oracle pour créer des recettes de détecteur et de répondeur personnalisées. Ces recettes vous permettent d'indiquer le type de violation de sécurité qui génère un avertissement et les actions autorisées. Par exemple, vous pouvez détecter les buckets Object Storage dont la visibilité est définie sur Public.
Appliquez Cloud Guard au niveau de la location pour couvrir la portée la plus large et réduire la charge administrative liée à la maintenance de plusieurs configurations.
Vous pouvez également utiliser la fonctionnalité Liste gérée pour appliquer certaines configurations aux détecteurs.
- Security Zones
Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette définie par Oracle de stratégies de sécurité reposant sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et doivent être cryptées à l'aide de clés gérées par le client. Lorsque vous créez et mettez à jour des ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies dans la recette de zone de sécurité et refuse les opérations qui violent les stratégies.
- Groupes de sécurité réseau
Vous pouvez utiliser des groupes de sécurité réseau pour définir un ensemble de règles entrantes et sortantes qui s'appliquent à des VNIC spécifiques. Nous vous recommandons d'utiliser des groupes de sécurité réseau plutôt que des listes de sécurité, car les groupes de sécurité réseau vous permettent de séparer l'architecture de sous-réseau de VCN des exigences de sécurité de votre application.
- Bande passante de l'équilibreur de charge
Lors de la création de l'équilibreur de charge, vous pouvez sélectionner une forme prédéfinie fournissant une bande passante fixe ou indiquer une forme personnalisée (flexible) dans laquelle vous définissez une plage de bande passante et laisser le service redimensionner automatiquement la bande passante en fonction des modèles de trafic. Avec l'une ou l'autre approche, vous pouvez modifier la forme à tout moment après la création de l'équilibreur de charge.