DevOps – Ecossistema Open Source

By | 6 de outubro de 2016
Print Friendly, PDF & Email

No artigo “DevOps um desafio para profissionais de Infra” eu fiz uma pequena introdução sobre o que é realmente DevOps. Mas é claro que é uma abordagem básica e simples com a ideia de começar a colocar as coisas no lugar e entender o o conceito para então nos aprofundarmos nas tecnologias que cercam essa tendencia.

Quero neste artigo responder a uma questão feira com muita frequência. O que eu tenho que saber para trabalhar com DevOps? Quais soluções são necessárias e em quais cenários? E eu inicio fornecendo uma ideia básica e inicial de DevOps em um cenário Open Source. Mas quero fechar uma série de 4 artigos.

  • DevOps – Ecossistema Open Source
  • DevOps – Ecossistema Microsoft
  • DevOps – On-Premisses
  • DevOps – Cloud

Vamos iniciar novamente com um pouco de conceito, agora sobre Application Lifecycle Management.

Application Lifecycle Management – ALM

Segundo Condé (2009) podemos definir ALM como todo o processo que guia a vida útil de uma aplicação desde a sua concepção, passando pela construção, operação e evolução. (Saiba mais em https://msdn.microsoft.com/pt-br/library/ee156630.aspx ). E com base nesse processo podemos entender como o conceito de DevOps se encaixa e se relacionada com as aplicações modernas. Lendo um pouco mais sobre os pilares no qual ALM se baseia me faz pensar que talvez o ALM seja o pai do DevOps.

Analisando abaixo temos uma estrutura simplificada de um Framework ALM.

 

Ecossistema Open Source

Usando o mesmo framework acima, porém agora voltado para DevOps em um ecossistema Open Source teremos o seguinte conjunto. (E elevando em consideração o uso de produtos e serviços Microsoft sempre que possível) .

Vamos conhecer algumas dessas soluções citadas no gráfico:

Importante ressaltar que as soluções em sua maioria desempenham diversos papeis ao longo do processo e não necessariamente estão limitados a determinados processos. E esse gráfico é um template, um exemplo, pois em muitos cenários alguma soluções atenderiam a maioria dos processos. 

DevTools

Source

  • GitHub – Serviço de Web Hosting Compartilhado para projetos que usam o controle de versionamento – https://github.com/
  • Codeplex – Portal onde você pode hospedar, gratuitamente, projetos de software opensource – https://www.codeplex.com/

Build

  • Jenkins –  Sistema com centenas de plugins para construção, implantação e automatização de qualquer projeto. – https://jenkins.io/
  • Hudson – Ferramenta de integração contínua (CI) escrita em Java, que é executado em um contêiner – http://hudson-ci.org/
  • Grunt – É uma ferramenta automação de tarefas de build feita totalmente em JavaScript. – http://gruntjs.com/
  • Gradle – É uma ferramenta automação de tarefas de build com muitos recursos de integração – https://gradle.org/

Test/Issues

Deploy/Configuration

  • Chef – Agente de software de código aberto que automatiza infra-estrutura – https://www.chef.io/chef/
  • Puppet Labs – Sistema de orquestração, gerenciamento de configuração  e automação. – https://puppet.com/
  • Jenkins –  Sistema com centenas de plugins para construção, implantação e automatização de qualquer projeto. – https://jenkins.io/
  • Hudson – Ferramenta de integração contínua (CI) escrita em Java, que é executado em um contêiner – http://hudson-ci.org/
  • Grunt – É uma ferramenta automação de tarefas de build feita totalmente em JavaScript. – http://gruntjs.com/
  • Gradle – É uma ferramenta automação de tarefas de build com muitos recursos de integração – https://gradle.org/
  • Vagrant – Permite criar e configurar ambientes de desenvolvimento leves, reprodutíveis e portáteis. – https://www.vagrantup.com/
  • Travis – Solução que permite validar códigos diretamente do Github  –https://travis-ci.org/
  • Fog – Biblioteca de soluções de Cloud feito em Ruby que conta com Compute, DNS, Storage  – http://fog.io/

Ops

Process Tools

No próximo artigo a abordarei o ecossistema Microsoft .
Até o próximo e não deixe de comentar e colaborar com o artigo.

 

  • Jenkins é recomendado para testes contra Linux e Windows quando se usa Containers.