SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Continuous Delivery
with Jenkins
Who we are
Javatar open source activity
https://github.com/JavatarPro
● Real life use cases, where CI/CD could help
● Theory and best practices from CI/CD experts
● Demo with implementation of some best practices
● Declarative pipeline examples
● Features that already implemented
● Features that we plan to do
● Q&A
Agenda
DevOps is deploying on prod manually
WhendevOpsisonsickleave
Database backward compatibility
Database backward compatibility
DevOps resources are bottleneck
DevOps resources are bottleneck
Let’s try to debug
Use Release Tag in VCS
Contract testing
It is hard to maintain knowledge
about best practices
for all programming languages
and different build tools
Context
HP LaserJet Firmware use case
Jenkins Declarative Pipeline (DP)
Declarative pipeline is open source
Jenkins Global Shared Library,
free of charge for commercial use
DP is implementation of best practices
https://martinfowler.com/books/continuousDelivery.html
https://www.thoughtworks.com/continuous-delivery
Build Quality In
“Cease dependence on mass
inspection to achieve quality.
Improve the process and
build quality into the product
in the first place.”
W. Edwards Deming
Why Continuous Delivery?
● Make releases painless, low risk events
● Reduce time to market
● Increase software quality and stability
● Reduce cost of ongoing software development
● Increase customer and employee satisfaction
○ Creates fast feedback loops
Key Principles of Continuous Delivery
● Build quality in
● Work in small batches
● Computers do repetitive task, people solve problems
● Relentlessly pursue continuous improvement
● Everyone is responsible
Deployment Pipeline Practices
● Only build your packages once
● Deploy the same way to every environment
● Smoke test your deployments
● Keep your environments similar
● If anything fails, stop the line!
Low Risk Releases are Incremental
● Feature toggles
● Blue-green deployments
● Canary releases
● Dark Launching
● Production Immune System
If someone threw a server out
of the window, how long would
it take to recreate it?
Infrastructure stability
https://martinfowler.com/bliki/PhoenixServer.html
https://github.com/netflix/SimianArmy
How Stable Prod Env Is?
DEMO TIME
Declarative Pipeline config example
Declarative Pipeline config example
Declarative Pipeline: service suit
Declarative Pipeline: library suit
How to securely deploy to production
Features that already implemented
● Release suits: service, ui, library, service-with-db
● Build types: maven, npm, python, php, sencha
● Integration of your system/ui tests
● Integration with Sonar
● works with gitlab, github, bitbucket (git & mercurial)
● works with Mesos & Marathon
Features that we plan to do
● Blue-green deployments
● Secure deployment to production
● Production Immune System check adoption
● Performance tests easy integration
● Adopt service orchestration with Kubernetes
● Canary releases
HP LaserJet Firmware use case
Technology adoption life cycle
Technology adoption life cycle
Takeaways
● Let’s standardize free of chage CI/CD implementation
● Share with us your feedback what is missing
● Use Declarative Pipeline on your project or sub project
● Contribute with Javatar to Declarative Pipeline
● Experiment with Continuous improvements
https://github.com/JavatarPro
https://www.thoughtworks.com/continuous-delivery
https://martinfowler.com/bliki/PhoenixServer.html
https://github.com/netflix/SimianArmy
https://martinfowler.com/books/continuousDelivery.html
pipeline@javatar.pr
o

Weitere ähnliche Inhalte

Was ist angesagt?

Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow TutorialMichigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow TutorialJeffrey Sica
 
How to write a Dockerfile
How to write a DockerfileHow to write a Dockerfile
How to write a DockerfileKnoldus Inc.
 
Continuous Delivery at Snyk
Continuous Delivery at SnykContinuous Delivery at Snyk
Continuous Delivery at SnykAnton Drukh
 
Continuous Integration with Maven for Android apps
Continuous Integration with Maven for Android appsContinuous Integration with Maven for Android apps
Continuous Integration with Maven for Android appsHugo Josefson
 
PuppetConf 2017: Puppet Development Kit: A Seamless Workflow for Module Devel...
PuppetConf 2017: Puppet Development Kit: A Seamless Workflow for Module Devel...PuppetConf 2017: Puppet Development Kit: A Seamless Workflow for Module Devel...
PuppetConf 2017: Puppet Development Kit: A Seamless Workflow for Module Devel...Puppet
 
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...Puppet
 
Safe deployments with Blue-Green and Spinnaker
Safe deployments with Blue-Green and SpinnakerSafe deployments with Blue-Green and Spinnaker
Safe deployments with Blue-Green and SpinnakerMihnea Dobrescu-Balaur
 
Discovery delivery 中国软件技术大会2011
Discovery delivery 中国软件技术大会2011Discovery delivery 中国软件技术大会2011
Discovery delivery 中国软件技术大会2011Qiao Liang
 
Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Thomas Shaw
 
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploydotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus DeployKevin Kuszyk
 
Flash Camp Chennai - Build automation of Flex and AIR applications
Flash Camp Chennai - Build automation of Flex and AIR applicationsFlash Camp Chennai - Build automation of Flex and AIR applications
Flash Camp Chennai - Build automation of Flex and AIR applicationsRIA RUI Society
 
DevOps Practices @Pipedrive
DevOps Practices @PipedriveDevOps Practices @Pipedrive
DevOps Practices @PipedriveRenno Reinurm
 
Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...Lucas Jellema
 
Jenkins review buddy
Jenkins review buddyJenkins review buddy
Jenkins review buddyAske Olsson
 
Grunt Continuous Development of the Front End Tier
Grunt Continuous Development of the Front End TierGrunt Continuous Development of the Front End Tier
Grunt Continuous Development of the Front End TierErick Brito
 
Virtual Puppet User Group: Puppet Development Kit (PDK) and Puppet Platform 6...
Virtual Puppet User Group: Puppet Development Kit (PDK) and Puppet Platform 6...Virtual Puppet User Group: Puppet Development Kit (PDK) and Puppet Platform 6...
Virtual Puppet User Group: Puppet Development Kit (PDK) and Puppet Platform 6...Puppet
 

Was ist angesagt? (20)

Jenkins pipeline as code
Jenkins pipeline as codeJenkins pipeline as code
Jenkins pipeline as code
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Continuous operations in AWS
Continuous operations in AWSContinuous operations in AWS
Continuous operations in AWS
 
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow TutorialMichigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
 
How to write a Dockerfile
How to write a DockerfileHow to write a Dockerfile
How to write a Dockerfile
 
Continuous Delivery at Snyk
Continuous Delivery at SnykContinuous Delivery at Snyk
Continuous Delivery at Snyk
 
Continuous Integration with Maven for Android apps
Continuous Integration with Maven for Android appsContinuous Integration with Maven for Android apps
Continuous Integration with Maven for Android apps
 
PuppetConf 2017: Puppet Development Kit: A Seamless Workflow for Module Devel...
PuppetConf 2017: Puppet Development Kit: A Seamless Workflow for Module Devel...PuppetConf 2017: Puppet Development Kit: A Seamless Workflow for Module Devel...
PuppetConf 2017: Puppet Development Kit: A Seamless Workflow for Module Devel...
 
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
 
Safe deployments with Blue-Green and Spinnaker
Safe deployments with Blue-Green and SpinnakerSafe deployments with Blue-Green and Spinnaker
Safe deployments with Blue-Green and Spinnaker
 
Discovery delivery 中国软件技术大会2011
Discovery delivery 中国软件技术大会2011Discovery delivery 中国软件技术大会2011
Discovery delivery 中国软件技术大会2011
 
Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016
 
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploydotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
 
Flash Camp Chennai - Build automation of Flex and AIR applications
Flash Camp Chennai - Build automation of Flex and AIR applicationsFlash Camp Chennai - Build automation of Flex and AIR applications
Flash Camp Chennai - Build automation of Flex and AIR applications
 
DevOps Practices @Pipedrive
DevOps Practices @PipedriveDevOps Practices @Pipedrive
DevOps Practices @Pipedrive
 
Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...
 
Jenkins review buddy
Jenkins review buddyJenkins review buddy
Jenkins review buddy
 
Gitlab ci-cd
Gitlab ci-cdGitlab ci-cd
Gitlab ci-cd
 
Grunt Continuous Development of the Front End Tier
Grunt Continuous Development of the Front End TierGrunt Continuous Development of the Front End Tier
Grunt Continuous Development of the Front End Tier
 
Virtual Puppet User Group: Puppet Development Kit (PDK) and Puppet Platform 6...
Virtual Puppet User Group: Puppet Development Kit (PDK) and Puppet Platform 6...Virtual Puppet User Group: Puppet Development Kit (PDK) and Puppet Platform 6...
Virtual Puppet User Group: Puppet Development Kit (PDK) and Puppet Platform 6...
 

Ähnlich wie Continuous Delivery with Jenkins declarative pipeline XPDays-2018-12-08

Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Richard Bullington-McGuire
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019ciberkleid
 
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...Perforce
 
Continuous integration for open source distros v 3.0
Continuous integration for open source distros v 3.0Continuous integration for open source distros v 3.0
Continuous integration for open source distros v 3.0Sriram Narayanan
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Janusz Nowak
 
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
 
Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)Pascal Dufour
 
Succesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetSuccesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetHarald Rietman
 
Atmosphere 2018: Yury Tsarev - TEST DRIVEN INFRASTRUCTURE FOR HIGHLY PERFORMI...
Atmosphere 2018: Yury Tsarev - TEST DRIVEN INFRASTRUCTURE FOR HIGHLY PERFORMI...Atmosphere 2018: Yury Tsarev - TEST DRIVEN INFRASTRUCTURE FOR HIGHLY PERFORMI...
Atmosphere 2018: Yury Tsarev - TEST DRIVEN INFRASTRUCTURE FOR HIGHLY PERFORMI...PROIDEA
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureYury Tsarev
 
Devops CI-CD pipeline with Containers
Devops CI-CD pipeline with ContainersDevops CI-CD pipeline with Containers
Devops CI-CD pipeline with ContainersNuSpace
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachGiovanni Toraldo
 
Prod-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized ApplicationsProd-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized ApplicationsVMware Tanzu
 
Developers Testing - Girl Code at bloomon
Developers Testing - Girl Code at bloomonDevelopers Testing - Girl Code at bloomon
Developers Testing - Girl Code at bloomonIneke Scheffers
 
Efficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura FrankEfficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura FrankDocker, Inc.
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build PipelineSamuel Brown
 

Ähnlich wie Continuous Delivery with Jenkins declarative pipeline XPDays-2018-12-08 (20)

Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
 
XP Days Ukraine 2019
XP Days Ukraine 2019XP Days Ukraine 2019
XP Days Ukraine 2019
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019Delivery Pipelines as a First Class Citizen @deliverAgile2019
Delivery Pipelines as a First Class Citizen @deliverAgile2019
 
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
 
Continuous integration for open source distros v 3.0
Continuous integration for open source distros v 3.0Continuous integration for open source distros v 3.0
Continuous integration for open source distros v 3.0
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
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...
 
Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)Successful testing continuous delivery (Testnet 2013)
Successful testing continuous delivery (Testnet 2013)
 
Succesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnetSuccesful testing-continuous-delivery-testnet
Succesful testing-continuous-delivery-testnet
 
Atmosphere 2018: Yury Tsarev - TEST DRIVEN INFRASTRUCTURE FOR HIGHLY PERFORMI...
Atmosphere 2018: Yury Tsarev - TEST DRIVEN INFRASTRUCTURE FOR HIGHLY PERFORMI...Atmosphere 2018: Yury Tsarev - TEST DRIVEN INFRASTRUCTURE FOR HIGHLY PERFORMI...
Atmosphere 2018: Yury Tsarev - TEST DRIVEN INFRASTRUCTURE FOR HIGHLY PERFORMI...
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
First Steps to DevOps
First Steps to DevOpsFirst Steps to DevOps
First Steps to DevOps
 
Devops CI-CD pipeline with Containers
Devops CI-CD pipeline with ContainersDevops CI-CD pipeline with Containers
Devops CI-CD pipeline with Containers
 
Devops
DevopsDevops
Devops
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery Approach
 
Prod-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized ApplicationsProd-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized Applications
 
Developers Testing - Girl Code at bloomon
Developers Testing - Girl Code at bloomonDevelopers Testing - Girl Code at bloomon
Developers Testing - Girl Code at bloomon
 
Efficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura FrankEfficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura Frank
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 

Kürzlich hochgeladen

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 

Kürzlich hochgeladen (20)

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 

Continuous Delivery with Jenkins declarative pipeline XPDays-2018-12-08

Hinweis der Redaktion

  1. B Добрий день, ця доповідь про Jenkins Declarative Pipeline Open Source Tool для Continuous Delivery for µServices Хочемо поділитись своїм досвідом налаштування Continuous Delivery на проекті. DP наразі використовується успішно на декількох проектах
  2. B Мене звати Зора Борис, Я працював System Architect ом на декількох проектах. У вільний час open соршу з Javatar community S Привіт я Сергій Петриченко, працюю Архітектором в Golden Dimension, Також співпрацюю з Javatar community S На данний момент наший головний приорітет в open сорсі реалізувати CI/CD best practices для µServices в Jenkins Declarative Pipeline Метою якого являється мінімізація часу на перехід на Continuous Delivery
  3. S Вся наша робота знаходиться у відкритому доступі на github Якщо у Вас є пропозиції по функціоналу створюйте, будь-ласка, тікети Якщо хтось хоче зайти під час презентації на github, можете відсканить QRcode B sdfasdf
  4. B Наша Agenda Ми почнемо з реальних ситуацій які були у нашому досвіді Потім перейдемо до теорії. Що рекомендують експерти? Покажемо демо Declarative Pipeline S Також подивимось приклади конфігурації Declarative Pipeline Переглянемо повний список, що на даний момент ми встигли реалізувати і може бути використаним на Ваших проектах Ще пройдемось по списку, що плануємо реалізувати найближчим часом Останньою зупинкою буде відповідь на Ваші запитання Якщо це не те що Ви очікували від почути, ще не пізно пошукати іншу доповідь
  5. B Так виглядає робота devOps по мануальному деплою мікросервісів в прод На high load проекті Підніміть, будь-ласка, руки у кого на проекті деплой на прод автоматичний. (10 сек чекаємо) Дякую, десь % аудиторії
  6. S Якщо Ваш devOps захворів, як виглядає Ваше делівері на прод? Знайома ситуація? Давайте перейдемо до реальний use case-ів
  7. B Так Давайте перейдемо до реальних use case-ів Database backward compatibility У Вас новий реліз сервіса з великою реляційною базою даних QA все відтестили і Ви собі сидите на грумінгу ні про що не хвилюєтесь, А що може піти не так? Але прибігає збентежений девопс менеджер і терміново просить підійти до хлопців які деплоять на прод (Prod deploy failed according to Out of memory issue Rollback is not possible because db has not backward compatible change Restore from dump is time consuming, huge penalty would apply ) issue: you deploy service in production and it fails to start with out of memory error you try to switch to previous version, but service does not start because flyway make some changes and previous version could not start with new database schema. Your customer has downtime. Your devOps add to µService 200 Gb of RAM and this does not help, somebody from devs read all rows from the table into memory (on dev env this works because table has less rows) Workaround: devOps deleted all cron jobs (after some other guess tries) and this help to investigate offline, and resolve issue Best practice: verify database compatibility with previous 3 versions, esspecially on monolith with huge volumes
  8. B Вам кажуть, що сервіс не піднявся і падає з out of memory, навіть якщо йому дати 200 Gb RAM, Ви не довго думаючи пропонуєте ролбек, у нас же все протещено! Ролбек уже пробували, сервіс не піднімається, В логах пише, що немає колонки з потрібним типом. В цей момент Ви розумієте повну картину: при релізі нової версії, на базу даних накатились скрипти flyway, які містили не backward compatible зміни, а саме “Change column type” Коли відбувається ролбек, то версія бази даних залишається новою Проти якої працює стай код, який очікував інший тип колонки На проекті є Database change strategy, але це автоматично не тестувалось Правильним рішенням було б додати нову колонку і тимчасово писати в обидві, а читати з нової а потім через 3 релізи видалить стару колонку Цього зроблено не було Залишається варіант підйому бази даних з дампу, Що потребує більшого даунтайму сервіса А у Вас скажімо підписаний SLA із замовником, якщо даунтайм перевищує 20 хв на місяць штраф $65k (цифри навмисно змінені, щоб не порушить NDA) (Prod deploy failed according to Out of memory issue Rollback is not possible because db has not backward compatible change Restore from dump is time consuming, huge penalty would apply ) issue: you deploy service in production and it fails to start with out of memory error you try to switch to previous version, but service does not start because flyway make some changes and previous version could not start with new database schema. Your customer has downtime. Your devOps add to µService 200 Gb of RAM and this does not help, somebody from devs read all rows from the table into memory (on dev env this works because table has less rows) Workaround: devOps deleted all cron jobs (after some other guess tries) and this help to investigate offline, and resolve issue Best practice: verify database compatibility with previous 3 versions, esspecially on monolith with huge volumes
  9. S Коли у Вас на проекті не вистачає devOps ресурсів, починається надлишкова синхронізація та змагання між командами За часту у Ваша таска не завжди найприорітетніша, тому Вам приходиться відкаласти її та переключитись на іншу задачу, що змушує Вас тримати 2 контекста Пул не закритих задач Вашої команди збільшується Навіть якщо задача може бути виконана Вами за 10 хв, але на проекті чітко відмежовані відповідальності, у Вас просто не має прав на це Team has meeting about if devOps has free time to deploy µService on env and into prod 5 members discuss what they will do if devOps has no time because he fixes/tune kafka for prod CTO says that money only of devs (features) not for devOps control dev & qa env: issue: you have task to create some feature flow, for this purposes you need to create 2 additional µServices, each have it''s own database. You have one devOps in the project, who in on vacation now. Nobody except him has rights to env setup workaround: you ask devOps on his vacation that you have some job for him, and you 3-rd in the line, because all other are also depend on him best practice: dev & qa env should be controlled by dev, qa & devOps. To create new service you should not spend a lot of time, it should be 2 minutes job.
  10. S Таким чином devOps стає ботелнеком У цій ситуації всі залишаються не задоволеними devOps - працює з рутиною і йому немає часу підняти голову на автоматизацію Developer - змінює контексти між тасками та не може вчасно віддати їх на тестування
  11. B Іноді проблема не тривіальна і з логів мало що зрозуміло Проте на мікросервісній архітектурі, де в одному бізнес флоу може бути задіяно десяток мікросервісів важко задебажить Підняти локально - тяжко і часо-затратно або навіть не підйомно по ресурсам bug reproduce or debug µService env: issue: you have 6 µServices and 1 monolith in one feature flow, each service has own database and some of them connected to message broker, all of them connected to service registry, cloud configuration & all request goes though api-gateway (zuul) workaround: you write docker compose and hope you have enough cpu & ram to handle best practice: you can pass cloud config url and your service though vpn will be as a part of µService network, all services can see you and send request, and your service can see them all as well
  12. S У вас баг в проді з первним µService, stack-trace вказує на строки коду, Але вони не відповідають поточній версії, а таг ніхто не зробив Цей сервіс вже 2 роки в проді, але його версія 1.0-SNAPSHOT І в репозиторію лише один бранч - master Щоб знайти відповідну ревізію Ви уточнююєте дату викатки в прод у devOps і шукаєте коміт до цієї дати Лише після цього ви знаходите вірну строку в якій відбулась помилка revision tag: issue: you have issue in some µService, stack-trace points to some line in the code and you can not find it because release tag was not created and this service 3 years in production with version 1.0-SNAPSHOT with only one branch - master workaround: with devOps we find when it was deployed and try to find appropriate commit to checkout that version best practice: µService that now is in production has /info url with release version that corresponds to release tag in VCS
  13. B У Вас є публічний API, який Ви також використовуєте самі internally Коли відбуваються зміни в цей API зазвичай Ви підправляєте внутнішній сервіс, що його використовує А про екстернал систему в основному памятали колишні співробітники, Але тестів на неї не написали. Нові QA тестують лише внутрішню взаємодію та апрувлять реліз. Після нього devOps в проді відловлюють помилки від екстернал клієнтів Service changed with one of downstream services But all other external clients failed, because api not supported old requests System/contract tests in pipeline
  14. S За часту devOps не привязується до якоїсь мови програмування. На попередньому проекті він міг займаться PHP or Python Для яких компіляція не потрібна та є свої нюанси по деплою на прод. В поточному проекті йому потрібно налаштувать деплоймент процес Для java, groovy or scala, для яких він має розшукати best practices. Це може бути тривалим процесом і не факт, що всі практики будуть задіяні devOps previously deployed only php or python code (no need to compile) Change paradigma when he switched to java/groovy/scala He does not know best practices how to do it and need spend more time to achieve results
  15. B Так виглядало розподілення коштів в HP, До імплементації Continuous Delivery На іновації припадало лише 5% загальних витрат Їхня мета була, збільшити відсоток іновацій в 10 разів Свій шлях вони розписали в книжці Large-Scale Agile Development
  16. 10 min S Для того щоб допомогти в Continuous Delivery for µServices Ми обрали найпопулярніший CI/CD tool - Jenkins Для того щоб розділити sensitive information від CI/CD best practice Вся реалізація пішла в pipeline shared library Вся sensitive інформація залишилсь в .yml файлі що підвантажується Jenkinsfile-ом І вона знаходиться в Вашому приватному репозиторії
  17. B Багато best practices, що ми реалізували можна знайти в книжці Continuous Delivery written by Jez Humble & David Farley Також є непоганий ресурс від компанії thoughtworks, Де і працювали ці хлопці, коли писали цю книгу, Можете перейти по QR коду, якщо комусь цікаві ці ресурси Хто не встиг відсканувати, лінки ми відобразимо ще на останньому слайді
  18. S Як запропонував Edwards Deming, Першочергово потрібно вдосконалити процес та вбудовувати якість в продукт
  19. B Чому Continuous Delivery Зробити релізи безболісними та без ризиковими Пришвидшити випуск нових фіч Підвищити якість та стабільність продукту Зменшити витрати на розробку Підвищити задоволеність як клієнтів так і співробітників За допомогою швидкого фідбеку
  20. S Ключові принципи Continuous Delivery Вбудовувати якість в продукт Працювати маленькими батчами Все що можна автоматизувати - автоматизуйте Невтомно вдосконалювати процес Кожен має бути відповідальним
  21. B Deployment Pipeline Practices Білдіть один раз Деплойте однаково на всі енви Робіть smoke tests Тримайте енви схожими При збоях починайте пайплайн заново
  22. S Low Risk Releases are Incremental Використовуйте фіча флаги, ви зможете швидко відкатиться лише змінивши конфігурацію Blue-green deployments Canary releases Dark Launching - це коли Ви викатили бекенд фічу, яку не бачить ui, потім окремим релізом оновлюєте ui і фіча вже доступна, якщо щось йде не так, можна відкотить ui Production Immune System (про неї на окремому слайді)
  23. B Інфраструктура має бути стабільною Якщо Ваш сервер викинуть у вікно, Скільки часу Вам знадобиться щоб відновити його? Це запитання ставить Мартін Фаулер у статті Phoenix Server свого блогу
  24. We also have all things in vcs We have not implement monitoring yet Automatic self corrects to desired state done by mesos & kubernetes
  25. S/B TODO 1 minutes
  26. S Так виглядає реакція devOps на prod issue після того як всі практики були реалізовані. Бізнес prod issue може взагалі не помітити B ! [емоційно] Це відчуття стабільності After all practices implemented on your CI/CD pipeline You are not afraid anymore
  27. What about security?
  28. It is hard to make fluent CI/CD in entire organization in one shot Probably it would be better to start with Innovators & Early adopters And make POC with them
  29. Let’s make adoption easier
  30. На випадок якщо Вам не сподобалась презентація, Ми вставили ось цього котика, це трішки згладити ситуацію Please ask questions at speaker zone