SlideShare una empresa de Scribd logo
1 de 26
Primeiros passos
Fernanda Lanção Morais Martins
DevOps
Agenda
❏ Breve introdução sobre DevOps
❏ Estudo sobre contexto e análise de problemas
❏ Algumas dicas de ferramentas
Equipe de Desenvolvimento & Operações
Mudança Vs Estabilidade
Fonte:houseofgeekery
Como facilitar esse
processo?
Criação de manuais de deploy, sistemas de tickets
e processos de gerência de mudanças
Com o tempo….
Frequencia
de
Deploy
Quantidade
de
Mudanças
Risco
Processo
- +
+ +
Fonte:DevOps na Prática
Entrega Contínua
Frequencia
de
Deploy
Quantidade
de
Mudanças
Risco
Processo
+ -
-
Fonte:DevOps na Prática
E onde DevOps entra nisso?
DevOps é a cultura de colaboração entre equipe
de desenvolvimento e operações para aumentar o
fluxo de trabalho..
Como aumentar o fluxo de trabalho?
Automatização de deploys, de criação de
ambientes e etc...
Legal… E agora?
Mapeie seu contexto
Anote tudo que te incomoda...
Tudo mesmo!
Não pense em obstáculos técnicos, não-
técnicos… o céu é o limite!
Seja chato!
Para cada item...
Busque referências internas
Se você se incomoda, certamente outras
pessoas da sua equipe também!
Converse com elas! As vezes elas até já tem
uma solução desenhada
Mapeie dependências
Quem é a pessoa que eu preciso conversar?
Pra melhorar isso, é realmente necessário
mudar alguma outra coisa?
Cuidado! Um problema geralmente gera
muitas depedências, trate cada uma delas em
separado! Faça tudo em pequenos passos!
Busque referências externas
Com o problema e suas dependências em
mãos...? Será que alguém já passou por isso?
Google it!
Trabalhe em uma solução
Faça um timebox: aloque um tempo semanal
para trabalhar em uma solução!
Peça ajuda! Quem sabe aquela pessoa que
você conversou antes…
Se prepare para muitas tentativas e erros...
E agora… Dicas!
Obs: Ferramentas preferidas por mim, estão em
vermelho.
Automação de configuração de infraestrutura
Qual problema resolve?
● Precisamos configurar um projeto automaticamente em
uma máquina com sistema operacional para que seja
mais rápida a adoção por novos integrantes.
● Gostaria de provisionar um servidor de produção para
rodar minha aplicação rapidamente evitando assim
Snowflake servers
Ferramentas: Chef, Puppet, Ansible
Por que não usar shell script? As ferramentas acima são
idempotêntes!
Automação de criação de infraestrutura
Qual problema resolve?
● Precisamos colocar um sistema operacional dentro de
uma máquina automaticamente
Perceba que o slide anterior falava de configuração de um
sistema operacional já instalado!
Ferramentas: Packer
Baixe sistemas operacionais e configure-os utilizando a
ferramenta fornecida pelo OS. kickstart para CentOS ou XML
para Windows
Automação de criação de máquinas virtuais
Qual problema resolve?
● Precisamos colocar e configurar um sistema operacional
dentro de uma máquina virtual em ambiente de dev
Ferramentas: Vagrant
=> Possui sistemas operacionais já "pré-configurados" na
internet, você só precisa fazer download.
=> Usado em ambientes de dev com VirtualBox
=> Você pode baixar o OS e usar um Ansible para configurar
garantindo que tanto seu servidor de produção e sua máquina
de dev sejam iguais.
=> Pra quê usar VM? Pra não "manchar sua máquina", pra usar
algo próximo de produção.! Isolamento da sua máquina!
Automação de criação de infraestrutura com containers
Qual problema resolve?
● Precisamos colocar e configurar um sistema operacional
em qualquer ambiente
Ferramentas: Docker
É um Vagrant para todos os ambientes, mas ao invés de VMs
que são pesadas e demandam recurso, utiliza-se containers.
Resumindo suas opções em dev
vagrant + ansible/chef... =>
quero configurar uma VM qualquer
packer + ansible/... =>
quero configurar uma máquina e configurar seu OS por completo
DEV
packer instalando vagrant + ansible =>
quero configurar minha VM completamente + destruí-la e subi-la
facilmente (vagrant)
Docker => quero configurar um OS qualquer num container
DevOps é só automatização de infra?
● Automatização de tarefas como rodar testes, instalação e
empacotamento da sua aplicação também entram nas
práticas.
● Utiliza-se um servidor de CI para manter as coisas
organizadas: Travis, SNAP-CI, Go-CD, Jenkins...
● Cada tarefa possui ferramentas apropriadas de acordo
com a linguagem de programação (ou tech stack)
utilizada…
● Dica: Automatize sempre incluindo o mínimo de
complexidade em sua aplicação. Ferramentas demais
podem se tornar confusas e ninguém vai querer dar
manutenção !
Resumindo suas opções em ci/prod/stg
CI
Compila
Testes
unitários
Outros
Testes
Empacota
Deploy
Automatização CI
CI
Compila
Testes
unitários
Outros
Testes
Empacota
Deploy
A tarefa de deploy roda scripts ansible/chef...
para garantir que a máquina de prod/stg está OK
e instala o pacote da aplicação
O que acontece se seu servidor de CI quebra?
Pode-se automatizar também a criação do servidor de CI, assim
você tem todos os ambientes iguais, cada um com sua
configuração base e outras configurações adicionais para cada
ambiente.
Quase tudo é automatizável!
Shell script também pode ser seu melhor
amigo!
Dica: Sempre versione o seu código!
Dicas de Livros
http://12factor.net/pt_br/
Obrigada!
@flmmartins
flmmartins@gmail.com
https://github.com/flmmartins
http://www.linkedin.com/in/flmmartins

Más contenido relacionado

La actualidad más candente

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
 
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
 
DevOps - Estado da Arte
DevOps - Estado da ArteDevOps - Estado da Arte
DevOps - Estado da Arteilegra
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsLeonardo Comelli
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsMichel Cordeiro
 
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
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIAlefe Variani
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develJose Augusto Carvalho
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoThoughtworks
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaOtávio Calaça Xavier
 
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
 
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?Embratel
 
O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMFelipe Freire
 
Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend ServerDiego Santos
 
DevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento ÁgilDevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento Ágilinstructbr
 
O Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidadeO Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidadeAntônio Carlos
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
Arquitetura para entrega continua
Arquitetura para entrega continuaArquitetura para entrega continua
Arquitetura para entrega continuaLeonardo Kobus
 
DevOps - A Origem
DevOps - A OrigemDevOps - A Origem
DevOps - A OrigemAndré Dias
 

La actualidad más candente (20)

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
 
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
 
DevOps - Estado da Arte
DevOps - Estado da ArteDevOps - Estado da Arte
DevOps - Estado da Arte
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOps
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkins
 
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
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
 
Cultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e develCultura DevOps e integração entre infra e devel
Cultura DevOps e integração entre infra e devel
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo Sato
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega 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
 
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?
Embratel Lives | DevOps: Sua empresa está madura para dar esse passo?
 
O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBM
 
Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend Server
 
DevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento ÁgilDevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento Ágil
 
O Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidadeO Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidade
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
Arquitetura para entrega continua
Arquitetura para entrega continuaArquitetura para entrega continua
Arquitetura para entrega continua
 
DevOps - A Origem
DevOps - A OrigemDevOps - A Origem
DevOps - A Origem
 

Similar a DevOps Primeiros Passos

DevOps: Primeiros passos - Lightning Talk
DevOps: Primeiros passos - Lightning TalkDevOps: Primeiros passos - Lightning Talk
DevOps: Primeiros passos - Lightning TalkFernanda Martins
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátilWanderlei Silva do Carmo
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...iMasters
 
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
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaLeonardo Kobus
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker ContainersHugo Henley
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizadosThiago Rodrigues
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao TerraformLeandro Silva
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsCamila Carrera
 
Boas práticas para deploy contínuo com drupal
Boas práticas para deploy contínuo com drupalBoas práticas para deploy contínuo com drupal
Boas práticas para deploy contínuo com drupalRenato Vasconcellos Gomes
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaRodrigo Marques Teixeira
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTIAndré Paulovich
 

Similar a DevOps Primeiros Passos (20)

DevOps: Primeiros passos - Lightning Talk
DevOps: Primeiros passos - Lightning TalkDevOps: Primeiros passos - Lightning Talk
DevOps: Primeiros passos - Lightning Talk
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátil
 
Dev Ops at Paguemenos
Dev Ops at PaguemenosDev Ops at Paguemenos
Dev Ops at Paguemenos
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
 
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!
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuida
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
Vagrant sti
Vagrant stiVagrant sti
Vagrant sti
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
Vamos falar de DevOps?
Vamos falar de DevOps?Vamos falar de DevOps?
Vamos falar de DevOps?
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOps
 
Boas práticas para deploy contínuo com drupal
Boas práticas para deploy contínuo com drupalBoas práticas para deploy contínuo com drupal
Boas práticas para deploy contínuo com drupal
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Palestra microservice semanatic
Palestra microservice semanaticPalestra microservice semanatic
Palestra microservice semanatic
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
 
Middlewares ASP.NET
Middlewares ASP.NETMiddlewares ASP.NET
Middlewares ASP.NET
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 

DevOps Primeiros Passos

  • 1. Primeiros passos Fernanda Lanção Morais Martins DevOps
  • 2. Agenda ❏ Breve introdução sobre DevOps ❏ Estudo sobre contexto e análise de problemas ❏ Algumas dicas de ferramentas
  • 3. Equipe de Desenvolvimento & Operações Mudança Vs Estabilidade Fonte:houseofgeekery
  • 4. Como facilitar esse processo? Criação de manuais de deploy, sistemas de tickets e processos de gerência de mudanças
  • 7. E onde DevOps entra nisso? DevOps é a cultura de colaboração entre equipe de desenvolvimento e operações para aumentar o fluxo de trabalho.. Como aumentar o fluxo de trabalho? Automatização de deploys, de criação de ambientes e etc...
  • 9. Mapeie seu contexto Anote tudo que te incomoda... Tudo mesmo! Não pense em obstáculos técnicos, não- técnicos… o céu é o limite! Seja chato!
  • 11. Busque referências internas Se você se incomoda, certamente outras pessoas da sua equipe também! Converse com elas! As vezes elas até já tem uma solução desenhada
  • 12. Mapeie dependências Quem é a pessoa que eu preciso conversar? Pra melhorar isso, é realmente necessário mudar alguma outra coisa? Cuidado! Um problema geralmente gera muitas depedências, trate cada uma delas em separado! Faça tudo em pequenos passos!
  • 13. Busque referências externas Com o problema e suas dependências em mãos...? Será que alguém já passou por isso? Google it!
  • 14. Trabalhe em uma solução Faça um timebox: aloque um tempo semanal para trabalhar em uma solução! Peça ajuda! Quem sabe aquela pessoa que você conversou antes… Se prepare para muitas tentativas e erros...
  • 15. E agora… Dicas! Obs: Ferramentas preferidas por mim, estão em vermelho.
  • 16. Automação de configuração de infraestrutura Qual problema resolve? ● Precisamos configurar um projeto automaticamente em uma máquina com sistema operacional para que seja mais rápida a adoção por novos integrantes. ● Gostaria de provisionar um servidor de produção para rodar minha aplicação rapidamente evitando assim Snowflake servers Ferramentas: Chef, Puppet, Ansible Por que não usar shell script? As ferramentas acima são idempotêntes!
  • 17. Automação de criação de infraestrutura Qual problema resolve? ● Precisamos colocar um sistema operacional dentro de uma máquina automaticamente Perceba que o slide anterior falava de configuração de um sistema operacional já instalado! Ferramentas: Packer Baixe sistemas operacionais e configure-os utilizando a ferramenta fornecida pelo OS. kickstart para CentOS ou XML para Windows
  • 18. Automação de criação de máquinas virtuais Qual problema resolve? ● Precisamos colocar e configurar um sistema operacional dentro de uma máquina virtual em ambiente de dev Ferramentas: Vagrant => Possui sistemas operacionais já "pré-configurados" na internet, você só precisa fazer download. => Usado em ambientes de dev com VirtualBox => Você pode baixar o OS e usar um Ansible para configurar garantindo que tanto seu servidor de produção e sua máquina de dev sejam iguais. => Pra quê usar VM? Pra não "manchar sua máquina", pra usar algo próximo de produção.! Isolamento da sua máquina!
  • 19. Automação de criação de infraestrutura com containers Qual problema resolve? ● Precisamos colocar e configurar um sistema operacional em qualquer ambiente Ferramentas: Docker É um Vagrant para todos os ambientes, mas ao invés de VMs que são pesadas e demandam recurso, utiliza-se containers.
  • 20. Resumindo suas opções em dev vagrant + ansible/chef... => quero configurar uma VM qualquer packer + ansible/... => quero configurar uma máquina e configurar seu OS por completo DEV packer instalando vagrant + ansible => quero configurar minha VM completamente + destruí-la e subi-la facilmente (vagrant) Docker => quero configurar um OS qualquer num container
  • 21. DevOps é só automatização de infra? ● Automatização de tarefas como rodar testes, instalação e empacotamento da sua aplicação também entram nas práticas. ● Utiliza-se um servidor de CI para manter as coisas organizadas: Travis, SNAP-CI, Go-CD, Jenkins... ● Cada tarefa possui ferramentas apropriadas de acordo com a linguagem de programação (ou tech stack) utilizada… ● Dica: Automatize sempre incluindo o mínimo de complexidade em sua aplicação. Ferramentas demais podem se tornar confusas e ninguém vai querer dar manutenção !
  • 22. Resumindo suas opções em ci/prod/stg CI Compila Testes unitários Outros Testes Empacota Deploy
  • 23. Automatização CI CI Compila Testes unitários Outros Testes Empacota Deploy A tarefa de deploy roda scripts ansible/chef... para garantir que a máquina de prod/stg está OK e instala o pacote da aplicação O que acontece se seu servidor de CI quebra? Pode-se automatizar também a criação do servidor de CI, assim você tem todos os ambientes iguais, cada um com sua configuração base e outras configurações adicionais para cada ambiente.
  • 24. Quase tudo é automatizável! Shell script também pode ser seu melhor amigo! Dica: Sempre versione o seu código!