SlideShare uma empresa Scribd logo
1 de 20
Entrega contínua com
arquitetura distribuida.
Exemplo com demonstração do SV+.
Tópicos
Geração de Artefatos e versionamento.
Gestão de configuração.
Pipeline de implantação.
Script de implantação.
Ferramenta de entrega contínua.
Demonstração.
Geração de artefatos.
Todo build deve gerar artefatos.
Artefatos devem ser versionados.
Salvando artefatos podemos buscar com a versão.
Uma vez gerado ele deve ser imutável.
Todo build deve gerar artefatos.
Botar imagem do jenkins gerando binarios.
Versionamento.
explicar versionamento...
Gestão de configuração.
Deve ser versionada.
Deve ser possível colocá-la em produção sem alterar código.
Versionamento de configurações.
Commit da configuração para atualização.
Pipeline de implantação
No pipeline de implantação, todo mudança no controle de versão dispara um processo (geralmente em um servidor de
integração continua) que cria pacotes para implantação e roda testes unitários e outras validações como análise de código.
O primeiro passo é otimizado para que dure apenas alguns minutos. Se o estágio inicial falhar, o problema deve ser
corrigido imediatamente, ninguém deve subir alterações em cima de builds quebradas.
Cada passo completado pelo commit dispara um novo processo no pipeline que começa a receber testes mais pesados e
complexos. Commits que conseguem passar pelos testes automatizados, estão prontos para serem implantados para
receber testes exploratórios, testes de performance, aceitação e produção conforme a imagem a seguir.
- Jez Humble https://continuousdelivery.com/implementing/patterns/
Pipeline de implantação
Segundo Jez Humble - “The key pattern introduced in continuous delivery is the
deployment pipeline.”
Script de implantação.
Deve conter todas as instruções de :
Compilação
Configuração da aplicação
Instruções de como fazer Deploy
Instruções de como fazer teste.
Deve possuir acessos (user/password) e IPs de máquinas para configurações remotas.
Deve ser possível colocar a aplicação em produção só lendo o script de
implantação (Analogia com a especificação tecnica do deploy).
Script de implantação.
O Script de implantação vai permitir atingir práticas valiosas para entrega
contínua.
Only build packages once. We want to be sure the thing we’re deploying is the same thing we’ve tested throughout the
deployment pipeline, so if a deployment fails we can eliminate the packages as the source of the failure.
Deploy the same way to every environment—including development. This way, we test the deployment process many, many
times before it gets to production, and again, we can eliminate it as the source of any problems.
Smoke test your deployments. Have a script that validates all your application’s dependencies are available, at the location you
have configured your application. Make sure your application is running and available as part of the deployment process.
Keep your environments similar. Although they may differ in hardware configuration, they should have the same version of the
operating system and middleware packages, and they should be configured in the same way. This has become much easier to
achieve with modern virtualization and container technology.
Script de implantação
É recomendável que o script de implantação esteja escrito em uma linguagem
que permita automação e fácil modificação pela equipe como um todo exemplos
Phyton
Shell Script
Powershell
Linguagens scripts são boas pois possuem rico
acesso a recursos de sistema operacional e não precisam
ser compiladas para executar.
Script de implantação.
O script de implantação deve ter todo o recurso necessario para fazer
deploys/compilar/acessos e etc.
Ips
Usuários/Senhas
Informações de diretórios.
Demais configurações.
Script de implantação
Usar uma DSL de automação de build pode auxiliar na integração com a
ferramenta de integração contínua.
Script de implantação
Usar uma linguagem que permita automação do SO pode facilitar o processo de
implantação da aplicação, permitindo também usar código mais alto nível.
Ferramenta de entrega contínua.
O Script de implantação deve estar preparado para ser executado de qualquer
ambiente que possua as ferramentas e infraestrutura necessária para as tarefas
contidas.
A ferramenta de entrega contínua deve conhecer coisas básicas como :
Máquina onde vai executar o script.
Linha de comando para chamar o script.
Saber onde buscar o script (SVN/Rede/Repositórios).
Efetivamente executar ele.
Ferramenta de entrega contínua.
Exemplo de configuração de step de geração de artefato no Jenkins.
Ferramenta de entrega contínua.
Abstraindo a sintaxe o Job executa apenas sua tarefa.
Demonstração

Mais conteúdo relacionado

Mais procurados

A Importância do Teste Continuo
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste ContinuoElias Nogueira
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilElias Nogueira
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpstdc-globalcode
 
QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareSandy Maciel
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileElias Nogueira
 
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...tdc-globalcode
 
Apenas um script de teste para iOS e Android
Apenas um script de teste para iOS e AndroidApenas um script de teste para iOS e Android
Apenas um script de teste para iOS e AndroidElias Nogueira
 
Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Marcus Carvalho
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersElias Nogueira
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressWalmyr Lima e Silva Filho
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous DeliverySamanta Cicilia
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosSamanta Cicilia
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testesElias Nogueira
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliverySamanta Cicilia
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Elias Nogueira
 

Mais procurados (20)

A Importância do Teste Continuo
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste Continuo
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação Ágil
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
 
QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de software
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e Mobile
 
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
 
Apenas um script de teste para iOS e Android
Apenas um script de teste para iOS e AndroidApenas um script de teste para iOS e Android
Apenas um script de teste para iOS e Android
 
Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
 
O Testador Técnico
O Testador TécnicoO Testador Técnico
O Testador Técnico
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com Cypress
 
JUnit
JUnitJUnit
JUnit
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
 
Selenium
SeleniumSelenium
Selenium
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
 

Destaque

Implementando Entrega Contínua - Marco Valtas
Implementando Entrega Contínua - Marco ValtasImplementando Entrega Contínua - Marco Valtas
Implementando Entrega Contínua - Marco ValtasThoughtworks
 
Arquitetura para entrega continua
Arquitetura para entrega continuaArquitetura para entrega continua
Arquitetura para entrega continuaLeonardo Kobus
 
TDC2016SP - Enumerables
TDC2016SP - EnumerablesTDC2016SP - Enumerables
TDC2016SP - Enumerablestdc-globalcode
 
2008 02 01 Zeller
2008 02 01 Zeller2008 02 01 Zeller
2008 02 01 ZellerCHOOSE
 
TDC2016SP - TypeScript em aplicações modernas
TDC2016SP - TypeScript em aplicações modernasTDC2016SP - TypeScript em aplicações modernas
TDC2016SP - TypeScript em aplicações modernastdc-globalcode
 
Artes tics
Artes ticsArtes tics
Artes ticsUPTC
 
Instruments
InstrumentsInstruments
InstrumentsSEBAS100
 
«Кадровое обеспечение вакансий для участников ВЭД компаний-экспортеров Новоси...
«Кадровое обеспечение вакансий для участников ВЭД компаний-экспортеров Новоси...«Кадровое обеспечение вакансий для участников ВЭД компаний-экспортеров Новоси...
«Кадровое обеспечение вакансий для участников ВЭД компаний-экспортеров Новоси...BDA
 
美 女 總 理 ----- 瑩 拉
美 女 總 理  ----- 瑩 拉美 女 總 理  ----- 瑩 拉
美 女 總 理 ----- 瑩 拉Jaing Lai
 
franquicias existente en panama
franquicias existente en panamafranquicias existente en panama
franquicias existente en panamafmlisadomo
 
TDC2016SP - Automação de testes funcionais com Python e Mechanize
TDC2016SP - Automação de testes funcionais com Python e MechanizeTDC2016SP - Automação de testes funcionais com Python e Mechanize
TDC2016SP - Automação de testes funcionais com Python e Mechanizetdc-globalcode
 
Minoristas independientes y las Franquicias
Minoristas independientes y las FranquiciasMinoristas independientes y las Franquicias
Minoristas independientes y las Franquiciasmariag0419
 
Funciones Básicas - EMdH
Funciones Básicas - EMdHFunciones Básicas - EMdH
Funciones Básicas - EMdHAdela M. Ramos
 
Building a Quantitative Trading Strategy To Beat the S&P500
Building a Quantitative Trading Strategy To Beat the S&P500Building a Quantitative Trading Strategy To Beat the S&P500
Building a Quantitative Trading Strategy To Beat the S&P500Karen Rubin
 
China Jade not jaded
China Jade not jadedChina Jade not jaded
China Jade not jadedJohn Jeffery
 
Divisibility rules
Divisibility rulesDivisibility rules
Divisibility rulesAYSHA NADA
 
Stamping Machine Report
Stamping Machine ReportStamping Machine Report
Stamping Machine ReportOliver Terry
 
JavaFX no Falando em Java 2007 - Sergio Lopes
JavaFX no Falando em Java 2007 - Sergio LopesJavaFX no Falando em Java 2007 - Sergio Lopes
JavaFX no Falando em Java 2007 - Sergio LopesCaelum
 

Destaque (20)

Implementando Entrega Contínua - Marco Valtas
Implementando Entrega Contínua - Marco ValtasImplementando Entrega Contínua - Marco Valtas
Implementando Entrega Contínua - Marco Valtas
 
Arquitetura para entrega continua
Arquitetura para entrega continuaArquitetura para entrega continua
Arquitetura para entrega continua
 
TDC2016SP - Enumerables
TDC2016SP - EnumerablesTDC2016SP - Enumerables
TDC2016SP - Enumerables
 
2008 02 01 Zeller
2008 02 01 Zeller2008 02 01 Zeller
2008 02 01 Zeller
 
TDC2016SP - TypeScript em aplicações modernas
TDC2016SP - TypeScript em aplicações modernasTDC2016SP - TypeScript em aplicações modernas
TDC2016SP - TypeScript em aplicações modernas
 
Artes tics
Artes ticsArtes tics
Artes tics
 
Instruments
InstrumentsInstruments
Instruments
 
«Кадровое обеспечение вакансий для участников ВЭД компаний-экспортеров Новоси...
«Кадровое обеспечение вакансий для участников ВЭД компаний-экспортеров Новоси...«Кадровое обеспечение вакансий для участников ВЭД компаний-экспортеров Новоси...
«Кадровое обеспечение вакансий для участников ВЭД компаний-экспортеров Новоси...
 
美 女 總 理 ----- 瑩 拉
美 女 總 理  ----- 瑩 拉美 女 總 理  ----- 瑩 拉
美 女 總 理 ----- 瑩 拉
 
jj
jjjj
jj
 
franquicias existente en panama
franquicias existente en panamafranquicias existente en panama
franquicias existente en panama
 
cblm-java-prog-ds
cblm-java-prog-dscblm-java-prog-ds
cblm-java-prog-ds
 
TDC2016SP - Automação de testes funcionais com Python e Mechanize
TDC2016SP - Automação de testes funcionais com Python e MechanizeTDC2016SP - Automação de testes funcionais com Python e Mechanize
TDC2016SP - Automação de testes funcionais com Python e Mechanize
 
Minoristas independientes y las Franquicias
Minoristas independientes y las FranquiciasMinoristas independientes y las Franquicias
Minoristas independientes y las Franquicias
 
Funciones Básicas - EMdH
Funciones Básicas - EMdHFunciones Básicas - EMdH
Funciones Básicas - EMdH
 
Building a Quantitative Trading Strategy To Beat the S&P500
Building a Quantitative Trading Strategy To Beat the S&P500Building a Quantitative Trading Strategy To Beat the S&P500
Building a Quantitative Trading Strategy To Beat the S&P500
 
China Jade not jaded
China Jade not jadedChina Jade not jaded
China Jade not jaded
 
Divisibility rules
Divisibility rulesDivisibility rules
Divisibility rules
 
Stamping Machine Report
Stamping Machine ReportStamping Machine Report
Stamping Machine Report
 
JavaFX no Falando em Java 2007 - Sergio Lopes
JavaFX no Falando em Java 2007 - Sergio LopesJavaFX no Falando em Java 2007 - Sergio Lopes
JavaFX no Falando em Java 2007 - Sergio Lopes
 

Semelhante a Entrega contínua com arquitetura distribuida

Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaLu
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
Integração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimentoIntegração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimentoMario Mendonça
 
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...Antonio Lobato
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaGabriela Patuci
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlabJackson F. de A. Mafra
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
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
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
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
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Javaelliando dias
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...Amazon Web Services
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureGrupo de Testes Carioca
 
Construindo Aplicações PHP com Twelve-Factor App
Construindo Aplicações PHP com Twelve-Factor AppConstruindo Aplicações PHP com Twelve-Factor App
Construindo Aplicações PHP com Twelve-Factor AppMarcela Godoy Cruz
 

Semelhante a Entrega contínua com arquitetura distribuida (20)

Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
Integração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimentoIntegração contínua - Prática de desenvolvimento
Integração contínua - Prática de desenvolvimento
 
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
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
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
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
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
DevOps
DevOpsDevOps
DevOps
 
Introdução ao Maven
Introdução ao MavenIntrodução ao Maven
Introdução ao Maven
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
Construindo Aplicações PHP com Twelve-Factor App
Construindo Aplicações PHP com Twelve-Factor AppConstruindo Aplicações PHP com Twelve-Factor App
Construindo Aplicações PHP com Twelve-Factor App
 

Entrega contínua com arquitetura distribuida

  • 1. Entrega contínua com arquitetura distribuida. Exemplo com demonstração do SV+.
  • 2. Tópicos Geração de Artefatos e versionamento. Gestão de configuração. Pipeline de implantação. Script de implantação. Ferramenta de entrega contínua. Demonstração.
  • 3. Geração de artefatos. Todo build deve gerar artefatos. Artefatos devem ser versionados. Salvando artefatos podemos buscar com a versão. Uma vez gerado ele deve ser imutável.
  • 4. Todo build deve gerar artefatos. Botar imagem do jenkins gerando binarios.
  • 6. Gestão de configuração. Deve ser versionada. Deve ser possível colocá-la em produção sem alterar código.
  • 8. Commit da configuração para atualização.
  • 9. Pipeline de implantação No pipeline de implantação, todo mudança no controle de versão dispara um processo (geralmente em um servidor de integração continua) que cria pacotes para implantação e roda testes unitários e outras validações como análise de código. O primeiro passo é otimizado para que dure apenas alguns minutos. Se o estágio inicial falhar, o problema deve ser corrigido imediatamente, ninguém deve subir alterações em cima de builds quebradas. Cada passo completado pelo commit dispara um novo processo no pipeline que começa a receber testes mais pesados e complexos. Commits que conseguem passar pelos testes automatizados, estão prontos para serem implantados para receber testes exploratórios, testes de performance, aceitação e produção conforme a imagem a seguir. - Jez Humble https://continuousdelivery.com/implementing/patterns/
  • 10. Pipeline de implantação Segundo Jez Humble - “The key pattern introduced in continuous delivery is the deployment pipeline.”
  • 11. Script de implantação. Deve conter todas as instruções de : Compilação Configuração da aplicação Instruções de como fazer Deploy Instruções de como fazer teste. Deve possuir acessos (user/password) e IPs de máquinas para configurações remotas. Deve ser possível colocar a aplicação em produção só lendo o script de implantação (Analogia com a especificação tecnica do deploy).
  • 12. Script de implantação. O Script de implantação vai permitir atingir práticas valiosas para entrega contínua. Only build packages once. We want to be sure the thing we’re deploying is the same thing we’ve tested throughout the deployment pipeline, so if a deployment fails we can eliminate the packages as the source of the failure. Deploy the same way to every environment—including development. This way, we test the deployment process many, many times before it gets to production, and again, we can eliminate it as the source of any problems. Smoke test your deployments. Have a script that validates all your application’s dependencies are available, at the location you have configured your application. Make sure your application is running and available as part of the deployment process. Keep your environments similar. Although they may differ in hardware configuration, they should have the same version of the operating system and middleware packages, and they should be configured in the same way. This has become much easier to achieve with modern virtualization and container technology.
  • 13. Script de implantação É recomendável que o script de implantação esteja escrito em uma linguagem que permita automação e fácil modificação pela equipe como um todo exemplos Phyton Shell Script Powershell Linguagens scripts são boas pois possuem rico acesso a recursos de sistema operacional e não precisam ser compiladas para executar.
  • 14. Script de implantação. O script de implantação deve ter todo o recurso necessario para fazer deploys/compilar/acessos e etc. Ips Usuários/Senhas Informações de diretórios. Demais configurações.
  • 15. Script de implantação Usar uma DSL de automação de build pode auxiliar na integração com a ferramenta de integração contínua.
  • 16. Script de implantação Usar uma linguagem que permita automação do SO pode facilitar o processo de implantação da aplicação, permitindo também usar código mais alto nível.
  • 17. Ferramenta de entrega contínua. O Script de implantação deve estar preparado para ser executado de qualquer ambiente que possua as ferramentas e infraestrutura necessária para as tarefas contidas. A ferramenta de entrega contínua deve conhecer coisas básicas como : Máquina onde vai executar o script. Linha de comando para chamar o script. Saber onde buscar o script (SVN/Rede/Repositórios). Efetivamente executar ele.
  • 18. Ferramenta de entrega contínua. Exemplo de configuração de step de geração de artefato no Jenkins.
  • 19. Ferramenta de entrega contínua. Abstraindo a sintaxe o Job executa apenas sua tarefa.