Curso de Infraestrutura Ágil: Aprenda Automação de Software e Infraestrutura
Olá pessoal, faz um tempinho que criamos um novo curso de infraestrutura ágil! Eu particularmente gosto bastante desta versão porque ela atende várias necessidades dos nossos alunos.
Para quem é este curso?
Este curso é voltado para aqueles que estão interessados em aprender ou aperfeiçoar o conhecimento sobre automação de software e infraestrutura, desde a criação da infraestrutura, passando pela configuração das máquinas e pelo provisionamento da aplicação.
Seja para quem está começando, ou para quem já começou, o nosso curso de Infraestrutura Ágil consegue juntar estas duas frentes sem deixar ninguém para trás. Por exemplo:
- Você e sua empresa estão começando e a infraestrutura não é padronizada ou não tem automação? Esse curso é perfeito pra você!
- Você já tem uma certa automação na sua infraestrutura mas está procurando as ferramentas presentes no mercado que facilitarão o seu dia-a-dia? Esse curso é perfeito pra você!
É claro que, por se tratar de um curso sobre as ferramentas, é necessário que você conheça um pouco sobre Linux e neste caso você pode dar uma olhada em nossos cursos de Linux.
Quais os objetivos do curso?
O primeiro objetivo deste curso, e eu chamarei de objetivo moral, é dar autonomia para o aluno, mas como assim?
A ideia de automação e cloud estão misturadas e muitas vezes os alunos e profissionais deixam de fazer testes locais justamente pelo fardo que é a configuração de um ambiente completo. Por conta disso acabamos consumindo recursos valiosos na cloud que poderiam ser gastos com outras coisas, inclusive com um upgrade na nossa máquina! Outros tantos não possuem acesso a uma cloud pelos mais variados motivos. Para estes casos é que utilizaremos o Vagrant.
Já o segundo objetivo, o objetivo técnico, é fornecer uma visão geral sobre automação e como integrar ferramentas para facilitar esse objetivo. Mas não pense que esta automação termina com o provisionamento da infraestrutura através do Vagrant, Rundeck e Ansible! Este curso agora uni os times de infraestrutura e desenvolvimento (Dev e Ops) em um único fluxo de aprendizado. Agora, após termos configurado nossa infraestrutura, nós criaremos uma aplicação em Docker e uma esteira de testes dentro do Jenkins.
Além disso, cada arquivo nosso estará dentro de um repositório git. Isso mesmo, durante o curso formaremos a nossa Infraestrutura como Código. Se você não era programador e não mexia com o git, chegou a sua vez, afinal também codificaremos!
Nosso objetivo é montar este ambiente:
Para que servem as tecnologias?
Temos um apanhado de tecnologias que interagem entre si e vou explicar um pouco cada uma:
O Vagrant é uma ferramenta que facilita a criação e automação de ambientes de teste. Através dele podemos replicar ambientes complexos sem se preocupar com a configuração das máquinas e da rede. Fazemos isso isso através de um único arquivo conhecido como Vagrantfile, que será nosso primeiro “pé” dentro de uma infraestrutura definida como código! Utilizamos muito o Vagrant aqui na 4Linux, simplesmente porque precisamos criar ambientes de testes para nossos muitos casos de consultoria. | |
O git é uma ferramenta utilizada para gerenciar o controle de versão dos nosso arquivos. Pode ser código de um sistema, um Vagrantfile, arquivos do Docker ou até mesmo as receitas de bolo que a nossa avó fazia quando éramos crianças. Esse controle de versão serve para saber o que foi alterado, quem alterou e quando uma determinada alteração aconteceu, facilitando a gerência de múltiplas versões de um ou mais arquivos, podendo, inclusive, transitar entre as diversas versões existentes. Hoje o git é praticamente sinônimo de controle de versão, esqueça o FTP e os backups manuais, o git agora cuida disso para nós! Nosso gerenciador do git será o Gitea, um serviço de git privado. | |
O Rundeck é uma ferramenta para automação das tarefas diárias dos administradores de sistemas. Extremamente flexível, o Rundeck é capaz de automatizar praticamente qualquer tipo de código que possamos escrever pois ele cuida da tarefa de executar este código nas máquinas para nós! Se você é uma pessoa versada em Perl ou Lua você pode automatizar a sua infraestrutura com estas linguagens, sem problemas. Podemos utilizar shell script, Python ou qualquer outra linguagem, inclusive Ansible! O Rundeck possui uma interface web bastante intuitiva com uma granularidade relativamente alta de controle e regras de acessos. | |
O Docker é uma ferramenta que nos auxilia a criação e o gerenciamento de contêineres. Isso mesmo, o Docker não é o contêiner, mas sim a ferramenta que os cria. Um contêiner é a união de uma porção de tecnologias do kernel do Linux. Através do Docker podemos criar e empacotar nossas aplicações sem se preocupar em qual ambiente elas irão funcionar pois todas as dependências já estão neste pacote. O Docker deu o que falar estes meses justamente porque seu suporte foi removido do Kubernetes. Não precisa se preocupar, eu escrevi a respeito disso no nosso post sobre curso de contêineres gratuito. | |
O Ansible é um ferramenta para automação e gerência de configuração de máquinas baseado em python, bastante simples de escrever e relativamente fácil de aprender a base para nos virarmos sozinhos. Seus arquivos são agradavelmente legíveis e simples de fazer o controle de versão. Não podemos negar que o Ansible tornou-se praticamente a ferramenta padrão do mercado para automação, parte por causa de sua arquitetura não centralizada e baixa dependência, já que quase todas as distribuições Linux possuem o python instalado. | |
O Jenkins é uma ferramenta de CI/CD, ou seja, de integração contínua e de entrega e/ou provisionamento contínuo. Através do Jenkins podemos criar a nossa pipeline (esteira) de software integrando diversos testes e disponibilizar uma versão de aplicação final mais confiável. Graças a isso, algumas empresas são capazes de entregar o software da máquina dos programadores até os servidores em produção, tudo isso de forma automática! |
Sobre o mercado
Hoje, automação é praticamente um requisito, dificilmente configuramos as máquinas manualmente em um ambiente empresarial. Esse tipo de configuração leva à diversos problemas, como erros de configuração, falta de padrão e etc. Isso significa que é importante entender como funciona algum tipo de automação, principalmente uma forma mais moderna.
Não importa se você não mexe com cloud ou com contêineres, qualquer coisa é vantajoso automatizar. Por exemplo a extração e a recuperação de um backup de um banco de dados. Quando você estiver cansado, na madrugada, revisando todos passos antes de restaurar um banco você vai se lembrar que poderia ter automatizado esse processo e facilitado para que inclusive outras pessoas pudessem executá-lo.
Uma outra palavra que vemos com frequência por aí é Docker, containers e Kubernetes. O Kubernetes tornou-se o orquestrador (gerenciador de clusters de contêineres) padrão do Mercado, mas utilizá-lo sem um prévio conhecimento de contêineres é relativamente difícil. Sendo assim este curso fornece uma boa base para a criação, teste e gerenciamento de aplicações em contêiner, o que facilitará bastante o entendimento do Kubernetes.
Vantagens deste curso
Existem vários cursos de Ansible por aí, afinal o Ansible tornou-se um verdadeiro canivete suíço para os mais diversos tipos de automação, pequenas ou grandes. Mas neste curso nós utilizaremos o Ansible para montar uma infraestrutura relativamente complexa, porém, bastante comum, com balanceador de carga, proxy reverso, banco de dados e servidor de cache. Para isso nós utilizaremos alguns módulos bastante úteis do Ansible que muito provavelmente estarão presentes na maioria dos módulos que você escrever.
Seja você um administrador de sistemas ou um desenvolvedor este curso pode fornecer um entendimento a respeito destes dois lados, um tipo de conhecimento bastante desejado nas vagas de emprego por aí. Em um deles estaremos configurando nossa infraestrutura e os caminhos pelos quais as requisições deverão passar até chegar na aplicação. No outro, criaremos uma aplicação e escreveremos uma pipeline com alguns testes antes de provisioná-la de fato. Independente do seu “time”, ambos utilizarão git, que sempre é útil em qualquer tipo de trabalho.
A autonomia, conforme eu mesmo escrevi mais acima. Utilizando o Vagrant nós podemos criar uma série de ambientes na nossa máquina com poucos passos. Você quer um ambiente específico, por exemplo:
- Um cluster Kubernetes local similar a um on-premisse? Aqui está https://github.com/hector-vido/kubernetes
- Um cluster de Openshift? Aqui está https://github.com/hector-vido/okd-3.11
- Que tal três máquinas MySQL para testar replicações ou Galera Cluster? Pronto https://github.com/hector-vido/vagrant-mysql
- Já ouviu falar em um replicaSet do MongoDB? É só usar isto aqui https://github.com/hector-vido/vagrant-mongodb
Com algum entendimento em Vagrant nós podemos encontrar milhares de exemplos pela internet, apesar de desejável, não precisamos se quer entender como provisionar as aplicações, podemos simplesmente usá-las e estudar aquilo que queríamos. Tudo bem, eu mostrei apenas exemplos meus, mas não é difícil encontrar outros por aí.
Por último, o Rundeck pode fornecer a você e a sua empresa uma forma de centralizar automações que já existem, padronizando-as ou mesmo fornecer acessos limitados a diferentes equipes, para que cada uma faça o que precise sem depender ou esbarrar em outras equipes.
Conclusão
O curso de Infraestrutura Ágil sempre foi um curso muito querido pela 4Linux e pelos nossos alunos, esperamos que vocês gostem desta nova versão e do novo formato no qual estamos trabalhando para diminuir o tamanho de cada grande aula em pequenas partes.
Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:
About author
Você pode gostar também
Descubra as vantagens do Linux e como migrar facilmente para ele
O Linux é um sistema operacional que tem ganhado popularidade entre usuários comuns, principalmente por ser gratuito e de código aberto. Mas o que exatamente o Linux pode oferecer para
Descubra o novo curso da 4Linux: Infraestrutura ágil com práticas DEVOPS
Aprenda a “versionar” a sua infraestrutura de TI como se ela fosse um software. A 4Linux está anunciando hoje o lançamento do seu mais novo curso: “ Infraestrutura ágil com
Testando e validando suas Roles do Ansible com o Molecule
Hoje, no blog da 4Linux, vamos falar sobre como podemos testar as nossas Roles antes de serem aplicadas no ambiente de produção. O Molecule é um projeto que permite que