menu

DevOps é um conjunto de ferramentas e práticas que visa combinar desenvolvimento de software e processos de TI num pipeline de desenvolvimento contínuo, realçando a comunicação entre programadores e equipas de TI, automação de tecnologia e redução dos ciclos de desenvolvimento de software, habilitando uma entrega contínua de software. Por defeito, as práticas de DevOps continuam a evoluir ao longo do tempo. Algumas são esquecidas ou substituídas, enquanto outras evoluem e adaptam-se às atuais necessidades das organizações. Neste artigo, exploraremos algumas das tecnologias atualmente em uso, como é que DevOps é aplicado nas pequenas e grandes empresas e algumas das mudanças que podemos esperar de DevOps num futuro bem próximo.

O fluxo comum de trabalho numa empresa de TI é os programadores escrevem o seu código e enviam-no para produção, onde os gestores de TI tentam integrá-lo numa aplicação sem comprometer as funcionalidades existentes. Dada a velocidade com que esse código é produzido e tendo em conta o foco dos programadores em codificar novos recursos, os testers e os gestores de TI devem garantir um workflow fluído, deixando pouco espaço para comunicações desnecessárias e grandes revisões. É aí que entra DevOps, que tem um grande impacto na forma como as empresas trabalham, sejam elas grandes corporações ou pequenas startups independentes.

1 – Transformações de DevOps: Grandes Corporações vs PMEs 

Ainda que as grandes empresas tenham diversidade, experiência e capacidade de segmentar as suas operações e equipas de desenvolvimento em grupos menores e mais focados, o elevado número de programadores e de projetos podem, frequentemente, dificultar o desenvolvimento e a implementação de código.
Considerando o elevado número de clientes nessas empresas, isso faz com que qualquer alteração no código de um dos principais componentes de uma aplicação possa criar um efeito dominó nos restantes módulos em desenvolvimento, se estas não forem tratadas com o devido cuidado. E uma vez que as grandes empresas tentam trazer novas soluções para o mercado para manterem-se competitivas, é necessário que estas tenham os ambientes de desenvolvimento e produção alinhados.

Na Microsoft, por exemplo, existem várias equipas pequenas, cada uma a supervisionar e a gerir entidades específicas de produtos, tais como Windows, Office e Azure DevOps, todas a operarem num ciclo de vida de sistema comum. Como resultado, as práticas de DevOps podem ser facilmente adotadas por essas equipas, apoiadas por objetivos coletivos estabelecidos empresarialmente, que ajudam a garantir que cada elemento não se desvia dos objetivos pré-estabelecidos.

Por outro lado, as pequenas empresas tendem a ter estruturas menos específicas no que diz respeito à gestão de recursos e tecnologia porque o número de funcionários é menor, o que naturalmente leva a um ambiente mais linear. Como há um número limitado de programadores, gestores de TI e testers, o DevOps é geralmente feito em pequenas reuniões espalhadas ao longo da semana para manter todos atualizados sobre o desenvolvimento do projeto. Isso permite que os programadores tenham um papel mais ativo no ambiente de produção. Não só os mantém mais próximos do projeto, evitando desvios na solução final, como também ajuda a verificar o quanto algumas alterações no código afetarão a versão final do produto e a  assegurar a correção de problemas críticos o mais rápido possível.

A mudança mais comum e importante que as pequenas empresas podem fazer ao adotar DevOps é através do uso da automação. Esse processo acelera os testes e a implementação de código, criando scripts que eliminam a necessidade de executar os mesmos blocos de código sempre que uma atualização é feita e garantem que as alterações não comprometam a integridade da aplicação. Aplicações como o Jenkins são ideais para permitir a integração contínua de novos códigos usando pipelines que repetem os mesmos processos de revisão para cada nova alteração. Repositórios como o GitHub ajudam a armazenar as informações num local acessível a todos.

 

2 – O Futuro Devops: Tendências

As práticas de DevOps têm evoluído gradualmente devido às crescentes exigências dos ambientes corporativos, algo que é necessário acontecer para que as empresas se mantenham competitivas no mercado. Algumas das tendências que estão a ganhar força atualmente são:

 

Serverless Computing

Serverless Computing (ou computação sem servidor) envolve o uso de servidores para torná-los irrelevantes para o desenvolvimento de aplicações, ou seja, todas as informações valiosas são armazenadas usando métodos de computação em nuvem. Essa prática foi desenhada para ajudar as equipas de DevOps a concentrarem-se mais no lado da implementação dos testes, minimizando o desperdício de recursos na criação e manutenção de pipelines. Também ajuda a reduzir o esforço do programador na manutenção do servidor e nas atualizações do sistema, além de ser uma solução económica, autoescalável e flexível.

 

DevSecOps

DevSecOps é a integração de protocolos de segurança nos estágios iniciais de um projeto em conjunto com práticas de DevOps. Surgiu da necessidade de implementar mecanismos de segurança ao longo do ciclo de vida do projeto, permitindo às equipas de DevOps entregarem aplicações seguras com rapidez e qualidade. A incorporação de testes e mitigação de riscos no início do fluxo de trabalho de integração e desenvolvimento contínuos (CI/CD) evita as consequências demoradas e, por vezes, caras do retrabalho. Isto transfere os testes de segurança para os programadores, permitindo que eles corrijam problemas de segurança imediatamente nos seus códigos, em vez de o fazerem no final do ciclo de vida do desenvolvimento de software. As práticas de DevSecOps são usadas durante toda a vida útil do projeto, desde o planeamento e design até a codificação, teste e lançamento.


(DevSecOps visa integrar perfeitamente os protocolos de segurança no ciclo de desenvolvimento contínuo de um projeto.)


Inteligência Artificial (AI) & Machine Learning

As equipas de DevOps podem aproveitar a tecnologia de IA para antecipar riscos em cada ciclo do projeto, pois a Inteligência Artificial pode ser configurada para aprender, identificar problemas e fornecer possíveis soluções para problemas identificados no pipeline do projeto. Ao trabalhar simultaneamente com algoritmos de machine learning, as aplicações de IA podem ser estendidas para a data mining e modelagem para identificação de riscos, bem como deep learning, permitindo que trabalhem independentemente dos programadores, enquanto o próprio machine learning se mostra útil quando aplicado a métodos como predictive analysis.


(Exemplo de tarefas que a IA consegue realizar durante a construção de um pipeline.)


Arquiteturas de microsserviços

A arquitetura de microsserviços ganhou aceitação gradual entre as empresas nos últimos anos, ao contrário das arquiteturas centralizadas tradicionais. Neste tipo de arquitetura, as aplicações são divididas em serviços menores e independentes, o que, por sua vez, permite às práticas de DevOps maior flexibilidade e escalabilidade ao longo do ciclo de vida do projeto. A equipa de DevOps pode dimensionar cada parte da aplicação conforme as necessidades de negócios, em vez de dimensionar a aplicação de uma vez, permitindo que alterações sejam feitas à medida que o projeto avança.
Além disso, devido à sua natureza descentralizada, os programadores podem identificar facilmente todo o tipo de problemas e conter o problema sem interromper todo o sistema. Adicionalmente, a arquitetura de microsserviços permite que os engenheiros de DevOps implantem pequenos recursos ou funcionalidades em componentes específicos, separados de outros módulos da aplicação que não são relevantes para tais mudanças.

 


(Diagrama ilustrando como é que as arquiteturas de microsserviço operam.)

Conclusão

DevOps continua a ser parte integrante de qualquer empresa de software. Ajuda a melhorar a capacidade da organização de planear, produzir e manter lançamentos de software de alta qualidade e competir no mercado.
Embora as tendências acima ainda sejam relativamente novas, elas são apenas alguns dos muitos exemplos de métodos que ajudarão as empresas a ir além da simples implementação de processos de automação, focar na melhoria contínua dos resultados, criar um pipeline de lançamento estruturado e confiável e permitir uma melhor comunicação entre equipas técnicas e de desenvolvimento de negócios.

NÃO PERCA NENHUMA HISTÓRIA!Junte-se à nossa comunidade em crescimento e seja inspirado pelo nossos artigos.
Sem brincadeiras, sem jogos, sem publicidade. Somente um clique para subscrever.
ENPT
lang
Load-chatbot