DevOps para Startups – Implementação e Melhores Práticas

É impressionante pensar que a abordagem DevOps já está presente há cerca de 15 anos. O que começou como uma solução “simples” para o método ágil de trabalho, tratando as operações da mesma forma que o desenvolvimento, evoluiu para uma metodologia que impulsiona as organizações a processos de entrega mais eficientes, rápidos e robustos.

Por que a abordagem DevOps é tão bem-sucedida?

Ela é adequada apenas para grandes empresas?

Ou há motivos pelos quais pequenas empresas e startups também deveriam adotar processos DevOps em suas operações?


Este post no blog vai responder a essas perguntas.

  1. O que é DevOps?
  2. DevOps é adequado para startups?
  3. O papel do DevOps em uma startup.
  4. Como o DevOps pode beneficiar uma startup?
  5. Como implementar DevOps em uma startup?
  6. Dicas e melhores práticas.

O que é DevOps?

Antes de responder a essas questões importantes, é essencial explicar o que é DevOps. Ele surgiu como uma ponte entre desenvolvimento e operações, ajudando duas áreas com objetivos e modos de trabalho muito diferentes a colaborarem de forma eficaz.

Ao longo dos anos, o DevOps evoluiu e se transformou em um modelo totalmente funcional que impulsiona as organizações. Atualmente, o DevOps está presente em quase todos os frameworks e metodologias de trabalho modernos (existem tantos *Ops por aí!). Mas, o mais importante é que aprendemos a estruturar o DevOps como uma ferramenta útil e mensurável

Como o DevOps é diferente do desenvolvimento tradicional de software?

Assim como o Agile afastou a entrega de software do modelo em cascata, o DevOps transformou o cenário das operações.

Antes do DevOps, as equipes de operações eram separadas das de desenvolvimento e essas duas áreas tinham objetivos distintos. Essas diferenças ficaram ainda mais evidentes após o desenvolvimento adotar o Agile. Enquanto o objetivo das operações era a estabilidade, o desenvolvimento buscava aumentar a velocidade e a quantidade de entregas no tempo. Um confronto era inevitável.

Além de outras mudanças, o objetivo inicial do DevOps era eliminar esse conflito e integrar as operações ao ciclo de desenvolvimento.

Frameworks DevOps

Atualmente, utilizamos dois principais frameworks no cenário DevOps: Three Ways e CALMS. Nenhum deles é novo, mas infelizmente ambos são utilizados apenas em organizações mais desenvolvidas. A verdade é que o uso de qualquer um desses frameworks ajudará a impulsionar a adoção e a compreensão do DevOps.

Three Ways

O conceito de Three Ways (Três Caminhos) é explicado em detalhes nos livros da IT Revolution, "The DevOps Handbook" e "The Phoenix Project". Esses livros são leitura obrigatória para quem deseja ser um bom praticante de DevOps.

Three Ways abrange três princípios.

  • O primeiro princípio: Pensamento sistêmico —  Este princípio foca no desempenho de todo o sistema, e não em setores específicos. O objetivo é aumentar a eficácia do fluxo, compreendendo e melhorando os fluxos de valor.
  • O segundo princípio: Amplificar os ciclos de feedback — Se você está familiarizado com os princípios de "shift left", este conceito parecerá similar. Ele destaca a importância dos ciclos de feedback de direita para a esquerda. Em outras palavras, como as etapas iniciais devem ser informadas sobre a situação pelas etapas posteriores.
  • O terceiro princípio: Cultura de experimentação e aprendizado contínuos — Este argumento (experimentação) é compartilhado pelas abordagens Agile e DevOps. O medo do fracasso é um fator significativo que impede as empresas de serem inovadoras e bem-sucedidas no mercado moderno.

CALMS

O segundo framework, igualmente popular, é o CALMS. Este framework é composto por cinco pilares:

  • Culture (Cultura)
  • Automation (Automação)
  • Lean
  • Measurements (Métricas)
  • Sharing (Socialização/Compartilhamento)

DevOps é adequado para pequenas empresas?

A resposta curta é: claro que sim! DevOps não é limitado pelo número de funcionários, crescimento líquido ou qualquer outro fator. A diferença está no que é implementado e de que maneira. Mas primeiro, a organização deve responder a perguntas fundamentais: Por que precisamos de DevOps? Qual problema queremos resolver? O que queremos alcançar?

O erro

O erro mais comum cometido por startups é contratar um chamado "Engenheiro DevOps" para preencher a posição de alguém que realizará a administração de sistemas, pegará o código dos desenvolvedores e o entregará em produção, além de estar de plantão. Esse papel não é um papel de DevOps, é simplesmente uma pessoa — um administrador de sistemas, na maioria dos casos — que desempenha as funções convencionais da posição.

O papel de DevOps em uma startup

O papel do DevOps em uma startup deve ser focado principalmente em estabelecer uma cadeia de entrega eficaz e medi-la. As principais responsabilidades envolvem configurar e gerenciar recursos na nuvem (visto que a maioria das startups utilizará nuvens) e habilitar e promover o uso de infraestrutura como código (IaC) e sistemas de CI/CD. Não podemos esquecer do monitoramento, onde a observabilidade desempenha um papel muito importante.

Mas esses são aspectos técnicos. Toda startup e toda equipe precisa de uma base para garantir que essas práticas serão implementadas. Portanto, o maior esforço deve ser direcionado para levar conhecimento à organização.

Para acelerar o processo, não basta implementar AWS, Kubernetes e Jenkins. Isso não ajudará; apenas moverá os problemas para outro lugar. Precisamos implementar uma cultura.

Nessa área, o DevOps deve promover a colaboração entre as pessoas, envolvê-las no compartilhamento de informações (por exemplo, realizando sessões internas descrevendo “como trabalhamos” e “como o DevOps pode ajudar”) e mostrar a importância e os benefícios disponíveis quando ferramentas e processos adequados são usados.

Como o DevOps pode beneficiar uma startup?

Vamos resumir os benefícios do DevOps para startups:

1. Melhoria na colaboração

Por sua natureza, o DevOps foca na colaboração entre as pessoas. Não se trata apenas do trabalho diário, mas também de compartilhar conhecimento, capacitar os outros e criar um ambiente fértil para experimentação.

2. Melhoria na entrega

O uso de ferramentas adequadas com processos definidos aumenta a taxa de entrega e diminui o tempo de lançamento no mercado.

3. Estabelecimento de padrões

DevOps prioriza padrões adequados e repetibilidade. Modelos, módulos, automação e documentação são importantes para melhorar os padrões de desenvolvimento.

4. Medições

DevOps nos permite medir o trabalho de maneira prática. As métricas DORA nos ajudam a entender o processo e implementar melhorias.

5. Automação

A automação DevOps simplifica os processos de desenvolvimento e implantação, permitindo que as startups levem produtos ao mercado de forma mais rápida e eficiente. Automatizar tarefas repetitivas minimiza erros humanos e aumenta a consistência e confiabilidade nas liberações de software.

Como implementar DevOps em uma startup?

Se uma startup deseja adotar DevOps, é necessário implementar algumas práticas. Algumas delas já foram mencionadas, especialmente o Terceiro Princípio.

Como mencionado anteriormente, o objetivo de introduzir DevOps em startups é implementar processos adequados. Isso significa:

  • Otimizar o trabalho através de fluxos de trabalho estabelecidos: O DevOps define os fluxos de trabalho e ajuda as equipes de desenvolvimento a entenderem os processos.
  • Fornecer todo o conhecimento necessário sobre os processos à equipe.
  • Estabelecer ciclos de feedback e torná-los acionáveis: Este elemento é crucial. Não é importante apenas estabelecer ciclos de feedback para ter consciência situacional, mas também agir com base neles.
  • Estabelecer processos de entrega: Incluindo ferramentas, configurações, modelos, documentação e compartilhamento de conhecimento.
  • Ser uma parte significativa dos esforços de compartilhamento de conhecimento.

Dicas e Boas práticas

Há algumas coisas que você deve considerar antes de implementar práticas DevOps:

  • Não foque nas ferramentas — Embora a seleção adequada das ferramentas seja importante e as pessoas contratadas como Engenheiros DevOps devam estar familiarizadas com elas, as ferramentas na cadeia DevOps são “apenas” a correia de transmissão para os processos. Estabeleça processos e formas de trabalho e depois selecione as ferramentas que suportam a abordagem escolhida.
  • Não seja um “entregador” para os desenvolvedores — Sim, um dos objetivos das práticas DevOps bem estabelecidas é criar e manter uma cadeia de entrega adequada, mas o DevOps está lá para capacitar o desenvolvimento, não para fazer o trabalho do desenvolvedor. A sinergia e um processo adequadamente estabelecido trarão os desenvolvedores mais próximos da produção e sua entrega, dando-lhes mais controle e responsabilidade.
  • Não aumente a carga cognitiva dos desenvolvedores — No DevOps, devemos estabelecer ferramentas e processos de forma que os desenvolvedores gerenciem a entrega (ou implantações), mas estejam equipados com um conjunto de ferramentas que lhes permita fazer isso da maneira menos intrusiva possível. Por isso, na Spacelift, dizemos que capacitamos os desenvolvedores a entregar infraestrutura sem sair do ambiente de suas ferramentas.
  • Foco na cultura — Esta parte é frequentemente esquecida. CALMS posiciona a cultura em primeiro lugar. Three Ways trata de estabelecer a cultura de trabalho adequada. Estabelecer a abordagem correta aqui permite que a organização entregue mais rápido e de forma mais confortável para as equipes técnicas.
  • Compartilhe o conhecimento — Todos conhecemos o princípio de “shift left”, mas muitas vezes ele é implementado de forma errada. Transferir responsabilidades e tarefas para a esquerda sem transferir os processos, procedimentos e abordagens adequados leva a um aumento dramático na carga cognitiva e ao burnout.
  • Pequenas empresas, startups e outras organizações frequentemente demonstram processos de gestão caóticos e empurram muito para as equipes de desenvolvimento ou até mesmo para indivíduos. É tentador tentar contratar uma pessoa muito experiente e dar a ela muitas tarefas. O problema é que os humanos têm uma capacidade limitada de gerenciar as coisas, então, não importa quão experientes sejamos, faremos atalhos e cometeremos erros se estivermos sobrecarregados. Compartilhe responsabilidades entre as pessoas e forneça os processos, ferramentas e maneiras de trabalhar adequados para facilitar o trabalho.
  • Meça o trabalho — A abordagem DevOps permite múltiplas formas de medição. Todos usamos monitoramento e observabilidade para monitorar a eficácia de um produto, mas e os processos? Implemente métricas DORA para medir a eficácia dos processos que você implementa na organização.
  • Encoraje uma cultura sem culpa — Muitas vezes dizemos que Agile e DevOps são sobre experimentação. Mas como incentivar experimentos sem culpa?
  • Implemente o pensamento de “Inspecionar e Adaptar” — Abrace o aspecto de Melhoria Contínua do Agile e DevOps. Melhore constantemente seu processo e controle sua eficiência.

Pontos-chave

DevOps é adequado para empresas de todos os tamanhos. A implementação e o foco principal podem ser diferentes, mas o objetivo é o mesmo em todos os casos: melhorar e aprimorar os processos de desenvolvimento e entrega.

Ao implementar práticas DevOps, não foque apenas no conjunto de ferramentas. DevOps é uma forma complexa de pensar, combinando ferramentas, processos e medições.

Somos especialistas em gestão de infraestrutura e automação de processos de Cloud, oferecendo soluções sob medida para mantê-lo competitivo no mercado.

Você planeja implementar DevOps em sua organização? Ou talvez esteja procurando maneiras de melhorar seus processos? Agende uma consultoria grátis com a nossa equipe para discutir suas opções em mais detalhes.