View
239
Download
1
Category
Preview:
Citation preview
TIAD 2016
Accenture DevOps Platform dans Microsoft AzurePascal Sauliere Architecte InfrastructureMicrosoft France@psauliere
Regis AllegreDevOps Lead FranceAccenture@HappyKing
Infrastructure agileInfrastructure as codePenser l’infrastructure comme un développeur pense son codeLangages de scriptsLangages déclaratifsAppliquer les méthodes des développeurs : gestion des sources, versionsAssocier le dev et l’infra dans les dépôts de code
OrchestrationGrouper les tâches automatisées – Orchestrator, Azure Automation
Provisionnement, déploiementProvisionnementVirtualisation : CPU, mémoire, stockage, réseauCloud : Azure Resource Manager, modèles JSON(Clusters de) serveurs de containers : Docker Machine, Docker Swarm, Mesos
DéploiementGestionnaires de packages : APT, PackageManagement, PowerShell Gallery, Chocolatey, NuGet, Docker Hub, Docker Trusted Registry…Containers et clusters de serveurs de containers : DockerConfigurations déclaratives : PowerShell DSC, Chef, Puppet, Ansible, Salt StackTests automatisés (Pester)
Azure Resource Manager (ARM)API Azure V2Principaux concepts :Groupes de ressources : frontière du cycle de vie d’une applicationRessources : 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 ressourcesTags : (clés, valeurs) sur ressources ou groupes de ressourcesPolicy : restrictions sur ressourcesTemplates : définition déploiement et configuration de vos application
BénéficesSimplicité de l’administration – tags pour reporting, facturation, conformité, auditTemplate déclaratif – qualité et simplicitéIdempotence – déploiements répétables et cohérentsPassage à l’échelle et parallélisme
Azure Resource Manager - Notion de templateFichier JSON géré dans un contrôleur de sourceIdempotenceRetour sur une version antérieure
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é
Microsoft Azure
APP INNOVATION
HybridHyper-scale
Enterprise-grade
Microsoft Azure StackDatacenter
Windows Server Linux
Portal IaaS | PaaS services
Cloud-inspired infrastructurePowered by Windows Server, Hyper-V, System Center, and Azure technologies
Windows Server Linux
Portal IaaS | PaaS services
Cloud infrastructure
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 submissionsContinuous Integration
Quality gates enforced using standardized tests against re-usable components and libraries Continuous Delivery
Managed roll-out of new features via A/B testingContinuous 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.
1Tools in the Cloud
(Monsoon)
2DOMO / Single ADOP Platform
(DevOps Academy Lab)
3Blueprints (nested cloud formation)
4Cartridges (cloud-
formation + configuration
package)
5Docker
Orchestration
Server Configuration ManagementServer Orchestration Version 2
Extension Architecture
None. Single PlatformEmbedded Tabs
Blueprints(Nested Cloud-
Formation)
Cartridges(Data Import +Nested Cloud-
Formation)
CartridgesPlatform Extensions
OtherEnhancements
Multi-TenancySupport
Workspaces
ACP Blueprint Support
Azure Support
6Docker
Orchestration
CartridgesPlatform Extensions
Community EditionEnterprise 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
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 toolsFor 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
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 :
azure group create <resource-group> <azure-location>azure group deployment create <resource-group> <deployment-name> -f azuredeploy.json -e azuredeploy.parameters.json
Ressources ADOP, référencehttps://github.com/Accenture/adop-docker-compose
Méthode 1https://github.com/pascals-msft/adop-docker-compose
Méthode 2https://github.com/pascals-msft/adop-arm
ARM Templates Documentation : https://azure.microsoft.com/en-us/documentation/templates/
Recommended