Entretanto, acompanhar o mundo de DevOps não é tarefa fácil. As ferramentas, práticas e metodologias a ela associadas evoluem muito rapidamente, trazendo a cada semana um leque ainda maior de opções para atacar os desafios de desenvolvimento de software.
Com base nisso, este artigo tem por objetivo introduzir os principais aspectos deste novo mindset e, a partir de plataformas como Maven, Git, Redmine e Jenkins, demonstrar na prática o que e como fazer para aplicar os princípios de DevOps no nosso dia a dia.
A paternidade do termo DevOps é atribuída ao administrador de sistemas Patrick Debois que, incomodado ao experimentar os tradicionais conflitos entre desenvolvedores e administradores de sistemas, sentiu a necessidade de fazer algo para que este tipo de impasse fosse, enfim, solucionado.
Este movimento iniciou-se no ano de 2007 e, após alguns encontros de Debois com outros profissionais, como o desenvolvedor Andrew Shafer e o engenheiro de sistemas John Allspaw, culminou na organização de um evento para discutir especificamente esta questão dos desafios da integração entre as áreas de desenvolvimento e operações das empresas.
A ideia do evento era muito interessante, mas precisava de um título com boa sonoridade e que fosse curto o suficiente para facilitar sua disseminação através das redes sociais – principalmente o Twitter.
Partindo desses princípios, Debois teve a ideia de combinar as três primeiras letras das duas áreas, chegando no nome ‘DevOps Days’. O evento, muito bem aceito pela comunidade, foi bastante comentado no Twitter e o termo, DevOps, ganhou rapidamente uma expressiva popularidade. Desde então é o nome que representa este novo mindset dentro do universo da TI.
A partir disso, ao longo deste artigo cobriremos os principais aspectos ligados ao desenvolvimento de software em um projeto DevOps, analisando algumas ferramentas, plataformas e técnicas importantes para que se desenvolva código com qualidade e de forma gerenciada.
Para o leitor que quiser conferir a história completa a respeito do surgimento do DevOps, é só conferir a referência que deixamos na seção Links.
Mas o que é DevOps, afinal?
DevOps é o termo usado para representar um modelo de pensamento em que as áreas de desenvolvimento e operações se harmonizam no intuito de otimizar a construção e entrega de software. Trata-se de um paradigma cujo objetivo principal é eliminar os obstáculos historicamente enfrentados pelas empresas na entrega de sistemas, através de um fluxo mais equilibrado, sinérgico, entre todas as áreas ativas neste processo.
Não é, entretanto, algo que se pode chamar de novo. Assim como outros movimentos que surgem e rapidamente se popularizam na computação – como o próprio fenômeno da Internet das Coisas ou o advento das metodologias ágeis –, a popularização de DevOps tem provocado em alguns profissionais mais experientes o sentimento de que, a bem da verdade, não há nada nesta proposta que já não viesse sendo praticado por eles há anos.
De fato, toda esta glamourização pode parecer um exagero para alguns, pois indica um certo ineditismo. No entanto, há o lado positivo de toda a história: este rótulo de ‘pop-star’ que DevOps ganhou no mercado acaba atraindo uma grande parcela de pessoas que não está habituada a trabalhar em conformidade com os conceitos e as práticas sugeridas pelo movimento.
E isto, aliado a todo o arsenal de ferramentas que tornam possível a implementação da ideia, contribui indubitavelmente para uma transformação bastante positiva do nosso mercado.
O aspecto cultural
Uma implementação bem-sucedida da cultura DevOps em qualquer empresa passa, necessariamente, por uma mudança cultural. Embora esta não seja a perspectiva tonante do artigo, é importante termos em mente que todo reforço realizado na infraestrutura de uma empresa terá sido em vão caso seus colaboradores não incorporem a verdadeira mensagem que este novo paradigma busca transmitir.
Existem hoje, não raros, casos em que ferramentas de trabalho são empregadas de forma equivocada simplesmente pelo fato de que a empresa, ainda presa às suas antigas raízes, insiste em manter seu foco em valores errados.
Um caso clássico, com o qual muitos leitores poderão, inclusive, se identificar, é a prática de revisão de código. Existem, atualmente, ferramentas que geram sessões de revisão a cada submissão de código no repositório. O objetivo é garantir que nada seja versionado sem conhecimento e, mais importante ainda, discussão e consenso em torno de sua relevância e validade.
No entanto, principalmente devido a uma má gestão de projetos, o que acaba acontecendo é que os colaboradores, sempre com prazos bastante apertados, negligenciam este processo e apenas analisam rapidamente o código-fonte.
Assim, a prática em si perde exatamente a sua principal função, e o impacto na qualidade final do produto/serviço, a médio e longo prazos, tende a ser bastante negativo.
O maior desafio de DevOps nos dias atuais é, portanto, equilibrar a marcha em que tecnologia e pessoas evoluem. Praticá-la com qualidade passa, necessariamente, por revisar todas as práticas adotadas no ambiente em que nos acostumamos a trabalhar e, sem exceções de papéis ou departamentos, empenharmo-nos para torná-las melhores, mais enxutas, mais eficientes.
Ademais, a atmosfera precisa ser uma só, e toda a empresa deve – bem como seus clientes, indiretamente – respirar o mesmo ar de mudança que este paradigma propõe.
Automatização de processos
Além da cultura, existe outro aspecto essencial para que DevOps seja bem-sucedido: a automatização. Mas, afinal de contas, o que devemos automatizar? E, se temos que fazê-lo, quando é o melhor momento?
Em DevOps, tanto Desenvolvimento quanto Operações acabam se beneficiando largamente quando seus processos vitais passam a ser controlados por software.
Em resumo, devemos tornar automático tudo aquilo cuja natureza é repetitiva e que, portanto, estaria bastante sujeita a erros quando executadas manualmente, por seres humanos.
Logo, cada empresa deve observar o que, dentro de seus processos habituais de desenvolvimento e TI, tem essas características e, em seguida, redesenhá-los de forma a usufruir de ferramentas e plataformas que executem tudo com maior precisão e velocidade, melhor qualidade e, ainda, menor custo. Algumas atividades que normalmente acabam se tornando francas candidatas a um processo de automatização são:
- Compilação e empacotamento de código;
- Geração de build a partir de submissões de código-fonte;
- Análise e gestão de qualidade (débito técnico, métricas em geral);
- Execução de suítes de testes de regressão a cada submissão de código;
- Implantação agendada de ‘entregáveis’ (versões do produto/serviço).
Caso paremos para observar todo o movimento DevOps, constataremos que esta é a frente que mais evoluiu. A quantidade e a diversidade de tecnologias que surgem a cada semana são muito grandes, e acompanhar esta evolução acaba se tornando um grande desafio.
Entretanto, é muito importante que não se confunda a parte pelo todo, pois DevOps não é e nunca será sinônimo de automatização. Esta é, sem dúvida, essencial para aquela, mas não a define por si só.
Postura DevOps?
Sem uma mudança cultural, como já discutimos há pouco, não há DevOps. É indiscutível que as questões técnicas são muito importantes (e serão elas os ingredientes a compor todo o artigo), mas antes de entrarmos definitivamente nesse movimento, dedicaremos algumas palavras finais ao que denominaremos de ‘postura DevOps’.
É fundamental que todo o arsenal tecnológico disponível no mercado trabalhe a nosso favor, e isto só ocorrerá caso seus usuários usufruam dele com responsabilidade e, principalmente, consciência de seu papel dentro da equipe.
Este último ponto, o da consciência, ainda é uma barreira a ser vencida no mercado corporativo ‘convencional’, enquanto em start-ups normalmente não chega nem a ser identificada.
Transparência e naturalidade ao lidar com adversidades dentro de um projeto de software são, a partir de DevOps, premissas que não devem, jamais, ser negligenciadas.
Nesta nova filosofia de trabalho, é importante que as pessoas entendam que, no cotidiano de desenvolvimento de software, o espírito a ser cultivado é o de uma constante busca por colaboração, progresso coletivo, em que culpa ou mérito transcenda o indivíduo.
‘Quebrar’ builds, equivocar-se em algum trecho de código ou expor fragilidades individuais devem ser coisas absolutamente naturais em qualquer equipe DevOps, pois o objetivo comum de todos tem de ser apenas uma entrega ágil e com qualidade assegurada ao cliente. Ideologicamente, ao atingir um ponto ótimo de maturidade no processo, o próprio cliente passaria a abraçar a causa e, assim, tornar-se um colab ...
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.