1. DevOps pela visão de um QA
08 FEBRUARY 2016 on DevOps
É sabido que comumente as organizações tendem a separar os
"departamentos" de Desenvolvimento, Operações de TI e Controle de
Qualidade, segmentando desta forma os processos, dificultando a
comunicação e assim criam um abismo entre os profissionais. Além de
adicionar um fator estressante e de alto risco nas entregas das at
destas várias equipes envolvidas.
O atual e popular termo DevOps (
tem se apresentado como uma união entre esses "departamentos" e que vem
promovendo um conjunto de processos e métodos para levar ao novo
pensamento sobre a comunicação e a colaboração entre esses.
Mas antes de mais nada, vamos voltar um pouco e conhecer de onde nasceu.
Um pouco de história
Segundo consta o termo não nasceu
só e isolado, desta forma sabe
sobre a real origem do termo, no entanto
relevantesapontam que o mesmo nasceu em
DevOps pela visão de um QA
DevOps, Infraestrutura, Desenvolvimento,
É sabido que comumente as organizações tendem a separar os
mentos" de Desenvolvimento, Operações de TI e Controle de
Qualidade, segmentando desta forma os processos, dificultando a
comunicação e assim criam um abismo entre os profissionais. Além de
adicionar um fator estressante e de alto risco nas entregas das at
destas várias equipes envolvidas.
O atual e popular termo DevOps (amálgama de Desenvolvedor e Operações
tem se apresentado como uma união entre esses "departamentos" e que vem
njunto de processos e métodos para levar ao novo
pensamento sobre a comunicação e a colaboração entre esses.
Mas antes de mais nada, vamos voltar um pouco e conhecer de onde nasceu.
Segundo consta o termo não nasceu - ou começou a ser citado -
só e isolado, desta forma sabe-se que vários locais apresentam algumas pistas
sobre a real origem do termo, no entanto informações mais
apontam que o mesmo nasceu em meados de 2008. Ano este que
, QA, Sysadmin
mentos" de Desenvolvimento, Operações de TI e Controle de
Qualidade, segmentando desta forma os processos, dificultando a
comunicação e assim criam um abismo entre os profissionais. Além de
adicionar um fator estressante e de alto risco nas entregas das atividades
amálgama de Desenvolvedor e Operações),
tem se apresentado como uma união entre esses "departamentos" e que vem
njunto de processos e métodos para levar ao novo
Mas antes de mais nada, vamos voltar um pouco e conhecer de onde nasceu.
em um local
se que vários locais apresentam algumas pistas
meados de 2008. Ano este que
2. começaram a utilizar então o termo Infraestrutura Ágil em uma série de
listas de discussão e também nessa época no Agile 2008 sugiram algumas
conversas que abordavam o tema de como a metodologia ágil serviria para a
administração de infraestrutura, sendo assim inspirada no modelo ágil de
desenvolvimento.
Apesar de que foi em uma lista europeia com os estusiastas Patrick Debois
(@patrickdebois) e Andrew Shafer (@littelidea) que o terno agile-
sysadmin foi inicialmente citado e abordado com propriedade necessária para
que desse inicio a popularização do mesmo e fosse criada a ponte entre
developers e sysadmins.
Ainda assim, apenas em 2009 que o termo foi efetivamente criado na
conferência Velocity da O’Reilly, por meio da apresentação do trabalho do
John Allspaw (Etsy.com) e Paul Hammond (Typekit): 10+ Deploys Per Day:
Dev and Ops Cooperation at Flickr.
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr from John Allspaw
O material apresentado acabou deixando Patrick Debois ainda mais
entusiasmado com o tema, que nasceu a ideia de um encontro, o qual passou
a ser chamado de DevOpsDays, que ocorreu ainda no mesmo ano em Ghent e
nos anos que se seguiram os encontros foram levados à outras localidades de
diversos países, disseminando assim um discreta revolução no mundo da TI.
Agora vamos entender a relação Infraestrutura versus Desenvolvimento
Infra Vs Dev
De um lado temos um grupo de profissionais cuja "missão" é manter e garantir
que os sistemas estejam funcionando, realizando assim deploys e rollbacks das
aplicações. Monitorando o funcionamento, a performance, avaliando e
propondo melhorias, mantendo assim as aplicações que estão sobre seus
cuidados e responsabilidade em pleno funcionamento. Em outras palavras, é
de sua responsabilidade manter o ambiente de produção perfeitamente
intacto. Além de também possuirem preocupações com a segurança,
estabilidade e nível de serviço (SLA).
E do outro um segundo grupo de profissionais que trabalham aliados a lógica e
criatividade. Estando sempre criando, aprimorando e validando suas
aplicações, resultando em novas versões, que precisam ser disponibilizadas
aos seus clientes.
Em resumo, a Infraestrutura se preocupa em manter Protegido o Valor do
Negócio. Enquanto o Desenvolvimento mantém sua preocupação ligada à
Aumentar o Valor do Negócio.
3. E desta forma nasce naturalmente um conflito de interesses, onde de um lado
os desenvolvedores querem lançar as aplicações no menor tempo possível,
enquanto os sysadmins de outro precisam ter certeza absoluta de que a
aplicação é estável e não vai gerar nenhum tipo de incidente.
O Conflito
Enquanto a equipe de desenvolvimento está sempre em busca de métodos
mais ágeis e eficientes para desenvolver um software, o pessoal de operações
procura um jeito de gerenciar de forma mais eficaz a operação de TI. E esse
conflito foi e é latente no mundo de TI.
Para gerenciar tal, algumas empresas apresentam regras rígidas, que por
exemplo permitem - ou restrigem - apenas um deploy por semana, em casos
mais extremos apenas um por mês e isso não combina em nada com o
Desenvolvimento Ágil. Forçando assim que a Infraestrutura por sua vez se
desenvolvesse. Onde em outro momento o cenário era de um deploy por mês,
passou a ser vários por dia.
Esse cenário gerou um novo impasse, na escala que a Infraestrutura não daria
vazão as demandas, o Desenvolvimento por sua vez, não possuia infra
adequada para fazer o desenvolvimento de forma contínua. Além de que o
desenvolvimento não possuia conhecimentos e não tem como prever aspectos
importantes relativos a infra.
4. Embora sejam áreas diferentes, elas estão interligadas e o profissional DevOps
é o responsável por isso.
Integrar Equipes
Na cultura DevOps, os profissionais das duas áreas precisam ter
conhecimentos sobre ambas. Isso significa que o sysadmin deve ter noções de
programação e o desenvolvedor necessita de algum conhecimento sobre
sistemas operacionais e demais aspectos de uma infraestrutura de TI.
• A infra previsa evoluir, e precisa fazer isto rapidamente: começar a trabalhar
de forma automatizada e dinâmica, precisa ser mais veloz para subir novos
ambientes ou mesmo reconstruir/duplicar os ambientes existentes para suprir
as necessidades.
• O dev precisa ter controle de todas as fases do deploy: conseguir passar para
infra suas necessidades de forma clara, e tem que se esforçar para fazer a
infra entender isto.
Assim a chave está na colaboração entre essas equipes e tem basicamente
quatro eixos principais: cultura, automação, avaliação e compartilhamento.
• Cultura: colaboração / fim das divisões / relação saudável / mudança de
comportamento
• Automação: deploy / controle / monitoração / gerência de configuração
• Avaliação: métricas / medições / performance / logs
• Compartilhamento: feedbacks / boa comunicação
5. Imagens ilustram que implementar uma métrica pode representar apenas
uma linha de código, resultando em um gráfico no Graphite
Essa melhoria na relação e colaboração aumenta a eficiência e reduz os riscos
da produção associados com mudanças frequentes.
Onde atua esse profissional?
O DevOps terá um pé na infra e outro no dev, em alguns casos também poderá
ter o pé na área de garantia de qualidade (QA). Tendo ele como o meio de
unir infra, dev e qualidade.
Ele entende profundamente dos tocantes de infraestrutura e tem
conhecimento suficiente e de forma ampla dos processos de desenvolvimento.
• Quanto ao processo de desenvolvimento:
Deve participa dos projetos de desenvolvimento desde o seu nascimento, onde
o seu foco é oferecer os recursos para a equipe de desenvolvimento possa
trabalhar da forma mais eficiente, além disto, com sua ótica de infra ele
toma todas as precauções para que os aspectos de segurança, monitoramento,
eficiência e escalabilidade sejam observados desde o primeiro momento do
projeto.
Além de que ainda precisará estudar todo o processo de desenvolvimento e
definir - em conjunto com o dev - quais ferramentas que irão permitir um
processo de desenvolvimento e entrega contínua. Após essa definição ele vai
ser o responsável por instalar e manter toda essa infra.
Entretanto ainda existem alguns profissionais de DevOps que conseguem até
avaliar o código e identificar problemas relacionados à performance, assim
esse tipo de visão sistêmica e raciocínio rápido são diferenciais muito
importantes para uma entrega com mais qualidade.
• Quanto aos tocantes de infraestrutura:
Acaba por ser o principal agente das mudanças, sendo ele que vai e deve
puxar para iniciar a implantação de uma infraestrutura ágil, por dominar as
ferramentas de orquestração, gerência de configuração e provisionamento e
vai usar esse conhecimento para que a equipe passe a trabalhar a
infraestrutura como código.
Também vai ajudá-los a mudar seu comportamento e cultura, vai orientá-los
nos métodos ágeis de execução de atividades, aqueles inspirados no SCRUM e
KANBAN.
Ganhos
6. No relatório “2013 State of DevOps Report”, publicado pela Puppet Labs, foi
então possível notar um grande interesse das corporações pelo movimento.
Tal pesquisa, realizada com cerca de quatro mil profissionais de TI — tanto de
desenvolvimento quanto de operações — mais da metade (63%) admitiu que as
empresas nas quais trabalham já adotam o conceito, o que mostra que a
adoção desta prática está cada dia maior.
Essa demanda por DevOps resultou em uma valorização maior do que um
analista de suporte, por exemplo, o que resulta em um salário também maior.
• Em relação à infra:
• Infraestrutura como código (equipe para de administrar e passa a desenvolver
a infra)
• Infra mais eficiente e rápida usando métodos ágeis
• Equipe de Infra mais organizada
• Equipe de Infra se comunicando melhor
• Infra fazendo mais em menos tempo com menos gente
• Ambientes de gerência de configuração, orquestração e provisionamento
implantados
• Deploys de infra (novos ambientes) mais rápidos e seguros => entrega rápida
• Ambiente padronizado e sob-controle
• Feedback rápido em todas as atividades de infra
• Em relação ao dev:
• Dev tem ambiente mais adequado para trabalhar (dev/teste/prod)
• Dev passa a contar com ambiente de desenvolvimento contínuo
• Dev passa a contar com testes automatizados
• Deploys de apps (novas versões) mais rápidos e seguros => entrega rápida
• Feedback rápido em todas as fases de desenvolvimento
7. Em suma, um DevOps deve atuar como um agente de mudanças, integrando
desenvolvimento e operações. Para isso, é preciso investir em conhecimento e
atualização constante.
Links Relacionados:
DevOps
O que é DevOps - Wikipedia
DevOps de zero a 100%: Níveis e passos de adoção
Discutindo DevOps na Prática
The Convergence of DevOps
http://www.slideshare.net/KrisBuytaert/devops-the-future-is-here-its-just-
not-evenly-distributed-yet
http://www.slideshare.net/jedi4ever/devops-is-a-verb-its-all-about-
feedback-13174519
http://www.slideshare.net/jedi4ever/devops-the-war-is-over-if-you-want-it
http://www.slideshare.net/jedi4ever/devops-tools-fools-and-other-smart-
things