Conférence : CloudOuest 2020

Le line-up de l’événement CloudOuest à été rendu public cette semaine et j’ai la chance d’en faire parti !

highres 489120849 - Conférence : CloudOuest 2020

Comme présenté ici, cet événement à lieu le 18 juin et rassemblera des conférences sur les principaux cloud providers, Azure, AWS et GCP !

 J’aurais le plaisir d’y donner un talk :

DU DEVOPS MULTI CLOUD AVEC KUBERNETES ET TERRAFORM

index hero 300x258 - Conférence : CloudOuest 2020

Avec mes chers collègues, Yves et Sébastien nous présenterons la mise en oeuvre, à partir d’un projet .Net Core et de script Terraform, d’un pipeline d’intégration et déploiement continu avec Azure DevOps pour déployer une application dans un cluster Kubernetes sur Azure, AWS et GCP.

talk 1024x561 - Conférence : CloudOuest 2020

A bientôt !

Thomas

Keep Calm & PoC sur Azure

Hi ! “Les idées, en général, cela ne manque pas. Pour ce qui est du temps, c’est déjà plus délicat. Durant cette présentation, nous verrons quels outils et services Azure peuvent nous aider à développer un PoC rapidement”.

Ci-dessous les sujets abordés au Meetup Mug .Net de mars. Meetup organisé par Nicolas Mariot et présenté par Christophe Maneu !

Azure Functions : Offre Serverless : on déploie une méthode et on définit un trigger qui déclenche cette fonction (appel http, enregistrement en base, arrivée d’un message sur un ServiceBus…).

Azure App Service : Offre PAAS : hébergement d’application web . Net ou .Net Core (et même Java, Php, Node) . Dockerisé ou non.

Web API ASP.NET Core

Azure App Service

Azure DevOps : Anciennement TFS / VSTS : outils d’intégration / déploiement continu de Microsoft.

Microservices et Application Lifecycle Management

Microsoft Visual Studio Team Services

Application Insights : Monitoring des applications déployées.

Logic Apps : moteur de workflow. Équivalent de Microsoft Flow, mais avec des connecteurs pour Azure.

Azure DevOps Project : Pour générer automatiquement une solution Visual Studio + pipeline d’intégration / Déploiement continu + hébergement.

Il n’y a plus qu’à ouvrir Visual studio et se brancher sur le repository, toute l’indus et l’hébergement Cloud est fait.

Azure DevOps Project

Azure Blob Storage : Stockage

Votre compte MSDN vous permet d’activer un crédit Azure de 150$ par mois pour faire vos tests : https://my.visualstudio.com/benefits

Bon PoC dans Azure !

3 - Keep Calm & PoC sur Azure

Intégration et déploiement continu avec Azure Service Fabric

Nous allons maintenant détailler la mise en place de VSTS  (Azure DevOps), notre outil ALM, pour notre projet Service Fabric.

Intégrations

Premier besoin, un outil de gestion de version. J’ai utilisé Git et le pattern d’utilisation GitFlow pour la gestion des branches. Ce pattern propose une façon d’utiliser Git. Pour mes besoins je n’ai utilisé que les branche Develop et Master.

15 1 - Intégration et déploiement continu avec Azure Service Fabric

J’ai donc créé un projet sur VSTS. il faut ensuite utiliser l’URL du dépôt pour s’y connecter depuis Team Services de Visual Studio et pousser son code.
J’ai ensuite configuré mon build à partir du template Azure Service Fabric :

14 1 1024x701 - Intégration et déploiement continu avec Azure Service Fabric

En exécution ça donne ça :

13 1 1024x549 - Intégration et déploiement continu avec Azure Service Fabric
Déploiements

Pour le déploiement vers notre environnement Cloud Service Fabric c’est très simple, une seule étape VSTS suffit :

11 1 - Intégration et déploiement continu avec Azure Service Fabric

Bien sur dans un vrai contexte projet le pipeline sera plus fournis, avec de multiples environnement : dev, qualification, intégration, pre-production …

Pour la configuration de ma tache de déploiement, il faudra configurer correctement la section Cluster Connexion qui fera le lien entre VSTS et ma plateforme Azure :

9 1 - Intégration et déploiement continu avec Azure Service Fabric

Les informations demandées par cet écran sont expliquées par les infobulle. Si vous n’avez pas associé de mot de passe à votre certificat, laissez le champ vide.

Pendant l’étape de déploiement de notre projet Service Fabric, l’Explorer affichera également des informations sur le déploiement :

8 - Intégration et déploiement continu avec Azure Service Fabric

La mise à jour se fait sans interruption de service puisque le déploiement se fait par nœud. A un instant T du déploiement il y aura donc deux versions de votre application en exécution simultanée. A chaque mise à jour de nœuds, Azure Service Fabric réalise des tests pour vérifier que votre installation s’est bien passée. Si l’update à échoué, un rollback vers la précédente version est automatiquement réalisé.

Pour une gestion plus poussée des montée de version, on pourra mettre en place le « Blue / Green Deployment » qui nous permettra de valider la version à jour de notre service (par des tests sur l’interface swagger par exemple) sur un nœud précis avant de la déployer sur les autres.

Pour aller plus loin

Canary Release / Blue Green Deployment

Les pattern des géants du web

Tutoriel Microsoft complet

A bientôt !

Thomas

Centre de déploiement et DevOps Project

Pour mon test dans le précédent article, j’avais besoin de créer et déployer rapidement dans Azure une WebAPI.

Deux possibilités !

J’ai créé le projet sous Visual Studio, je l’ai publié sur Azure. Si je veux ensuite gérer le projet sous Azure DevOps (VSTS ) je peux utiliser le module Centre de déploiement de la Web Application. J’obtiens alors très simplement une configuration de build et release pour le déploiement vers Azure et je n’ai plus qu’a pousser mon code sur le dépôt créé :

4 - Centre de déploiement et DevOps Project

5 - Centre de déploiement et DevOps Project

6 - Centre de déploiement et DevOps Project

Pour déployer dans Azure, j’aurais pu également utiliser Azure DevOps Project !

3 - Centre de déploiement et DevOps Project

Cette outils permet depuis Azure et sans besoin préalable de :

  • Créer une Web Application du langage / framework de votre choix.
  • Créer un projet et un repository git dans VSTS
  • Configurer CI et CD.

Cet outils est très facile à utiliser, il suffit de quatre étapes pour générer un pipe d’intégration et de déploiement continue vers Azure.

2 - Centre de déploiement et DevOps Project

Il ne reste plus qu’a récupérer le code source créée par Azure DevOps en se connectant au repository pour pouvoir commencer à travailler. Notre configuration de builds et de releases est déjà opérationnelle.

A l’heure actuelle, février 2019, Azure DevOps Project s’enrichit :

7 - Centre de déploiement et DevOps Project

Pour les projets basés sur le Framework Core nous pouvons générer le code, et le pipeline CI/CD en quelques clics pour les solutions :

  • WebApplication Windows ou Linux
  • WebApp conteneurisé avec Docker
  • Fonction pour faire du serverless
  • Service Fabric pour du microservices made in Microsoft
  • Kubernetes Service pour du microservices managé via K8s.

Pour tester un nouveau produit, il n’y a rien de plus facile !

Thomas

Microservices et Azure Service Fabric

Après ces trois derniers articles :

Nous pouvons conclure qu’Azure Service Fabric propose une solution clé en main pour la conception d’une architecture microservices dans Azure car il offre des réponses aux différentes problématiques de mise en œuvre de microservices.

6 2 - Microservices et Azure Service Fabric

Grâce à cette offre PAAS, les développeurs ont à leur disposition :

  • Un Framework de développement en .Net et des templates de projet pour VS2017
  • Une solution CI/CD compatible avec VSTS depuis peu renommé Azure DevOps 🙂

ArticleVsts Alm - Microservices et Azure Service Fabric

  • Une offre PAAS pour l’intégration de la solution dans le cloud Azure. Cette offre PAAS garantis :
  • Scalabilité de nos services.
  • Découvrabilité via le Reverse Proxy.

6 3 - Microservices et Azure Service Fabric

  • Intégration avec API Management pour les appels clients.

3 3 - Microservices et Azure Service Fabric

  • Monitoring avec Application Insights.4 2 - Microservices et Azure Service Fabric
  • Communication avec Azure Service Bus pour les appels asynchrone.

De plus, un des avantages majeurs de cette solution à mon sens est que les développeurs retrouveront leur marque assez rapidement par rapport au développement d’API REST en ASP .Net Core.

net core logo proposal - Microservices et Azure Service Fabric

A contrario une solution comme Azure Container Service implique la montée en compétence sur :

  • La gestion des conteneurs avec Docker
  • Un orchestrateur de conteneur Docker tel que Kubernetes
  • La plateforme AKS en elle-même.

Maintenant que nous en avons terminé avec l’analyse de cette solution nous allons passer à la mise en oeuvre 🙂