Integração ITIL e DevOps
O Cenário atual, com o alto grau de digitalização das empresas e de suas atividades, leva todos os Gestores de TI a trabalharem a melhoria dos seus processos para conseguir atender com eficiência e eficácia as demandas do negócio neste novo cenário de rápidas mudanças. A tecnologia esta mudando numa velocidade sem precedentes e a maneira como você gerencia e trabalha o seu ciclo de vida da aplicação (ALM) faz uma tremenda diferença na sua capacidade de dar respostas as necessidades do negócio. Precisamos introduzir agilidade neste fluxo.
A proposta do movimento DevOps é a Integração dos ambientes de desenvolvimento e operações e apesar de não estar totalmente sedimentado e assim ter várias visões diferentes no mercado sobre o que é DevOPS, alguns elementos chaves são senso comum, o termo cunhado Calms , trata desses pilares e propõe aos gestores monitorarem a capacidade de sua TI nestas competências.
Culture – Own the change to drive collaboration and communication
Automation – Take manual steps out of your value chain
Lean – Use lean principles to enable higher cycle frequency
Metrics – Measure everything and use data to refine cycles
Sharing – Share experiences, successful or not, to enable others to learn
Observe que a implantação de DevOps é uma mudança fortemente apoiada na mudança do Mindset predominante nas TI’s, e que com a dor dos diversos problemas de deployment ocorrido no passado exige um envolvimento e aculturamento das equipes de Dev e Ops, para se conseguir uma integração entre elas, sendo assim se prepare para um grande esforço de mudança cultural. Aqui vai a primeira dica:
1- Antes de buscar apoio fora, procure na sua equipe alguém que tenha estudado ou que tenha conhecimento sobre DevOps, todos na Tecnologia são muito curiosos e antenados e muitas vezes nos surpreendemos por termos na nossa equipe alguém que é fera em um assunto, mas que por força das suas atribuições, nunca temos visibilidade desta competência. Aqui se torna visível a importância de termos uma matriz de competência dos nossos colaboradores (ITIL), mas isso é assunto para outro post.
2- Faça o levantamento do fluxo da sua estrutura de integração e deployment, levante todo o seu ciclo de ALM ou SDLC, pode ser em post-it acompanhando a execução das atividades, ou se quiser colocar em linguagem de processos, use Bpmn e faça um walk-through, é a mesma coisa! Gostamos de utilizar Bpmn, pois fica fácil de montar uma apresentação gráfica de como fazemos as coisas, mas o post-it pode permitir você criar interatividade na reunião, construindo o fluxo e levantando divergências. Reuna com a sua equipe, e faça a pergunta básica? Aonde podemos automatizar nosso fluxo e quais ferramentas são necessárias. Lembrando que quanto maior é a profundidade do conhecimento sobre tecnologias pela sua equipe, melhor o resultado. Abaixo, uma figura que ilustra, o fluxo de desenvolvimento, existem diversas variações na nomenclatura, mas o importante é compreender quais atividades são automatizadas utilizando ferramentas de Integração Contínua e quais são automatizadas utilizando ferramentas de Entrega Contínua.
Fonte: InfoQ
3- Em algumas empresas, as próprias IDE’s são diferentes para diferentes desenvolvedores, com diferentes formas/plugins para criar e testar o código, crie um padrão único. isso facilita a integração de ferramentas e melhora o seu fluxo de desenvolvimento.
A vida prática na TI, demonstra que uma das maiores causas de indisponibilidade dos serviços prestados pela TI tem origem em mudanças introduzidas no ambiente operacional, seja um novo código ou atualização, ou uma nova regra de segurança, com muita frequência o erro é humano. Sendo este o motivo de brigas infindáveis entre Desenvolvedores e equipes Operacionais, pois defendem posições divergentes Mudar/Estabilizar. Outra consideração relevante é que quando a alta administração ve mudanças, dentro do ambiente operacional, ela entende como risco ao negócio, visão embasada nas inúmeras falhas ocorridas.
Ao implantar o seu processo de mudanças baseado na ITIL, você tem um primeiro ponto de aproximação entre equipes, uma vez que as mudanças “ad hoc”, passam a serem coordenadas e o CAB ( envolve todas as áreas afins minimizando impactos, mas o trade off é que se burocratizar demais o processo, as mudanças se tornam lentas e com maiores features a serem implantadas,gerando aumento do risco e complexidade).
Quantas vezes ja vimos na prática que uma alteração em uma regra de firewall, quebra a comunicação de um serviço gerando indisponibilidade ao cliente final pois em muitas TIs as alterações se realizam com a visibilidade somente da equipe responsável pelo ativo (no caso o firewall).
A exigência de um plano de roll back, é outro conceito (ITIL) que produz melhorias significativas na construção das mudanças. Mas se fizermos uso intensivo das novas tecnologias (o próprio plano de roll back é simplificado, basta ter um snapshot do servidor e restaura-lo se preciso, ou um bom conjunto de scripts para o roll back, não necessitando de planos individuais por mudanças como implantam alguns) e se alterarmos o mindset para que o desenvolvedor pense também como a equipe de operação e que a operação pense como desenvolvedor, sendo co-responsáveis pela entrega do serviço, isso eleva a nossa TI a outro patamar, não imaginada dentro dos modelos tradicionais.
Mas como dissemos, isso exige uma integração entre os processos de desenvolvimento e operação e auto grau de automação. a IAC ( Infraestrutura como código), ferramentas de automação e de gestão de infraestrutura como Chief, Puppet, System Center, etc., As soluções de monitoramento de perfomance de aplicação (APM) e a integração do fluxo de atividades entre o desenvolvimento e produção, são elementos essenciais para construir um modelo que possa trabalhar com altos níveis de deployment garantindo a segurança e a estabilidade do ambiente operacional, juntando isso com alguns conceitos filosóficos, teremos a implementação de DevOps.
No dia a dia, o deployment de um servidor virtualizado é questão de minutos, ferramentas como Hudson (Jenkins) otimiza o pipeline para a produção e sustentam conceitos como Continuous Integration. DevOps tem foco em otimizar esse fluxo entre a necessidade do serviço, até o ambiente de produção. Muitos conceitos da ITIL, podem e devem alimentar a construção da sua solução.
O redesenho do seu processo de design, transição e operação, são altamente otimizados quando está disponível no seu ambiente, ferramentas que seguem as práticas DevOps. No ultimo grau de automação temos o exemplo da Amazon, que em 2012 realizava 23.000 deployments por dia, eles obtiveram uma redução de 75% de falhas desde 2006 e somente 0,001% dos deployments causam problemas!
No nível mais avançado algumas empresas injetam falhas no ambiente de produção, utilizando o Docker por exemplo, para aumentar a resiliência da sua infraestrutura, o que obviamente exige uma estrutura de monitoração avançada a nível de infraestrutura e aplicação.
Utilizando ferramentas mais sofisticadas, disponibilizadas principalmente por todos os grandes players de soluções em Cloud, você poderá realizar Canary Test, e ter uma carga de usuários reais, extremamente necessária para sistemas de grandes volumes de usuários.
Abaixo, um quadro com as grandes empresas e sua eficiência no deployment, a segunda figura e uma síntese dos tópicos relevantes que ocorrem na produção e que ganham eficiência, quando automatizados, permitindo uma análise sofisticada do serviço e servindo de input para novas melhorias, representadas pelas Idéias no final.
Cabe lembrar que o seu Service Desk, se bem implementado (ITIL) produz com eficiência e eficácia, uma visão rica da percepção do usuário quanto a qualidade do serviço, se aliarmos isso um conjunto de ferramentas de monitoração: Zabbix, Nagios, New Relic (APM), teremos um mapa claro e detalhado do nosso serviço e com condições de produzir ações eficazes de melhoria continuada.
Fonte: Imagem Infoq – Webminar apresentado por Danilo Sato.
4- Utilize os conceitos, idéias e experiência da ITIL, se corretamente compreendido os seus conceitos e proposições, muitos benefícios podem ser alcançados! Poucos empregam com sofisticação as proposições da ITIL No grau de maturidade médio das TI’s no Brasil, o que mais se implementa são os processos operacionais ( Incidentes, problemas, mudanças, etc) especificados ainda na V2 e muitas vezes com muitas falhas, sem compreensão adequada dos conceitos e idéias que levaram ao modelo de melhor prática e sem colher todos os benefícios possíveis. A experiência acumulada em gestão de processos é enorme e muitas situações e soluções já estão pensadas e podem alavancar os seus processos.
5- Entenda os riscos de implantação de qualquer prática ou framework, compreenda os trade-offs. Exemplificando, alguns riscos na integração de DevOps no seu ambiente: Quando se pensa na integração DevOps, em que os papeis dos desenvolvedores são alterados para também serem responsáveis pelo ambiente operacional e atuarem diretamente nos incidentes, muitas empresas equivocadamente pensam em reduzir a sua equipe de operação, mas se esquecem que estão consumindo recursos caros (desenvolvedores), uma das idéias centrais da fluxo de atendimento escalonado em níveis. Assim um atendimento de primeiro nível e baixo custo se torna caro, outro aspecto importante, desprezar a experiência e expertise de quem vive constantemente no mundo operacional, cujo foco de atuação visa garantir alta disponibilidade e estabilidade do ambiente em produção e para isso se preocupa com performance de rede, melhor execução de Jobs, otimização de infraestrutura, melhoria de segurança, compreensão de requisitos de disponibilidade,etc. Fazendo assim vamos aumentar o backlog de atividades atribuídas aos desenvolvedores e num aspecto que não possuem profundo expertise e consequentemente diminuindo o tempo disponível para os desenvolvedores realmente criarem novas soluções. O que se deve buscar é um shift nas atribuições de cada equipe, ampliar a co-responsabilidade, trabalhar Qualidade em toda a cadeia de Valor e buscar uma integração que permita a melhor atuação conjunta das equipes. E no novo mindset, todos se preocupam com performance, segurança, estabilidade e funcionalidades. Repetimos, para alcançar isso um enorme esforço de mudança cultural se faz necessário.
6- Não trate DevOps como projeto, assim como a ITIL, a essência é a melhoria continuada. Não um projeto – Inicio, meio e fim!
7- Um risco comum na busca pela otimização e ganho de velocidade nos seus processos, é o excesso de hand-offs (passagem de bastão) entre as equipes de TI, otimize o seu fluxo ( redesenhe os seus processos) seguindo as melhores práticas ITIL e DevOps, procure reduzir este número,uma solução chave é a integração de ferramentas para que todos tenham uma visão compartilhada e única. Um exemplo: O Citsmart tem uma excelente ferramenta de requisições, para atender as suas necessidades de Service Desk, altamente customizável, com um sistema para criar o workflow, redesenhe e integre o seu workflow de gestão de incidentes para que possa alimentar o seu backlog de estórias de usuário, assim os incidentes relatados e tratados com a devida solução de contorno, após devidamente identificados e autorizados, ja são encaminhados para a sua resolução definitiva. Devemos ficar atentos aos status dos problemas e mudanças, mas bem implementado teremos uma ótima transparência.
8- Respeite o seu Contexto atual tecnológico, utilize o que você oferece de serviços,como parâmetro inicial e busque melhoria de qualidade utilizando práticas e ferramentas que possam alavancar os resultados da sua empresa, as melhores práticas ITIL e as práticas e pensamentos DevOps, estão ai para melhorar o seu ambiente e não o contrário, em outras palavras não implantar porque estou colocando as melhores práticas, mostradas na ITIL ou porque agora o nosso fluxo é DevOps, mantenha o foco no resultado!
9- Ao optar por uma nova ferramenta para automatizar os seus processos de desenvolvimentos e processos operacionais, aproveite e utilize esta mudança no processo, como Catalizador das suas necessidades de mudanças, a entrada de uma nova ferramenta sempre obriga à mudanças de atividades/comportamento e você conseguirá resultados superiores se fundamentar o processo da ferramenta com as suas estratégias e táticas de melhorias, desenhadas para médio prazo. Muitos gestores deixam passar esse momento, e focam apenas no agora e no que conseguimos implantar, esquecendo de aproveitar esta oportunidade para realmente, alterar a cultura da sua TI. Utilize, também, os resultados alcançados para impulsionar novas mudanças.
10- O essencial é entender porque estamos usando um ou outro modelo e quais os benefícios que esperamos alcançar com eles e aonde precisamos melhorar, pense Quick Wins, para ganhar mometun, mas tenha uma visão de médio e longo prazo.
11- “Se voce acredita que Itil e DevOps são incompatíveis, então você não entendeu nenhum dos dois ” frase de James Turbull CTO at Kickstarter & Advisor at Docker. Para entrar no debate sobre Itil e DevOps, aqui vai um link com uma entrevista com 25 experts.
12- Leia o livro The Phoenix Project, co-autorado por Gene Kim, um livro que poderá lhe trazer insights sobre a implementação de DevOps e através de uma narrativa estilo novela, mostra os conceitos filosóficos dos três caminhos: System Thinking, Aumentar os loops de feedbacks e Experimentação continuada e aprendizagem. Na Amazon custa 6 dólares, a versão Kindle. Vale a pena!
Bônus -Um texto de Gene Kim apresentado no ITSM fórum explicando ITIL e DevOps e os três caminhos.