Baixe o app para aproveitar ainda mais
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 ✅ ‹#›
Compartilhar