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.

Config Management Camp 2017 - If it moves, give it a pipeline

489 Aufrufe

Veröffentlicht am

A talk dedicated to improving the quality of infrastructure code using free open source software. We used to say "if it moves, lock it down in version control" and then the concept of a Continuous Delivery pipeline came along and the advice progressed to "if it moves, lock it down in version control and build a Continuous Delivery pipeline to test and release every change continuously". This advice is still more commonly followed in application code than infrastructure and platform code. I will talk about how we have seasoned this dogfood by making CD of infrastructure code easier. The solution “ADOP” is free and open source and currently makes building a pipeline for a Chef Cookbook, Ansible Playbook or Docker image almost trivial. I will describe and demo the solution including how to adopt it, where I think it is going next, and how valuable we have found it.

http://cfgmgmtcamp.eu/schedule/testing/mark-rendell.html

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Config Management Camp 2017 - If it moves, give it a pipeline

  1. 1. Accenture Architecture Services If it moves, give it a pipeline …and let’s all start sharing them @markosrendell
  2. 2. @markosrendell
  3. 3. AWS region Availability Zone AWS cloud AWS Cloud Internet Docker Machine Docker Compose Selenium Spin up an ADOP (I’ll come back to why later) $ curl Jenkins-api quick-start.sh @markosrendell
  4. 4. Mark (aka Markos) Rendell Associate Director at Accenture DevOps Shared Service Lead @markosrendell mark.rendell@accenture.com @markosrendell kramos http://markosrendell.wordpress.com 
  5. 5. Diversion into Inclusion and Diversity 1. It should be down to all of us to champion this at every opportunity. 2. We all suffer from Unconscious Bias and even if this has just a 0.1% on the opportunities that we give others, cumulatively this stacks up. (Take a test: https://implicit.harvard.edu/implicit/selectatest.html) 3. Mirco aggression is a term for behaviour that intimidates others and make it harder for them to perform a their best in the working environment. Be vigilant and call it out. (Real examples here: http://www.microaggressions.com/) Other links: • https://www.fastcompany.com/3044738/hit-the-ground-running/7-simple-methods-to-fight- against-your-unconscious-biases • https://codeascraft.com/2016/10/19/being-an-effective-ally-to-women-and-non-binary-people/ • http://weprinciples.org/files/attachments/WHITE_PAPER_Nudging_the_Unconscious_Mind_N ielsen_&_Kepinski_Oct_2014.pdf • https://managingbias.fb.com/ • http://www.cmu.edu/news/stories/archives/2015/june/bias-blind-spot.html @markosrendell
  6. 6. @markosrendell “the things”stuff that makes “the things” Configuration Management
  7. 7. What matters the most? https://unsplash.com/photos/yBzrPGLjMQw “the things”files that make “the things”
  8. 8. If it moves, put it in version control https://unsplash.com/photos/yBzrPGLjMQw files that make “the things” “the things”
  9. 9. Automate for integrity https://unsplash.com/photos/yBzrPGLjMQw files that make “the things” “the things”
  10. 10. Orchestrate the automation for integrity https://unsplash.com/photos/yBzrPGLjMQw “the things”files that make “the things” Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Deploy Prod Test
  11. 11. Tests configuration Build tools configuration Deployment software configuration Middleware configuration Operating System configuration Virtual infrastructure configuration Hardware configuration Business Application Business Application Business Application Business Application Business Application Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Continuous Delivery Pipeline, yeah? Committer: jdoe Story:2 Commit ID: 23 Committer: jdoe Story:54 Commit ID: 23 Committer: jdoe Story:6 Commit ID: 73
  12. 12. Dog food? http://www.adventuredogblog.com/wp-content/uploads/2016/08/dog-eating.jpg @markosrendell
  13. 13. Tests configuration Build tools configuration Deployment software configuration Middleware configuration Operating System configuration Virtual infrastructure configuration Hardware configuration Business Application Business Application Business Application Business Application Business Application If it moves, give it a pipeline “CDDD” Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test
  14. 14. Tests configuration Build tools configuration Deployment software configuration Middleware configuration Operating System configuration Virtual infrastructure configuration Hardware configuration Business Application Business Application Business Application Business Application Business Application Pipelines for tools Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test
  15. 15. Tests configuration Build tools configuration Deployment software configuration Middleware configuration Operating System configuration Virtual infrastructure configuration Hardware configuration Business Application Business Application Business Application Business Application Business Application Pipelines for Infra Code Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test
  16. 16. Website Version 12 Order Service Version 1.0.3.15 Email Service Version 1.0.0.9 Payment Service Version 1.0.0.3 Deployment tools Version 47 Platform Version 83 Cloud Foundrv Version 23 MySQL Version 12 CAssandra Version 12 RabbotMQ Version 24 Infra-structure Version 28 Whole Solution Version 46
  17. 17. Website Version 12 Order Service Version 1.0.3.15 Email Service Version 1.0.0.9 Payment Service Version 1.0.0.3 Deployment tools Version 47 Platform Version 83 Cloud Foundrv Version 23 MySQL Version 12 CAssandra Version 12 RabbotMQ Version 24 Infra-structure Version 28 Whole Solution Version 46 NONPRODDATACENTREPLATFORM PROD DATA CENTRE Check in Check in Check in Check in Check in Check in Check in Check in Check in Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Website Order Service Email Service Payment Service Cloud Foundrv MySQLCassandraRabbitMQ Infra- structure Platform
  18. 18. NONPRODDATACENTREPLATFORM PROD DATA CENTRE Check in Check in Check in Check in Check in Check in Check in Check in Check in Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Website Order Service Email Service Payment Service Cloud Foundrv MySQLCassandraRabbitMQ Infra- structure Platform Website Version12 Order Service Version1.0.3.15 Email Service Version1.0.0.9 Payment Service Version1.0.0.3 Deployment tools Version47 Platform Version83 Cloud Foundrv Version23 MySQL Version12 CAssandra Version12 RabbotMQ Version24 Infra-structure Version28 Whole Solution Version46
  19. 19. NONPRODDATACENTREPLATFORM PROD DATA CENTRE Check in Check in Check in Check in Check in Check in Check in Check in Check in Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Website Order Service Email Service Payment Service Cloud Foundrv MySQLCassandraRabbitMQ Infra- structure Platform Website Version12 Order Service Version1.0.3.15 Email Service Version1.0.0.9 Payment Service Version1.0.0.3 Deployment tools Version47 Platform Version83 Cloud Foundrv Version23 MySQL Version12 CAssandra Version12 RabbotMQ Version24 Infra-structure Version28 Whole Solution Version46
  20. 20. NONPRODDATACENTREPLATFORM PROD DATA CENTRE Check in Check in Check in Check in Check in Check in Check in Check in Check in Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Static Code Analysis Unit Tests Run Functional Tests Run Security Tests PT env deploy Run Tech Tests CT env deploy Production deploy Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Compile and package Unit Tests Platform env deploy Monitoring tests Website Order Service Email Service Payment Service Cloud Foundrv MySQLCassandraRabbitMQ Infra- structure Platform Website Version12 Order Service Version1.0.3.15 Email Service Version1.0.0.9 Payment Service Version1.0.0.3 Deployment tools Version47 Platform Version83 Cloud Foundrv Version23 MySQL Version12 CAssandra Version12 RabbotMQ Version24 Infra-structure Version28 Whole Solution Version46
  21. 21. Anatomy of a Cartridge – 3 files plus a readme $ tree . |-- README.md `-- src `-- urls.txt “1” |-- jenkins | `-- jobs | |-- dsl | | |-- platform_provisionin_jobsg.groovy “2” | | `-- application_jobs.groovy “3” @markosrendell
  22. 22. AWS region Availability Zone AWS cloud AWS Cloud Internet On Premise Docker Machine Docker Compose Selenium ADOP Platform Extension Cartridges ADOP Cartridge ADOP: platform for sharing and reusing automation @markosrendell
  23. 23. AWS region Availability Zone AWS cloud AWS Cloud Internet Docker Machine Docker Compose Selenium ADOP Platform Extension Cartridges ADOP Cartridge We’re going to look at… @markosrendell
  24. 24. Demo 1. Spin up the platform 2. Load the Docker cartridge and play with it 3. Load the Chef cartridge and play with it 4. Load the Ansible cartridge and play with it
  25. 25. AWS region Availability Zone AWS cloud AWS Cloud Internet Docker Machine Docker Compose Selenium ADOP Platform Extension Cartridges ADOP Cartridge What we looked at @markosrendell
  26. 26. Tests configuration Build tools configuration Deployment software configuration Middleware configuration Operating System configuration Virtual infrastructure configuration Hardware configuration Business Application Business Application Business Application Business Application Business Application Sharing the “full stack” Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test Compile Code Analysis Committer: jdoe Story:25 Commit ID: 113 Unit Test Deploy PPE Functional Test Security and Perf Test
  27. 27. Thanks! https://github.com/Accenture/adop-docker-compose mark.rendell@accenture.com @markosrendell kramos http://markosrendell.wordpress.com 

×