Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ágiles 2016 - Using open source tools to suppor...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Stefan Teixeira
October 07, 2016
Programming
59
0
Share
Ágiles 2016 - Using open source tools to support Continuous Delivery
This talk was presented at Ágiles 2016
http://agiles2016.agiles.org/
Stefan Teixeira
October 07, 2016
More Decks by Stefan Teixeira
See All by Stefan Teixeira
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
stefanteixeira
0
86
Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
stefanteixeira
0
120
Latinoware 2016 - Continuous Delivery com ferramentas open source
stefanteixeira
0
70
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous Delivery
stefanteixeira
0
50
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
stefanteixeira
0
130
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-source
stefanteixeira
0
88
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
stefanteixeira
0
79
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
stefanteixeira
0
64
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
stefanteixeira
0
74
Other Decks in Programming
See All in Programming
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
2.8k
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
200
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
530
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
390
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
190
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
170
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
初めてのRubyKaigiはこう見えた
jellyfish700
0
400
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.5k
Moments When Things Go Wrong
aurimas
3
140
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.2k
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
320
Featured
See All Featured
Building AI with AI
inesmontani
PRO
1
1k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
570
Into the Great Unknown - MozCon
thekraken
41
2.5k
Typedesign – Prime Four
hannesfritz
42
3.1k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
220
The Language of Interfaces
destraynor
162
26k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
840
How to train your dragon (web standard)
notwaldorf
97
6.7k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
4 Signs Your Business is Dying
shpigford
187
22k
Documentation Writing (for coders)
carmenintech
77
5.4k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
420
Transcript
Using open source tools to support Continuous Delivery Stefan 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
None
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
None
None
None
None
None
None
None
None
None
None
None
docker-tag
docker-tag docker-push
None
None
None
Mutators example (PIT)
None
None
None
None
X
App 1 App 2 App 2 Simulator X
None
None
None
None
X
App 1 App 2 Simulator App 2 X
None
None
None
None
None
SSH
SSH
App 1 SSH
None
None
App 1 App 2 App 3 App 4
None
None
None
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
None
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/
Thanks! Stefan Teixeira @stefan_teixeira
[email protected]
stefanteixeira.com.br stefanteixeira.com