//MS BUILD 2018 – ANNONCES ET NOUVEAUTÉS CONTAINERS DANS AZURE
Introduction – Solution de conteneurs sur Azure ?
Les conteneurs Docker sont un sujet en vogue en ce moment. Et bien entendu, l’investissement de Microsoft sur le support de cette technologie sur Azure n’est pas passée inaperçu durant l’évènement Build 2018 ! Chaque service a eu droit à son lot d’annonce :
- À commencer par Azure Container Instances, qui permet d’exécuter un groupe de conteneurs Docker à la demande, en mode « Container as a Service »,
- En passant par les Azure Web App for Containers (= Azure Web App Linux), qui exposent un service web lui-même packagé dans un conteneur Docker,
- Sans oublier le service Azure Container Registry, qui permet de disposer de son propre registre de conteneurs privé
- Et pour finir le service qui a peut-être bénéficié du plus grand nombre d’annonces, Azure Kubernetes Service, le service d’orchestration Kubernetes en mode managé (= pas de VM à gérer pour les noeuds Master !)
Voyons maintenant les principales annonces qui m’ont marqué.
ACI (Azure Container Instances)
Annoncé quelques jours avant le début de la Build 2018, le service Azure Container Instances passe en GA (= General Availability, soit supporté par Microsoft pour faire tourner des environnements de production).
À cette occasion, le pricing du service est revu à la baisse : de l'ordre de la trentaine d'euros par mois pour un groupe multi-conteneurs avec 1 vCPU et 1 GO de RAM.
À noter que le pricing est à la seconde près, et semble particulièrement plus avantageux pour une utilisation non continue, que ce soit pour exécutions ponctuelles ou pour absorber une charge supplémentaire d’un cluster Kubernetes (Comme démontré sur le projet Virtual Kubelet https://github.com/virtual-kubelet/virtual-kubelet/tree/master/providers/azure)
Il est également important de souligner que les conteneurs Windows sont supportés sur ACI, néanmoins sans le support multi-conteneurs.
Pour plus d’information, je vous invite à lire l’annonce officielle plus détaillée avec toutes les nouveautés :
https://azure.microsoft.com/en-us/blog/azure-container-instances-now-generally-available/
6 centimes pour exécuter un conteneur pendant 1 heure !
Azure Web App for Containers
Les Azure Web App for Containers sont disponibles en GA (General Availability) depuis l’année dernière. L'arrivée en Public Preview d'une nouvelle fonctionnalité couplée à ce service a été annoncée durant l’évènement Build 2018 : Le support des applications multi-container sur une seule Azure Web App !
Même si pour un environnement de production, il est préférable de séparer nos containeurs sur des workload (pour avoir plus de flexibilité sur la mise à l’échelle de chaque service, etc.), cette fonctionnalité est la bienvenue pour pouvoir optimiser les coûts pour un environnement de Dev assez simplement.
Deuxième annonce liée aux Azure Web App for Containers : le support en Public Preview des App Service Environment, permettant aux Azure Web App d’être liées à un Custom VNet, et ainsi restreindre l’accès à d’autres ressources de votre application (Bases de données Azure SQL Database, VMs, etc.)
Et pour finir, si vous n’avez pas encore essayé ce service, sachez que pour toute nouvelle souscription Azure, une Azure Web App for Containers de taille B1 sera offerte gratuitement durant tout le premier mois 😊
D’autres fonctionnalités annoncées concernant plutôt les applications Linux (sans notion de conteneur) sont disponibles en détail sur le blog post officiel :
Interface de description des multi-containers directement depuis le Portail Azure, en mode docker-compose ou Kubernetes !
ACR (Azure Container Registry)
Le service ACR (Azure Container Registry), permettant de stocker facilement et à faible coût ses images Docker, a également vu son lot d’annonce :
Premièrement, la disponibilité en GA de la fonctionnalité de géo-réplication des ACR dans plusieurs data center Azure. Très pratique pour réduire la latence liée au partage d’images Docker à travers le monde !
Seconde annonce que j’apprécie particulièrement : L’arrivée en Public Preview d’ACR Build qui permet de builder ses images Docker directement sur Azure. Si l’arrivée d’une option supplémentaire pour builder ses conteneurs est toujours la bienvenue, c’est particulièrement sa capacité à comprendre les images de base utilisées dans nos conteneurs, et à rebuilder automatiquement tous les conteneurs dépendants en cas de mise à jour de l’image de base ! (plus d’infos sur la documentation officielle : https://docs.microsoft.com/en-us/azure/container-registry/container-registry-tutorial-base-image-update#create-build-task)
az acr build-task create \ --registry $ACR_NAME \ --name buildhelloworld \ --image helloworld:{{.Build.ID}} \ --build-arg REGISTRY_NAME=$ACR_NAME.azurecr.io \ --context https://github.com/$GIT_USER/acr-build-helloworld-node \ --file Dockerfile-app \ --branch master \ --git-access-token $GIT_PAT
Créer une tâche de build ACR, et permettre le rebuild automatique du conteneur lorsque l'une de ses dépendances (les images référencées dans le FROM) est mise à jour !
Enfin pour finir, toujours dans l’optique d’offrir une manière simple de sécuriser nos plateformes sur Azure, Microsoft annonce la Private Preview de la fonctionnalité Secure By Default sur ACR, qui proposerait un scan de sécurité automatique sur chaque image poussée sur une registry, avec la possibilité de s’abonner à un Webhook pour être prévenu dès la fin du scan pour pouvoir ensuite déployer avec sérénité ledit conteneur.
Plus d’infos sur le blog post officiel :
AKS (Azure Kubernetes Service)
Le meilleur pour la fin si j’ose dire : Une pluie d’annonces pour AKS (Azure Kubernetes Service), le service d’orchestration de conteneur managé sur Azure.
Démarrons par l’annonce qui m’a le plus enthousiasmé : Les Dev Spaces avec AKS et Visual Studio / VS Code (en Private Preview). Et si lorsque je devais travailler sur un module, Visual Studio était capable de déployer et d’exécuter tous les conteneurs de mon application directement sur AKS, de me retourner des endpoint accessibles via tunnel SSH et me permettre ainsi de me focaliser uniquement sur l’exécution du module en cours de modification ? C’est la promesse que j’ai comprise de ce service, et j’ai très hâte de pouvoir faire plus de tests dessus !
La seconde annonce était également très attendue : La possibilité d’intégrer les conteneurs à un VNET custom via Azure CNI (Container Network Interface). Très pratique pour connecter vos conteneurs à des services sur Azure uniquement accessible par des réseaux custom privés.
L’intégration d’AKS avec Azure Monitor dès la création permet d’avoir une solution de monitoring intégrée et facile à mettre en place. L’état des conteneurs créés, la répartition sur les différents nœuds / VM, leurs performances CPU, mémoire vive, etc. sont alors directement disponibles depuis l’interface du portail Azure, dans la section Health (preview). Les logs sont également accessibles directement depuis la section Log Search du portail Azure.
Monitoring et Logs des conteneurs sur AKS built-in dans le Portail Azure !
Autre fonctionnalité présente dès la création d’AKS : La fonctionnalité d’HTTP application Routing permet de rendre vos conteneurs accessibles très facilement en permettant la création d’enregistrement DNS automatiquement pour chacun d’entre eux, sans avoir à manipuler de DNS Records, etc.
Enfin pour finir, la Private Preview des conteneurs Windows avec AKS a également été annoncée durant la Build. De quoi offrir un hébergement solide pour vos conteneurs Windows !
Plus d’infos dans le blog des annonces officielles :
https://azure.microsoft.com/en-us/blog/kubernetes-on-azure/
Conclusion – Les autres solutions et le futur des conteneurs sur Azure
Voilà, difficile de nier la montée en puissance des conteneurs dans l’univers des solutions logicielles. En dehors de toutes ces nouvelles fonctionnalités pour héberger vos conteneurs, il existe également d’autres services azure sur lequel vous pouvez utiliser / réutiliser des conteneurs : Azure Functions, Azure Batch AI, Azure Service Fabric, etc.
Si les conteneurs Linux sont d’ores et déjà très largement utilisés, on voit apparaitre de plus en plus d’avancées sur les conteneurs Windows, que ce soit par l’apparition de nouveaux services d’hébergement sur Azure, des nouvelles possibilités de mixer des conteneurs linux et des conteneurs Windows, etc.
Nul doute que nous allons encore entendre beaucoup parler de nouveaux outils autour de la technologie des conteneurs Docker à l'avenir :)
Commentaires