Date post: | 02-Jul-2015 |
Category: |
Technology |
Upload: | taller |
View: | 507 times |
Download: | 1 times |
Strider CDDeploy Contínuo com Javascript
Renato Vasconcellos / Sebastian Ferrari
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/dploy5stpsEric 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
Workflow de
Desenvolvimento
(Ambientes)
Ambientes de
Desevolvimento/Integração
Ambientes de
QA/UAT
Ambientes de
Staging/Produção
Recapitulando...
http://dltj.org/article/software-development-
practice/
● Local/Dev
● Integração
● Test/QA
● Homolog/UAT
● Staging
● Production
Centralized
workflow
Feature branch
workflow
Git flow
workflow
Forking
workflow
A successful
git branch model?
Vincent Driessenhttp://nvie.com/posts/a-successful-git-branching-model
Git flow
Workflow
Git flow
Workflow
Git flowhttps://github.com/nvie/gitflow
Git flow cheatsheethttp://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 Yodelhttp://www.slideshare.net/yodamann/pragmatic-not-dogmatic-tdd-agile2012
Joseph Yodelhttp://www.slideshare.net/yodamann/pragmatic-not-dogmatic-tdd-agile2012
Joseph Yodelhttp://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
RunnersRoda os jobs.
● Simple
● Docker
● Remote
● ...
ProvidersPega o código fonte.
● Github
● BitBucket
● Manual Git (ou seja,
outros…)
● ...
JobsExecuta 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
github.com/revagomes
about.me/revagomes
@sebas5384
github.com/sebas538
4