SlideShare una empresa de Scribd logo
1 de 19
Green e Blue label
Switching the Labels

/iuri.andreazza
@iuriandreazza
?
E
U
Q

wisky
certo?
?
E
U
Q

wisky
certo?

NO
O que seria isto?

Em Produção

Em um modelo agil de desenvolvimento temos:
plan > code > build > test > release > deploy > operate
Quando se homologa um novo release:
o Pacote é validado!
E o ambiente?
GMUD na cara dura não?
Lembrar de tudo que foi feito? (temos que sempre manter
o histórico não?)
Replicar em PRD, ok, mas sempre temos o erro humano
Meio burro isso não?
As aplicações geralmente são parametrizadas, porque não
o ambiente?
Porque não trabalhar com switchs de ambientes?

Em Homologação
O que seria isto?
Se alinhado corretamente o que é executado:
Troca de ambientes
Switch de DNS na entrega de novos ambientes.
Switch de Properties (se a aplicação depende de
algo hardcoded).
Build do Jenkings pode controlar o deploy de
Ambiente
Build do Jenkings pode determinar se algo entra
no ar ou não
Automação ao nivel extremo, ou seja, build OK,
deploy
Controle de máquinas, servers e configurações
no nivel da equipe do produto.
Sem dependencia humana na demanda de
O que fazer
Processo de homologação sempre
começa após ultimo SWITCH
Deploy do pacote implica em
Homologação do ambiente
Maior agilidade na troca de tecnologias
e ajustes no ambiente final
O que fazer com o banco?
Como o produto deve ver isto?
Como aplicar
Configurações devem ser padronizadas
O switch de labels não deve ocorrer como
troca de cuecas!
Temos um tempo de cooldown de ambiente!
Os labels podem ser aplicados a niveis
diferentes das camadas (webcache, apache,
appserver ...)
Padronização em outras camadas (firewall,
proxy, acessos ...)
Como utilizar
Com cuidado, ficar virando ambientes
seguidamente pode ser perigoso.
Ajustes imediados ou emergenciais podem
ser relativamente problemáticos em caso de
descuido
O “chaveamento” de ambientes deve ser
automatizado.
Remoção da ideia de INFRA no produto,
todos os DEVs são responsáveis pelo
Como esperamos
Trocas ageis de ambiente
Evolução confiável e agil de tecnologias
Produto pode iniciar processo de deploy
continuo
Equipe de produto que assume
responsabilidade pelo ambiente com seus
DEV-OPS
Minimizar gargalo no release
Maximizar features liberados
Como o tester ve!
Ambiente que vive trocando para validar
Melhor qualidade, pois quando ocorre a
homologação de pacote é feito em cima
do ambiente final.
Menos stress para ao final executar a
troca.
Um pouco complexo.
Como fica a base de dados????
Como o produto ve!
RELEASE!!!
MAIS RELEASES!!!
MUITOS FEATURES LIBERADOS!
MUITA VELOCIDADE! (VUSHHHHHH)
maior agilidade na evolução
redução de gargalos conhecidos
(problema) possivelmente mais
rapidamente entre bugs em produção.
Como a infra ve!
Interessante, mas complicado ...
Como assim trocar servidores?
Não to entendendo direito!
Porque ficar virando ambientes??
E a base de dados?
Não é bem assim subir uma maquina nova.
E o FS como fica?
Ao menos temos alguns processos!
DEV-OPS mexer em ambientes!?
Algo mais!
Cara, cade o BANCO?
Switch de Schemas ou mesmo
Instancias de Banco
Area de espaço sempre dimensionada
Scripts de Setup de Aplicações
Congelar DB para homologação.
Espelhos meus amigos, ESPELHOS!
Como estamos!
Atualmente:

Fase 1: <== Estamos nessa fase!
Servidores separados
Deploy direto em um stack
Configuração do stack versionado

Fase 2:
Desmanchar Homologação
Subir servers ao nivel de PRD
Padronizar Processos (Scripts, mais Scripts e
Processos)

Fase 3:
Padronizar Labels para controle via:
Puppet/Chef/Ventriloquist
Estrutura
Usando Labels Por camada

Usando Labels Por Stack (Pense Fase 3)

BL

BL

Cache

Cache

Cache

Apache Apache
Sess.
Man

App Srv App Srv

Banco 1 Banco 2

Cache

Apache Apache
Sess.
Man

Sess.
Man

App Srv App Srv

Banco 1 Banco 2

Sess.
Man
Estrutura Sob Demanda (Utópica)
Usando Labels Por camada

Cache 1 Cache 1 Cache 2

{

BL

Cache
N

Apache Apache Apache Apache
1
2
2
N

OS Mirror
Máquinas Novas - Automated

App Srv App Srv App Srv App Srv
1
2
N
1

Applications SWITCH

Banco 1 Banco 2

Banco
N

Será Removido
Novo Node
Current Node
Como?
Switch de Aplicações também é possivel
#Criar aplicação A
sh-3.2# ./configure --prefix=/path/aplicacao_node_A
sh-3.2# make; make install;
#Criar aplicação B
sh-3.2# ./configure --prefix=/path/aplicacao_node_B
sh-3.2# make; make install;

#### Activate A
sh-3.2# ln -sfn /path/aplicacao_node_A /path/aplicacao_final
sh-3.2# /path/aplicacao_final/start_script
#### Activate B (Swith Modes)
sh-3.2# /path/aplicacao_final/stop_script
sh-3.2# ln -sfn /path/aplicacao_node_B /path/aplicacao_final
sh-3.2# /path/aplicacao_final/start_script
Perguntas???
Green e Blue label
Switching the Labels

/iuri.andreazza
@iuriandreazza

Más contenido relacionado

La actualidad más candente

Gestão automática de configuração usando puppet
Gestão automática de configuração usando puppetGestão automática de configuração usando puppet
Gestão automática de configuração usando puppetDaniel Sobral
 
Cultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e develCultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e develJose Augusto Carvalho
 
Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Jose Augusto Carvalho
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao TerraformLeandro Silva
 
Load Testing com VisualStudio + Azure
Load Testing com VisualStudio + AzureLoad Testing com VisualStudio + Azure
Load Testing com VisualStudio + AzureBruno Nunes Trassante
 
SOFTWARE FREEDOM DAY 2014 - GERÊNCIA DE CONFIGURAÇÃO COM PUPPET
SOFTWARE FREEDOM DAY 2014 - GERÊNCIA DE CONFIGURAÇÃO COM PUPPETSOFTWARE FREEDOM DAY 2014 - GERÊNCIA DE CONFIGURAÇÃO COM PUPPET
SOFTWARE FREEDOM DAY 2014 - GERÊNCIA DE CONFIGURAÇÃO COM PUPPETAdriel Viana
 
Zerto: a próxima geração em soluções de disaster recovery
Zerto: a próxima geração em soluções de disaster recoveryZerto: a próxima geração em soluções de disaster recovery
Zerto: a próxima geração em soluções de disaster recoveryBravo Tecnologia
 
Infraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e McollectiveInfraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e McollectiveJose Augusto Carvalho
 
Monitoração avançada com Zabbix 2
Monitoração avançada com Zabbix 2Monitoração avançada com Zabbix 2
Monitoração avançada com Zabbix 2Jose Augusto Carvalho
 
Salada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerSalada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerAécio Pires
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsLeonardo Comelli
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Igor Abade
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014Leo Lorieri
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariTaller Negócio Digitais
 

La actualidad más candente (20)

Gestão automática de configuração usando puppet
Gestão automática de configuração usando puppetGestão automática de configuração usando puppet
Gestão automática de configuração usando puppet
 
Cultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e develCultura DevOps - Integração entre infra e devel
Cultura DevOps - Integração entre infra e devel
 
Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)Oficina de infraestrutura como código (apresentando o Puppet)
Oficina de infraestrutura como código (apresentando o Puppet)
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
Road to serverless
Road to serverlessRoad to serverless
Road to serverless
 
Load Testing com VisualStudio + Azure
Load Testing com VisualStudio + AzureLoad Testing com VisualStudio + Azure
Load Testing com VisualStudio + Azure
 
SOFTWARE FREEDOM DAY 2014 - GERÊNCIA DE CONFIGURAÇÃO COM PUPPET
SOFTWARE FREEDOM DAY 2014 - GERÊNCIA DE CONFIGURAÇÃO COM PUPPETSOFTWARE FREEDOM DAY 2014 - GERÊNCIA DE CONFIGURAÇÃO COM PUPPET
SOFTWARE FREEDOM DAY 2014 - GERÊNCIA DE CONFIGURAÇÃO COM PUPPET
 
Zerto: a próxima geração em soluções de disaster recovery
Zerto: a próxima geração em soluções de disaster recoveryZerto: a próxima geração em soluções de disaster recovery
Zerto: a próxima geração em soluções de disaster recovery
 
Dev Ops at Paguemenos
Dev Ops at PaguemenosDev Ops at Paguemenos
Dev Ops at Paguemenos
 
Orquestração com Mcollective
Orquestração com McollectiveOrquestração com Mcollective
Orquestração com Mcollective
 
Trabalhando com Módulos no Puppet
Trabalhando com Módulos no PuppetTrabalhando com Módulos no Puppet
Trabalhando com Módulos no Puppet
 
Infraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e McollectiveInfraestrutura como código com Puppet e Mcollective
Infraestrutura como código com Puppet e Mcollective
 
Monitoração avançada com Zabbix 2
Monitoração avançada com Zabbix 2Monitoração avançada com Zabbix 2
Monitoração avançada com Zabbix 2
 
Salada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e DockerSalada mista com: Zabbix, Puppet e Docker
Salada mista com: Zabbix, Puppet e Docker
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOps
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
 

Destacado

Open Graph - Pense Imóveis
Open Graph - Pense ImóveisOpen Graph - Pense Imóveis
Open Graph - Pense ImóveisIuri Andreazza
 
Proyectode vida mejorado al 100
Proyectode vida mejorado al 100Proyectode vida mejorado al 100
Proyectode vida mejorado al 100BryanZ10
 
Desconstrução de Campanha - Johnnie Walker, The Gentleman's Wager
Desconstrução de Campanha - Johnnie Walker, The Gentleman's WagerDesconstrução de Campanha - Johnnie Walker, The Gentleman's Wager
Desconstrução de Campanha - Johnnie Walker, The Gentleman's WagerJimy Brantes
 
Advertising Media Planning Course Georges Najm USEK School of Business
Advertising Media Planning Course Georges Najm USEK School of BusinessAdvertising Media Planning Course Georges Najm USEK School of Business
Advertising Media Planning Course Georges Najm USEK School of BusinessGeorges Najm
 

Destacado (7)

Keep Laughing
Keep LaughingKeep Laughing
Keep Laughing
 
Label Endomarketing
Label EndomarketingLabel Endomarketing
Label Endomarketing
 
Open Graph - Pense Imóveis
Open Graph - Pense ImóveisOpen Graph - Pense Imóveis
Open Graph - Pense Imóveis
 
Proyectode vida mejorado al 100
Proyectode vida mejorado al 100Proyectode vida mejorado al 100
Proyectode vida mejorado al 100
 
Desconstrução de Campanha - Johnnie Walker, The Gentleman's Wager
Desconstrução de Campanha - Johnnie Walker, The Gentleman's WagerDesconstrução de Campanha - Johnnie Walker, The Gentleman's Wager
Desconstrução de Campanha - Johnnie Walker, The Gentleman's Wager
 
Gofun Eventos
Gofun EventosGofun Eventos
Gofun Eventos
 
Advertising Media Planning Course Georges Najm USEK School of Business
Advertising Media Planning Course Georges Najm USEK School of BusinessAdvertising Media Planning Course Georges Najm USEK School of Business
Advertising Media Planning Course Georges Najm USEK School of Business
 

Similar a Hotspot Green and Blue Label - Switching the labels!

Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenterPaulino Michelazzo
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...tdc-globalcode
 
QConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaQConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaDiego Pacheco
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Felipe Klerk Signorini
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?tdc-globalcode
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaLeonardo Kobus
 
Primeira Aula do Curso de Hardening
Primeira Aula do Curso de HardeningPrimeira Aula do Curso de Hardening
Primeira Aula do Curso de HardeningDell Technologies
 
Alta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxAlta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxMario Bittencourt
 
DevOps - Estado da Arte
DevOps - Estado da ArteDevOps - Estado da Arte
DevOps - Estado da Arteilegra
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Diego Pacheco
 
Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Gustavo Pereira
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoArtur Felipe Sousa
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de ValorSamanta Cicilia
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous DeliverySamanta Cicilia
 
Apresentação de produtos - SaveinCloud .pptx.pdf
Apresentação de produtos - SaveinCloud .pptx.pdfApresentação de produtos - SaveinCloud .pptx.pdf
Apresentação de produtos - SaveinCloud .pptx.pdfAlexSantos8560
 

Similar a Hotspot Green and Blue Label - Switching the labels! (20)

Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenter
 
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
 
QConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaQConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestrutura
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Testes - Para que?
Testes - Para que?Testes - Para que?
Testes - Para que?
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuida
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Primeira Aula do Curso de Hardening
Primeira Aula do Curso de HardeningPrimeira Aula do Curso de Hardening
Primeira Aula do Curso de Hardening
 
Alta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxAlta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/Linux
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
DevOps - Estado da Arte
DevOps - Estado da ArteDevOps - Estado da Arte
DevOps - Estado da Arte
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0
 
Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produção
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
Apresentação de produtos - SaveinCloud .pptx.pdf
Apresentação de produtos - SaveinCloud .pptx.pdfApresentação de produtos - SaveinCloud .pptx.pdf
Apresentação de produtos - SaveinCloud .pptx.pdf
 

Más de Iuri Andreazza

Gitflow - Release Process Pense
Gitflow - Release Process PenseGitflow - Release Process Pense
Gitflow - Release Process PenseIuri Andreazza
 
Apresentacao tcc - Redes Mesh Cognitiva
Apresentacao tcc - Redes Mesh CognitivaApresentacao tcc - Redes Mesh Cognitiva
Apresentacao tcc - Redes Mesh CognitivaIuri Andreazza
 
Apresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do DesignApresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do DesignIuri Andreazza
 
Apresentacao Workshop da Fabrica do Design
Apresentacao Workshop da Fabrica do DesignApresentacao Workshop da Fabrica do Design
Apresentacao Workshop da Fabrica do DesignIuri Andreazza
 

Más de Iuri Andreazza (7)

Internet sem drama
Internet sem dramaInternet sem drama
Internet sem drama
 
Gitflow - Release Process Pense
Gitflow - Release Process PenseGitflow - Release Process Pense
Gitflow - Release Process Pense
 
Apresentacao tcc - Redes Mesh Cognitiva
Apresentacao tcc - Redes Mesh CognitivaApresentacao tcc - Redes Mesh Cognitiva
Apresentacao tcc - Redes Mesh Cognitiva
 
Private DNS
Private DNSPrivate DNS
Private DNS
 
Ninja dojo
Ninja dojoNinja dojo
Ninja dojo
 
Apresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do DesignApresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do Design
 
Apresentacao Workshop da Fabrica do Design
Apresentacao Workshop da Fabrica do DesignApresentacao Workshop da Fabrica do Design
Apresentacao Workshop da Fabrica do Design
 

Hotspot Green and Blue Label - Switching the labels!

  • 1. Green e Blue label Switching the Labels /iuri.andreazza @iuriandreazza
  • 4. O que seria isto? Em Produção Em um modelo agil de desenvolvimento temos: plan > code > build > test > release > deploy > operate Quando se homologa um novo release: o Pacote é validado! E o ambiente? GMUD na cara dura não? Lembrar de tudo que foi feito? (temos que sempre manter o histórico não?) Replicar em PRD, ok, mas sempre temos o erro humano Meio burro isso não? As aplicações geralmente são parametrizadas, porque não o ambiente? Porque não trabalhar com switchs de ambientes? Em Homologação
  • 5. O que seria isto? Se alinhado corretamente o que é executado: Troca de ambientes Switch de DNS na entrega de novos ambientes. Switch de Properties (se a aplicação depende de algo hardcoded). Build do Jenkings pode controlar o deploy de Ambiente Build do Jenkings pode determinar se algo entra no ar ou não Automação ao nivel extremo, ou seja, build OK, deploy Controle de máquinas, servers e configurações no nivel da equipe do produto. Sem dependencia humana na demanda de
  • 6. O que fazer Processo de homologação sempre começa após ultimo SWITCH Deploy do pacote implica em Homologação do ambiente Maior agilidade na troca de tecnologias e ajustes no ambiente final O que fazer com o banco? Como o produto deve ver isto?
  • 7. Como aplicar Configurações devem ser padronizadas O switch de labels não deve ocorrer como troca de cuecas! Temos um tempo de cooldown de ambiente! Os labels podem ser aplicados a niveis diferentes das camadas (webcache, apache, appserver ...) Padronização em outras camadas (firewall, proxy, acessos ...)
  • 8. Como utilizar Com cuidado, ficar virando ambientes seguidamente pode ser perigoso. Ajustes imediados ou emergenciais podem ser relativamente problemáticos em caso de descuido O “chaveamento” de ambientes deve ser automatizado. Remoção da ideia de INFRA no produto, todos os DEVs são responsáveis pelo
  • 9. Como esperamos Trocas ageis de ambiente Evolução confiável e agil de tecnologias Produto pode iniciar processo de deploy continuo Equipe de produto que assume responsabilidade pelo ambiente com seus DEV-OPS Minimizar gargalo no release Maximizar features liberados
  • 10. Como o tester ve! Ambiente que vive trocando para validar Melhor qualidade, pois quando ocorre a homologação de pacote é feito em cima do ambiente final. Menos stress para ao final executar a troca. Um pouco complexo. Como fica a base de dados????
  • 11. Como o produto ve! RELEASE!!! MAIS RELEASES!!! MUITOS FEATURES LIBERADOS! MUITA VELOCIDADE! (VUSHHHHHH) maior agilidade na evolução redução de gargalos conhecidos (problema) possivelmente mais rapidamente entre bugs em produção.
  • 12. Como a infra ve! Interessante, mas complicado ... Como assim trocar servidores? Não to entendendo direito! Porque ficar virando ambientes?? E a base de dados? Não é bem assim subir uma maquina nova. E o FS como fica? Ao menos temos alguns processos! DEV-OPS mexer em ambientes!?
  • 13. Algo mais! Cara, cade o BANCO? Switch de Schemas ou mesmo Instancias de Banco Area de espaço sempre dimensionada Scripts de Setup de Aplicações Congelar DB para homologação. Espelhos meus amigos, ESPELHOS!
  • 14. Como estamos! Atualmente: Fase 1: <== Estamos nessa fase! Servidores separados Deploy direto em um stack Configuração do stack versionado Fase 2: Desmanchar Homologação Subir servers ao nivel de PRD Padronizar Processos (Scripts, mais Scripts e Processos) Fase 3: Padronizar Labels para controle via: Puppet/Chef/Ventriloquist
  • 15. Estrutura Usando Labels Por camada Usando Labels Por Stack (Pense Fase 3) BL BL Cache Cache Cache Apache Apache Sess. Man App Srv App Srv Banco 1 Banco 2 Cache Apache Apache Sess. Man Sess. Man App Srv App Srv Banco 1 Banco 2 Sess. Man
  • 16. Estrutura Sob Demanda (Utópica) Usando Labels Por camada Cache 1 Cache 1 Cache 2 { BL Cache N Apache Apache Apache Apache 1 2 2 N OS Mirror Máquinas Novas - Automated App Srv App Srv App Srv App Srv 1 2 N 1 Applications SWITCH Banco 1 Banco 2 Banco N Será Removido Novo Node Current Node
  • 17. Como? Switch de Aplicações também é possivel #Criar aplicação A sh-3.2# ./configure --prefix=/path/aplicacao_node_A sh-3.2# make; make install; #Criar aplicação B sh-3.2# ./configure --prefix=/path/aplicacao_node_B sh-3.2# make; make install; #### Activate A sh-3.2# ln -sfn /path/aplicacao_node_A /path/aplicacao_final sh-3.2# /path/aplicacao_final/start_script #### Activate B (Swith Modes) sh-3.2# /path/aplicacao_final/stop_script sh-3.2# ln -sfn /path/aplicacao_node_B /path/aplicacao_final sh-3.2# /path/aplicacao_final/start_script
  • 19. Green e Blue label Switching the Labels /iuri.andreazza @iuriandreazza