Strider CD - Deploy Contínuo com JavaScript

Preview:

DESCRIPTION

Esta palestra pretende apresentar boas práticas para Continuous Deployment e como o Strider CD, um servidor de Continuous Integration e Continuous Deployment em NodeJS, nos ajuda muito neste processo. Serão abordados tópicos como Integração contínua, Deploy contínuo, Git, Workflow de trabalho, TDD/BDD e onde o Strider facilita a implementação destas práticas para Entrega Contínua

Citation preview

Strider CDDeploy 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/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

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...

http://dltj.org/article/software-development-

practice/

● Local/Dev

● Integração

● Test/QA

● Homolog/UAT

● Staging

● Production

Git Workflow

https://www.atlassian.com/git/workflows

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

renato@taller.net.br

github.com/revagomes

about.me/revagomes

@sebas5384

sebas@taller.net.br

github.com/sebas538

4

Recommended