Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare une entreprise Scribd logo
TIAD 2016
Accenture DevOps Platform dans
Microsoft Azure
Pascal Sauliere
Architecte Infrastructure
Microsoft France
@psauliere
Regis Allegre
DevOps Lead France
Accenture
@HappyKing
Au programme
 Automatisation avec Azure
 ADOP : Accenture DevOps Platform
 ADOP sur Azure
Automatisation dans
Azure
Infrastructure agile
Penser l’infrastructure comme un développeur pense son code
Langages de scripts
Langages déclaratifs
Appliquer les méthodes des développeurs : gestion des sources, versions
Associer le dev et l’infra dans les dépôts de code
Grouper les tâches automatisées – Orchestrator, Azure Automation
Provisionnement, déploiement
Virtualisation : CPU, mémoire, stockage, réseau
Cloud : Azure Resource Manager, modèles JSON
(Clusters de) serveurs de containers : Docker Machine, Docker Swarm, Mesos
Gestionnaires de packages : APT, PackageManagement, PowerShell Gallery, Chocolatey, NuGet, Docker
Hub, Docker Trusted Registry…
Containers et clusters de serveurs de containers : Docker
Configurations déclaratives : PowerShell DSC, Chef, Puppet, Ansible, Salt Stack
Tests automatisés (Pester)
Azure Resource Manager (ARM)
Groupes de ressources : frontière du cycle de vie d’une application
Ressources : tout ce que l’on peut trouver dans Azure – VM, Web app, base SQL Azure…
RBAC : groupes d’utilisateurs, rôles, permissions sur groupes de ressources
Tags : (clés, valeurs) sur ressources ou groupes de ressources
Policy : restrictions sur ressources
Templates : définition déploiement et configuration de vos application
Simplicité de l’administration – tags pour reporting, facturation, conformité, audit
Template déclaratif – qualité et simplicité
Idempotence – déploiements répétables et cohérents
Passage à l’échelle et parallélisme
Azure Resource Manager - Notion de template
Options de déploiement
 Portail Azure
 PowerShell
 Azure CLI
 Visual Studio
 VSTS release
 Azure Automation
 Azure DevTest Labs
Azure Quickstart Templates
 Grand choix d’exemples de
modèles pour démarrer :
http://azure.microsoft.com/en-
us/documentation/templates/
https://github.com/Azure/azure
-quickstart-templates
 Documentation :
https://azure.microsoft.com/en-
us/documentation/templates/
Dans le cloud public ou privé
ADOP
Accenture DevOps Platform
What is ADOP?
 Collection of pre-configured Open Source development tools
to mobilize software development projects in a fast, robust and
consistent way
Cloud-hosted development
environment integrated to
source code repository via
code review server
Autonomous build and
testing of code submissions
Continuous Integration
Quality gates enforced
using standardized tests
against re-usable
components and libraries
Continuous Delivery
Managed roll-out of new
features via A/B testing
Continuous Deployment
Cloud-based hosting and access to application services through Accenture Cloud Platform
Code Analysis
(Sonar and Black
Duck)
Integrated
Development
Environment
(Eclipse, X-code)
Source Code
Repository
(Git / Gerrit)
Continuous
Integration
(Jenkins)
Deploy
(Chef and Docker)
Test
(Selenium, Grid,
Cucumber)
Development
Source
Control
Code
Review
Build
Code
Quality
Deploy Testing
A/B
Test
Release
A brief history of ADOP
 Starting as a training enablement tool, ADOP has evolved significantly both in
functionality and technology as we have embraced technological advances.
13Copyright © 2015 Accenture All rights reserved.
1
Tools in the Cloud
(Monsoon)
2
DOMO / Single ADOP
Platform
(DevOps Academy Lab)
3
Blueprints (nested
cloud formation)
4
Cartridges (cloud-
formation +
configuration
package)
5
Docker Orchestration
Server
Configuration
Management
Server
Orchestration
Version 2
Extension
Architecture
None. Single Platform
Embedded Tabs
Blueprints
(Nested Cloud-
Formation)
Cartridges
(Data Import +
Nested Cloud-
Formation)
Cartridges
Platform Extensions
Other
Enhancements
Multi-Tenancy
Support
Workspaces
ACP Blueprint Support
Azure Support
6
Docker Orchestration
Cartridges
Platform Extensions
Community Edition
Enterprise Edition
Open Sourced
3 flavours of ADOP
 “M” : The managed multi-tenancy platform
 “F” : Fleet, the managed single-tenancy platform
 “B” : B…, on your own infrastructure and managed
by you
2 new sub-flavors upcoming
 Community Edition: Full OSS
 Enterprise Edition: Includes Atlassian
ADOP – The Tools
Component Overview
 Three main components:
 Core – the bundle of pre-
configured tools in ADOP/B
 Cartridges
 Platform Extensions
Platform Extensions
Provides the ability to extend the Core and add
new tools or extensions to existing tools
For example:
• Jenkins plugins
• Sonar plugins
• Tools (via Docker or EC2)
• …the list goes on
Cartridges
• Standardised approach of packaging and
sharing reusable software delivery assets
• Defines the Git repositories with sample code,
Jenkins jobs and pipelines that define a
reference implementation for a particular
technology
If it’s not in the Core and it could be used by multiple cartridges, it is probably a platform extension
Upstream Contributions
 Projects are welcome to contribute plugins or platform
extensions:
 Cartridge examples: FOSS Java, FOSS JavaScript, Drupal,
Oracle, Mule, SAP, etc.
 Platform Extension examples: AWS, DockerSwarm, Ms ARM,
CucumberPlugin,
Key Links
• ADOP: https://github.com/Accenture/adop-
docker-compose
• Java Cartridge:
https://github.com/Accenture/adop-
cartridge-java
• Gitter: https://gitter.im/Accenture/ADOP
• https://www.accenture.com/us-
en/blogs/blogs-open-sourcing-accenture-
devops-platform
ADOP dans Azure
Objectif
 Ajouter Azure comme option de déploiement
d’ADOP
 Respecter les principes d’ADOP :
 Déploiement automatisé
 Shell scripts, Docker Machine, Docker Compose, template de déploiement
 Open Source
 Quelques jours de collaboration
Résultats
 Méthode 1 : Script et Docker Machine
 Modification du script quickstart.sh de ADOP
 Méthode 2 : ARM Template
 Template, fichier de paramètres, script, documentation
 Méthode 3 : cluster Azure Container Service en
mode Docker Swarm
 Expérimental, pas de modification de l’existant
 Reste à faire : documentation et pull request
Méthode 1 : script et Docker Machine
 Script quickstart.sh
 Provisionnement : Docker Machine
 Déploiement : Docker Compose à distance
Méthode 2 : ARM Template
 Un template JSON
 VM Extensions :
 DockerExtension – installe le moteur Docker
 CustomScriptForLinux – exécute un script :
 Installation de Docker Compose
 Récupération de ADOP (git clone)
 Déploiement de ADOP en local : ./adop compose init
 Déploiement « en un clic »
 ..ou en deux ligne de commande :
Démo !
Ressources
 ADOP, référence
https://github.com/Accenture/adop-docker-
compose
 Méthode 1
https://github.com/pascals-msft/adop-docker-
compose
 Méthode 2
https://github.com/pascals-msft/adop-arm
ARM Templates
 Documentation :
https://azure.microsoft.com/en-
us/documentation/templates/
Retrouvez-nous sur Twitter et autres
Pascal Sauliere
http://aka.ms/pascals
http://aka.ms/itcast
Twitter : @psauliere
Régis Allègre
Twitter : @HappyKing

Contenu connexe

TIAD 2016 : Accenture Devops Platform dans Microsoft Azure

  • 1. TIAD 2016 Accenture DevOps Platform dans Microsoft Azure Pascal Sauliere Architecte Infrastructure Microsoft France @psauliere Regis Allegre DevOps Lead France Accenture @HappyKing
  • 2. Au programme  Automatisation avec Azure  ADOP : Accenture DevOps Platform  ADOP sur Azure
  • 4. Infrastructure agile Penser l’infrastructure comme un développeur pense son code Langages de scripts Langages déclaratifs Appliquer les méthodes des développeurs : gestion des sources, versions Associer le dev et l’infra dans les dépôts de code Grouper les tâches automatisées – Orchestrator, Azure Automation
  • 5. Provisionnement, déploiement Virtualisation : CPU, mémoire, stockage, réseau Cloud : Azure Resource Manager, modèles JSON (Clusters de) serveurs de containers : Docker Machine, Docker Swarm, Mesos Gestionnaires de packages : APT, PackageManagement, PowerShell Gallery, Chocolatey, NuGet, Docker Hub, Docker Trusted Registry… Containers et clusters de serveurs de containers : Docker Configurations déclaratives : PowerShell DSC, Chef, Puppet, Ansible, Salt Stack Tests automatisés (Pester)
  • 6. Azure Resource Manager (ARM) Groupes de ressources : frontière du cycle de vie d’une application Ressources : tout ce que l’on peut trouver dans Azure – VM, Web app, base SQL Azure… RBAC : groupes d’utilisateurs, rôles, permissions sur groupes de ressources Tags : (clés, valeurs) sur ressources ou groupes de ressources Policy : restrictions sur ressources Templates : définition déploiement et configuration de vos application Simplicité de l’administration – tags pour reporting, facturation, conformité, audit Template déclaratif – qualité et simplicité Idempotence – déploiements répétables et cohérents Passage à l’échelle et parallélisme
  • 7. Azure Resource Manager - Notion de template
  • 8. Options de déploiement  Portail Azure  PowerShell  Azure CLI  Visual Studio  VSTS release  Azure Automation  Azure DevTest Labs
  • 9. Azure Quickstart Templates  Grand choix d’exemples de modèles pour démarrer : http://azure.microsoft.com/en- us/documentation/templates/ https://github.com/Azure/azure -quickstart-templates  Documentation : https://azure.microsoft.com/en- us/documentation/templates/
  • 10. Dans le cloud public ou privé
  • 12. What is ADOP?  Collection of pre-configured Open Source development tools to mobilize software development projects in a fast, robust and consistent way Cloud-hosted development environment integrated to source code repository via code review server Autonomous build and testing of code submissions Continuous Integration Quality gates enforced using standardized tests against re-usable components and libraries Continuous Delivery Managed roll-out of new features via A/B testing Continuous Deployment Cloud-based hosting and access to application services through Accenture Cloud Platform Code Analysis (Sonar and Black Duck) Integrated Development Environment (Eclipse, X-code) Source Code Repository (Git / Gerrit) Continuous Integration (Jenkins) Deploy (Chef and Docker) Test (Selenium, Grid, Cucumber) Development Source Control Code Review Build Code Quality Deploy Testing A/B Test Release
  • 13. A brief history of ADOP  Starting as a training enablement tool, ADOP has evolved significantly both in functionality and technology as we have embraced technological advances. 13Copyright © 2015 Accenture All rights reserved. 1 Tools in the Cloud (Monsoon) 2 DOMO / Single ADOP Platform (DevOps Academy Lab) 3 Blueprints (nested cloud formation) 4 Cartridges (cloud- formation + configuration package) 5 Docker Orchestration Server Configuration Management Server Orchestration Version 2 Extension Architecture None. Single Platform Embedded Tabs Blueprints (Nested Cloud- Formation) Cartridges (Data Import + Nested Cloud- Formation) Cartridges Platform Extensions Other Enhancements Multi-Tenancy Support Workspaces ACP Blueprint Support Azure Support 6 Docker Orchestration Cartridges Platform Extensions Community Edition Enterprise Edition Open Sourced
  • 14. 3 flavours of ADOP  “M” : The managed multi-tenancy platform  “F” : Fleet, the managed single-tenancy platform  “B” : B…, on your own infrastructure and managed by you 2 new sub-flavors upcoming  Community Edition: Full OSS  Enterprise Edition: Includes Atlassian
  • 15. ADOP – The Tools
  • 16. Component Overview  Three main components:  Core – the bundle of pre- configured tools in ADOP/B  Cartridges  Platform Extensions Platform Extensions Provides the ability to extend the Core and add new tools or extensions to existing tools For example: • Jenkins plugins • Sonar plugins • Tools (via Docker or EC2) • …the list goes on Cartridges • Standardised approach of packaging and sharing reusable software delivery assets • Defines the Git repositories with sample code, Jenkins jobs and pipelines that define a reference implementation for a particular technology If it’s not in the Core and it could be used by multiple cartridges, it is probably a platform extension
  • 17. Upstream Contributions  Projects are welcome to contribute plugins or platform extensions:  Cartridge examples: FOSS Java, FOSS JavaScript, Drupal, Oracle, Mule, SAP, etc.  Platform Extension examples: AWS, DockerSwarm, Ms ARM, CucumberPlugin,
  • 18. Key Links • ADOP: https://github.com/Accenture/adop- docker-compose • Java Cartridge: https://github.com/Accenture/adop- cartridge-java • Gitter: https://gitter.im/Accenture/ADOP • https://www.accenture.com/us- en/blogs/blogs-open-sourcing-accenture- devops-platform
  • 20. Objectif  Ajouter Azure comme option de déploiement d’ADOP  Respecter les principes d’ADOP :  Déploiement automatisé  Shell scripts, Docker Machine, Docker Compose, template de déploiement  Open Source  Quelques jours de collaboration
  • 21. Résultats  Méthode 1 : Script et Docker Machine  Modification du script quickstart.sh de ADOP  Méthode 2 : ARM Template  Template, fichier de paramètres, script, documentation  Méthode 3 : cluster Azure Container Service en mode Docker Swarm  Expérimental, pas de modification de l’existant  Reste à faire : documentation et pull request
  • 22. Méthode 1 : script et Docker Machine  Script quickstart.sh  Provisionnement : Docker Machine  Déploiement : Docker Compose à distance
  • 23. Méthode 2 : ARM Template  Un template JSON  VM Extensions :  DockerExtension – installe le moteur Docker  CustomScriptForLinux – exécute un script :  Installation de Docker Compose  Récupération de ADOP (git clone)  Déploiement de ADOP en local : ./adop compose init  Déploiement « en un clic »  ..ou en deux ligne de commande :
  • 25. Ressources  ADOP, référence https://github.com/Accenture/adop-docker- compose  Méthode 1 https://github.com/pascals-msft/adop-docker- compose  Méthode 2 https://github.com/pascals-msft/adop-arm
  • 26. ARM Templates  Documentation : https://azure.microsoft.com/en- us/documentation/templates/
  • 27. Retrouvez-nous sur Twitter et autres Pascal Sauliere http://aka.ms/pascals http://aka.ms/itcast Twitter : @psauliere Régis Allègre Twitter : @HappyKing

Notes de l'éditeur

  1. S
  2. Get-AzureResourceGroupGalleryTemplate https://github.com/Azure/azure-quickstart-templates <template>.json - This is the main template file <tempalte>.parameters.json - The parameters that can be passed to the template and while optional provides a way to prepopulate values that can be passed when creating an instance of the template metadata.json - Data about the template used by Azure to enable its use and publication README.md - Information about the template and often a button that deploys the template to Azure by loading the template into the template editor in the Azure portal http://windowsitpro.com/azure/how-do-i-use-template-create-vms-azure-iaas-v2-arm
  3. P
  4. Taken from https://adlm.accenture.com/wiki/display/DOT/Architecture - is this out of date?
  5. P