Se pretende encurtar o ciclo de desenvolvimento, aumentar a qualidade do software e proporcionar uma entrega contínua, deve considerar o DevOps. Patrick Debois, um consultor insatisfeito com as ineficiências causadas pela separação entre o desenvolvimento de software e as operações de TI, cunhou o termo em 2007.
Desde então, muitas empresas adotaram os princípios do DevOps para se adaptarem de forma mais eficaz às suas necessidades empresariais. O DevOps costumava estar limitado aos serviços de TI, mas atualmente expandiu-se para incluir toda a organização, afetando processos e fluxos de dados e provocando mudanças organizacionais significativas.
O que é o DevOps?
O DevOps é uma metodologia que combina o desenvolvimento de software (Dev) e as operações de TI (Ops). É um conjunto de práticas, ferramentas DevOps, processos e até pessoas que visa aumentar a colaboração entre equipas e produzir lançamentos de produtos mais rápidos e fiáveis. Um ambiente DevOps pretende incentivar a automatização e a documentação, bem como promover a comunicação e a colaboração.
Ao contrário das abordagens mais tradicionais (incluindo Agile e Scrum), nas quais os departamentos são divididos em “silos,” o DevOps enfatiza a integração de todos os membros da equipa envolvidos na criação do produto: desde os programadores de software até aos responsáveis pelos testes e aos profissionais de operações de TI (como administradores de sistemas, administradores de bases de dados e engenheiros de sistemas).
Como funciona o DevOps
As equipas de desenvolvimento e de operações trabalham em conjunto de forma mais próxima num modelo DevOps. Os engenheiros de ambas as equipas integram-se e trabalham em todo o ciclo de vida da aplicação, desde o desenvolvimento e os testes até à implementação do devops e às operações. O DevOps combina as competências de ambas as áreas ao longo do processo de desenvolvimento da aplicação.
As equipas de garantia de qualidade e de segurança podem estar mais estreitamente ligadas ao desenvolvimento e às operações, bem como a todo o ciclo de vida do desenvolvimento de software, através de vários modelos DevOps, como o SecDevOps (que se concentra na segurança) ou o QAOps (que dá maior ênfase aos testes da qualidade do produto).
Estes grupos utilizam boas práticas para automatizar processos anteriormente trabalhosos e lentos. Utilizam uma pilha tecnológica e uma infraestrutura para operar e evoluir aplicações de forma rápida e fiável.
Práticas e conceitos DevOps
O DevOps assenta em algumas práticas fundamentais. Vejamos abaixo uma explicação de cada uma delas.
Integração contínua
A integração contínua (CI) refere-se à fusão regular de alterações de código num repositório central e à execução de compilações e testes automatizados (incluindo testes unitários, de integração, de interface do utilizador e de ponta a ponta).
O principal objetivo da CI é descobrir e corrigir erros mais rapidamente, aumentar a qualidade geral do software e reduzir o tempo necessário para validar e lançar novas atualizações de software.
Have an account? Log In
Entrega contínua
Estreitamente relacionada com a integração contínua, a entrega contínua é o passo lógico seguinte. Na entrega contínua, é necessário que as alterações ao código sejam automaticamente compiladas, testadas e estejam prontas para ser entregues no ambiente de produção. Idealmente, todas as alterações são primeiro enviadas para um ambiente de testes antes da implementação em produção.
Controlo de versões
Também conhecido como controlo do código-fonte, refere-se à gestão do código através de versões, ou seja, ao acompanhamento das revisões e alterações ao código ao longo do tempo. Isto é frequentemente feito com recurso a sistemas de controlo de versões que permitem aos membros da equipa colaborar no código.
Estes métodos definem uma metodologia passo a passo para fundir alterações de código nos mesmos ficheiros, resolver conflitos e reverter alterações para estados anteriores. O controlo de versões é um dos principais processos DevOps que ajudam as equipas de desenvolvimento a colaborar, delegar tarefas de programação aos membros da equipa e arquivar todo o código para uma recuperação rápida.
Monitorização e registo
A monitorização contínua consiste em identificar compilações interrompidas ou testes falhados e garantir que estes não causam atrasos. A automatização acelera significativamente o desenvolvimento, mas, se um processo automatizado falhar e ninguém o detetar, mais vale concluir a tarefa manualmente.
Da mesma forma, é fundamental acompanhar de perto as aplicações em produção para detetar problemas ou questões de desempenho antes dos seus clientes.
Microsserviços
A arquitetura de microsserviços é um estilo no qual a aplicação é estruturada como uma coleção de serviços mais pequenos, pouco acoplados e implementáveis de forma independente. Isto permite que as equipas responsáveis pela entrega se concentrem em serviços específicos como entidades independentes, tornando o desenvolvimento, os testes e a implementação muito mais fáceis.
Infraestrutura como Código (IaC)
Este é um processo de gestão da infraestrutura de TI (redes, máquinas virtuais, balanceadores de carga, arquitetura de ligações) que emprega o mesmo controlo de versões para o código-fonte que a equipa de DevOps.
Um modelo IaC cria o mesmo ambiente sempre que é aplicado, de forma semelhante a como o mesmo código-fonte produz o mesmo binário. A IaC é uma abordagem crucial que funciona em conjunto com a entrega contínua.
Deslocação para a esquerda
Este é um termo que designa um processo de desenvolvimento no qual a equipa se concentra em iniciar os testes o mais cedo possível. O objetivo final é aumentar a qualidade, encurtar os ciclos de teste e evitar quaisquer surpresas possíveis no final do ciclo de desenvolvimento. A deslocação para a esquerda pressupõe testes contínuos (escrever e executar testes automatizados tão cedo e tão frequentemente quanto possível) e implementação contínua (automatizar a implementação de novas compilações).
O ciclo de vida do DevOps
O fluxo de trabalho típico de DevOps é iterativo e consiste em 8 fases principais:
- Planear: Nesta fase, a equipa identifica os requisitos empresariais e cria um roteiro que maximiza o valor empresarial do produto.
- Programar: Esta é a fase em que o desenvolvimento propriamente dito é realizado.
- Compilar: Depois de concluídas as tarefas de desenvolvimento, o código é submetido ao repositório partilhado.
- Testar: A compilação é implementada no ambiente de testes, onde os testes são executados. Isto inclui normalmente testes unitários, testes de integração, testes de automatização da interface do utilizador e testes manuais, como os testes de aceitação do utilizador.
- Lançar: Depois de concluída a fase de testes, a compilação é preparada pelos engenheiros de DevOps para ser implementada no ambiente de produção.
- Implementar: Nesta fase, a compilação é instalada, testada e colocada em produção, ficando disponível para os utilizadores finais.
- Operar: Gerir a prestação de serviços de TI aos clientes do início ao fim. Isto refere-se aos procedimentos de conceção, implementação, configuração, disponibilização e manutenção da infraestrutura de TI que suporta os serviços de uma organização.
- Monitorizar: As equipas de DevOps avaliam cada lançamento e fornecem relatórios para melhorar futuras versões de software. Ao recolherem feedback contínuo, as equipas podem otimizar os seus processos e integrar os contributos dos consumidores no lançamento seguinte.

Quais são os benefícios do DevOps?
Os principais benefícios de uma abordagem DevOps são:
- Entrega de software mais rápida: Com os pipelines de CI/CD, a implementação é mais rápida e frequente. A atualização de serviços existentes e a implementação de novos sistemas, funcionalidades ou correções de erros demora menos tempo. Isto pode proporcionar uma importante vantagem competitiva e uma melhor experiência do utilizador.
- Colaboração melhorada: Com as práticas de DevOps, os programadores e as equipas de operações trabalham em estreita colaboração e partilham responsabilidades, aumentando a visibilidade do trabalho. As equipas estão mais ligadas e trabalham em direção aos mesmos objetivos e metas.
- Maior produtividade: Com o trabalho já não separado e uma comunicação melhorada, existe maior transparência, o que permite às equipas trabalhar de forma mais eficiente.
- Tarefas repetitivas automatizadas: Para além da grande vantagem de não ser necessário realizar estas tarefas manualmente, isto deixa mais tempo à equipa para trabalhar em inovações no projeto.
- Maior qualidade e fiabilidade: As práticas de integração e entrega contínuas garantem que as alterações são funcionais e estáveis, melhorando a qualidade de um produto de software. A monitorização permite às equipas manterem-se atualizadas relativamente ao desempenho em tempo real.
- Melhor segurança: A segurança no DevOps também pode ser melhorada através da integração de testes de segurança no pipeline de integração contínua, entrega contínua e implementação contínua.
- Lançamentos mais frequentes: Os clientes podem receber atualizações e correções de erros com frequência, o que conduz a uma maior satisfação dos clientes.
Como adotar uma cultura DevOps?
A transição para o DevOps envolve uma mudança de cultura e filosofia. Inicialmente, adotar o DevOps pode significar um compromisso das equipas de operações e desenvolvimento para compreenderem os problemas e as limitações tecnológicas existentes em cada fase do processo de desenvolvimento de software.
Estabeleça KPIs de melhoria, como tempos de ciclo mais curtos ou menos defeitos em produção. Ao comunicar entre as diferentes atividades de trabalho, pode estabelecer as bases para processos contínuos.
Examine o desenvolvimento atual e as ferramentas de operações de TI. Identifique quaisquer pontos fracos, como uma fase que seja sempre concluída manualmente ou uma ferramenta que não disponha de APIs para comunicar com outras ferramentas. Considere implementar um único pipeline de entrega DevOps para toda a empresa. Os membros da equipa podem passar de um projeto para o seguinte sem terem de receber formação novamente.
Agora que a mentalidade DevOps está implementada, decida quais as métricas a utilizar para medir o sucesso e identifique as ferramentas a utilizar daqui em diante (mais informações sobre este tema adiante). Para continuar a melhorar, concentre-se nas melhores práticas, na partilha de conhecimentos e na melhoria contínua. Identifique os obstáculos que afetam os seus KPIs e otimize as suas ferramentas e tecnologias.
O modelo de maturidade DevOps tem 5 fases:
- Inicial: um modelo tradicional, em que a equipa de desenvolvimento e a equipa de operações trabalham de forma isolada.
- Gerido: a mudança inicial para DevOps, quando os processos de operações começam a ser automatizados. A colaboração entre o desenvolvimento e as operações aumenta, uma vez que as equipas deixam de estar separadas. É uma fase de prova de conceito.
- Definido: os processos de automatização para todas as práticas (incluindo o desenvolvimento e os testes) são definidos e implementados. As alterações são aplicadas ao nível organizacional.
- Medido: as equipas partilham conhecimentos e adaptam as práticas graças aos processos e ferramentas implementados. A automatização e a comunicação entre ferramentas melhoram, e são utilizadas políticas para impor normas.
- Otimizado: começam a observar-se resultados graças à melhoria contínua. O DevOps pode evoluir para vários conjuntos de ferramentas ou procedimentos. Por exemplo, as aplicações voltadas para o cliente (que são normalmente aplicações B2C) lançam versões com maior frequência, enquanto as aplicações FinTech aderem mais aos princípios do DevSecOps.
Ferramentas DevOps
A metodologia DevOps centra-se na automatização das atividades de desenvolvimento de software, como a criação, os testes e a implementação, com o objetivo de alcançar um tempo de colocação no mercado mais rápido, produtos de elevada qualidade e menos falhas e reversões nas funcionalidades do software. Tendo tudo isto em consideração, o conjunto adequado de ferramentas ajudará a garantir que consegue estabelecer uma cultura DevOps bem-sucedida.
As ferramentas e tecnologias que permitem às pessoas de desenvolvimento e operações interagir ao longo de todo o ciclo de vida do software são designadas por cadeia de ferramentas DevOps. A integração contínua, a entrega contínua, a automatização e a colaboração estão entre os principais elementos DevOps abrangidos.
Quais são, então, algumas das ferramentas comuns utilizadas em DevOps?
Ferramentas de planeamento
Estas são principalmente as mesmas ferramentas utilizadas nas metodologias de desenvolvimento ágil. Talvez uma das ferramentas mais populares para esta fase seja o Jira. Se ainda não estiver familiarizado com ele, trata-se de uma ferramenta de gestão de projetos da Atlassian, concebida para equipas ágeis acompanharem as suas tarefas, problemas e erros. Permite a integração com várias outras ferramentas utilizadas noutras fases do processo DevOps.
Uma boa comunicação é crucial em DevOps, tanto na fase de planeamento como nas restantes, pelo que é boa ideia utilizar uma aplicação de mensagens que também possa ser integrada com as restantes ferramentas. Entre essas aplicações incluem-se o Slack, também da Atlassian, ou o Microsoft Teams.
Ferramentas de controlo de versões
As ferramentas de controlo de versões ajudam as equipas de desenvolvimento de aplicações a gerir as alterações ao código-fonte ao longo do tempo. Ajudam as equipas de software a trabalhar de forma mais rápida e inteligente à medida que os ambientes de desenvolvimento aumentam.
As soluções de controlo de versões contribuem especialmente para reduzir o tempo de desenvolvimento e aumentar o sucesso das implementações. O Git é provavelmente a ferramenta de controlo de versões mais utilizada, mas algumas equipas podem optar por utilizar o TFS, o SVN ou o GitHub para o controlo do código-fonte.
Ferramentas de integração contínua
As ferramentas de integração contínua aplicam testes automatizados aos ramos de desenvolvimento e permitem enviar alterações para o ramo principal quando as compilações são bem-sucedidas. Também fornecem feedback contínuo através de alertas de conversação em tempo real da sua equipa, com integrações simples. Entre as ferramentas de destaque encontram-se o Jenkins (que é uma ferramenta de código aberto), o Circle CI e a AWS.
More Articles
Ferramentas de gestão de configurações
Ao longo do ciclo de vida de DevOps, a gestão da configuração refere-se à manutenção e ao controlo dos componentes de sistemas complexos de grandes dimensões, mantendo-os numa condição conhecida, consistente e definida. Os servidores, as redes, o armazenamento e as aplicações são exemplos de componentes de sistemas de TI.
As ferramentas de gestão da configuração tornam o processo de implementação contínuo e consistente ao longo do processo de produção. Algumas ferramentas notáveis para a gestão da configuração são o Ansible, o Puppet e o Chef.
Ferramentas de Operações Contínuas
As ferramentas de operações contínuas são utilizadas para automatizar o processo de lançamento da aplicação e das respetivas atualizações. As operações contínuas eliminam o tempo de inatividade através da utilização de soluções de gestão de contentores, como o Kubernetes e o Docker. Estas tecnologias de gestão de contentores tornam muito mais fácil o processo de desenvolvimento, teste e implementação de uma aplicação em vários ambientes.
O DevOps é para si?
Embora nenhuma metodologia seja adequada a todos os casos, poderá ter agora uma ideia mais clara do que é o DevOps e do que precisa para o implementar. Com base nesta informação e em mais informações sobre os preços do DevOps, pode decidir se o DevOps é um processo que se adequa aos objetivos da sua equipa.
Dito isto, se estiver a explorar formas de implementar o DevOps ou de o dimensionar de forma mais eficiente, considere estabelecer uma parceria com o parceiro certo de desenvolvimento de software numa região próxima.
Procura mais boas práticas de DevOps? Subscreva a newsletter do The CTO Club para receber as informações mais recentes.




