Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Au secours, mon chef m'a demandé
de passer au DevOps !
32% des projets sont réussis
84% des projets dépassent le délai
64% des fonctionnalités développées ne sont pas
utilisées
...
Antony GUILLOTEAU
@aguilloteau
Takeuchi et Nonaka
(1982)
TODO
Design Code Test Deploy
Design Code Test DeployCode Test Code Test Code Test
Waterfall
Agile
DevOps
Design
Design Code Test Deploy
Waterfall
Design Code Test DeployCode Test Code Test Code Test
Agile
Les 4 valeurs du Manifeste Agile
(2001)
#1 Les individus et leurs interactions
plus que les processus et les outils
#2 Des logiciels opérationnels
plus qu’une documentation exhaustive
#3 La collaboration avec les clients plus
que la négociation contractuelle
#4 L’adaptation au changement plus
que le suivi d’un plan
Les objectifs du DevOps
#1 Améliorer la coopération entre Dev et Ops
#2 Améliorer la livraison du produit
#3 Fluidifier l’...
Livrer rapidement
Développer avec la cible
TODO
Monitorer
pour prévenir
Un produit stable
Être résilient
29% des entreprises ont adopté une
démarche DevOps
17% sont en phase de réflexion ou
d’expérimentation
19% utilisent la dé...
https://www.linkedin.com/pulse/dynamics-devops-adoption-dr-pallab-saha
Plan Code Build Test Release Deploy Operate
Agile D...
Agile Development
Continuous Integration
Continuous Delivery
Continuous Deployment
Continuous Operations
DevOps
PORTAI
L
VENTE
PartenairePartenaire
Partenaire
ClientClient
Client
3 équipes SCRUM
Usine logicielle d’entreprise
Livraison tous les 2 sprints
50 Millions de commandes en base
15 Millions de requêtes / jour
Des croyances
• Les équipes sont pluridisciplinaires
• D’entreprise : Tendre vers le DevOps, les équipes
sont autonomes da...
Agile Development
Continuous Integration
Continuous Delivery
Continuous Deployment
Continuous Operations
DevOps
Automatisation des tests fonctionnels
Plan Code Build Test Release Deploy Operate
Exemple de code cucumber
Scénario: LT103-03-01-Recherche de solution multi-GO avec la date de départ sans tarif à conditio...
Zucchini pour suivre les exécutions des
scénarios Cucumber
Automatisation des tests de performance
Plan Code Build Test Release Deploy Operate
Exemple de scénario Gatling
Object SearchScenario {
private val category = csv("category.csv").random
private val keyword ...
Agile Development
Continuous Integration
Continuous Delivery
Continuous Deployment
Continuous Operations
DevOps
Architecture multi-composant
ComposantComposant Composant
Plan Code Build Test Release Deploy Operate
Extrait code orchestrateur de release
public void createReleaseBranch(Delivery delivery, Execution execution) throws Excep...
Agile Development
Continuous Integration
Continuous Delivery
Continuous Deployment
Continuous Operations
DevOps
Suivi des mises en production
Plan Code Build Test Release Deploy Operate
Agile Development
Continuous Integration
Continuous Delivery
Continuous Deployment
Continuous Operations
DevOps
Supervision et centralisation des logs
Plan Code Build Test Release Deploy Operate
Exemple de requête Spark
val ref_rdd = sc.textFile("/user/logflmp1/2017-02-01/*/log_haproxy*.log")
case class HaProxyLine(...
Plan Code Build Test Release Deploy Operate
Aujourd’hui
Une prise de recul
Taux de dispo de 99,5 %
5 bugs bloquants découverts en production
Livraison tous les 2 sprints
Les activités d’un développeur c’est
Agile Development
Continuous Integration
Continuous Delivery
Continuous Deployment
Continuous Operations
DevOps
DevOps
Agile Development
Continuous Integration
Continuous Delivery
Continuous Deployment
Continuous Operations
Le DevOps c’est du dév …
Et avant tout une philosophie
https://goo.gl/forms/YCZbdwMNStBqGgZq2
Merci pour votre feedback
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
Nächste SlideShare
Wird geladen in …5
×

Au secours, mon chef m'a demandé de passer au DevOps

1.132 Aufrufe

Veröffentlicht am

"Continuous Delivery" et "DevOps" font partis des buzz word du moment dans l'IT.

Si vous n'êtes pas encore entrés dans ces démarches, ce n'est qu'une question de temps ! Préparez-vous à voir bientôt débarquer votre chef sur le bench avec le bouquin "Découvrir DevOps" sous le bras.

Mais pour les développeurs, ça change quoi le DevOps ? A travers cette conférence, je vais vous faire part des mes différents retours d'expérience sur ces changements autour des pratiques, organisations et outillages.

Veröffentlicht in: Software
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Au secours, mon chef m'a demandé de passer au DevOps

  1. 1. Au secours, mon chef m'a demandé de passer au DevOps !
  2. 2. 32% des projets sont réussis 84% des projets dépassent le délai 64% des fonctionnalités développées ne sont pas utilisées Source : Chaos report 2009 Les projets cycles en V
  3. 3. Antony GUILLOTEAU @aguilloteau
  4. 4. Takeuchi et Nonaka (1982)
  5. 5. TODO
  6. 6. Design Code Test Deploy Design Code Test DeployCode Test Code Test Code Test Waterfall Agile
  7. 7. DevOps Design Design Code Test Deploy Waterfall Design Code Test DeployCode Test Code Test Code Test Agile
  8. 8. Les 4 valeurs du Manifeste Agile (2001)
  9. 9. #1 Les individus et leurs interactions plus que les processus et les outils
  10. 10. #2 Des logiciels opérationnels plus qu’une documentation exhaustive
  11. 11. #3 La collaboration avec les clients plus que la négociation contractuelle
  12. 12. #4 L’adaptation au changement plus que le suivi d’un plan
  13. 13. Les objectifs du DevOps #1 Améliorer la coopération entre Dev et Ops #2 Améliorer la livraison du produit #3 Fluidifier l’élaboration du produit
  14. 14. Livrer rapidement
  15. 15. Développer avec la cible
  16. 16. TODO Monitorer pour prévenir
  17. 17. Un produit stable
  18. 18. Être résilient
  19. 19. 29% des entreprises ont adopté une démarche DevOps 17% sont en phase de réflexion ou d’expérimentation 19% utilisent la démarche DevOps pour toutes leurs applications Le DevOps en France Etude IDC – Octobre 2016
  20. 20. https://www.linkedin.com/pulse/dynamics-devops-adoption-dr-pallab-saha Plan Code Build Test Release Deploy Operate Agile Development Continuous Integration Continuous Delivery Continuous Operations Continous Deployment
  21. 21. Agile Development Continuous Integration Continuous Delivery Continuous Deployment Continuous Operations DevOps
  22. 22. PORTAI L VENTE PartenairePartenaire Partenaire ClientClient Client
  23. 23. 3 équipes SCRUM Usine logicielle d’entreprise Livraison tous les 2 sprints
  24. 24. 50 Millions de commandes en base 15 Millions de requêtes / jour
  25. 25. Des croyances • Les équipes sont pluridisciplinaires • D’entreprise : Tendre vers le DevOps, les équipes sont autonomes dans la mise en œuvre • Personnelles : team member multi-compétents
  26. 26. Agile Development Continuous Integration Continuous Delivery Continuous Deployment Continuous Operations DevOps
  27. 27. Automatisation des tests fonctionnels Plan Code Build Test Release Deploy Operate
  28. 28. Exemple de code cucumber Scénario: LT103-03-01-Recherche de solution multi-GO avec la date de départ sans tarif à condition d'aller-retour Soit une recherche de solutions train aller-retour sur un trajet multi GO Quand j'appelle le service de recherche de solutions tarifaires pour l'aller Alors des solutions sont remontées Et des solutions régionales "Pays de Loire" sont présentes Alors(~'^des solutions (nationales|régionales) (?:"([^"]*)" ?|) sont présentes$'){ String go, String region -> if (region == null) { assert false, "Il faut indiquer une région" } // Récupération de l'OD à partir de son nom fonctionnel GOsData gOsData = GOsData.getGOsData(go) searchSolutionsAssertor.assertProposalsContainGo(gOsData.connector) }
  29. 29. Zucchini pour suivre les exécutions des scénarios Cucumber
  30. 30. Automatisation des tests de performance Plan Code Build Test Release Deploy Operate
  31. 31. Exemple de scénario Gatling Object SearchScenario { private val category = csv("category.csv").random private val keyword = csv("keyword.csv").random val scn : ScenarioBuilder = scenario("Search") .exec().feed(keyword).randomSwitch( 80d -> exec(http("Search by keyword").get("/search?q=${keyword}").check(status.is(200))), 20d -> exec(http("Search by category").get("/search?q=${category}").check(status.is(200))) ) } class GatlingSimulation extends Simulation { val httpConf = http.baseURL("http://localhost:8080/").userAgentHeader("Gatling").disableCaching setUp( SearchScenario.scn.inject(rampUsersPerSec(1) to(20) during(5 minutes)) ).protocols(httpConf) }
  32. 32. Agile Development Continuous Integration Continuous Delivery Continuous Deployment Continuous Operations DevOps
  33. 33. Architecture multi-composant ComposantComposant Composant Plan Code Build Test Release Deploy Operate
  34. 34. Extrait code orchestrateur de release public void createReleaseBranch(Delivery delivery, Execution execution) throws Exception { for (DeliveredComponent component : delivery.getComponents()) { FullGitRepo gitRepo = new FullGitRepo(configuration.getWorkspace(), component.getComponent()); execution.executeOnce(component.getComponent().getName(), "create release branch", () -> { gitRepo.createBranch(computeReleaseBranchName(delivery.getReleaseVersion()), delivery.getBranch()); if (!delivery.isDryRun()) { gitRepo.push(); } }); execution.executeOnce(component.getComponent().getName(), "update pom for next snapshot", () -> { gitRepo.switchToBranch(delivery.getBranch()); gitRepo.hardReset(); File pomFile = gitRepo.findFile("pom.xml"); Properties mavenProps = new Properties(); mavenProps.setProperty("developmentVersion", delivery.getNextSnapshotVersion().toString()); dependenciesService.updateDependenciesInPom(delivery, component, pomFile, delivery.getNextSnapshotVersion()); gitRepo.add("."); gitRepo.commit("[ReleaseTool] update module and dependencies versions in pom.xml to " + delivery.getNextSnapshotVersion()); if (!delivery.isDryRun()) { gitRepo.push(); } }); } }
  35. 35. Agile Development Continuous Integration Continuous Delivery Continuous Deployment Continuous Operations DevOps
  36. 36. Suivi des mises en production Plan Code Build Test Release Deploy Operate
  37. 37. Agile Development Continuous Integration Continuous Delivery Continuous Deployment Continuous Operations DevOps
  38. 38. Supervision et centralisation des logs Plan Code Build Test Release Deploy Operate
  39. 39. Exemple de requête Spark val ref_rdd = sc.textFile("/user/logflmp1/2017-02-01/*/log_haproxy*.log") case class HaProxyLine(frontend: String, backend: String, instance : String, timestamp8601: String, errorCode: String, elapsedTimeMs: String) val haProxyLines = ref_rdd.map(s => s.split(" ")).map( s => HaProxyLine( s(3).substring(3).replace("~", ""), s(4).substring(0, s(4).lastIndexOf("/")), s(4).substring(s(4).lastIndexOf("/") + 1), s(2), s(6), s(7)) ).toDF().registerTempTable("haproxylines") val columnsGlobalStats = s"frontEnd, backEnd, instance, splitToGroup(timestamp8601), splitToTZ(timestamp8601)" val columnsErrors = s"$columnsGlobalStats, errorCode" val dataFrame = sqlContext.sql( "select frontEnd, backEnd, instance, splitToGroup(timestamp8601), splitToTZ(timestamp8601), count(*), avg(elapsedTimeMs) " + "from haproxylines group by $columnsGlobalStats") val dataFrameError = sqlContext.sql( "select $columnsErrors, count(*), avg(elapsedTimeMs) " + "from haproxylines where errorCode >= 400 group by $columnsErrors") val rdd = dataFrame.rdd
  40. 40. Plan Code Build Test Release Deploy Operate
  41. 41. Aujourd’hui Une prise de recul
  42. 42. Taux de dispo de 99,5 % 5 bugs bloquants découverts en production Livraison tous les 2 sprints
  43. 43. Les activités d’un développeur c’est
  44. 44. Agile Development Continuous Integration Continuous Delivery Continuous Deployment Continuous Operations DevOps
  45. 45. DevOps Agile Development Continuous Integration Continuous Delivery Continuous Deployment Continuous Operations
  46. 46. Le DevOps c’est du dév … Et avant tout une philosophie
  47. 47. https://goo.gl/forms/YCZbdwMNStBqGgZq2 Merci pour votre feedback

×