Академический Документы
Профессиональный Документы
Культура Документы
Explorando
a DevOps
O que ela é e por que
é importante para sua
empresa
CONCLUSÃO 22
Introdução
Existem muitas opiniões diferentes sobre a DevOps, mas uma coisa é
certa: ela é real. Em poucos anos, as manchetes sobre DevOps foram de
“Mas o que é DevOps?” 1 e “DevOps é uma fraude mal elaborada”2 para
“DevOps chegou para ficar”3 e “Três razões por que sua startup vai sofrer
sem DevOps.”4 Desde pequenas startups até as maiores empresas do
mundo, o setor de TI está adotando a DevOps em ritmo acelerado.
• O que é DevOps?
• De onde surgiu?
1 James Turnbull, “What the F*** is DevOps?”, publicação em blog, https://coderwall.com/p/zhf8gq, maio de 2010.
2 Ted Dziuba, “Devops is a Poorly Executed Scam”, publicação em blog, http://widgetsandshit.com/teddziuba/2011/03/devops-scam.html, março de 2011.
3 “The New Normal of DevOps”, white paper da CA Technologies, http://www.ca.com/us/~/media/Files/whitepapers/the-new-normal-of-devops.pdf, dezembro de 2013.
4 “Three Reasons Your Startup Will Suffer Without DevOps”, Readwrite, http://readwrite.com/2014/01/01/three-reasons-your-startup-needs-devops-or-else.
5 Damon Edwards, “The History of DevOps”, IT Revolution Press, http://itrevolution.com/the-history-of-devops.
O que é DevOps?
O que é DevOps?
O termo DevOps nasceu em 2009 por Patrick Debois, que se
tornou um de seus gurus. O termo foi formado pela combinação de
“desenvolvimento” e “operações”, o que oferece um ponto de partida
para entender exatamente o que as pessoas querem dizer quando
falam “DevOps”. É importante notar que DevOps não é um processo,
tecnologia nem um padrão. Muitos devotos se referem à DevOps
como uma “cultura”, um termo que a New Relic se favorece. Nós
também utilizamos o termo “movimento DevOps”, quando falamos
sobre tópicos como taxas de adesão e tendências para o futuro, e
“ambiente DevOps”, para nos referirmos a uma organização de TI que
tenha adotado a cultura DevOps.
Este eBook ainda terá muito a dizer sobre DevOps, mas, para
começar, precisamos de uma definição prática:
6 “Big Data Drives Rapid Changes in Infrastructure and $232 Billion in IT Spending Through 2016”, Gartner Research, outubro de 2012.
7 Entrevista, 13 de março de 2014
De onde surgiu
a DevOps?
8 Ernest Mueller, “What is DevOps?” the agile admin, http://theagileadmin.com/what-is-devops (dezembro de 2011).
9 Aniket Deshpande, “DevOps” an Extension of Agile Methodology – How It will Impact QA?”, Software Testing Help, http://www.softwaretestinghelp.com/devops-and-software-testing.
10 Jack Crews, “Agile Values, Principles and Practices”, apresentação online, http://www.slideshare.net/jackcrews/agile-values-principles-and-practices.
11 Ernest Mueller, “Q&A: Ernest Mueller on Bringing Agile to Operations”, http://dev2ops.org/2010/04/qa-ernest-mueller-on-bringing-agile-to-operations, 2010.
12 Niek Bartholomeus, “My experience with introducing DevOps in a traditional enterprise”, http://niek.bartholomeus.be/2013/01/28/introducing-a-devops-culture-in-a-traditional-enterprise, 28 de janeiro de 2013.
13 Ernest Mueller, “A DevOps Manifesto”, the agile admin, http://theagileadmin.com/2010/10/15/a-devops-manifesto, 15 de outubro de 2010.
Como a DevOps
“funciona”?
Colaboração
Em vez de ficarem se acusando, o desenvolvimento e as operações de TI
Integração contínua
Você geralmente encontra integração contínua nas culturas DevOps porque
trabalham juntos (de verdade). Embora a falta de conexão entre esses dois
ela surgiu de uma cultura de Agile, sendo que a integração contínua é um
grupos tenha gerado o ímpeto para sua criação, a DevOps se estende para
princípio fundamental da abordagem de Agile:
muito além da organização de TI, pois a necessidade de colaboração abrange
todos que participam do fornecimento de software (não apenas entre Dev e
A integração contínua (IC) é uma prática de engenharia de software
Ops, mas todas as equipes, inclusive testes, gestão de produtos e executivos):
na qual mudanças isoladas são imediatamente testadas e relatadas
quando são adicionadas a uma base de códigos maior. O objetivo da IC
A DevOps bem-sucedida requer corporatividade, desenvolvimento,
é oferecer retorno rápido, de modo que, se um defeito for introduzido
controle de qualidade e organizações de operações para coordenar e
na base de código, ele poderá ser identificado e corrigido o mais rápido
desempenhar papeis significativos em diferentes fases do ciclo de vida
possível. A regra mais comum é que cada membro da equipe envie o
do aplicativo. Pode ser difícil, até impossível, eliminar os silos, mas a
trabalho diariamente (ou com mais frequência) e que uma compilação
colaboração é essencial.14
seja realizada com cada alteração significativa.15
14 Laurie Wurster et al, “Emerging Technology Analysis: DevOps a Culture Shift, Not a Technology”, relatório da Gartner, agosto de 2013.
15 Margaret Rouse, “Continuous Integration (CI)”, SearchSoftwareQuality, http://searchsoftwarequality.techtarget.com/definition/continuous-integration, julho de 2008.
Contudo, para alcançar esse benefício, os desenvolvedores precisam se Em vez de fazer do teste uma sequência separada e longa no processo
comunicar entre si com muito mais frequência, o que vai contra a imagem ainda maior de implantação, os praticantes do fornecimento contínuo
daquele programador gênio e solitário que trabalha durante semanas lançam pequenas atualizações quase constantemente, avaliam seu
ou meses em um módulo até estar “pronto” para mostra-lo ao mundo. A desempenho e rapidamente as revertem, se for necessário.18
semente da comunicação aberta e frequente floresce na DevOps.
Embora possa ser uma surpresa, as funções de operações têm um papel
É fácil negligenciar a parte de testes da DevOps... até você se dar mal. Como As operações têm acesso aos padrões de carga e uso de produção.
explica um especialista no setor, “o custo da qualidade é o custo da falha”.16 Esses padrões são essenciais para a equipe de controle de qualidade
Embora a integração e o fornecimento contínuos dominem as manchetes, os criar um teste de carga que exercite adequadamente o aplicativo.19
testes contínuos estão, aos poucos, encontrando seu lugar como uma parte
igualmente crucial da DevOps. As operações também podem garantir que as ferramentas de gerenciamento
estejam implantadas e os ambientes de teste configurados adequadamente.
Os testes contínuos não são apenas uma função de controle de qualidade, Elas podem participar de testes funcionais, de carga, estresse e vazamento,
na verdade, eles começam no ambiente de desenvolvimento. Os dias além de oferecer análises com base na experiência com aplicativos parecidos
em que os desenvolvedores podiam simplesmente jogar o código nas em fase de produção.
mãos do controle de qualidade e dizer “Toma aí” acabaram. Em um
ambiente DevOps, todo mundo se envolve nos testes. Os desenvolvedores A recompensa dos testes contínuos vale o esforço. A função de testes em
certificam-se de, além de entregar códigos sem erros, fornecer conjuntos de um ambiente DevOps ajuda os desenvolvedores a equilibrar qualidade e
dados de teste. Eles também ajudam os engenheiros de teste a configurar o velocidade. Usar ferramentas automatizadas reduz o custo dos testes e permite
ambiente de teste de modo a ficar o mais parecido possível com o ambiente que os engenheiros de teste aproveitem seu tempo com mais eficiência. Acima
de produção.17 de tudo, os testes contínuos encurtam os ciclos de teste permitindo que testes
de integração antecipados no processo.
Já para o controle de qualidade, a maior necessidade é velocidade.
Afinal, se o ciclo de controle de qualidade levar dias ou semanas, você
voltará àquele longuíssimo cronograma típico do modelo em cascata. Os
engenheiros de teste enfrentam o desafio das respostas rápidas, não só por
terem que automatizar grande parte do processo de teste, mas por redefinir
as metodologias de teste:
16 Wayne Ariola, SYS-CON.tv, entrevista na 13º International Cloud Expo®, http://devopssummit.sys-con.com/node/2912573, 4 a 7 de novembro de 2013.
17 Sanjeev Sharma, “Understanding DevOps – Part 4: Continuous Testing and Continuous Monitoring”, publicação em blog, http://sdarchitect.wordpress.com/2012/10/30/understanding-devops-part-4-continuous-testing-and-continuous-monitoring, outubro de 2012.
18 http://www.pwc.com/us/en/technology-forecast/2013/issue2/features/devops-continuous-delivery.jhtml.
19 Jim Hirschauer, “DevOps Scares Me – Part 4: Dev and Ops Collaborate Across the Lifecycle”, DZone, http://java.dzone.com/articles/devops-scares-me-part-4-dev, agosto de 2013.
O fato é que a DevOps está evoluindo tão rapidamente que é difícil até tradicionais não ajudariam essas pequenas empresas a competir com
mesmo caracterizar o nível de adesão de maneira significativa. Contudo, corporações muito maiores.”28
Engenheiros de teste Uma estratégia de DevOps eficaz permite que a organização analise,
pela primeira vez e em tempo real, dados de análise da web, dados
O impacto que a DevOps teve no setor de testes pode ser resumido em duas
de máquina e dados estruturados existentes, para obter uma visão
palavras: Chaos Monkey. A Netflix desenvolveu essa ferramenta notável e
completa de como os sistemas voltados aos clientes estão ou não
inovadora para quebrar o seu próprio software!29
fornecendo valor comercial. A DevOps permite que as organizações
entendam o comportamento de clientes individuais, quais ações eles
O Chaos Monkey funciona sob o princípio de que a melhor maneira de
tomam e como seu comportamento se compara ao de outros clientes.
evitar falhas grandes é falhando constantemente. O software simula
Ela permite que uma organização execute análises hipotéticas de
falhas em instâncias de serviços, derrubando uma ou mais máquinas
variações em sua interface do usuário ou ofertas de produto. Com base
virtuais. Assim, é possível se preparar para falhas maiores inesperadas,
nos resultados dessas análises preditivas e da experiência de campo real,
em vez de só ficar esperando a catástrofe acontecer para então ver se é
o lado do “desenvolvimento” de Agile da DevOps permite, então, que as
possível administrá-la. 30
organizações respondam às necessidades de mercado mais rapidamente
A DevOps requer novas maneiras para testar softwares, o que desafia os do que nunca. 31
engenheiros de testes a inovarem no setor, exatamente o estimulo que
Vamos esmiuçar isso um pouco. Em um ambiente de DevOps, as
levou à criação do Chaos Monkey. Com o provisionamento automatizado, os
partes comerciais interessadas têm maior influência sobre o processo
engenheiros de teste podem provisionar um ambiente de teste virtualmente
de desenvolvimento. Graças ao espírito colaborativo da DevOps, os
idêntico ao ambiente de produção, resultando em testes mais precisos
desenvolvedores realmente se importam com os requisitos comerciais e
e maior capacidade de previsão do desempenho de novos lançamentos.
criam relações com os gerentes de produto. A DevOps também fornece aos
Como com os outros grupos, a produtividade dos engenheiros de teste
gerentes de produtos retorno imediato sobre o impacto de novos preços,
aumenta graças à automatização e à colaboração.
recursos e pacotes de produtos, permitindo que eles testem as variações e
Tecnicamente, a DevOps só diz respeito à função de TI da empresa. Contudo, Gerentes de linha de negócios adoram a DevOps porque o software entra
aqueles que fizeram a transição vão dizer que a DevOps muda tudo: no mercado mais rapidamente, dando a eles a vantagem competitiva que
desejam. Como a DevOps melhora a estabilidade do sistema, os clientes
enfrentam menos interrupções e são, portanto, mais leais, o que é a solução
ideal para as altas taxas de cancelamento.
29 http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html.
30 Margaret Rouse, “Chaos Monkey”, WhatIs.com, http://whatis.techtarget.com/definition/Chaos-Monkey, agosto de 2013.
31 Kapil Apshankar, “How DevOps Drives Real-Time Business Growth”, white paper da Cognizant, http://www.cognizant.com/InsightsWhitepapers/How-DevOps-Drives-Real-Time-Business-Growth.pdf, 2013.
Conclusão
Cinco anos após o grande experimento da DevOps, os dados são claros: Ganhos como esses, contudo, não são obtidos facilmente. Para implantar
ela chegou para ficar e por motivos muito bons. Muitos acharam que seria códigos com sucesso mais frequentemente ao mesmo tempo em que
impossível, mas a DevOps obteve sucesso ao integrar usuários empresariais, mantém seus sistemas na ativa, você precisa da habilidade de monitorar
desenvolvedores, engenheiros de teste e administradores de sistemas em precisamente todas as alterações que acontecem no seu ambiente. A New
um único fluxo de trabalho focado em atender às exigências dos clientes. Relic oferece os dados necessários para analisar e monitorar os novos
Por que eles fariam isso voluntariamente? Porque é vantajoso para todo recursos que a equipe de Dev fornece, ao mesmo tempo em que garante a
mundo. Desenvolvedores e administradores de sistemas param de discutir estabilidade que a equipe de Ops requer. Para aprender mais sobre DevOps
e começam a se apoiar, acalmando os ânimos de todo mundo. Os gerentes e como a New Relic pode ajudar sua organização a fazer a transição com
empresariais ficam felizes porque eles realmente recebem os produtos de sucesso, visite: newrelic.com/devops.
software de que precisam para vender produtos e serviços. Os executivos
observam suas amadas métricas do painel de controle, como receita, “Uma das melhores mensagens que a DevOps tem para
satisfação do cliente e confiabilidade do sistema, seguindo firme e forte. E todos nós é: se você não gosta do jeito como alguém está
todo mundo consegue fornecer os melhores resultados e experiência geral fazendo algo, converse com a pessoa e descubra o porquê.
possíveis para o cliente. Você provavelmente aprenderá que haviam ótimas razões
para tudo, inclusive “Eu não sabia como fazer isso.”34