Ágiles 2016 - using open source tools to support continuous delivery
TRANSCRIPT
Using open source tools to support
Continuous DeliveryStefan Teixeira
@stefan_teixeira [email protected] stefanteixeira.com.br
stefanteixeira.com
• QA Automation Engineer @ Toptal • Tech blogs: stefanteixeira.com.br (pt-br) /
stefanteixeira.com (en)
Contact: • E-mail: [email protected] • Twitter: twitter.com/stefan_teixeira • LinkedIn: linkedin.com/in/stefanteixeira • GitHub: github.com/stefanteixeira • SlideShare: slideshare.net/stefanteixeira
About
Context
Context
• Java application (Spring Boot)
Context
• Java application (Spring Boot)
• Server-side only
Context
• Java application (Spring Boot)
• Server-side only
• Integrations with other internal applications
Modeling Pipelines
GoCD
• Created by ThoughtWorks
https://www.go.cd/ | https://github.com/gocd/gocd
GoCD
• Created by ThoughtWorks
• Open-source (since February 2014)
https://www.go.cd/ | https://github.com/gocd/gocd
GoCD
• Created by ThoughtWorks
• Open-source (since February 2014)
• Focused on Continuous Delivery
https://www.go.cd/ | https://github.com/gocd/gocd
The power of the right abstractions
Pipelines are first-class citizens
But why not use Jenkins?
Some Jenkins issues
• Plugin hell
Some Jenkins issues
• Plugin hell
• Lack of more abstraction levels
Some Jenkins issues
• Plugin hell
• Lack of more abstraction levels
• CD support only via plugins
https://www.thoughtworks.com/pt/radar/tools/jenkins-as-a-deployment-pipeline
Deployment Pipeline
Deployment Pipeline
Manual steps
docker-tag
docker-tag
docker-push
Mutators example (PIT)
X
App 1
App 2
App 2 Simulator
X
X
App 1
App 2
Simulator App 2X
SSH
SSH
App 1
SSH
App 1
App 2
App 3
App 4
SSH
SSH
SSH
SSH
SSH
SSH
https://github.com/cyberdyne-corp/skynet/tree/poc-bluegreen-nginx
https://github.com/cyberdyne-corp/skynet/tree/poc-bluegreen
Other tools
http://locust.io/
https://github.com/dashing-io/dashing
References• Blue-Green deployment:
• https://technologyconversations.com/2015/07/02/scaling-to-infinity-with-docker-swarm-docker-compose-and-consul-part-34-blue-green-deployment-automation-and-self-healing-procedure/
• https://github.com/cyberdyne-corp/skynet/tree/poc-bluegreen-nginx • https://github.com/cyberdyne-corp/skynet/tree/poc-bluegreen
• Tools:
• https://www.packer.io/ • https://www.go.cd/ • https://www.terraform.io/
• https://www.consul.io/ • https://www.ansible.com/
• http://gliderlabs.com/registrator/latest/ • http://pitest.org/ • http://rest-assured.io/
• http://sparkjava.com/ • http://locust.io/