22 avril 2017
2
LEVIO, UN MOT LATIN QUI
SIGNIFIE
rendre plus
agile alerte
alléger rapide
simplifier
souple
vif
léger
NOS VALEURS
fierté
réussite
en équipe
rigueur
engagement
sens des
responsabilités
qualité
NOTRE OFFRE
Services publics et
Santé
Assurance et
Finance
→ Direction de programme et
projet
→ Expertise Affaires
→ Intégration, configuration et
développement
→ Infrastructure et logiciel
→ Centre d’Innovation et de
développement à distance
→ Transformation et
innovation
→ Intégration et
configuration de
logiciels
→ Solutions
numériques et
mobiles
2 secteurs d’activité 3 familles de service 5 domaines de prestation
Expérience Azure
Contexte
Chez Levio, une gang qui a le goût d’explorer de
nouvelles technologies et de nouvelles façons de faire
Implication des ressources
Projet utile pour l’entreprise
Entreprise en mode cloud par nature
Démo application
Architecture
Les outils
Visual Studio Online
Stakeholder, Basic, Visual Studio subscription
Achat de licence pour les développeurs sans MSDN
et > 5
La souscription Azure permet d’acheter des licences
Fonctionnalité disponible dans le portail classique
Les licences sont assignées dans VSO par la suite
Visual Studio Online - Code
TFVC (Team Foundation Version Control) ou Git
Notre choix: TFVC
Choix confortable plutôt qu’audacieux
Interface Web ou lien avec Visual Studio
Mais pas VSCode 
Visual Studio Online - Work
Utilisation des work items pour documenter les
« story », les tâches et les anomalies
Area, Iteration plus ou moins utilisées
Pas de suivi de temps
Visual Studio Online - Build
Suite de tâches menant à la production d’éléments
déployables
Catalogue de tâches par défaut
VS Marketplace
Déclenché manuellement, selon une cédule, CI ou
gated check-in
Visual Studio Online - Release
Suite de tâches menant au déploiement d’éléments
produits par le build
Catalogue de tâches par défaut
VS Maketplace
Déclenché manuellement, selon une cédule ou CD
Configuration spécifique pour chaque environnement
Service endpoint
Permet de se connecter à des environnements externes
pour le déploiement
Azure entre autre
Visual Studio Online - Package
Nuget & npm (node package manager)
npm = nuget pour Javascript
Remplacement du nuget interne Levio par VSO
Package
Azure App service
2 web app
Application Angular
API Node js d’impression
1 api app
API CV
CORS configuration portail
Angular
Défi: déploiement sur web app
Tous les outils sont disponibles dans VSO Releases
Node js
Javascript server side
Choisi pour expérimenter et pour l’outil de génération
de document Word
https://github.com/open-xml-templating/docxtemplater
Environment variable = application settings
WEBSITE_NODE_DEFAULT_VERSION contrôle la
version de node.js qui est utilisée par la web app
process.env.VARIABLE  app settings VARIABLE
Même technique de déploiement que Angular
DocumentDB
SQL like syntax & Provider Linq
L'équipe a choisi SQL dans le cadre de notre projet
Server side development
Triggers, stored procedures, user defined functions (UDF)
Programmation Javascript
Création par API ou par le portail Azure
Pas disponible par ARM Template :-(
Une UDF utilisée pour retourner une liste de sous-attributs
• SELECT udf.getAllFirmes(c) as FIRMES FROM c
Pas de schéma, pour le meilleur et pour le pire
Ajout d'une propriété DocType
Pas d'automatisation pour la création de la collection
ARM Template
Powershell
Coûts importants
Ajustement du modèle de prix en 2016 permet de mieux contrôler les couts
Local Emulator
Query playground
https://www.documentdb.com/sql/demo
DB Migration Tool
https://docs.microsoft.com/en-us/azure/documentdb/documentdb-import-data
DocumentDB
Azure web app authentication
2 clients à authentifier
Application Angular
Service d'impression ==> service utilitaire
Création d’une « application » dans l’AD
Clientèle uniquement dans l'AD Levio
Configuration de la sécurité au niveau de la web app
Utilisation de ADAL.js pour la gestion des logon/token
Démo création application + config web app
Azure web app authentication
Active Directory Authentication Library (ADAL) vs
Microsoft Authentication Library (MSAL)
ADAL limité à Azure AD ou ADFS
MSAL supporte AD, AD B2C & MS account
• Nouveaux endpoints d'authentification
• Plus besoin d'une souscription Azure pour enregistrer les
applications (nouveau portail)
• Developer preview
Vittorio Bertocci
https://blogs.msdn.microsoft.com/vbertocci/
Kudu
Engin de déploiement Azure Web App
https://github.com/projectkudu/kudu/wiki
Beaucoup plus de fonctionnalité que ce qui est présenté
aujourd'hui
La console Kudu permet de consulter/modifier les fichiers
qui sont déployés dans le web app
With great power comes great responsability (Uncle Ben)
Les actions sont live
Démo
Kudu
Interface REST pour automatiser
/api/command
/api/vfs
/api/zip
Autres api disponibles
• https://github.com/projectkudu/kudu/wiki/REST-API
Application Insight
Monitoring de l’application
Client
• Pas utilisé dans notre cas
• Bon exercice à mettre en place (Component Angular)
Web api
• Éléments « out-of-the-box »
• Événements personnalisés
• SDK pour node js
Configuration du « ikey » dans les appsettings
• Override la config de base dans ApplicationInsights.config
• Env. variable APPINSIGHTS_INSTRUMENTATIONKEY
Application Insight
Alertes
Définies dans le portail
Courriel
Tableaux de bord à configurer dans le portail
API pour exploiter les informations
Infrastructure as code
ARM Template
Syntaxe JSON
Éditeur dans Visual Studio
Les paramètres permettent de lier le template avec le
déploiement
Chaque paramètre du template est "mappé" par un
paramètre de la configuration du release
DANGER: Correction direct dans le portail
Juste pour voir si ça marche…..
Infrastructure as code
Les différents éléments d'un template peuvent
se référencer
Authorization key & endpoint URL de
documentBD se retrouvent dans les app
settings du web api app
Les templates peuvent spécifier des valeurs
exportées
Permet de lier l'exécution des scripts
Infrastructure as code
Librairie de template en ligne
https://azure.microsoft.com/en-us/resources/templates/
https://github.com/Azure/azure-quickstart-templates
Export ARM Template
Certains éléments non supportés par les templates
• Authentification
Certains éléments supportés mais non exportés
• Ex: CORS settings web app

Expérience pratique de développement Azure

  • 1.
  • 2.
    2 LEVIO, UN MOTLATIN QUI SIGNIFIE rendre plus agile alerte alléger rapide simplifier souple vif léger
  • 3.
  • 4.
    NOTRE OFFRE Services publicset Santé Assurance et Finance → Direction de programme et projet → Expertise Affaires → Intégration, configuration et développement → Infrastructure et logiciel → Centre d’Innovation et de développement à distance → Transformation et innovation → Intégration et configuration de logiciels → Solutions numériques et mobiles 2 secteurs d’activité 3 familles de service 5 domaines de prestation
  • 5.
  • 6.
    Contexte Chez Levio, unegang qui a le goût d’explorer de nouvelles technologies et de nouvelles façons de faire Implication des ressources Projet utile pour l’entreprise Entreprise en mode cloud par nature
  • 7.
  • 8.
  • 9.
  • 10.
    Visual Studio Online Stakeholder,Basic, Visual Studio subscription Achat de licence pour les développeurs sans MSDN et > 5 La souscription Azure permet d’acheter des licences Fonctionnalité disponible dans le portail classique Les licences sont assignées dans VSO par la suite
  • 11.
    Visual Studio Online- Code TFVC (Team Foundation Version Control) ou Git Notre choix: TFVC Choix confortable plutôt qu’audacieux Interface Web ou lien avec Visual Studio Mais pas VSCode 
  • 12.
    Visual Studio Online- Work Utilisation des work items pour documenter les « story », les tâches et les anomalies Area, Iteration plus ou moins utilisées Pas de suivi de temps
  • 13.
    Visual Studio Online- Build Suite de tâches menant à la production d’éléments déployables Catalogue de tâches par défaut VS Marketplace Déclenché manuellement, selon une cédule, CI ou gated check-in
  • 14.
    Visual Studio Online- Release Suite de tâches menant au déploiement d’éléments produits par le build Catalogue de tâches par défaut VS Maketplace Déclenché manuellement, selon une cédule ou CD Configuration spécifique pour chaque environnement Service endpoint Permet de se connecter à des environnements externes pour le déploiement Azure entre autre
  • 15.
    Visual Studio Online- Package Nuget & npm (node package manager) npm = nuget pour Javascript Remplacement du nuget interne Levio par VSO Package
  • 16.
    Azure App service 2web app Application Angular API Node js d’impression 1 api app API CV CORS configuration portail
  • 17.
    Angular Défi: déploiement surweb app Tous les outils sont disponibles dans VSO Releases
  • 18.
    Node js Javascript serverside Choisi pour expérimenter et pour l’outil de génération de document Word https://github.com/open-xml-templating/docxtemplater Environment variable = application settings WEBSITE_NODE_DEFAULT_VERSION contrôle la version de node.js qui est utilisée par la web app process.env.VARIABLE  app settings VARIABLE Même technique de déploiement que Angular
  • 19.
    DocumentDB SQL like syntax& Provider Linq L'équipe a choisi SQL dans le cadre de notre projet Server side development Triggers, stored procedures, user defined functions (UDF) Programmation Javascript Création par API ou par le portail Azure Pas disponible par ARM Template :-( Une UDF utilisée pour retourner une liste de sous-attributs • SELECT udf.getAllFirmes(c) as FIRMES FROM c
  • 20.
    Pas de schéma,pour le meilleur et pour le pire Ajout d'une propriété DocType Pas d'automatisation pour la création de la collection ARM Template Powershell Coûts importants Ajustement du modèle de prix en 2016 permet de mieux contrôler les couts Local Emulator Query playground https://www.documentdb.com/sql/demo DB Migration Tool https://docs.microsoft.com/en-us/azure/documentdb/documentdb-import-data DocumentDB
  • 21.
    Azure web appauthentication 2 clients à authentifier Application Angular Service d'impression ==> service utilitaire Création d’une « application » dans l’AD Clientèle uniquement dans l'AD Levio Configuration de la sécurité au niveau de la web app Utilisation de ADAL.js pour la gestion des logon/token Démo création application + config web app
  • 22.
    Azure web appauthentication Active Directory Authentication Library (ADAL) vs Microsoft Authentication Library (MSAL) ADAL limité à Azure AD ou ADFS MSAL supporte AD, AD B2C & MS account • Nouveaux endpoints d'authentification • Plus besoin d'une souscription Azure pour enregistrer les applications (nouveau portail) • Developer preview Vittorio Bertocci https://blogs.msdn.microsoft.com/vbertocci/
  • 23.
    Kudu Engin de déploiementAzure Web App https://github.com/projectkudu/kudu/wiki Beaucoup plus de fonctionnalité que ce qui est présenté aujourd'hui La console Kudu permet de consulter/modifier les fichiers qui sont déployés dans le web app With great power comes great responsability (Uncle Ben) Les actions sont live Démo
  • 24.
    Kudu Interface REST pourautomatiser /api/command /api/vfs /api/zip Autres api disponibles • https://github.com/projectkudu/kudu/wiki/REST-API
  • 25.
    Application Insight Monitoring del’application Client • Pas utilisé dans notre cas • Bon exercice à mettre en place (Component Angular) Web api • Éléments « out-of-the-box » • Événements personnalisés • SDK pour node js Configuration du « ikey » dans les appsettings • Override la config de base dans ApplicationInsights.config • Env. variable APPINSIGHTS_INSTRUMENTATIONKEY
  • 26.
    Application Insight Alertes Définies dansle portail Courriel Tableaux de bord à configurer dans le portail API pour exploiter les informations
  • 27.
    Infrastructure as code ARMTemplate Syntaxe JSON Éditeur dans Visual Studio Les paramètres permettent de lier le template avec le déploiement Chaque paramètre du template est "mappé" par un paramètre de la configuration du release DANGER: Correction direct dans le portail Juste pour voir si ça marche…..
  • 28.
    Infrastructure as code Lesdifférents éléments d'un template peuvent se référencer Authorization key & endpoint URL de documentBD se retrouvent dans les app settings du web api app Les templates peuvent spécifier des valeurs exportées Permet de lier l'exécution des scripts
  • 29.
    Infrastructure as code Librairiede template en ligne https://azure.microsoft.com/en-us/resources/templates/ https://github.com/Azure/azure-quickstart-templates Export ARM Template Certains éléments non supportés par les templates • Authentification Certains éléments supportés mais non exportés • Ex: CORS settings web app