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
Stefan Teixeira
October 07, 2016
Programming
0
50
Á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
Tweet
Share
More Decks by Stefan Teixeira
See All by Stefan Teixeira
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
stefanteixeira
0
80
Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
stefanteixeira
0
110
Latinoware 2016 - Continuous Delivery com ferramentas open source
stefanteixeira
0
63
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous Delivery
stefanteixeira
0
42
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
stefanteixeira
0
120
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-source
stefanteixeira
0
81
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
stefanteixeira
0
70
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
stefanteixeira
0
59
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
stefanteixeira
0
66
Other Decks in Programming
See All in Programming
SODA - FACT BOOK
sodainc
1
1.1k
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
240
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
100
「ElixirでIoT!!」のこれまでとこれから
takasehideki
0
370
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
250
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
3
840
Is Xcode slowly dying out in 2025?
uetyo
1
180
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
250
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
610
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
210
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
420
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
150
Featured
See All Featured
Docker and Python
trallard
44
3.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Agile that works and the tools we love
rasmusluckow
329
21k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
For a Future-Friendly Web
brad_frost
179
9.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
It's Worth the Effort
3n
184
28k
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