77
Copyright 2015, Alexandre Freire Kawakami and Industrial Logic, Inc. All Rights Reserved. Deploy Contínuo de Software Legado: Loucura ou Genialidade?

Deploy Contínuo de Software Legado: Loucura ou Genialidade?

Embed Size (px)

Citation preview

Copyright 2015, Alexandre Freire Kawakami and Industrial Logic, Inc. All Rights Reserved.

Deploy Contínuo de Software Legado:

Loucura ou Genialidade?

#1e5d91

[email protected] @freire_da_silva

• Diretor de Produtos @IndustrialLogic

• Ágil desde 2001

• Founder AgilCoop e AgilBits

• Tese de Mestrado: “Reflexões sobre o Ensino de Metodologias Ágeis na Academia, Indústria e Governo”

• Décadas de experiência e sucesso com empresas renomadas mundialmente, praticando deploy contínuo à 14 anos!

• Gosto de construir casas e surfar.

Software Legado?

#1e5d91

A Estrada para o Deploy Contínuo

#1e5d91

A Estrada para o Deploy Contínuo

Cultura DevOps

#1e5d91

TestesAutomatizados

A Estrada para o Deploy Contínuo

Cultura DevOps

#1e5d91

IntegraçãoContínua (CI)

TestesAutomatizados

A Estrada para o Deploy Contínuo

Cultura DevOps

#1e5d91

Entrega Contínua (CD)

IntegraçãoContínua (CI)

TestesAutomatizados

A Estrada para o Deploy Contínuo

Cultura DevOps

#1e5d91Deploy Contínuo

(CD)

Entrega Contínua (CD)

IntegraçãoContínua (CI)

TestesAutomatizados

A Estrada para o Deploy Contínuo

Cultura DevOps

#1e5d91

Cultura DevOps

#1e5d91

Cultura DevOps

DEV

#1e5d91

Cultura DevOps

DEV

OPS

#1e5d91

Cultura DevOps

DEV QA

OPS

#1e5d91

Cultura DevOps

DEV QA

OPS

💰

#1e5d91

Testes Automatizados

Integrate and build the system many times a day,every time a task is completed.

— Kent Beck, Extreme Programming Explained

Integração Contínua (CI)

#1e5d91

É no Master!

#1e5d91

Entrega Contínua (Continuous Delivery)

#1e5d91

Entrega Contínua (Continuous Delivery)

#1e5d91

Entrega Contínua (Continuous Delivery)

#1e5d91

Entrega Contínua (Continuous Delivery)

#1e5d91

Deploy Contínuo (Continuous Deployment)

#1e5d91

Qual é a Diferença?

#1e5d91

Qual é a Diferença?

#1e5d91

Deploy Contínuo (Continuous Deployment)

#1e5d91

Deploy Contínuo (Continuous Deployment)

#1e5d91

Deploy Contínuo (Continuous Deployment)

#1e5d91

Deploy Contínuo (Continuous Deployment)

#1e5d91

Deploy Contínuo (Continuous Deployment)

#1e5d91

#FAIL

#1e5d91

ZERO Downtime

Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do

deploy no Green, e vice-versa.

#1e5d91

ZERO Downtime

Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do

deploy no Green, e vice-versa.

Deploy

#1e5d91

ZERO Downtime

Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do

deploy no Green, e vice-versa.

#1e5d91

ZERO Downtime

Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do

deploy no Green, e vice-versa.

Switch

#1e5d91

ZERO Downtime

Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do

deploy no Green, e vice-versa.

Só um desses pré-

requisitos é necessário!

#1e5d91

ZERO Downtime

Para habilitar Zero Downtime use um Proxy Reverso, trocando o ambiente ativo de Green para Blue depois do

deploy no Green, e vice-versa.

Registro de Domínios na Locaweb

Registro de Domínios na Locaweb

LibFichao_2.asp

________________________________________________________~6K loc

MS IIS

Registro de Domínios na Locaweb

LibFichao_2.asp

________________________________________________________~6K loc

MS IIS

Registro de Domínios na Locaweb

DB MS Access

LibFichao_2.asp

________________________________________________________~6K loc

MS IIS

Registro de Domínios na Locaweb

DB MS Access

LibFichao_2.asp

________________________________________________________~6K loc

Verising.com <SOAP>

MS IIS

Registro de Domínios na Locaweb

DB MS Access

LibFichao_2.asp

________________________________________________________~6K loc

Verising.com <SOAP>

.br <.exe>registro.br

MS IIS

Registro de Domínios na Locaweb

DB MS Access

LibFichao_2.asp

________________________________________________________~6K loc

Verising.com <SOAP>

.br <.exe>registro.br

.org <http>

eNon

MS IIS

Registro de Domínios na Locaweb

DB MS Access

LibFichao_2.asp

________________________________________________________~6K loc

Verising.com <SOAP>

.br <.exe>registro.br

.org <http>

eNon

MS IIS

Registro de Domínios na Locaweb

DB MS Access

LibFichao_2.asp

________________________________________________________~6K loc

Verising.com <SOAP>

.br <.exe>registro.br

.org <http>

eNon

#1e5d91

Precisamos Re-escrever!

#1e5d91

Precisamos Re-escrever!• mas em Ruby

#1e5d91

Precisamos Re-escrever!• mas em Ruby

• usando Ruby on Rails

#1e5d91

Precisamos Re-escrever!• mas em Ruby

• usando Ruby on Rails

• com PostgreSQL

#1e5d91

Precisamos Re-escrever!• mas em Ruby

• usando Ruby on Rails

• com PostgreSQL

• e a Verisign nos avisou que está aposentando o sistema SOAP, e em 6 meses só a nova API REST vai funcionar!

Como Sair do Legado?

Como Sair do Legado?

#1e5d91

#1e5d91🚫

#1e5d91

#1e5d91

Qual a primeira mudança?

#1e5d91

#1e5d91🚫

#1e5d91

O que esse sistema faz?

#1e5d91

O que esse sistema faz?• Reserva

• Registra

• Renova

• Transfere

• Remove

• Vezes 3, para cada Registar externo

• mantem uma interface interna comum

#1e5d91

MS IISDB MS Access

LibFichao_2.asp

________________________________________________________~6K loc

Verising.com <SOAP>

.br <.exe>registro.br

.org <http>

eNon

MS IISDB MS Access

LibFichao_2.asp

________________________________________________________~6K loc

Verising.com <SOAP>

.br <.exe>registro.br

.org <http>

eNon

#1e5d91

Camada Anti-Corrupção

#1e5d91

MS IIS

LibFichao_2.asp

________________________________________________________~6K loc

Camada Anti-Corrupção

DB MS Access

#1e5d91

MS IIS

LibFichao_2.asp

________________________________________________________~6K loc

registro.asp________________

Camada Anti-Corrupção

DB MS Access

#1e5d91

Proxy

registro.asp________________

#1e5d91

Proxy

registro.asp________________

if(Application(“verisign.delete.migrated”)

#1e5d91

Proxy

registro.asp________________

if(Application(“verisign.delete.migrated”)

REST

Rubyon

Rails

#1e5d91

Proxy

registro.asp________________

if(Application(“verisign.delete.migrated”)

REST

Rubyon

Rails

DB PostgreSQL

#1e5d91

Proxy

registro.asp________________

if(Application(“verisign.delete.migrated”)

REST

Rubyon

Rails

Verising

REST

DB PostgreSQL

Loucura ou Genialidade?

#1e5d91ITIL®

Consegui mudar a Cultura?

Consegui mudar a Cultura?

X9

#1e5d91

Nem loucura nem genialidade: Deploy

Contínuo é Mais Simples do que você imagina. E você

pode fazê-lo sem ser perfeito.