TIAD 2016 : Accenture Devops Platform dans Microsoft Azure

27
TIAD 2016 Accenture DevOps Platform dans Microsoft Azure Pascal Sauliere Architecte Infrastructure Microsoft France @psauliere Regis Allegre DevOps Lead France Accenture @HappyKing

Transcript of TIAD 2016 : Accenture Devops Platform dans Microsoft Azure

TIAD 2016

Accenture DevOps Platform dans Microsoft AzurePascal Sauliere Architecte InfrastructureMicrosoft France@psauliere

Regis AllegreDevOps Lead FranceAccenture@HappyKing

Au programme Automatisation avec Azure ADOP : Accenture DevOps Platform ADOP sur Azure

Automatisation dans Azure

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

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

ADOPAccenture 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 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

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 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,

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 :

azure group create <resource-group> <azure-location>azure group deployment create <resource-group> <deployment-name> -f azuredeploy.json -e azuredeploy.parameters.json

Démo !

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/

Retrouvez-nous sur Twitter et autresPascal Sauliere

http://aka.ms/pascalshttp://aka.ms/itcastTwitter : @psauliere

Régis Allègre

Twitter : @HappyKing