Strider CD 
Deploy Contínuo com Javascript 
Renato Vasconcellos / Sebastian Ferrari 
renato@taller.net.br / sebas@taller.net.br
O que vamos ver 
nesta apresentação?
Assuntos: 
● O que é Deploy 
Contínuo 
● Conceitos básicos 
● Ferramentas 
● Otimização do Processo 
● O que é Strider CD? 
● Conceitos básicos 
● Exemplos práticos
O que é Deploy?
Colocação de 
equipamentos e 
tropas no campo de 
batalha. 
webopedia.com
Instalar, testar e 
implementar uma 
aplicação ou sistema 
de computador. 
webopedia.com
Contínuous Integration? 
Contínuous Delivery? 
Contínuous 
Deployment?
Continuous Integration
Integrar seu código 
constantemente com 
dos outros do time.
Continuous Delivery
Disponibilizar seu código 
constantemente para 
revisão do time ou do 
cliente.
Continuous 
Deployment
Entregar seu código 
constantemente direto para 
o cliente.
Deploy Contínuo 
em 5 passos 
http://lb.cm/dploy5stps 
Eric Ries - O'Reilly Radar
CI Server 
(Servidor de Integração contínua)
Source control 
commit check 
(Checagem de commits)
Simple 
deployment 
script 
(Script de deploy simples)
Real-time alerting 
(Alerta em tempo real)
Root cause analysis 
(five whys) 
(Análise da raíz do problema - 5 porquês)
Ferramentas
Scripts
Git
Testes
CI/CD Server
Por onde começar? 
Image by Jalel
Workflow de 
Desenvolvimento 
(Ambientes)
Ambientes de 
Desevolvimento/Integração
Ambientes de 
QA/UAT
Ambientes de 
Staging/Produção
Recapitulando... 
● Local/Dev 
● Integração 
● Test/QA 
● Homolog/UAT 
● Staging 
● Production 
http://dltj.org/article/software-development-practice/
Git Workflow 
https://www.atlassian.com/git/workflows
Centralized 
workflow
Feature branch 
workflow
Git flow 
workflow
Forking 
workflow
A successful 
git branch model? 
Vincent Driessen 
http://nvie.com/posts/a-successful-git-branching-model
Git flow 
Workflow
Git flow 
Workflow 
Git flow 
https://github.com/nvie/gitflow 
Git flow cheatsheet 
http://danielkummer.github.io/git-flow-cheatsheet/
.git/Hooks
Client Side
Post 
Checkout 
● Testes automatizados 
● Branch quebrado?
Pre 
Commit 
● Análise estática (Lint) 
● Testes automatizados
Server Side
Pre 
Receive 
● Análise estática (Lint) 
● Testes automatizados 
● Proteção de branches
Post 
Receive 
● Notificações 
● Testes de carga
Testes
Testes automatizados 
dão maior segurança e 
garantia de evolução 
contínua.
Joseph Yodel 
http://www.slideshare.net/yodamann/pragmatic-not-dogmatic-tdd-agile2012
Joseph Yodel 
http://www.slideshare.net/yodamann/pragmatic-not-dogmatic-tdd-agile2012
Joseph Yodel 
http://www.slideshare.net/yodamann/pragmatic-not-dogmatic-tdd-agile2012
Top features
Simples e fácil
“Everything should be 
made as simple as 
possible, but not 
simpler” 
Albert Einstein
Concorrente 
s 
● Jenkins 
● CircleCI 
● Codeship 
● Beanstalk 
● Travis CI 
● Go
Sistema de plugins
Runners 
Roda os jobs. 
● Simple 
● Docker 
● Remote 
● ...
Providers 
Pega o código fonte. 
● Github 
● BitBucket 
● Manual Git (ou seja, 
outros…) 
● ...
Jobs 
Executa tarefas em fases. 
● Environment 
● Prepare 
● Test 
● Deploy 
● Cleanup
Worker vs. WebApp
Worker 
Registro dos jobs para 
serem executados.
WebApp 
Implementação para 
modificação do UI. 
Ex.: Página de config
Basic 
Go nuts!! o/ 
Faz o que você quiser, 
mas esquece dos 
helpers.
Controle de 
jobs distribuídos
Drone Queen
Queen 
● Servidor 
● Load 
ballancing 
● Queue 
● Cria os drones
Drone 
● Velocidade 
● Capacidade 
● Executa os 
Jobs
Sistema de 
usuários
● Admin ou leitura 
● Repositórios 
públicos 
● Sistema de convites 
● Colaborador do 
projeto
Deploy on Green
Open Source 
(não é livre, ainda...)
Dashboard
Build
Configurações
Valeu !!! 
@revagomes 
renato@taller.net.br 
github.com/revagomes 
about.me/revagomes 
@sebas5384 
sebas@taller.net.br 
github.com/sebas538 
4

Strider CD - Deploy Contínuo com JavaScript