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
- Visual Studio – Conjunto de soluções muito completa (IDE, Team Services) – https://www.visualstudio.com/
- Puppet Labs – Sistema de orquestração, gerenciamento de configuração e automação. – https://puppet.com/
- Eclipse – IDE muito difundido com suporte a várias linguagem – https://eclipse.org/
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
- Selenium – Além de IDE, o WebDriver automatiza web app para fins de teste. http://www.seleniumhq.org/
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
- Nagios – Solução Open Source de monitoramento de infra e aplicações. – https://www.nagios.org/
- Zabbix – Solução Open Source de monitoramento de infra e aplicações – https://www.zabbix.org/
- Cacti – Solução de analise, monitoramento e geração de relatorios e graficos . Um front end de RRDTool – http://www.cacti.net/
Process Tools
- Redmine – Gerenciador de projeto de aplilcações WEB escrito com Ruby on Rails framework,- http://www.redmine.org/
- JIRA – Monitoramento de tarefas e acompanhamento de projetos – https://jira.atlassian.com
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.
Excelente Daniel!
Estou muito ansioso para o artigo DevOps com ecossistema microsoft!
Oi Felipe. Eu estou devagar com DevOps viu. Muito envolvido com security, mas se der vou postar coisas novas. Abração