SlideShare a Scribd company logo
1 of 22
Continuous Delivery Pipeline with Jenkins, Puppet and Mcollective



                                 From an Engineer’s perspective




                                                      @diptanu
DevOps ?
Continuous Delivery
Why Continuous Deployment
• Get measurable changes fast
• Reduce the risk of releases
• Loosely coupled but coherent teams
• Get rid of the “works-on-my-box”
  phenomenon
• Forces you to think where does state full
  things live in your system
First Principles
• CI is just the orchestrator
• Package and version everything
• Don’t use the build tool after tests have been
  run and packages have been made
• Divide and Conquer
  – Use tools that solve one particular problem
• Think hard what the pillars of infrastructure are
Jenkins
• Distributed Builds
• Shard responsibility of build infrastructure
  – For example, don’t treat the CI server as your
    artifact repo
• Think about what happens when Jenkins goes
  down
• Discard old builds
Jenkins
• Use the Jenkins Job Builder to configure jobs
• DynaSlave plugin if you need a lot of scale
• Build Flow Plugin/Build Pipeline Plugin for
  visualization
• Job DSL Plugin
• Configuration Slicing Plugin
Jenkins
• Disable Jobs that haven’t built successfully
• Set number of builds
• Mark build permanent
<3 Jenkins everyday
Puppet
• Infrastructure as code
• Node-less and master less puppet
• Make your vizualization tool consume the
  reports
• Fact Driven puppet
• Masterless puppet
• Decouple data from manifests
NodeLess Puppet
• No definitions like

    node “webserver01.foobar.com”


• There are only “types” of instances


    node default {
      include truth::enforcer
    }
NodeLess Puppet

class truth::enforcer {
 if has_role("ci"){
   notice("I am a CI Server")
   include tools::ci
 }

    if has_role(”webserver"){
         notice(“I am a webserver”)
         include tools::frontend
}
}
MCollective

              Web Servers


              Application
              Servers

              Cacheing
              Servers

               Metrics/Loggin
               g
MCollective
• Create Collectives of resources on the network
• And operate on collectives rather than single
  hosts
• Understands facts that are exposed by facter


 mco package –W /dev_server/ install foo-puppet-86


 mco service –W /application_servers/ restart iptables
AWS
• Ruby/Python SDK
• Immutable compute instances
• Make instances join the collective

       Load            Compute     Nodeless Puppet
     Balancer          Instance




     Monitori
       ng              Jenkins
     System
A Pipeline in the wild
            Team City
              Build


 Code                     Daily Manual
Commit                    Deployment
           TFS Build DB
            Manager                       Quality
                                         Assurance
                          Fortnightly
                            Manual
                          Deployment
Software Delivery Pipeline

                                         Publish


               Automated                           Deploy to   Smoke Tests
Commit                            Package
                  Tests                              Dev



Deploy to QA          Deploy to Integration
Environments             Environments
Deployment Pipeline
                                            Test and
Developers            SCM
                                            Package


   Ops




                                            Package
                                           Repository


curl -i -F package=@foo-puppet-86-1.i386.rpm http://selihost/<repository_name>/upload
Deployment Pipeline


                              Run your
                             functional
Deploy to Dev
                            tests from a
                           different host


                           mco
         Seli/Jenkins
         Xtrigger
                                            a. yum install –y foobar-puppet-86-1


                        Dev Instances       b. sudo puppet apply …
  Package
 Repository
Package Repositories
•   Upload a package whenever a build happens
•   Serve Packages
•   Archive Strategy
•   Trigger the deployment pipeline whenever
•   Statistics
•   API to get status of the metadata
Introducing Seli
•   A REST API to upload packages
•   Comes with an embedded HTTP Server
•   Shows Stats
•   And specify rules for archiving packages
•   Tag Packages
•   Triggers URL when a package is uploaded
In closing
• Make your CD Pipeline reflect your release
  workflow
• Automate everything
• Measure everything that moves
• Think about your infrastructure as collectives
Questions?




             @diptanu

More Related Content

What's hot

Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsTomohide Kakeya
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Dockertoffermann
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsMarcel Birkner
 
Brujug Jenkins pipeline scalability
Brujug Jenkins pipeline scalabilityBrujug Jenkins pipeline scalability
Brujug Jenkins pipeline scalabilityDamien Coraboeuf
 
Continuous Integration/Deployment with Docker and Jenkins
Continuous Integration/Deployment with Docker and JenkinsContinuous Integration/Deployment with Docker and Jenkins
Continuous Integration/Deployment with Docker and JenkinsFrancesco Bruni
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Ohad Basan
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins UsersAndrew Bayer
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandTroublemaker Khunpech
 
Jenkins days workshop pipelines - Eric Long
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Longericlongtx
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsMandi Walls
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerCloudBees
 
Best Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical JenkinsBest Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical Jenkinsmrooney7828
 
Node.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and OpsNode.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and OpsBret Fisher
 
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"CloudBees
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Andrew Bayer
 
Drupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsDrupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsJohn Smith
 
Hudson
HudsonHudson
Hudson8x8
 
DockerCon SF 2015: Enabling Microservices @Orbitz
DockerCon SF 2015: Enabling Microservices @OrbitzDockerCon SF 2015: Enabling Microservices @Orbitz
DockerCon SF 2015: Enabling Microservices @OrbitzDocker, Inc.
 
Rails Applications with Docker
Rails Applications with DockerRails Applications with Docker
Rails Applications with DockerLaura Frank Tacho
 

What's hot (20)

Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkins
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Docker
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
 
Puppet & Jenkins
Puppet & JenkinsPuppet & Jenkins
Puppet & Jenkins
 
Brujug Jenkins pipeline scalability
Brujug Jenkins pipeline scalabilityBrujug Jenkins pipeline scalability
Brujug Jenkins pipeline scalability
 
Continuous Integration/Deployment with Docker and Jenkins
Continuous Integration/Deployment with Docker and JenkinsContinuous Integration/Deployment with Docker and Jenkins
Continuous Integration/Deployment with Docker and Jenkins
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 
Jenkins days workshop pipelines - Eric Long
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Long
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in Operations
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with Docker
 
Best Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical JenkinsBest Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical Jenkins
 
Node.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and OpsNode.js Rocks in Docker for Dev and Ops
Node.js Rocks in Docker for Dev and Ops
 
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
Drupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The BasicsDrupal Continuous Integration with Jenkins - The Basics
Drupal Continuous Integration with Jenkins - The Basics
 
Hudson
HudsonHudson
Hudson
 
DockerCon SF 2015: Enabling Microservices @Orbitz
DockerCon SF 2015: Enabling Microservices @OrbitzDockerCon SF 2015: Enabling Microservices @Orbitz
DockerCon SF 2015: Enabling Microservices @Orbitz
 
Rails Applications with Docker
Rails Applications with DockerRails Applications with Docker
Rails Applications with Docker
 

Viewers also liked

PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...Puppet
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 
Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and TellE. Camden Fisher
 
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)CloudBees
 
Green Storage 1: Economics, Environment, Energy and Engineering
Green Storage 1: Economics, Environment, Energy and EngineeringGreen Storage 1: Economics, Environment, Energy and Engineering
Green Storage 1: Economics, Environment, Energy and Engineeringdigitallibrary
 
Agile Product Management Basics
Agile Product Management BasicsAgile Product Management Basics
Agile Product Management BasicsRich Mironov
 
Practical introduction to hadoop
Practical introduction to hadoopPractical introduction to hadoop
Practical introduction to hadoopinside-BigData.com
 
college assignment on Applications of ipsec
college assignment on Applications of ipsec college assignment on Applications of ipsec
college assignment on Applications of ipsec bigchill29
 
Improving Utilization of Infrastructure Cloud
Improving Utilization of Infrastructure CloudImproving Utilization of Infrastructure Cloud
Improving Utilization of Infrastructure CloudIJASCSE
 
Compulsory motor third party liability in Mozambique
Compulsory motor third party liability in MozambiqueCompulsory motor third party liability in Mozambique
Compulsory motor third party liability in MozambiqueTristan Wiggill
 
Informatica transformation guide
Informatica transformation guideInformatica transformation guide
Informatica transformation guidesonu_pal
 
Top 8 print production manager resume samples
Top 8 print production manager resume samplesTop 8 print production manager resume samples
Top 8 print production manager resume sampleskelerdavi
 
How to measure illumination
How to measure illuminationHow to measure illumination
How to measure illuminationajsatienza
 
Optimized Learning and Development
Optimized Learning and Development Optimized Learning and Development
Optimized Learning and Development AIESEC
 
Ironport Data Loss Prevention
Ironport Data Loss PreventionIronport Data Loss Prevention
Ironport Data Loss Preventiondkaya
 
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management ExcellenceChange Management Institute
 
Software QA Metrics Dashboard Benchmarking
Software QA Metrics Dashboard BenchmarkingSoftware QA Metrics Dashboard Benchmarking
Software QA Metrics Dashboard BenchmarkingJohn Carter
 
User Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and VanityUser Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and VanityTony Pitale
 
Promotion in the internet marketing mix
Promotion in the internet marketing mixPromotion in the internet marketing mix
Promotion in the internet marketing mixNadiaElSamsam
 

Viewers also liked (20)

PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and Tell
 
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
 
Green Storage 1: Economics, Environment, Energy and Engineering
Green Storage 1: Economics, Environment, Energy and EngineeringGreen Storage 1: Economics, Environment, Energy and Engineering
Green Storage 1: Economics, Environment, Energy and Engineering
 
Agile Product Management Basics
Agile Product Management BasicsAgile Product Management Basics
Agile Product Management Basics
 
Practical introduction to hadoop
Practical introduction to hadoopPractical introduction to hadoop
Practical introduction to hadoop
 
college assignment on Applications of ipsec
college assignment on Applications of ipsec college assignment on Applications of ipsec
college assignment on Applications of ipsec
 
Improving Utilization of Infrastructure Cloud
Improving Utilization of Infrastructure CloudImproving Utilization of Infrastructure Cloud
Improving Utilization of Infrastructure Cloud
 
Basics of print planning
Basics of print planningBasics of print planning
Basics of print planning
 
Compulsory motor third party liability in Mozambique
Compulsory motor third party liability in MozambiqueCompulsory motor third party liability in Mozambique
Compulsory motor third party liability in Mozambique
 
Informatica transformation guide
Informatica transformation guideInformatica transformation guide
Informatica transformation guide
 
Top 8 print production manager resume samples
Top 8 print production manager resume samplesTop 8 print production manager resume samples
Top 8 print production manager resume samples
 
How to measure illumination
How to measure illuminationHow to measure illumination
How to measure illumination
 
Optimized Learning and Development
Optimized Learning and Development Optimized Learning and Development
Optimized Learning and Development
 
Ironport Data Loss Prevention
Ironport Data Loss PreventionIronport Data Loss Prevention
Ironport Data Loss Prevention
 
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence
6 May 2015 - INCREASING BANKING SALES PRODUCTIVITY - Management Excellence
 
Software QA Metrics Dashboard Benchmarking
Software QA Metrics Dashboard BenchmarkingSoftware QA Metrics Dashboard Benchmarking
Software QA Metrics Dashboard Benchmarking
 
User Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and VanityUser Behavior Tracking with Google Analytics, Garb, and Vanity
User Behavior Tracking with Google Analytics, Garb, and Vanity
 
Promotion in the internet marketing mix
Promotion in the internet marketing mixPromotion in the internet marketing mix
Promotion in the internet marketing mix
 

Similar to Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS

Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Nikolai Blackie
 
Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevillePromet Source
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
DevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesDevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesAmbassador Labs
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewWill Iverson
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to realityClément Escoffier
 
Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseEmanuele Quinto
 
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...DevOps4Networks
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionPatrick Chanezon
 
PowerPoint Presentation
PowerPoint PresentationPowerPoint Presentation
PowerPoint Presentationrhofkens
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
A Pathway to Continuous Integration/Continuous Delivery on AWS
A Pathway to Continuous Integration/Continuous Delivery on AWSA Pathway to Continuous Integration/Continuous Delivery on AWS
A Pathway to Continuous Integration/Continuous Delivery on AWSBhuvaneswari Subramani
 
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...DevSecCon
 
Continuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitContinuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitXebiaLabs
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019Kumton Suttiraksiri
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svnAnkur Goyal
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...VMware Tanzu
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayLeonard Fingerman
 

Similar to Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS (20)

Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...
 
Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in Asheville
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
DevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesDevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for Kubernetes
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
 
Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study Case
 
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
PowerPoint Presentation
PowerPoint PresentationPowerPoint Presentation
PowerPoint Presentation
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
A Pathway to Continuous Integration/Continuous Delivery on AWS
A Pathway to Continuous Integration/Continuous Delivery on AWSA Pathway to Continuous Integration/Continuous Delivery on AWS
A Pathway to Continuous Integration/Continuous Delivery on AWS
 
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
 
Continuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitContinuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and Deployit
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
CD with spinnaker
CD with spinnakerCD with spinnaker
CD with spinnaker
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
 

Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS

  • 1. Continuous Delivery Pipeline with Jenkins, Puppet and Mcollective From an Engineer’s perspective @diptanu
  • 4. Why Continuous Deployment • Get measurable changes fast • Reduce the risk of releases • Loosely coupled but coherent teams • Get rid of the “works-on-my-box” phenomenon • Forces you to think where does state full things live in your system
  • 5. First Principles • CI is just the orchestrator • Package and version everything • Don’t use the build tool after tests have been run and packages have been made • Divide and Conquer – Use tools that solve one particular problem • Think hard what the pillars of infrastructure are
  • 6. Jenkins • Distributed Builds • Shard responsibility of build infrastructure – For example, don’t treat the CI server as your artifact repo • Think about what happens when Jenkins goes down • Discard old builds
  • 7. Jenkins • Use the Jenkins Job Builder to configure jobs • DynaSlave plugin if you need a lot of scale • Build Flow Plugin/Build Pipeline Plugin for visualization • Job DSL Plugin • Configuration Slicing Plugin
  • 8. Jenkins • Disable Jobs that haven’t built successfully • Set number of builds • Mark build permanent <3 Jenkins everyday
  • 9. Puppet • Infrastructure as code • Node-less and master less puppet • Make your vizualization tool consume the reports • Fact Driven puppet • Masterless puppet • Decouple data from manifests
  • 10. NodeLess Puppet • No definitions like node “webserver01.foobar.com” • There are only “types” of instances node default { include truth::enforcer }
  • 11. NodeLess Puppet class truth::enforcer { if has_role("ci"){ notice("I am a CI Server") include tools::ci } if has_role(”webserver"){ notice(“I am a webserver”) include tools::frontend } }
  • 12. MCollective Web Servers Application Servers Cacheing Servers Metrics/Loggin g
  • 13. MCollective • Create Collectives of resources on the network • And operate on collectives rather than single hosts • Understands facts that are exposed by facter mco package –W /dev_server/ install foo-puppet-86 mco service –W /application_servers/ restart iptables
  • 14. AWS • Ruby/Python SDK • Immutable compute instances • Make instances join the collective Load Compute Nodeless Puppet Balancer Instance Monitori ng Jenkins System
  • 15. A Pipeline in the wild Team City Build Code Daily Manual Commit Deployment TFS Build DB Manager Quality Assurance Fortnightly Manual Deployment
  • 16. Software Delivery Pipeline Publish Automated Deploy to Smoke Tests Commit Package Tests Dev Deploy to QA Deploy to Integration Environments Environments
  • 17. Deployment Pipeline Test and Developers SCM Package Ops Package Repository curl -i -F package=@foo-puppet-86-1.i386.rpm http://selihost/<repository_name>/upload
  • 18. Deployment Pipeline Run your functional Deploy to Dev tests from a different host mco Seli/Jenkins Xtrigger a. yum install –y foobar-puppet-86-1 Dev Instances b. sudo puppet apply … Package Repository
  • 19. Package Repositories • Upload a package whenever a build happens • Serve Packages • Archive Strategy • Trigger the deployment pipeline whenever • Statistics • API to get status of the metadata
  • 20. Introducing Seli • A REST API to upload packages • Comes with an embedded HTTP Server • Shows Stats • And specify rules for archiving packages • Tag Packages • Triggers URL when a package is uploaded
  • 21. In closing • Make your CD Pipeline reflect your release workflow • Automate everything • Measure everything that moves • Think about your infrastructure as collectives
  • 22. Questions? @diptanu

Editor's Notes

  1. Avoid, cloning of package repository.