book_icon

DevOps como estratégia corporativa: por onde começar? 3 passos iniciais para um ciclo sem traumas em Produção

Ok você já acredita, ou está querendo acreditar, que DevOps é uma estratégia corporativa para alavancar agilidade e produtividade no seu negócio, mas por onde começar? “Vou precisar alterar todo meu ambiente de Produção? “. “Como vou fazer para treinar a equipe inteira? “. “Não consigo homologar todos os sistemas para isso! “. Calma colega …. Os impactos são bem menores do que você imagina! O mais importante é que a mudança cultural esteja “comprada” por todas as equipes. Vamos conversar um pouco aqui sobre como iniciar DevOps sem traumas e grandes alterações em 3 passos.

Uma rápida reflexão, caso você ainda não esteja 100% convencido que as boas práticas de DevOps vão de fato te ajudar. “Toda empresa é, ou será em breve, uma empresa de software”. Essa frase não é minha, escutei de alguns executivos de TI, mas é a pura verdade. Em qualquer negócio um grande diferencial será entregar para clientes internos e/ou externos produtos de maneira ágil, segura e confiável. Como não podemos simplesmente ignorar 2 coisas: concorrência e internet, você muito provavelmente precisará de um software para o seu produto, um site ou um aplicativo. A partir desse momento você virou uma empresa de software, parabéns! Por esse motivo que as boas práticas do DevOps podem te ajudar muito…

Se você ainda não se convenceu (meu deus!) espero ter conseguido colocar uma pulga atrás da sua orelhar (risos). Mas vamos lá aos 3 passos iniciais.

Passo 1: Divulgue e monitore seus ambientes

Antes de falarmos sobre qualquer melhoria ou mudança sobre alguma coisa, precisamos conhecer e de alguma maneira monitorar essa “alguma coisa”. As equipes envolvidas conhecem e monitoram devidamente os ambientes? Se a resposta for não eu recomendo fortemente que seja montado uma agenda séria sobre isso.

Passo 1.1: Conhecimento fácil e acessível nunca é demais

Como trabalhei muito tempo no segmento financeiro, pude testemunhar muita economia ou desperdício de recurso pelo simples fato das equipes de Dev ou Operações terem ou não conhecimento dos ambientes. Promova comitês e agendas rápidas entre Dev e Operações para que os ambientes seja o tema principal: Arquitetura, situação atual e desejada, etc. Documente e mantenha essa informação viva para que todos acessem e colaborem. Minha sugestão é a implantação de um Wiki interno com algumas opções gratuitas como por exemplo o Roadkill Wiki.

Passo 1.2: Monitoramento de ambientes, incluindo aplicações

Quando perguntamos “Está tudo bem em Produção?” a resposta mais comum de TI é “Está tudo bem sim”. Mas como temos essa certeza? Foi porque nenhum usuário reclamou? Todo monitoramento deve ser pró-ativo e não reativo, afinal não queremos nenhum cliente insatisfeito em Produção correto? A sua ferramenta de monitoramento deve analisar também o comportamento comum e te avisar quando qualquer coisa sair fora do “normal”.

Importante observar também que boas ferramentas de monitoramento não exigem grandes alterações de infraestrutura ou sistema. Evidentemente que o aconselhável é homologar antes da Produção, mas a premissa deve ser sem impactos no que já funciona. Além dos servidores (redes , banco de dados, etc), precisamos também monitorar as aplicações com as chamadas APM’s (Application Performance Monitor). Minha sugestão de custo-benefício para redes, banco de dados e APM nessa ordem: Nagios, Idera, Application Insights (sem necessidade de ir 100% ao Azure, nem alterações no sistema).

Passo 2: Treine sua equipe para a nova mentalidade

Toda equipe sabe realmente o que é DevOps e o que é ser de fato Ágil? Nas oportunidades que tive de conversar, ou dar palestras internas em TI, eu tive a sensação de que para a maioria das pessoas DevOps e Agilidade são que nem sexo na adolescência: todos conhecem, mas na prática ninguém sabe muito bem como funciona (risos).

Um treinamento de Scrum, por exemplo, envolve poucas horas de teoria e abre muito a cabeça das pessoas (experiência própria). Se alguém está oferecendo um treinamento de Scrum com muitas horas desconfie! O Scrum, assim como todos os conceitos de agilidade e colaboração são bem fáceis de entender, o difícil sempre é implantar. Promova treinamentos internos e externos nas equipes com agendas pré-definidas. Muitas vezes o conhecimento técnico já existe no time, mas fica na cabeça de poucos. No site da ScrumAlliance temos boas opções ou dicas de treinamentos e grupos.

Passo 3: Automatize tarefas e processos

Quando falamos de tarefas 100% manuais temos uma certeza: uma hora isso vai falhar. Pelo simples fato que somos humanos e na nossa natureza erramos. Porque então não automatizar a instalação do sistema em homologação ou produção? Porque não automatizar aqueles testes críticos que sempre precisamos fazer?

Empresas como WhatsApp, Uber, Microsoft corrigem erros, lançam aplicativos e sistemas de maneira ágil, segura e confiável. Como elas fazem isso? Automatizando tudo o que podem! Claro que um time tecnicamente brilhante sempre ajuda, mas se você não automatizar não tem como ser ágil. Reveja os processos operacionais mais custosos e automatize. Comece em Homologação e progressivamente em Produção. Sistemas como o VSTS , Octopus e VSTS Test ajudam muito nessa eliminação de trabalhos repetitivos.

Portanto, apesar dos 3 passos possuírem muitos detalhes importantes, notem que em nenhum caso descrito acima precisamos de uma grande mudança na infraestrutura ou no sistema para que o DevOps comece a acontecer. São medidas ou implantações paralelas ao que já funciona hoje no seu negócio.

Então é só isso? Com certeza não, pois DevOps deve ser uma coisa viva em constante aprimoramento. Poderíamos continuar essa conversa descrevendo as melhores práticas de Application Lifecycle Management (ALM), evoluir a mentalidade e skill das equipes de Dev e QA, ou mesmo dar a liberdade da área de negócios ligar/desligar uma funcionalidade através de feature flags. Mas isso eu entendo que deveriam ser próximos passos, evoluções de um modelo já iniciado a partir desses 3 passos que descrevemos.

Reforço aqui que DevOps não é algo mágico que vai mudar as coisas da noite para o dia. No meu último artigo falei de como a colaboração e o envolvimento de todos nesse processo é fundamental. O mais importante de tudo é que TODOS saibam qual será a estratégia e como ela será executada. Liderança por exemplo sempre será mais efetiva, e por isso as diretrizes, e em alguns casos as execuções, devem vir também da diretoria. Todos precisam colaborar.

Vale muito a pena tentar! Parafraseando e cantando a música da “canja de galinha” de Jorge Ben Jor: agilidade, segurança e confiabilidade hoje em dia não fazem mal a ninguém, ou melhor, a nenhum negócio.

*Daniel D’Angelo R. Barros é gestor e desenvolvedor de software e por mais de 2 décadas, trabalhou em multinacionais como Votorantim, Royal Bank of Scotland e Solera. Dedica-se hoje a projetos de software Cloud, DevOps e serviços cognitivos

As opiniões dos artigos/colunistas aqui publicados refletem exclusivamente a posição de seu autor, não caracterizando endosso, recomendação ou favorecimento por parte da Infor Channel ou qualquer outros envolvidos na publicação. Todos os direitos reservados. É proibida qualquer forma de reutilização, distribuição, reprodução ou publicação parcial ou total deste conteúdo sem prévia autorização da Infor Channel.