DevOps — Porque você precisa saber disso!

Fala galera ! Essa semana eu quero falar de algo que foge um pouco do que tenho falado. sobre TM e todas essas partes burocráticas do processo, pra falar de algo que eu tenho estudado e tem mudado minha visão sobre como se faz software e em principalmente como se entrega um serviço, algo chamado DevOps

eu começando a ler sobre DevOps (e eu adoro esse gif)

Eu vou pular toda a parte histórica do DevOps pra tentar resumir e apresentar o que eu tenho aprendido e visto sobre o assunto. Se quiser saber mais sobre DevOps com bastante detalhes, sugiro esse excelente post da Kamilla Queiróz. E está em português! Yay!.

Resumidamente e em minhas palavras, o DevOps é um mindset — uma cultura, forma de se pensar — sobre como se entregar pequenas quantidades de código mais rápido para o usuário e obter um feedback rápido e continuar nesse ciclo de code, delivery, feedback continuamente.

Sem ser muito técnico, acredito que os pilares do DevOps são 3 coisas que você deve procurar saber: Automação, Continuous Integration (Integração Continua) e Continuous Delivery (Entrega Continua). Vamos falar um pouco desses caras.

Automação

Se trabalha com testes é bem provável que já ouviu esse termo (e tremeu um pouco no inicio). Mas saiba que nem só de testes vive a automação. A regra aqui é automatizar o máximo que você puder. Automatize seu check-in, seu build , seu deploy… a chave aqui é tempo. Você ganha muito mais tempo pra realmente trabalhar em cima do código, com novas features ou correções necessárias. Não tem muito mistério: quanto mais automatizado seu processo é, menores são as chances de falhas, maior a qualidade que seu produto tem e mais rápido ele atende o seu publico.

Continuous Integration

Traduzido pra nós brazucas, a Integração Continua é fortemente dependente da automação e versionamento. Sem esses processos, arrisco dizer que é quase impossível que dê certo esses processos contínuos.

A CI consiste em builds automáticos e merges rodando diversas vezes, durante a semana ou durante até mesmo o mesmo dia. Apenas o build automático não basta, é preciso que você esteja sempre fazendo merge das suas correções/alterações para o main, diminuindo problemas de merge que acontecem cada vez que seu código fica mais e mais distante do main e de outras alterações feitas por outras pessoas da equipe.

É importante também que esses builds rodem testes unitários, que tem o feedback mais rápido se o que você fez quebrou algo e te dá rapidez pra corrigir o problema sem afetar os coleguinhas.

Continuous Delivery

Vou começar com uma frase que li em um curso (vou fazer um merchan depois) que achei muito bacana:

“Você não tem nenhum beneficio de códigos que não estão em produção. Se ele não está em produção, você não é capaz de impactar a vida dos seus usuários finais” @stevenborg
"vamos subir pra produção?"

Subir algo pra produção muitas vezes pode ser um terror em processos mais antigos. A probabilidade de subirem erros para o cliente caso você não tenha ambientes separados é enorme. Por isso muitas vezes optam por demorar na entrega para ter certeza de que estão entregando algo corretamente.

Mas não é necessário demorar pra entregar algo de qualidade, é preciso ter um processo definido, e isso não significa aquela burocracia toda que você imagina. Na entrega continua, você sobe suas alterações já testadas por unit tests anteriormente no build feito entre ambientes de dev e homolog e, antes de subir as alterações de fato para a produção, são realizados novos testes automaticamente, automatizados (se você automatizou, é claro), que dependendo da sua necessidade podem ser rápidos smoke tests ou looooongos (bota longo nisso) testes funcionais e de carga/estresse.

Entregue soluções rápido e com qualidade. Parece até slogan de transportadora, né? Mas é Entrega Continua mesmo🙂

Tá, mas por onde começo então?

Eu também não sabia nada sobre DevOps até um tempo atrás, mas decidi estudar. E como eu sou um cara que to sempre cercado de soluções Microsoft por onde eu trabalho, fui recomendado por um colega a procurar cursos no edX.

O edX é um site para e-learning, estilo Coursera, Udacity e outros. Se você não conhece nenhum desses, sugiro que comece a pesquisar porque os moccs certamente são o futuro do ensino, e é um futuro bem próximo ! Ah, todos eles contam com cursos em português, mas a grande maioria do conteúdo interessante é em inglês.

Mas então, a MS tem diversos cursos nessa plataforma (alias, ela tem o MVA também, indico forte). O que eu fiz de DevOps foi esse curso. Ele passa por todas as fases, com um foco no TFS, é claro.

bora estudar. animação !

Então é isso galera. Foi mais pra passar um pouco do que tenho aprendido e também pra indicar essas plataformas de ensino bacanas, pra você se atualizar ai. Até a próxima.


Originally published at josenildoamorimblog.wordpress.com on August 29, 2016.