Dans le dernier post je vous présentais Azure Service Fabric Mesh, la solution cluster-less de Microsoft pour orchestrer vos containers.

Nous avions vu en détail les composantes du nouveau template de déploiement.

Cette semaine, je vous propose de découvrir l'extension Visual Studio Code que j'ai développée: Service Fabric Mesh Tools.

Visual Studio Code Extension

L'extension est disponible depuis Code ou sur le MarketPlace.

 generator-azuresfmesh.png

  

Fonctionnalités

L'objectif de cette extension est de faciliter l'usage de Service Fabric Mesh, de la création d'applications au monitoring, en passant par le déploiement.

Comme Mesh, cette extension vous permettra de créer ces applications à partir de vos images, de les déployer et de les monitorer.

 

Les fonctionnalités actuelles sont les suivantes:

 sfmeshtools-commands.png

 

  • Service Fabric Mesh: Create Application (the command creates the mesh template and deployment profile)
  • Service Fabric Mesh: Add Service (the command adds a new service to an existing Service Fabric Mesh application)
  • Service Fabric Mesh: Generate deployment profile (from template file or uri)
  • Service Fabric Mesh: Login
  • Service Fabric Mesh: Deploy To Azure (the command creates the resource group if needed)
  • Service Fabric Mesh: List the deployed applications
  • Service Fabric Mesh: List the deployed networks
  • Service Fabric Mesh: List the services of an Application

 

Prérequis

 Afin de fonctionner, cette extension utilise VS Code, N la CLI ainsi que Yeoman.

 

Yeoman Generator

Cette extension a été développée entièrement avec Visual Studio Code et se base sur un générateur Yeoman également développé pour l'occasion: generator-sfmesh disponible directment depuis la command-line ou https://www.npmjs.com/package/generator-azuresfmesh.

 generator-azuresfmesh.png

Service Fabric Mesh Tools

Pour installer l'extension, rien de plus simple: depuis Visual Studio Code, ouvrez l'onglet Extensions et cherchez "Service Fabric Mesh".

 generator-azuresfmesh.png

 

Vous voulez contribuez ?

Y ayant pris goût, j'essaierai probablement de vous faire un retour sur le développement de générateurs Yeoman et d'extensions Visual Studio Code :)

En attendant je vous invite à découvrir le code source du générateur Yeoman et de l'extension Visual Studio Code depuis leur repos respectifs ainsi qu'à contribuer au bugfix et/ou à l'ajout de fonctionnalités:

Repository Github de vscode-sf-mesh-tools

Repository Github de generator-azuresfmesh

 

J'attends vos retours ;)

 

Service Fabric est une plateforme qui offre une solution simple au développement de conteneurs et microservices et à la gestion de leur cycle de vie et pouvant fonctionner sur Linux ou Windows. Il semble donc tout naturel de ne pas être contraint à utiliser Visual Studio pour créer, compiler et déployer des applications sur un cluster Service Fabric.

Visual Studio Code ou VS Code est un éditeur de code extensible développé par Microsoft pour Windows, Linux et OS X. Son fonctionnement "par extensions" permet d'enrichir simplement les fonctionnalités qu'il propose.

Vous avez découvert dans un post précédent comment disposer d'un cluster Service Fabric de test, gratuit et en quelques clics. Je vous présente maintenant comment vous passer de Visual Studio en utilisant l'outil multi-plateformes: VS Code et ses extensions pour créer vos premiers microservices sur Service Fabric.

 

Extension VS Code

Il y a à peine quelques jours, une nouvelle extension VS Code à été publiée sur le marketplace et comme à son habitude Microsoft a rendu le code source de ce projet disponible sur github. L'auteur principal de cette extension est un stagiaire (Peter Pogorski) qui a découvert Service Fabric et TypeScript sur ce projet alors félicitations à lui!

VS Code extension for C#

 

Features

A ce jour, l'extension permet de :

  • Créer des applications Service Fabric Applications (Java, C#, Container, Guest Executables)
  • Compiler des applications Java et C#
  • Déployer des applications sur le cluster local
  • Publier des applications sur un cluster distant
  • Supprimer des applications sur un cluster (distant ou local)
  • Débugger des applications Java et C# (uniquement sur Linux)

L'upgrade des applications n'est pas encore disponible mais doit être dans les tuyaux, sinon je vous rappelle que le projet est opensourcé sur Github ;)

 

Installation

Pour utiliser cette extension il vous faut quelques prérequis :

L'extension Service Fabric utilise l'outil Yeoman et des générateurs pour les différents types de projets. Pour installer Yeoman et ces générateurs, utilisez les commandes suivantes :

npm install -g yo

npm install -g generator-azuresfjava

npm install -g generator-azuresfcsharp

npm install -g generator-azuresfcontainer

npm install -g generator-azuresfguest

 

Si vous souhaitez créer et compiler des applications C#, il vous sera également demandé d'instaler l'extension associée disponible ici ou directement depuis Visual Studio Code.

VS Code extension for C#

Pour publier vos applications depuis Windows, vous devrez également installer l'extension Powershell.

VS Code extension for C#

Une fois tous ces prérequis remplis, vous pourrez passer aux choses sérieuses en installant l'extension Service Fabric de Microsoft.

VS Code extension for C#VS Code extension for C#

 

Commandes

Pour créer votre première application il vous faut créer un dossier/workspace et ouvrir l'invite de commandes (Ctrl+Shift+P), puis saisir la commande suivante:

Service Fabric: Create Aplication

Vous serez alors invité à choisir le type d'application (azuresfcsharp par exemple), le nom de votre application, de votre service et le type de service comme vous le feriez depuis Visual Studio classique.

Vous pourrez ensuite compiler votre application via l'invite de commandes:

Service Fabric: Build Application

 

Déploiement

Vous pourrez enfin déployer votre application sur votre cluster local:

Service Fabric: Deploy Application

 

Concernant le déploiement sur un cluster distant, vous n'aurez qu'à remplir le fichier Cloud.json en y inscrivant l'url et le port de votre cluster ainsi que les thumbprint de certificats en cas de connexion à un cluster sécurisé.

{
"ConnectionIPOrURL": "yourcluster.westus.cloudapp.azure.com",
"ConnectionPort": "19000",
"ClientKey": "",
"ClientCert": "",
"ServerCertThumbprint": "DDF58FC0816A400F77998D166AC68D7448EFF5FB",
"ClientCertThumbprint": "DDF58FC0816A400F77998D166AC68D7448EFF5FB"
}

 

D'ailleurs, il existe un bug sur Windows qui empêche la connexion via Powershell aux clusters sécurisés.

Je vous invite donc dans le terminal Powershell à taper vous même les commandes de connexion et de déploiement.

Si vous utiliser un cluster gratuit "Party cluster" présenté dans un article précédent, vous pourrez taper les commandes suivantes par exemple:

Import-PfxCertificate -FilePath .\party-cluster-xxxxx-client-cert.pfx -CertStoreLocation Cert:\CurrentUser\My -Password (ConvertTo-SecureString pfxpassword -AsPlainText -Force)
$cert = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object {$_.Subject -eq "cn=yourcluster.westus.cloudapp.azure.com"}
Connect-ServiceFabricCluster -ConnectionEndpoint 'yourcluster.westus.cloudapp.azure.com:19000' -KeepAliveIntervalInSec 10 -X509Credential -ServerCertThumbprint $cert.Thumbprint -FindType 'FindByThumbprint' -FindValue $cert.Thumbprint -StoreLocation 'CurrentUser' -StoreName 'My' -Verbose

./votreApp\install.ps1

 

Pour information, j'ai effectué une Pull Request sur le repo concernant le déploiement depuis Windows qui vient d'être validée. Le bugfix devrait donc être disponible dans la prochaine version de l'extension sur le marketplace.

 

Je vous souhaite une bonne installation et vive l'open-source !!!