Un container Docker permet d'embarquer une application qui s'exécute au sein du container. Docker se sert du Noyau Hote pour faire tourner l'application dans son container.
Container Docker c'est quoi ? |
Pour la suite et pour l'instant, je vous renvois vers cet article qui m'a fait découvrir ce qu'est un Container Docker l'article :
Docker : la technologie qui révolutionne le cloud
Mise à jour 29/05/2018 - Maintenant je vais un peu plus loin
C'est étonnant cette réussite de Solomon Hykes, en quelques années, quelques mois, il réussit a fédérer autour de ses "container" ou conteneurs en français toute l'industrie informatique qui se rallie au standard de Docker de facto comme ils disent certainement car il n'y a pas d'autre standard.
Voici la vision Microsoftienne de l'utilisation des conteneurs pour les microservices :
https://docs.microsoft.com/fr-fr/dotnet/standard/microservices-architecture/ |
Là on est au top de la techno dans l'Azure et les Containers ... au milieu du DevOps
Azure Container Service
Azure Service Fabric
C'est l'avènement des architectures en Microservices ... Monolithique vs Microservices ... bla bla bla
On plonge dans le vif du sujet.
Le projet de référence concernant .NET Core et les microservices sur GitHub : eShopOnContainers
Grâce à NET Core 2.0 et Docker engine, requis Visual Studio 2017
On passe sur le doc : Containerized-Docker-Application-Lifecycle-with-Microsoft-Platform-and-Tools-(eBook)_v1.1.pdf
Containers c'est mieux que Virtual Machine moins gourmant en ressources.
En bas de la page le bouton est cassé pour continuer de naviguer en français, utilisez le menu de gauche :
Introduction aux conteneurs et à Docker |
On y parle de Docker Hub :
Docker Hub by Docker |
L'utilisation de registres d'images privés est recommandée dans les situations suivantes :
- confidentialité
- limitation de la latence du réseau
Choisir .NET Core dans les cas suivants :
- projets multi-plateforme
- architecture basée sur les microservices
- plus faible encombrement par conteneur
Utiliser .NET Framework lorsque les applications :
- sont fortement dépendantes de Windows
- utilisent les API Windows non prise en charge
- vous utilisez des Nugets non dispo pour .NET Core
Quel OS comme cible avec .NET conteneur ? |
Images officielles .NET Docker |
Mais tout ceci est très Microsoftien ...
Par la suite dans l'architecture des applications basées sur les conteneurs et les microservices, il s'agit principalement de l'orchestrations des conteneurs comment spécifier à Docker par le Docker file qu'un conteneur s'exécute dans un processus que doit faire l'orchestrateur en cas de défaut d'un conteneur.
Mise en conteneur d'applications monolithiques
En premier lieu, dans les conteneurs, il s'agit de déployer des applications monolithiques ainsi on n'a rien à faire concernant l'architecture de l'application mais ce modèle atteint rapidement ses limites lorsque l'application grossie.Il faut également que l'application trouve dans le conteneur tout ce dont elle a besoin pour fonctionner ... sinon ... champignon !
Vision Microsoftienne : Publication d’une application basée sur un seul conteneur sur Azure App Service. Azure App Service est un excellent moyen de fournir des services évolutifs basés sur un seul conteneur. On publie l'application directement dans le conteneur à partir de Visual Studio.
Avec Docker, la prise en charge des conteneurs dans Visual Studio 2017 permet d'inclure tout ce que l'on veut dans l'environnement de l'application.
Remarques :
Les conteneurs sont par défaut "sans état".
Les conteneurs Docker ne sont pas obligatoires pour les architectures orientées services SOA et pour les architectures de microservices plus avancées.
Architectures Orientées Services SOA
Certaines personnes affirment que « l’architecture de microservice est une architecture SOA bien conçue ».Si vous savez créer une application basée sur des microservices, vous savez également créer une application orientée services plus simple.
Conseils pour une architecture en microservices
Une Database privée par microservice :
Cohérence entre microservices |
Communication entre microservices
On reste un peu sur notre faim, comme souvent avec ces longs articles à la manière de Microsoft, les vraies solutions de sont pas dévoilées ...On vous parle de l'isolation un peu comme dans les architectures multi-processus isolation des données. Tout ceci est bien théorique !
Conception en microservices
Déterminer les limites du modèle de domaine pour chaque microservice, non en fonction de la taille même s'il faut tendre à de petits services mais en fonction de la connaissance du métier.Communication directe de client à microservice et modèle de passerelle d’API
Les microservices ont des points de terminaison (End Point) ou port TCP.To Be Continued
Ce post est devenu trop "Microsoft dépendant", je pensais qu'en partant de Container Docker et Architecture en microservices on ne tomberait pas aussi rapidement et aussi profondément dans les griffes de l'Azure microsoftienne... C'est bon à connaître mais ce n'est pas seule utilisation des Container Docker.
Bref à compléter ...
I should not forget to go to the beach :-))
Have fun!