DevOps: Entregando Softwares e Serviços
rapidamente
Randerson Melville
2RandersonMelville
 Bacharel em Sistemas de Informação;
 Especialista em Engenharia de Sistemas;
 Quality Assurance Leader at Virtus;
 Palestrante e consultor em DevOps, QA (Quality Assurance)
e testes de software;
 randerson.rebouca@virtus.ufcg.edu.br
 https://br.linkedin.com/in/randersonmelville
 randerson.melville@gmail.com
 (83)99816-4209
3PlanodeCurso
 Introdução a DevOps;
 Movimento DevOps;
 Especialista DevOps;
 Aplicação do DevOps;
 Metodologia Ágil de Software;
 Integração Contínua;
 Ferramental para implantação da integração contínua;
 Jenkins;
 Docker;
 Principais benefícios;
 Importância dos testes automatizados para sustentar integração contínua.
4Introduçãoa DevOps
 É uma metodologia de desenvolvimento de software que explora a comunicação, colaboração e integração entre
desenvolvedores de software e profissionais de TI (Tecnologia da Informação). DevOps é a reação à interdependência
entre desenvolvimento de software e operações de TI. Pretende ajudar organizações a produzir software e serviços
rapidamente.
5Introduçãoa DevOps
6MovimentoDevOps
 O termo "devops" foi popularizado através de uma série de eventos intitulados "DevOps Days", começando em 2009
na Bélgica. Desde então, ocorreramconferências "DevOpsDays" na Índia, EUA, Brasil, Austrália, Alemanha eSuécia.
7EspecialistaDevOps
 Ele foi trazido para atuar comoum agente demudanças, eleprecisa contaminar as áreasemostrar que a cultura
DevOpsfunciona.
 É umprofissional sênior em infraestrutura
 Tem um bom background em desenvolvimento
 Tem um bom background em metodologias ágeis
 Tem sólidos conhecimentos em soluções opensource e similares
 Trabalha intensamente com automação e infraestrutura como código
8EspecialistaDevOps
 Eleserá a ponte entreas áreasdeinfra e devel, eleconhecea infra a fundo eentede de forma ampla processos de
desenvolvimento ágil.
 Pé no devel;
 Pé na Infra;
 Ele deve ficar nainfra ou em dev?
9AplicaçãodoDevOps
 Uso deprocessos e metodologias dedesenvolvimento ágil
 Demanda crescente na taxa deproduçãodeaplicativos eunidades de negócios
 Ampla disponibilidade deinfraestrutura na Cloud evirtualizadapor provedoresinternos eexternos
 Uso crescentedeautomação dedata center eferramentas degerenciamento deconfiguração
10MetodologiaÁgildeSoftware
 Desenvolvimento ágil de software (do inglês Agile software development) ou Método ágil é um conjunto
de metodologias de desenvolvimento de software. O desenvolvimento ágil, tal como
qualquer metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de
software.
11MetodologiaÁgildeSoftware
 Valores:
 Indivíduos e interações mais que processos e ferramentas;
 Software funcional mais que documentação abrangente;
 Colaboração do cliente mais que negociação de contratos;
 Responder a mudanças maisque seguir umplano
12IntegraçãoContínua
 O termo “integração continua” originou-se com o processo de desenvolvimento Extreme Programming (XP), como
uma das suas dozepráticas originais.
 Seu principal objetivo é garantir que cada atualização do código-fonte não gere regressões e/ou anomalias em um
aplicativo em desenvolvimento.
 A principal dificuldade na implantação dasorganizaçõesé a mudança decultura dotime.
 Não éuma ferramenta é uma prática.
13Integraçãocontínua
14IntegraçãoContínua
15Ferramental para Implantaçãoda Integração Contínua
 Mudança deCultura;
 Adoção deprocessos;
 Ferramental para adotar integração contínua;
 Jenkins
 Docker
 Travis CI
 CodeShip
16Ferramentas
17Ferramentas
18Ferramentas
19Ferramentas
20Jenkins
 É umservidor open-source deIntegração Contínua epode serrodado deforma standalone (comoumaaplicação
isolada) oucomouma webaplicação dentro de um servidor web comsuporte Java (exemplo Tomcat).
21Jenkins
22Jenkins
23Jenkins
24Docker
 Dockeréumaferramenta quepode empacotarum aplicativo esuas dependências emum recipiente virtual que pode
serexecutado emqualquer servidor Linux. Isso ajuda a permitir flexibilidade eportabilidade deonde oaplicativo pode
serexecutado, quer nas instalações, nuvem pública, nuvem privada, entre outros.
25PrincipaisBenefíciosda Integração Contínua
 Maior controle sobre oque seestá sendo desenvolvido;
 Controle da qualidade do código através demétricas;
 Dependendo do nível da integração contínua pode-se ter sempre um entregável ao cliente.
26Testesautomatizadospara IntegraçãoContínua
 Principal base para integração contínua;
 Processo detestes bemdefinido;
 Controle sobre os artefatos gerados;
 Software sempre está em processo deverificação;
27Níveisdetestespara IC
 Estágios
28Resumo
 DevOps
 Integração Contínua
 Metodologia Ágeis
 Principais benefícios
 Como e quando adotar a IC
 Quais as dificuldades encontradas
29Dúvidas
Obrigado!
RandersonMelville
randerson.rebouca@virtus.ufcg.edu.br
https://br.linkedin.com/in/randersonmelville
randerson.melville@gmail.com
(83) 99816-4209

DevOps: Entregando software e serviços rapidamente

  • 1.
    DevOps: Entregando Softwarese Serviços rapidamente Randerson Melville
  • 2.
    2RandersonMelville  Bacharel emSistemas de Informação;  Especialista em Engenharia de Sistemas;  Quality Assurance Leader at Virtus;  Palestrante e consultor em DevOps, QA (Quality Assurance) e testes de software;  randerson.rebouca@virtus.ufcg.edu.br  https://br.linkedin.com/in/randersonmelville  randerson.melville@gmail.com  (83)99816-4209
  • 3.
    3PlanodeCurso  Introdução aDevOps;  Movimento DevOps;  Especialista DevOps;  Aplicação do DevOps;  Metodologia Ágil de Software;  Integração Contínua;  Ferramental para implantação da integração contínua;  Jenkins;  Docker;  Principais benefícios;  Importância dos testes automatizados para sustentar integração contínua.
  • 4.
    4Introduçãoa DevOps  Éuma metodologia de desenvolvimento de software que explora a comunicação, colaboração e integração entre desenvolvedores de software e profissionais de TI (Tecnologia da Informação). DevOps é a reação à interdependência entre desenvolvimento de software e operações de TI. Pretende ajudar organizações a produzir software e serviços rapidamente.
  • 5.
  • 6.
    6MovimentoDevOps  O termo"devops" foi popularizado através de uma série de eventos intitulados "DevOps Days", começando em 2009 na Bélgica. Desde então, ocorreramconferências "DevOpsDays" na Índia, EUA, Brasil, Austrália, Alemanha eSuécia.
  • 7.
    7EspecialistaDevOps  Ele foitrazido para atuar comoum agente demudanças, eleprecisa contaminar as áreasemostrar que a cultura DevOpsfunciona.  É umprofissional sênior em infraestrutura  Tem um bom background em desenvolvimento  Tem um bom background em metodologias ágeis  Tem sólidos conhecimentos em soluções opensource e similares  Trabalha intensamente com automação e infraestrutura como código
  • 8.
    8EspecialistaDevOps  Eleserá aponte entreas áreasdeinfra e devel, eleconhecea infra a fundo eentede de forma ampla processos de desenvolvimento ágil.  Pé no devel;  Pé na Infra;  Ele deve ficar nainfra ou em dev?
  • 9.
    9AplicaçãodoDevOps  Uso deprocessose metodologias dedesenvolvimento ágil  Demanda crescente na taxa deproduçãodeaplicativos eunidades de negócios  Ampla disponibilidade deinfraestrutura na Cloud evirtualizadapor provedoresinternos eexternos  Uso crescentedeautomação dedata center eferramentas degerenciamento deconfiguração
  • 10.
    10MetodologiaÁgildeSoftware  Desenvolvimento ágilde software (do inglês Agile software development) ou Método ágil é um conjunto de metodologias de desenvolvimento de software. O desenvolvimento ágil, tal como qualquer metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de software.
  • 11.
    11MetodologiaÁgildeSoftware  Valores:  Indivíduose interações mais que processos e ferramentas;  Software funcional mais que documentação abrangente;  Colaboração do cliente mais que negociação de contratos;  Responder a mudanças maisque seguir umplano
  • 12.
    12IntegraçãoContínua  O termo“integração continua” originou-se com o processo de desenvolvimento Extreme Programming (XP), como uma das suas dozepráticas originais.  Seu principal objetivo é garantir que cada atualização do código-fonte não gere regressões e/ou anomalias em um aplicativo em desenvolvimento.  A principal dificuldade na implantação dasorganizaçõesé a mudança decultura dotime.  Não éuma ferramenta é uma prática.
  • 13.
  • 14.
  • 15.
    15Ferramental para ImplantaçãodaIntegração Contínua  Mudança deCultura;  Adoção deprocessos;  Ferramental para adotar integração contínua;  Jenkins  Docker  Travis CI  CodeShip
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
    20Jenkins  É umservidoropen-source deIntegração Contínua epode serrodado deforma standalone (comoumaaplicação isolada) oucomouma webaplicação dentro de um servidor web comsuporte Java (exemplo Tomcat).
  • 21.
  • 22.
  • 23.
  • 24.
    24Docker  Dockeréumaferramenta quepodeempacotarum aplicativo esuas dependências emum recipiente virtual que pode serexecutado emqualquer servidor Linux. Isso ajuda a permitir flexibilidade eportabilidade deonde oaplicativo pode serexecutado, quer nas instalações, nuvem pública, nuvem privada, entre outros.
  • 25.
    25PrincipaisBenefíciosda Integração Contínua Maior controle sobre oque seestá sendo desenvolvido;  Controle da qualidade do código através demétricas;  Dependendo do nível da integração contínua pode-se ter sempre um entregável ao cliente.
  • 26.
    26Testesautomatizadospara IntegraçãoContínua  Principalbase para integração contínua;  Processo detestes bemdefinido;  Controle sobre os artefatos gerados;  Software sempre está em processo deverificação;
  • 27.
  • 28.
    28Resumo  DevOps  IntegraçãoContínua  Metodologia Ágeis  Principais benefícios  Como e quando adotar a IC  Quais as dificuldades encontradas
  • 29.
  • 30.