Buscar

DevOps Webinar DPD RNP

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

DevOps
Rede Nacional de Ensino e Pesquisa
Alex Moura – alex.moura@rnp.br
Webinars da Diretoria de Pesquisa e Desenvolvimento (DPD)
23-09-2016
‹#›
Agenda
Origem
Conceitos
Cultura DevOps e o Profissional DevOps 
Conflito Dev e Ops
Como aplicar a cultura
Eventos
Livros
‹#›
‹#›
Introdução
Em 2008, Patrick Debois, consultor Belga foi contratado para gerir a migração de um Data Center entre prédios e, ao notar várias dificuldades ao interagir com vários times de TI com quem precisou trabalhar, percebeu que as equiper não se conheciam
Em 2009, Patrick descobriu que não era o único a perceber a existência de diversos problemas que não deveriam ou precisavam existir entre equipes de TI, e resolveu que poderia tentar melhorar a situação. Ao assistir a palestra de John Allspaw e Paul Hammond na Velocity 2009, resolveu seguir a sugestão de Paul Nasrat e organizar um evento de um dia sobre Dev + Ops, chamado DevOpsDays. Como o nome não coube na mensagem de divulgação via Twitter, o termo escreveu apenas DevOps, e a expressão "pegou".
https://youtu.be/o7-IuYS0iSE
‹#›
A proposta é adotar uma nova cultura entre pessoas equipes, métodos e ferramentas e permitir que mudanças possam ocorrer tantas vezes quanto forem necessárias, sem causar problemas na operação de TI ou impactar negativamente o negócio.
‹#›
Na conferência O'Reilly Velocity 2009, uma apresentação deu início aos insights sobre DevOps
10+ Deploys per Day: Dev and Ops Cooperation at Flickr - John Allspaw (Ops) e Paul Hammond (Eng)
Foco: ocorrem mudanças nas TIs de todos os negócios
Mudanças causam a maioria das falhas nos sistemas de TIC
Apesar das mudanças, é importante manter a estabilidade
Origem
Fonte: 10+ Deploys per Day: Dev and Ops Cooperation at Flickr
‹#›
DevOps é uma forma de cultura de colaboração e comunicação entre equipes de TI, envolvendo processos, práticas e ferramentas (software)
Expressão formada pela junção de Developer e Operations
A cultura prega um sadio processo de comunicação e colaboração entre todos os profissionais da organização, envolvendo:
feedback contínuo e compartilhamento de responsabilidades; 
trabalho em equipe e cultura "blameless"; 
busca a extinção de silos e nichos, com todas as equipes trabalhando em uma grande equipe única, com a missão de fluir o negócio da organização
‹#›
O que é DevOps?
Como apoio ao conceito, são empregadas diversas ferramentas, métricas, tecnologias, linguagens de programação, camadas e pilhas (stacks) de tecnologias etc, para automatizar o processo de entrega de software e mudanças na infraestrutura de TI
A meta é estabelecer uma cultura e ambiente onde construir, testar e lançar software pode acontecer rapidamente, frequentemente, de forma confiável
‹#›
O que é DevOps?
http://brasilia.devopsdays.com.br/about/
Alguns chamam DevOps de um fenômeno de transformação da cultura de como administrar e desenvolver serviços, enquanto outros acreditam que seja apenas uma metodologia ágil de administrar sistemas. A expressão DevOps foi cunhada em 2009, no evento DevOpsDays em Ghent, Bélgica,. 
Desde então, o evento vem sendo organizado em várias cidades no mundo, com objetivo principal de disseminar a nova metodologia/cultura sobre como os desenvolvedores e operadores de infraestrutura devem trabalhar juntos para oferecer um resultado mais rápido, seguro e eficiente. 
DevOps é tido como um fenômeno por conta da rapidez e eficiência. A tendência já trouxe ótimos resultados para muitas organizações que a praticam, sempre proporcionado uma vantagem competitiva, segurança e agilidade nas entregas importantes para o negócio. 
Empresas como Facebook, Rackspace, DigitalOcean, Google e muitas outras têm essa cultura tão “enraizada” que muitas vezes não se consegue perceber uma distinção entre os famosos papéis de “desenvolvedor” e “operador de infraestrutura”. A ideia é atuar como um único time e assim proporcionar uma maior eficiência na entrega e manutenção dos sistemas e serviços que compõem o negócio. Por outro lado, a novidade do DevOps não se limita a novas práticas, pois com a mudança no paradigma da atividade, criou-se diversas ferramentas para auxiliar esse novo modelo de trabalho. Nesta linha, ferramentas de automação de infraestrutura, integração contínua, ambientes “self service” e muitas outras foram criadas e apresentadas, todas elas fortalecendo essa nova tendência.
‹#›
Linha do Tempo
Patrick Debois inicia investigação sobre a Cadeia de Valor da TI
Iniciado no Google o Grupo de Admins. de Sistemas Ágeis 
Andrew Schafer e Patrick Debois se encontram na conferência Agile 2008
John Allspaw e Paul Hammond apresentam "10+ Deploys per Day" na conferência Velocity 
Ferramentas de código aberto surgem para rasgar a tradicional cartilha de operações de TI
1º Evento "DevOpsDays" organizado por Debois em Ghent (Bélgica)
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
"Tempestade perfeita" de metodologias adjacentes
Fornecedores de software líderes da indústria aumentam presença no mercado com ferramentas DevOps classe "Empresarial"
Gene Kim lança livro 
"O Projeto Phoenix"
Fornecedores de software líderes da indústria aumentam presença no mercado com ferramentas DevOps classe "Empresarial"
Nasce o devX e a Xceed lança os 
"12 Dias de DevOps" 
1/4/12
1/7/14
9/9/16
1/1/10
Auge das pesquisas no Google sobre DevOps (Fonte: Google Trends)
Israel
Índia
Finlândia
Holanda
Austrália
[~ interdevops@conf]$ _
Diversos eventos sobre DevOps são organizados no Brasil 
DevOps começa a causar impactos positivos na TI Corporativa 
‹#›
Benefícios
Automatização de tarefas operacionais
Agilidade na entrega
Redução do tempo de operação
Economia com despesas operacionais
‹#›
‹#›
Automação do Lançamentos de Aplicações
(Application Release Automation, ARA)
Gerentes de lançamentos utilizam ferramentas para automatizar o lançamento (release) de aplicações
Ferramentas de integração contínua apoiam este objetivo, através da abordagem de entrega contínua
‹#›
Integração contínua: na eng. de software, é a prática de unir todas as cópias de trabalho dos desenvolvedores em uma cópia unificada, várias vezes por dia. (Grady Booch, 1991)
A metodologia de Extreme Programming (XP) adotou o conceito e advoga integrações de duas a dezenas de vezes por dia.
Entrega contínua: abordagem de eng. de software em que equipes produzem em curtos ciclos, garantindo a confiabilidade para lançamento a qualquer momento.
Objetivo: construir, testar e lançar software rápido e frequente. 
Reduz custo, tempo e risco de entregar mudanças permitindo atualizações incrementais a aplicações em produção. 
Processo direto e reprodutível
Código repetível, partilhável, promovível e testável
‹#›
Integração Contínua e Entrega Contínua
The DevOps approach seeks to meld application development and deployment into a more streamlined process, shifting some of the operation team’s responsibilities back to the development team in order to facilitate continuous development, continuous integration, continuous delivery and continuous monitoring processes. 
The necessity for tearing down the silos between development and operations has been expedited by the need to release code faster and more often in order to help the organization respond in a more agile manner to changing business requirements. Other drivers for breaking down the silos include the increasing use of cloud computing and advances in software-defined infrastructures, microservices, containers and automation.
‹#›
‹#›
Um dia na vida de Dev e Ops
Engenharia de Software
Engenharia de Sistemas e Operações
Dev e Ops
Analista de Segurança
‹#›
‹#›
Conflito Dev x Ops
Estabilidade operacional
Infraestrutura Gerenciada por Software
Confiabilidade
Agilidade
Tradicionalmente nas organizações, o time de desenvolvimento testa novos códigos em ambiente isolado para Garantia de Qualidade (QA) e -- se os requisitos forem atendidos
-- lança o código para operações. A equipe de operações implanta a aplicação e a mantém a partir dali. 
Um problema com essa abordagem, conhecida como desenvolvimento em cascata, é o longo período entre lançamentos e porque as equipes trabalham separadas: a equipe de desenvolvimento nem sempre fica ciente de percalços operacionais que possam impedir a aplicação de funcionar como esperado.
‹#›
‹#›
Infraestrutura como código
Infraestrutura como Código
Controle de
Versão
Revisão
por pares
Entrega
Contínua
Colaboração
Iteração
Rápido
Feedback
Visibilidade
‹#›
Ferramentas de software surgiram para ajudar organizações a: automatizar testes e criar um pipeline mais desenvolvido de desenvolvimento e lançamento. 
Dentre as ferramentas estão: 
GitHub (armazenamento de código-fonte)
Puppet, Chef e Ansible (gerenciamento de configurações);
Nagios (monitoramento como as mudanças no código afetam o ambiente)
Splunk para inteligência operacional. 
Não existem "produtos DevOps"
‹#›
Ferramentas
‹#›
‹#›
Cadeia de ferramentas (toolchain)
Código: desenvolvimento e revisão, controle de versão e de fusão (merging)
Construção (build): integração contínua, build status
Teste: Testes e resultados determinam o desempenho
Empacotamento: repositório de artefatos, etapas de pré-implantação de aplicativos
Lançamento (release): controle de alterações, aprovação de lançamentos, automação de lançamento
Configuração: configuração da infraestrutura e gerenciamento, infraestrutura como código
Monitoramento: monitoramento do desempenho das aplicações e da experiência do usuário
‹#›
‹#›
Ferramentas
‹#›
‹#›
Ferramentas (cont.)
ELK
ElasticSearch
LogStash
Kibana
Beats
The ELK Stack is the most common log analytics solution in the modern IT world. It collects logs from all services, applications, networks, tools, servers, and more in an environment into a single, centralized location for processing and analysis. We use it for analytical purposes (e.g., to troubleshoot problems, monitor services, and reduce the time it takes to solve operational issues). Another use for this tool is for security and auditing (e.g., to monitor changes in security groups and changes in permissions). After receiving alerts on these issues, it is easy to act on unauthorized users and activities. We also use ELK for business intelligence, such as monitoring our users and their behavior. You can set up your own ELK or buy it as-a-service. We’ve written a guide for the community on using ELK to monitor your application performance.
‹#›
‹#›
Dev | Ops
Minha missão é desenvolver, criar, evoluir, corrigir, mudar... 
Minha missão é manter a infra funcionando estável 24x7x365
‹#›
‹#›
DevOps
‹#›
‹#›
CALMS
Culture (Cultura)
Automation (Automação)
Lean (pensamento "Enxuto")
Measurement (Métricas)
Sharing (Compartilhamento de conhecimentos e experiências)
‹#›
‹#›
Infraestrutura Ágil
Automação 
Automatização de tarefas repetitivas aplicadas na infraestrutura
Provisionamento (de ambientes)
Orquestração 
Interação em tempo real com o ambiente
Deploy (implantação)
Métricas
Medição e acompanhamento de informações chave sobre a infraestrutura e seu desempenho 
‹#›
‹#›
Entrega Contínua (Continuous Delivery)
Conjunto de princípios e práticas para redução de custos, tempo e riscos na entrega de mudanças incrementais aos usuários
- Jez Humble
Fonte: The Case for Continuous Delivery | ThoughtWorks
‹#›
‹#›
Entrega Contínua
Capacidade de ter todos os tipos de alterações: 
novas funcionalidades, alterações de configurações, correções de erros (bugs) e experimentos em produção, ou nas mãos dos usuários, de forma segura e ágil de forma sustentável.
Tornar a implantação uma atividade rotineira que pode ser executada sob demanda.
Garantir que o código sempre esteja em um estado que possa ser implantado, mesmo que o time de desenvolvimento realize alterações diariamente. 
 Eliminar as etapas de integração, teste e hardening que geralmente são feitas depois do "código pronto"
‹#›
Entrega Contínua
(Continous Delivery)
‹#›
Pipeline
Planejar
Codificar
Compilar
(Build)
Testar
Lançar
(Release)
Implantar
(Deploy)
Operar
DevOps
Integração Contínua
(Continous Integration)
Desenvolvimento Ágil
‹#›
‹#›
Linha de Produção (pipeline)
‹#›
‹#›
Retroalimentação
‹#›
‹#›
Movimento DevOps
Cascata
Ágil
Enxuto (Lean)
Integração Contínua
Implantação Contínua
Entrega Contínua
Operação Contínua
‹#›
‹#›
Automação
‹#›
‹#›
DevOps 2.0
‹#›
‹#›
Livros
‹#›
‹#›
Livros
‹#›
‹#›
Introduction to DevOps: Transforming and Improving Operations (The Linux Foundation)
Introduction to DevOps (Microsoft)
Cursos
Introduction to DevOps: Transforming and Improving Operations https://www.edx.org/course/introduction-devops-transforming-linuxfoundationx-lfs161x
‹#›
‹#›
DevOpsDays
 
All Day DevOps
15 fusos horários. 15 horas. 54 sessões. 
Global Conferência Global Online Ao Vivo - 15 Nov 2016
Eventos
Fonte: https://www.devopsdays.org/events/2016-brasilia/welcome/
DevOpsDay Brasília 2016 https://www.devopsdays.org/events/2016-brasilia/welcome/
‹#›
‹#›
DevOps está diretamente relacionado a um melhor feedback entre as áreas de TI.
DevOps é um movimento, é um conceito, é uma cultura e uma filosofia, e não existe uma explicação fácil.
DevOps possibilita diminuição dos riscos de mudanças através do uso de um ferramental adequado e adoção de uma cultura específica.
DevOps busca entregar sistemas melhores, com menor custo, fazendo isto de forma mais rápida e com menor risco.
DevOps envolve primariamente as áreas de Operações (infra) e Desenvolvimento
Conclusão
‹#›
‹#›
Conclusão (cont.)
DevOps é aplicação de metodologia ágel tanto em Dev quanto em Ops
DevOps só funciona se as equipes de Dev e Ops estiverem dispostas a ceder, mudar sua cultura, e ajustar seus métodos de trabalho
DevOps não é um cargo, tão pouco um setor, ou um departamento, é uma cultura
DevOps não está restrito ao ambiente das startups, é possível utilizar essa cultura no ambiente de qualquer tipo de organização
DevOps não é necessariamente algo novo, muitas boas práticas já são conhecidas. A coleção de práticas não é novidade para muitas pessoas, mas para alguns serve como uma referência para aplicar mudanças necessárias.
‹#›
‹#›
What is DevOps In Simple English (legendado)
Fonte: https://youtu.be/_I94-tJlovg
DevOps in Simple English: https://youtu.be/_I94-tJlovg
‹#›
Obrigado!
Alex Moura
alex.moura@rnp.br
Rede Nacional de Ensino e Pesquisa – RNP
‹#›
Referências
What is DevOps? - In Simple English (Video)
Velocity 09: John Allspaw and Paul Hammond - 10+ Deploys Per Day: Dev and Ops Cooperation in Flickr (Video)
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
The (Short) History of DevOps (Video)
The Case for Continuous Delivery | ThoughtWorks
The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win ‹ BookDL
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
How Many Servers Can One Admin Manage? | Data Center Knowledge
Facebook Ops: Each Staffer Manages 20,000 Servers
Ballmer: Microsoft has 1 Million Servers | Data Center Knowledge
A Day in the Life of A Facebook Engineer | Data Center Knowledge
‹#›
‹#›
Referências
Google Envisions 10 Million Servers | Data Center Knowledge
How Google Routes Around Outages | Data Center Knowledge
Site Reliability Engineering - O'Reilly Media
Infrastructure as Code - O'Reilly Media
Book Review: Site Reliability Engineering - How Google Runs Production Systems
Quem está fazendo DevOps? | Portal Melhoria
As Dificuldades na Implementação de DevOps | Portal Melhoria
Os fantásticos benefícios do DevOps | Portal Melhoria
A história por trás de DevOps | Portal Melhoria
DevOpsDay Porto Alegre 2016 - André Dourado - TI na prática
‹#›
‹#›
AVALIE SEUS CONHECIMENTOS
SOBRE DEVOPS
‹#›
‹#›
Qual opção descreve DevOps de forma mais precisa?
DevOps é uma abordagem cultural para melhorar as comunicações entre os times de desenvolvimento e operações em uma organização
DevOps é o termo que descreve alguém que modera as trocas entre desenvolvimento e operações
DevOps é o nome de uma função para um funcionário com habilidades para trabalhar tanto em operações quanto em desenvolvimento
Todas as acima
Teste seus conhecimentos
‹#›
‹#›
Qual opção descreve DevOps de forma mais precisa?
DevOps é uma abordagem cultural para melhorar as comunicações entre os times de desenvolvimento e operações em uma organização
DevOps é o termo que descreve alguém que modera as trocas entre desenvolvimento e operações
DevOps é o nome de uma função para um funcionário com habilidades para trabalhar tanto em operações quanto em desenvolvimento
Todas as acima
Teste seus conhecimentos
✅
‹#›
‹#›
2. O movimento DevOps é uma consequência de qual metodologia de desenvolvimento de software?
Ágil (Agile)
Cascata (Waterfall)
Algoritmos baseados em promessa (Promise-based algorithms)
Desenvolvimento baseado em Testes e Modelos
(Test-driven development and model-driven development)
Teste seus conhecimentos
‹#›
‹#›
2. O movimento DevOps é uma consequência de qual metodologia de desenvolvimento de software?
Ágil (Agile)
Cascata (Waterfall)
Algoritmos baseados em promessa (Promise-based algorithms)
Desenvolvimento baseado em Testes e Modelos
(Test-driven development and model-driven development)
Teste seus conhecimentos
✅
‹#›
‹#›
3. Qual dessas ferramentas não está associada com DevOps?
Chef
Puppet
Juju
Liebert MPX
Teste seus conhecimentos
‹#›
‹#›
3. Qual dessas ferramentas não está associada com DevOps?
Chef
Puppet
Juju
Liebert MPX
Teste seus conhecimentos
✅
‹#›
‹#›
4. O movimento DevOps evoluiu para resolver qual problema?
Ambientes de TI virtualizados, cada vez mais complexos
Necessidade de múltiplos lançamentos de software em curto prazo; às vezes muitos em um só dia
A tradicional abordagem de silos para desenvolvimento e implantação de aplicativos
Todas as acima
Teste seus conhecimentos
‹#›
‹#›
4. O movimento DevOps evoluiu para resolver qual problema?
Ambientes de TI virtualizados, cada vez mais complexos
Necessidade de múltiplos lançamentos de software em curto prazo; às vezes muitos em um só dia
A tradicional abordagem de silos para desenvolvimento e implantação de aplicativos
Todas as acima
Teste seus conhecimentos
✅
‹#›
‹#›
5. Ferramentas de automação dependem de habilidades de codificação.
Verdadeiro
Falso
Teste seus conhecimentos
‹#›
‹#›
5. Ferramentas de automação dependem de habilidades de codificação.
Verdadeiro
Falso
Teste seus conhecimentos
✅
‹#›
‹#›
6. Qual opção não é uma prioridade ao escolher uma ferramenta p/ DevOps?
Compatibilidade com plataformas de nuvem, como Amazon Web Services
Integração com sensores de ambiente no piso do data center
Reporte e controle de integração com ferramentas de colaboração
Comunicação com outras ferramentas gerenciamento ou monitoramento
Teste seus conhecimentos
‹#›
‹#›
6. Qual opção não é uma prioridade ao escolher uma ferramenta p/ DevOps?
Compatibilidade com plataformas de nuvem, como Amazon Web Services
Integração com sensores de ambiente no piso do data center
Reporte e controle de integração com ferramentas de colaboração
Comunicação com outras ferramentas gerenciamento ou monitoramento
Teste seus conhecimentos
✅
‹#›
‹#›
7. A maioria das aplicações são escritas especificamente usando a metodologia DevOps.
Verdadeiro
Falso
Teste seus conhecimentos
‹#›
‹#›
7. A maioria das aplicações são escritas especificamente usando a metodologia DevOps.
Verdadeiro
Falso
Teste seus conhecimentos
✅
‹#›

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais