Agilidade é essencial para qualquer empresa de tecnologia. Afinal, em um mercado competitivo e marcado por intensas e frequentes mudanças, é necessário ser veloz para se adaptar e garantir eficiência. É nesse contexto que entra o DevOps, um conceito que busca, justamente, acelerar o desenvolvimento e implantação de produtos e serviços de tecnologia. Não por acaso, o assunto é cada vez mais procurado.
Mas, afinal, o que é DevOps e por que ele traz mais agilidade para a empresa?
O nome é uma junção das palavras development e operations. DevOps é uma mudança cultural de TI, que propõe a integração entre os times de desenvolvimento de software e operações de TI, em busca de maior eficiência na criação e gerenciamento de uma aplicação.
Diferente do que muitos pensam, não é apenas um cargo, um grupo de ferramentas ou uma tecnologia. É um conjunto de práticas, ferramentas e políticas para entregar tecnologia de forma integrada e rápida, garantindo a qualidade em todos os estágios de criação. Quanto mais comunicação entre os times e mais automatizados os processos, mais dentro de DevOps você está, como sintetiza bem a imagem abaixo:
Com o DevOps, muitas vezes as equipes de operações e desenvolvimento se tornam uma só. Os desenvolvedores não estão mais em fases específicas do projeto: eles vão do desenvolvimento, passam pelos testes e chegam à implantação — muitas vezes com diversas funções. Em alguns modelos, até mesmo as equipes de qualidade e segurança se integram às de desenvolvimento e operações — esse modelo também é conhecido como DevSecOps.
Falar em DevOps é também falar de automatização. É uma forma importante de ganhar eficiência e garantir qualidade em testes e, assim, poder trabalhar com entrega contínua e microsserviços.
O resultado dessa cultura DevOps, como nota a Amazon, vai além de mais velocidade: você também garante mais escala para os projetos, melhora a colaboração das equipes, traz mais segurança para os projetos e, por fim, mais confiabilidade na infraestrutura. Falaremos mais disso.
Quais são as vantagens do DevOps?
Confiança e colaboração
Por definição, DevOps é uma cultura de confiança e colaboração. Ao implementar, você estará incentivando seus times a contarem mais um com outro. Os resultados serão benéficos para todo o futuro da empresa, que passará a ter equipe mais unida.
Eficiência
Times que praticam DevOps entregam mais rápido e com melhor qualidade. Isso porque com testes automatizados e mais comunicação entre as equipes, há menos problemas no meio do caminho, menos desperdício de tempo e menos conflitos para resolver — deixando assim os colaboradores livres para terem mais ideias e chegarem a soluções melhores.
Resolver problemas de forma mais rápida
Com mais transparência e comunicação seu time saberá mais rapidamente e terá melhores condições de apagar incêndios. Com DevOps você tem muito menos surpresas no ciclo de desenvolvimento.
Os pilares do DevOps
Como é uma filosofia, um movimento, um modo de fazer as coisas, não há uma fórmula pronta para implementar o DevOps. E é justamente por isso que existe tanta gente, empresa e evento discutindo como você pode implementar. Aqui, nós traremos algumas das principais dicas e sugestões sobre o assunto.
A Atlassian, uma empresa que desenvolve produtos para desenvolvedores de software, por exemplo, indica um framework que eles chamam de CALMS (um acrônimo para ‘Cultura’, ‘Automação’, ‘Enxuto’, ‘Medida’, e “Compartilhamento’, em inglês). Vamos falar sobre tudo isso.
Cultura
É o principal. No DevOps não dá para existir o ‘cada um por si’ ou a ideia de times separados. Todos devem colaborar o máximo possível. Toda tecnologia e automação serão inúteis se funcionários de times diferentes não tiverem sinergia.
Por isso, será necessário engajar os líderes dos times para promover a cultura organizacional de colaboração na sua empresa. Desenvolvimento, controle de qualidade, gerenciamento de produtos, design, operações, marketing, vendas, todos precisam ter uma noção de qual é sua contribuição naquele projeto. E, para isso, é necessário deixar claro qual o objetivo comum e como o time precisará trabalhar para chegar lá.
Automação
Faça uma análise de quais são os trabalhos mais repetitivos feitos pelos seus colaboradores e procure por soluções de tecnologia que possam resolvê-las. Algumas vezes, será necessário criar algo especial para seu caso. Automações que tirem repetições das mãos de seus colaboradores são ótimas para deixar as pessoas com tempo de terem ideias e, assim, colaborarem entre si.
Muitos times quando iniciam com automação a utilizam na entrega contínua, principalmente para fazer testes. Outra aplicação comum de automação em DevOps é a da “configuração como código”, que busca transformar as infraestruturas em módulos mais confiáveis e fáceis de manter.
Enxuta
O nome é bastante inspirado pelo conceito de “Startup Enxuta”, apresentado pelo livro homônimo de Eric Ries e abraçado por diversas startups do Vale do Silício.
Significa que, para abraçar o DevOps, você deve agir da mesma forma que uma startup sendo rápido, focando no que importa e assumindo os riscos e fracassos de forma positiva. Quando não der certo, seja ágil no reconhecimento e, em vez de ser intolerante, seja pragmático na forma de propor melhorias.
Mensurar
A mensuração de resultados é essencial para saber se os esforços da sua equipe estão funcionando. Atualmente existem muitas ferramentas que podem ajudar nessa atividade, por isso é importante identificar seus indicadores de sucesso. Eis algumas perguntas básicas que sua equipe pode responder com dados:
- Qual o tempo é gasto entre desenvolvimento e implementação?
- Com qual frequência aparecem bugs?
- Quanto que determinada funcionalidade da aplicação está sendo utilizada?
- Quantos usuários você ganhou ou perdeu após determinada mudança?
Compartilhamento
Como dissemos desde o início, a chave essencial do DevOps é o compartilhamento. Ao compartilhar, não só os projetos acontecerão com melhor fluência, mas o clima da empresa irá melhorar, os conflitos serão reduzidos e todos terão ambiente de mais aprendizado. Portanto, o clima de cooperação é causa e consequência da adoção do DevOps.
Como implementar DevOps
É claro que tudo isso exige muito cuidado. Como dito anteriormente, é necessário ser tolerante com o fracasso. Os riscos são inerentes ao processo. O importante é ser pragmático na hora de aprender e corrigir. Mas, há alguns cuidados que você pode ter desde o início para aumentar as chances de sucesso.
Confira algumas:
Defina um plano de implementação
Toda mudança exige planejamento. Por mais óbvia que essa afirmação pareça, muitos ainda a ignoram e acham que as coisas devem ser feitas do dia para noite. As mudanças propostas pelo DevOps não são simples e vão exigir tempo e esforço. Por isso, faça uma lista de quais serão as responsabilidades de cada um, quais tecnologias você precisará adotar, como será cada interação etc. E lembre-se: o processo de mudança e evolução é contínuo.
Mantenha os times alinhados
Ser DevOps significa adotar novos processos e tarefas. As coisas terão que ser feitas de formas diferentes para garantir que elas darão certo. Por isso, é importante garantir o alinhamento com todos, ter aprovação de todos os envolvidos e documentar tudo corretamente.
Pense que é sobre pessoas
Automatizar tudo e implementar ferramentas modernas não ajudarão se você não entender isto. Claro que ferramentas são importantes, mas DevOps é uma cultura e tem que ser abraçada por todos os colaboradores envolvidos. Mudanças exigem sacrifícios e esforços — portanto, garanta que todos estarão dispostos a elas.
Tenha consciência do processo
Como toda mudança e treinamento em tecnologia, é preciso documentar tudo — afinal, a maioria dos colaboradores não assimilará tudo de primeira. Por isso, quanto mais informações forem compartilhadas, clarificadas e organizadas para todos, melhor os processos serão absorvidos.
Cuidado na hora de automatizar
Automatizar é parte essencial do processo de DevOps, mas é necessário ter os responsáveis pela integração contínua, que é tarefa recorrente. Por isso, escale pessoas e alinhe com elas como funcionará.
Não tente automatizar toda tarefa desde o início. Comece pelas mais repetitivas e óbvias. As mais complexas deverão ser respeitadas de acordo com a maturidade de sua equipe.
Por fim, teste sempre. As tarefas automatizadas devem receber muita atenção. Qualquer pequeno erro nelas pode custar o processo todo. E a melhor forma de evitar, é passando por bons testes de qualidade o tempo todo.
Uma resposta
É importante estarmos aprendendo com os nossos erros, para obtermos sucesso logo adiante com outros projetos