Keynote DevOps - Microsoft DevOps Day 2014 in Paris

Preview:

Citation preview

DevOpsUne histoire de réconciliation et d’un bel avenir !

Jason DE OLIVEIRA (CELLENZA)

Stéphane GOUDEAU (Microsoft)

#DevOpsDayFr

Introduction

« Devs » contre « Ops »

La frontière classique des organisations quisépare les équipes de développement (« Devs »)et les équipesd’exploitation (« Ops »).

• Conflits et objectifs contradictoires entre leséquipes

• « Je ne comprends pas, moi ça marche endev, il faut voir les Ops.. » VS « Tous lesservices sont Up, pas de charge, ça vient duDev… »

• Livraisons avec beaucoup d'erreurs, voired’échecs

• Administration manuelle, lente et sourced’erreurs

Le mur de la confusion

Adapter le SI aux demandes

du marché en introduisant des

évolutions dans le code

= Maximiser le changement

Maintenir la disponibilité en

contrôlant les évolutions pour

réduire les risques de pannes

= Minimiser le changement

Équipe de développementd’application

Équipe système et infrastructure

Application déployée

« Composants,

couches logicielles,

services,… »

« Clusters, fermes,

pare-feu, réseau,

stockage,,… »

Fonctionnalités

Culture Produit

Innovation

Stabilité

Culture du Service

Rationalisation

Pourquoi DevOps ?

“DevOps is development and operations collaboration”

“DevOps is treating your infrastructure as code”

“DevOpsis using automation”

“DevOpsis Kanban for Ops?”

“DevOpsis feature toggles”

“DevOpsis small deployments”

L’objectif du mouvement DevOps est de

fluidifier les processus et de créer une

synergie en favorisant la collaboration entre

les équipes de développement (« Devs ») et les

équipes d’exploitation (« Ops »).

En supprimant les frictions et les blocages, on

améliore la productivité et l’efficacité du

système d’information de l’entreprise.

Cela apporte des logiciels de très haute qualité

et des meilleurs services aux clients.

Facteurs clés de succès

• Forte réactivité sur la correction d’anomalies et

la gestion des incidents

• Les livraisons sont les plus petites, simples et

fréquentes possible

• Les besoins et contraintes opérationnelles sont

prises en compte dès les premières phases des

projets

• Confiance mutuelle et coopération entre

équipes, voire réorganisation et mutualisation

des équipes

La culture DevOps

• Valeurs fondamentales :

▪ Respect mutuel, confiance réciproque, et

systématisation du partage de l’information

• Vision positive de l’échec :

▪ Les organisations doivent apprendre de

leurs échecs et prendre des risques pour

anticiper de nouveaux besoins opérationnels

• Développement des compétences des

acteurs du système(« Kaizen »).

• Démarche d’introduction volontaire de

défauts dans le système :

▪ Capacité du système à se remettre en

service après un dysfonctionnement.

▪ « Failsafe: Guidance for Resilient Cloud

Architectures

▪ http://msdn.microsoft.com/en-

us/library/windowsazure/jj853352.aspx

DevOps : Une philosophie…

Les principes et les

promesses de DevOps

Le processus de « Continuous Delivery »

ApprendreApprentissage actionnable

Elimination des déperditions | Réduction de la durée du cycle | Intégration et visibilité

Rétroaction en continue | Qualité en continu | Livraison en continu

Continuous Delivery & DevOps

Plan Develop OperateRelease

Méthodes Agiles DevOps

Business Development Operations

The Wall of Confusion

Continuous Delivery & DevOps

Optimisation des ressources

Amélioration de la qualité et de la disponibilité

Hypothesis-drivendevelopment& continuouslearning

Les outils DevOps

Cycle de développement logiciel

Release Management Monitoring

Déploiement

Provisionning

d’infrastructureConfiguration

d’application

Configuration

du systèmeTélémétrie

Supervision

technique

StoryboardingSource Control

Management

Software

Design

Agile Portfolio

ManagementBuild Tests

Reporting et

BI

Analyse de

codeIntégration

continue

Réduction des cycles de

livraison

Réduction des cycles de livraison

Stratégie de branches et gestion des releases

DEV

MAIN

Bra

nch

Développement

de nouvelles

features

Bra

nch

Correctifs liés à la production

RELEASE

Report correctifs

NightIy

Builds

PROD

INTEG

QA

Integration

Continue DEV

Manual

Builds

Release Management

Optimisation de l’utilisation

des ressources

Optimisation de l’utilisation des ressources

• Une gestion unifiée des ressources qu’elles soient à

demeure ou dans le Cloud

• Automatisation des environnements

• Support des technologies tiers-parties

Provisioning dans Azure

• Windows Azure Platform PowerShell

cmdlets

▪ http://www.windowsazure.com/en-

us/documentation/articles/install-

configure-powershell

▪ https://github.com/Azure/azure-

sdk-tools

• REST API & Management Library

azure topic verb optionsprompt>

accountaccount locationaccount affinity-groupvmvm diskvm endpointvm imageserviceservice certsiteconfig

downloadimportlistshowdeletestartrestartshutdowncapturecreateattachdetachbrowseset

usernamepassworddns-prefixvm-namelb-porttarget-image-namesource-pathdisk-image-namesize-in-gbthumbprintvalue-v-vv

• Windows Azure command-line tool for Mac and Linux

▪ http://www.windowsazure.com/en-us/documentation/articles/command-line-tools/

DSC (« Desired State Configuration »)

Traditional Scripts

Technology Specific

DSC Engine

Dependency ResolutionLogging & Error Handling

Reboot ResiliencyRepeatable Automation

ResourcesTechnology Specific

ConfigurationIntent

Groupe de ressources

• Entité de gestion dans

laquelle sont intégrés des

regroupements de multiples

ressources de même type

ou non.

• L’appartenances à un

groupe de ressources est

exclusive

• Les ressources peuvent

être multi-régions

RESOURCE GROUP

Autres outils DevOps

Amélioration de la qualité et

de la disponibilité

Amélioration de la qualité et de la disponibilité

• Supervision de la performance, de la disponibilité, des

exception et des usages

• Autoscaling

• Debugging en production

• Load testing

Les outils de mesure Windows Azure

Windows Azure

Diagnostics

Cloud Service

monitoring

Application

Les outils Visual Studio Online

AVAILABILITY

USAGE

PERFORMANCE

Tests de charge

Autoscaling dans Azure

Hypothesis-driven

development

& Continuous learning

Apprendre de la production avec les

remontées de l’application

• Data Driven

Development

• Prendre facilement

des décisions

d'investissement

basées sur des

données objectives

ApprendreApprentissage actionnable

Hypothesis-Driven Development

http://barryoreilly.com/2013/10/21/how-to-implement-hypothesis-

driven-development/

Conclusion

Develop Build

Test

Deploy Environments Monitor and Learn

Processes

Dev/Test

Integration

Pre-Production

ProductionDE

V

BI

Z

OP

S

DevOps et Microsoft

Livre Blanc DevOps

• http://blog.cellenza.com/a-la-

une/cellinsights-1-devops-de-la-

vision-limplementation/

• http://www.cellenza.com/cellinsights

• http://www.cellenza.com/Content/Cel

lInsights/cell%27insights-1-

devops.pdf

© 2012 Microsoft Corporation. Tous droits réservés. Microsoft, Windows et les autres noms de produits sont des marques déposées ou des marques commerciales de Microsoft aux États-Unis et/ou dans d'autres pays.

Les informations contenues dans ce document sont fournies uniquement à titre indicatif. Elles représentent l'opinion actuelle de Microsoft Corporation sur les points cités à la date de cette présentation. Microsoft s'adapte aux conditions fluctuantes du marché et ce

document ne doit pas être interprété comme un engagement de la part de Microsoft ; de plus, Microsoft ne peut pas garantir la véracité de toute information présentée après la date de la présentation. MICROSOFT EXCLUT TOUTE GARANTIE, EXPRESSE, IMPLICITE

OU STATUTAIRE, EN CE QUI CONCERNE CETTE PRÉSENTATION.

© 2013 Microsoft Corporation. Tous droits réservés. Microsoft, Windows et les autres noms de produits sont des marques déposées ou des marques commerciales de Microsoft aux États-Unis et/ou dans d'autres pays.

Les informations contenues dans ce document sont fournies uniquement à titre indicatif. Elles représentent l'opinion actuelle de Microsoft Corporation sur les points cités à la date de cette présentation. Microsoft s'adapte aux conditions fluctuantes du marché et ce

document ne doit pas être interprété comme un engagement de la part de Microsoft ; de plus, Microsoft ne peut pas garantir la véracité de toute information présentée après la date de la présentation. MICROSOFT EXCLUT TOUTE GARANTIE, EXPRESSE, IMPLICITE

OU STATUTAIRE, EN CE QUI CONCERNE CETTE PRÉSENTATION.