Automatiser complétement le provisionnement de vos environnements applicatifs Azure, que ce soit du IaaS, PaaS ou mixte. Voyez le rôle des différents composants comme Azure Resource Manager, PowerShell DSC, Azure Automation, MS Deploy, et autres. Cette session a été présentée à l'évènement Global Azure Bootcamp Paris 2015, le 25/04/2005, par Marius Zaharia et Maxime Launay.
6. Groupe Econocom
2,0 Md€ de CA
en pro forma* en 2013
1,77 Md€ consolidé
collaborateurs
8 300
pays
20
40 ans
d’expérience
Millions d’actifs technologiques
gérés en 2013
6,3
dont 650 M€
en Services en pro forma*
443 M€ consolidé
>100 M€
de Résultats Opérationnels
Courants en pro forma*
89 M€ en consolidéLe 22 novembre 2013, Econocom a finalisé
l'acquisition de la totalité du capital d'Osiatis, acteur
majeur des services aux infrastructures et spécialiste
des applications connexes.
* Osiatis inclus sur 12 mois
9. ■Contexte: applicatifs et systèmes divers:
■IaaS : VMs de tout type, réseaux virtuels, env. hybride on/off premises
■PaaS : sites web, cloud services, apps mobiles, bases de données, …
■Hybride: IaaS / PaaS [ / SaaS]
■OBJECTIF
■Déployer / provisionner des environnements applicatifs standardisés
de manière automatisée et répétable
CIBLE : l’environnement applicatif
10.
11. ■Azure Service Management API
■PowerShell : “Manage your Azure services and apps using scripts from
the command line.”
Install Documentation Browse script center
■Azure Automation : “Simplify cloud management with process
automation.” Console-as-a-Service. Schedule or one-shot.
Get started Automation Library
Authoring Runbooks Backing up Azure Automation
Azure / PowerShell / Automation
12. ■Infrastructure As Code
■Simplify configuration
■Prevent configuration drift
■Enable continuous deployment
■Create an ecosystem
■Three phases
■Authoring Phase
■Staging
■“Make it So”
Powershell Desired State Configuration (DSC)
Configuration MyConfig {
Param( … )
Node ‘localhost’ { … }
}
Node 1 … Node n
13. ■Nouveau concept
de code
déclaratif de
déploiement
■Nouvelle API
Azure fournie
avec/à la base du
nouveau portail
Azure
■Template (JSON)
■Exécution
intélligente
Azure Resource Manager (ARM)
15. ■Provisionner un environnement
composé de:
■Storage Account
■Virtual Network
■VMs IaaS de Back End
■Active Directory
■SQL Server
■ SQL Express installé à la volée
■ Avec provisionnement d’une base
■ Ouverture de port et parefeu pour SQL
■Site Web frontal – Azure Web App
Exemple CIBLE: App web hybride IaaS / PaaS
Virtual Network w/ subnet
Cloud Service
Azure Web App
Storage Account
Active Directory SQL Server
18. ■Azure Resource Manager : 1 template ARM unifié
■Déployer par groupe de ressource pour provisionner à la fois tout l’environnement.
■Reprise du provisionnement pour les déploiements partiels/non aboutis
■Déprovisionnement facile: suppression du groupe
■PowerShell DSC : 1 script unifié pour les ressources IaaS (VMs)
■Référencé directement dans le template ARM
■Spécifique : pour SQL Server - configuration INI, script SQL
■Site Web: package de déploiement buildé par Visual Studio (projet Cloud Deployment)
■Le tout lancé dans PowerShell (pour exécutions multiples de provisionnement)
■Artefacts (templates, package, MSI, ISO etc.) à monter dans un stockage Azure
disponible
■Azure Automation : exécution du script (**** PAS IMPLEMENTE ****)
Solution
19. A. Conception et construction
1. ARM : Trouver le template de chaque ressource Azure du groupe (?)
2. Le puzzle du template ARM. Assembler des templates individuels (“environnement.json”)
3. Script PowerShell d’exécution ARM ("Environment.ps1")
4. DSC: déployer des fonctionnalités dans les VMs (Windows) ("eoBootCampDSC.ps1")
5. Encore des fonctionnalités: enrichir le DSC avec des fichiers de configuration et scripts
spécifiques (ex. install SQL) ("ConfigurationFile.ini", "database.sql")
6. Intégrer le DSC dans te template ARM (via PowerShell DSC VM extension)
7. Le package Web App: intégrer le déploiement de website dans le template ARM
8. Scripter l’upload des artefactes dans le stockage (" PushResources.ps1 ")
B. Exécution
A. Exécution one-shot de l’upload des artefactes (" PushResources.ps1 ")
B. Exécution (x fois) du script de déploiement ("Environment.ps1")
C. Nettoyage : Suppression (manu/script) du groupe de ressource
Approche
20. ■Portail Azure (preview) http://portal.azure.com
■téléchargement de templates ARM
■Resource Explorer https://resources.azure.com/
■Visualisation des structures et valeurs d’objets Azure
■Visual Studio – (nouveau) type de projet Cloud App
■génération de scripting et template ARM pour déploiement
■génération de package web
■PowerShell [ISE]
■Documentation / Script center
■Azure Resource Manager Template Language
Outillage
21.
22.
23. ++
■Mécanismes très puissants
■Niveau host (Azure)
■Niveau guest (Windows mais aussi Linux)
■Ressources PaaS
■Degré élevé d’automatisation (voire complet)
--
■Intégration incomplète à jour : fiabilité – à suivre
■Templates perfectibles/encore à venir
■Intégration parfois difficile avec legacy config & scripting
Conclusion