DevOps - Mão na massa!
- Descrição
- Currículo
- FAQ
- Revisões
O curso DevOps – Mão na massa! foi criado para atender a demanda de profissionais de T.I que já estão no mercado e desejam uma visão geral do que é DevOps no dia a dia. Esse curso foi inspirado pela necessidade de aprender diversas ferramentas que muitas vezes estão conectadas, porém a literatura ou cursos dificilmente as conectam. O objetivo não é ser especialista em todas as ferramentas citadas, mas sim ter uma visão geral de como é trabalhar com DevOps e servir como um guia para os profissionais que desejam embarcar nessa área tão importante nos dias de hoje.
A abordagem do curso, como o nome mesmo diz, é focar na prática o aprendizado, onde cada comando é executado passo a passo e visualizado pelo aluno de forma detalhada e simples.
O curso aborda de forma macro os principais tópicos listados abaixo:
-
Uma pequena apresentação dos conceitos DevOps
-
Uso do Vagrant como plataforma de gerenciamento de máquinas virtuais para Lab.
-
Introdução ao git: comandos básicos de criação de repositórios, gerenciamento da árvore, exemplos práticos de manipulação de arquivos.
-
Ansible: laboratório 100% prático com exemplos de como configurar o managed host, criar playbooks e efetuar o deploy de uma aplicação Java com banco de dados MySQL.
-
Docker: Introdução de instalação e configuração do Docker, exemplos de comandos mais utilizados e por fim como criar uma imagem docker e exemplo de uso do Docker compose como ferramenta de orquestração de containers.
-
Jenkins: O coração do pipeline DevOps. Nesse tópico serão abordados temas de instalação e configuração do Jenkins, criação de pipelines que vão desde a compilação de códigos fonte, startup de containers, testes integrados, build de imagens Docker e como aplicar o git flow no pipline CI/CD.
-
Sonarqube: Melhore a segurança e a qualidade de código com Sonarqube. Entenda o funcionamento integrado do Sonar com o Jenkins, configurando um pipeline DevOps ainda mais completo.
-
Kubernetes: Aprenda como instalar e configurar o K3s, distribuição mais leve do Kubernetes utilizada em nosso laboratório. O k3s será utilizado na esteira DevOps o passo de CD (Deployment continuo) disponibilizando uma aplicação funcional em NodeJs e Redis.
-
Observability: Entenda como instalar configurar o Prometheus, ferramenta de observability muito popular para monitoria de containers e ambientes baseados em microsserviços. Configure dashboards conectados ao Prometheus com o Grafana, ferramenta opensource muito utilizada para visualização de dados e gráficos.
-
1Objetivos do cursoVídeo Aula
Nesta primeira aula explicarei o funcionamento do curso, a estrutura dos conteúdos propostos e o objetivo central, que é utilizar as ferramentas DevOps de forma prática e assertiva.
-
2Introdução a DevOps - um pouco de históriaVídeo Aula
Entenda como o DevOps surgiu, quais são os seus principais motivadores e como essa metodologia se tornou tão popular em diversas empresas pelo mundo.
-
3Introdução ao Vagrant - Para que serve? Ciclo de vida e arquivos de configuraçãoVídeo Aula
A vantagem no uso do Vagrant para criação de máquinas virtuais, em conjunto com as metodologias de DevOps, torna a combinação perfeita para acriação de servidores virtuais de forma rápida, automatizada e segura. Seja um sysadmin, seja um desenvolvedor, o Vagrant tem um papel fundamental na metodologia DevOps.
-
4Introdução ao Vagrant - Uso de boxes, funcionalidades e pontos de atençãoVídeo Aula
Alguns conceitos do Vagrant serão abordados nesta aula. Um deles é o uso de boxes pré-configurados. Além disso, serão apresentadas também funcionalidades de networking.
-
5Vagrant - instalação do vbguest pluginVídeo Aula
Atenção! Não pular essa aula!
O vbguest é um importante plugin, que deve ser instalado no ambiente. Sem ele podem ocorrer problemas no nosso laboratório.
-
6Vagrant - Mão na massa - criando sua primeira máquina virtualVídeo Aula
Venha aprender...
Quais são os pontos de atenção para instalação do VirtualBox e Vagrant.
Como criar Vagrantfile via vagrant init.
Como Configurar port forward.
De que maneira utilizar o script de provisionamento.
Como instalar Apache na máquina virtual e subir arquivos HTML para o guest.
-
7Vagrant - Mão na massa - Revisão de conceitos - configurações extrasVídeo Aula
Facilitadores do vbguest
Como port forward é configurado
Detalhes do compartilhamento de disco
-
8RevisãoQuestionário
-
9Introdução ao GitVídeo Aula
1. Introdução ao Git
2. Conceitos e comandos básicos:
git init, add, commit, status, push, pull, etc.
-
10Git - Mão na massa - como criar um repo gitVídeo Aula
Venha aprender:
Como criar uma conta no github
Instalando o Git no seu computador
Como inicializar um repositório
Como adicionar uma origem remota
Adicionando arquivos ao repositório local
-
11Git - Criando token de acesso pessoalVídeo Aula
Agora você vai aprender como criar token de acesso pessoal ou PAT: Private Access Token. Após a criação do token o commit para o repo remoto será executado com sucesso.
-
12RevisãoQuestionário
-
13Introdução ao Ansible - Arquitetura e conceitosVídeo Aula
Conheça a arquitetura do Ansible e saiba quais são os principais componentes e motivadores para utilizá-lo como ferramenta de Infraestrutura como código.
-
14Ansible - Detalhes do LaboratórioVídeo Aula
Nessa aula vamos conferir arquitetura do laboratório Ansible e detalhar:
A arquitetura do laboratório.
As funcionalidades do Vagrant: nfs, private network e port forward.
A estrutura de diretórios.
O passo a passo de configuração do control node: instalação do Ansible, configuração do inventário.
Testar a conectividade entre os hosts
-
15Ansible - Mão na massa - Instalação do Control NodeVídeo Aula
Aqui você vai criar a estrutura de diretórios necessária para o laboratório, bem como o primeiro arquivo de configuração Vagrant para instalação do control node para o Ansible.
-
16Ansible - Mão na massa - Provisionamento do Control NodeVídeo Aula
O provisionamento é uma ferramenta importante quando pensamos em DevOps. Neste laboratório vamos continuar com essa prática, provisionando a instalação do control node na forma automatizada, sem a necessidade de executar passos manuais.
-
17Ansible - Mão na massa - Provisionamento da máquina de aplicação JavaVídeo Aula
Configure o servidor responsável por hospedar a aplicação Java utilizada nesse laboratório. Nesta aula será realizado ainda o teste de comunicação entre o servidor app01 com control node para validar se a rede privada está funcionando corretamente.
-
18Ansible - Mão na massa - Provisionamento da máquina de banco de dadosVídeo Aula
A máquina de banco de dados será a última a ser provisionada via vagrant no nosso lab.
-
19Ansible - Mão na massa - Configurando arquivo de inventárioVídeo Aula
Aprendendo como configurar o arquivo de inventário do Ansbile, com detalhes de como o control node acessa os managed hosts remotamente, via ssh.
-
20Ansible - Mão na massa - Configurar acesso do control node ao managed nodesVídeo Aula
Aqui você vai configurar a relação de confiança entre hosts e melhorar um pouco mais o script de provisionamento. E ainda:
Como criar chave privada e pública.
Como estabelecer relação de confiança (acesso sem senha) entre servidores.
Ajustar script de provisionamento - adicionar autorized_keys no momento de criação dos servidores.
Obs.: Caso seja necessário utilizar os arquivos de configuração anexos (ansible-lab.tar.gz) lembre-se que a chave pública não vai funcionar. É necessário executar os passos de criação de chave privada e pública explicados nesta aula. Substitua nos arquivos de provisionamento (provision.sh) a última linha referente à atualização do arquivo authorized_keys.
-
21Ansible - Mão na massa - Introdução aos playbooksVídeo Aula
Os playbooks são a base para o estudo do Ansible, pois tudo que é configurado nos managed hosts utiliza playbooks com o passo a passo de cada comando a ser executado remotamente, a partir do control node.
-
22Ansible - Mão na massa - estrutura de diretórios - primeira role via playbookVídeo Aula
Veja a estrutura básica de diretórios para construção dos playbooks, tendo como exemplo a primeira role do ansible customizada para reutilização de código.
-
23Ansible - Mão na massa - variáveis em arquivoVídeo Aula
Nessa aula vamos exemplificar como externalizar variáveis dos playbooks, utilizando novamente a boa prática de reaproveitamento (se necessário) em compartilhar as mesmas variáveis para diversos playbooks.
-
24Ansible - Mão na massa - como instalar módulos Galaxy - uso --check - dry runVídeo Aula
O reuso de módulos da comunidade muitas vezes se faz necessário para evitar retrabalho. Por isso a relevância de aprender como utilizar o Galaxy a favor do time de DevOps. Também está sendo demonstrado a importância do uso do --check, a execução em modo dry run, que simula a execução do playbook, bem como demonstra seus falsos positivos.
-
25Ansible - Mão na massa - instalação do banco dados MySQL via AnsibleVídeo Aula
A instalação do MySQL via Ansible reutilizando código da comunidade é muito mais transparente e limpa, conforme demonstrado nesta aula prática de instalação de um banco de dados. Apresento ainda um pouco do troubleshooting na execução de scripts Ansible.
-
26Ansible - Mão na massa - Como instalar uma aplicação Java do zero parte 1Vídeo Aula
Veja a estratégia de deploy de uma aplicação Java passo a passo, detalhando as tasks a serem criadas no playbook de app.
-
27Ansible - Mão na massa - Como instalar uma aplicação Java do zero parte 2Vídeo Aula
A importância de ler a documentação do código fonte da aplicação faz parte do dia a dia do time de DevOps. Analisar os pré-requisitos do playbook antes de começar a escrever é uma boa prática que será aqui detalhada.
-
28Ansible - Mão na massa - Como instalar uma aplicação Java do zero parte 3Vídeo Aula
Vamos escrever passo a passo o playbook de aplicação java, bem mais complexo que a camada de banco de dados.
Veja os temas abordados neste tópico:
Definição de variáveis.
Configuração hosts – Lab Ansible.
Utilização de role – config básica de S.O (compartilhada).
Adicionar usuário APP.
Instalação do Maven / Java – JDK 8.
Criação de estrutura de diretórios para Aplicação.
Clone do repositório git.
Como Configurar arquivo de propriedades (utilizando templates).
Geração do pacote.
Como registrar versão do pacote (utilizando o register).
-
29Ansible - Mão na massa - Como instalar uma aplicação Java do zero parte 4Vídeo Aula
A abordagem finaliza o playbook de deploy da app Java, mostrando conceitos de criação de serviços via Systemd, templates e o uso de handlers.
-
30Ansible - Mão na massa - Troubleshooting parte 1Vídeo Aula
Vamos colocar em prática a primeira tentativa de execução do nosso script, simulando a vida real executando o troubleshooting do playbook criado na aula anterior.
-
31Ansible - Mão na massa - Troubleshooting parte 2Vídeo Aula
A continuação do troubleshooting prossegue com ajustes ao playbook, bem como a substituição de comandos que poderiam funcionar no passado, mas que podem ser modificados de acordo com a demanda atual do ambiente.
-
32Ansible - Mão na massa - Troubleshooting parte 3Vídeo Aula
Nesta última parte do conteúdo sobre troubleshooting é demonstrado como ajustar o último erro no playbook e finalmente efetuar o deploy da aplicação Java no servidor app01.
-
33Ansible - Mão na massa - Troubleshooting - Problema de compilação do pacoteVídeo Aula
Por conta de alguns alunos apresentarem problemas na compilação do pacote via maven, subi essa video aula com o objetivo de contornar o erro apresentado no momento da geração do arquivo .jar via mvn.
-
34Ansible - Mão na massa - Cuide do seu códigoVídeo Aula
Nesta parte do curso você confere o conceito de DRY - Don't Repeat Yourself - expressão bem conhecida em design de programação, que demonstra o quanto é importante evitar duplicação de código. Em seguida finalizamos o laboratório com o commit no github dos novos arquivos criados para a aula de Ansible. Também foi criada uma nova configuração: o arquivo .gitignore, impedindo que determinados arquivos subam para o github, o que evita poluir o repositório.
-
35Ansible - Mão na massa - testando o laboratórioVídeo Aula
O teste funcional da aplicação é de grande importância, pois valida se os artefatos disponibilizados no ambiente realmente foram configurados corretamente. Vamos aprender um pouco sobre como testar uma aplicação REST via linha de comando, e validar se o dado cadastrado via aplicação foi gravado no banco de dados com sucesso.
-
36Laboratório AnsibleQuestionário
-
37Introdução ao DockerVídeo Aula
Veja o que vamos aprender neste tópico que fala sobre os conceitos de arquitetura do Docker:
O que é e para que serve o docker?
Vantagens do modelo tradicional de virtualização.
Arquitetura do docker: images, container, registry.
Conceitos básicos: docker files, comandos de build, run e download de images.
-
38Docker - Mão na massa - criação de LabVídeo Aula
Nesta aula vamos executar a criação do:
Vagrantfile para lab do Docker.
Script de provisionamento.
Primeiro Dockerfile.
-
39Docker - Mão na massa - montagem do DockerfileVídeo Aula
A montagem do Dockerfile pode conter dependências que impedem a compilação da imagem. Vamos aprender juntos como resolver problemas comuns, como falta de arquivos para compilação da imagem, além de alguns comandos de sys admin bastante utilizados no dia a dia de operações:
vagrant upload
vagrant ssh-config
scp - copia de arquivos remotos
-
40Docker - mão na massa - Compilando Java via DockerVídeo Aula
Na aula anterior foi demonstrado como criar um Dockerfile sem utilizar a compilação do Java no procedimento de geração da imagem Docker. A ideia é comparar a complexidade entre os dois modelos, bem como o tamanho da imagem gerada. Nessa primeira parte vamos aprender como:
Instalar e configurar pacotes do sistema operacional.
Trabalhar com variáveis de ambiente.
Executar comandos ENV, RUN, WORKDIR do Dockerfile.
-
41Docker - mão na massa - Compilando Java via Docker parte 2Vídeo Aula
A compilação do código fonte via Docker é finalizado nesta aula. Aqui você confere como alguns ajustes de permissionamento e variáveis de ambiente foram abordados como temas de troubleshooting.
-
42Docker mão na massa - Como reduzir o tamanho de suas imagens DockerVídeo Aula
Na aula anterior foi constatado que o build de uma aplicação Java requer diversos componentes instalados no container para que a compilação do código fonte seja realizada com sucesso. Sabemos que mais pacotes e dependências aumentam o tamanho da imagem Docker consideravelmente. Como contornar esse problema? O uso do multi stage build será apresentado como solução, confira!
-
43Docker mão na massa - Trabalhando com NodeJS e Redis - parte 1Vídeo Aula
Vamos ver juntos uma breve introdução que preparei para a criação de uma nova aplicação baseada em NodeJS, que faz a comunicação com o Redis, um servidor de chave-valor bem comum no mercado, muitas vezes utilizado como camada de cache. A ideia principal é exercitar outras linguagens de programação e formatos de armazenamento de dados, diferentemente do modelo tradicional de banco de dados.
-
44Docker mão na massa - criando aplicação NodeJsVídeo Aula
Agora vamos escrever um código bem simples em NodeJs, que receberá uma chamada via request http. Essa chamada contabiliza a quantidade de visitas recebidas e atualiza esse dado no Redis.
-
45Docker mão na massa - Rodando aplicação NodeJs em containerVídeo Aula
Após o build do Dockerfile que embarca nossa aplicação NodeJs, será iniciado o container para validar se nossa aplicação está ok.
-
46Docker mão na massa - Redes no Docker - comunicação entre containersVídeo Aula
Por definição o Docker não permite a comunicação direta entre containers. Para que containers possam se comunicar é necessário criar uma rede de comunicação que seja previamente configurada, permitindo assim que a nossa aplicação NodeJS consuma os serviços do Redis, localizado em outro container.
-
47Docker mão na massa - Utilizando volumesVídeo Aula
O uso de volumes no Docker se torna fundamental quando precisamos persistir arquivos, mesmo após o restart / crash do container. Nesta aula vamos aprender a montar um volume em uma instância Docker, criar um arquivo a partir do container e validar se foi gravado com sucesso no host.
-
48Docker Compose - IntroduçãoVídeo Aula
O Docker Compose é uma ferramenta de grande valor quando pensamos em automatizar a criação de containers Docker. Além de estar aderente às técnicas de DevOps (como IaC), pode ser um facilitador para a criação de ambientes temporários, muito utilizados em testes de integração.
-
49Docker compose - mão na massa - Instalação e criação do docker-compose fileVídeo Aula
Veja a abordagem prática de instalação e criação do primeiro artefato do docker-compose.
E acesse os anexos contendo os scripts de instalação do docker-compose.
-
50Docker Swarm - Introdução a orquestração de containersVídeo Aula
A alta disponibilidade em ambientes produtivos é fundamental para manter a saúde das aplicações, promovendo uma experiência satisfatória para o usuário final. Ambientes que sofrem com manutenções – programadas ou não – podem tornar a experiência do usuário frustrante. Manter aplicações up and running sempre será um desafio. Para isso o Docker Swarm nos ajuda criando uma camada de software que gerencia o cluster de servidores Docker de forma prática e transparente.
-
51Docker Swarm - mão na massa - criação do laboratórioVídeo Aula
O Vagrantfile já se mostrou bastante útil na criação de máquinas virtuais para o nosso laboratório. Porém, o formato utilizado de diversos Vagrantfiles para cada máquina virtual pode ser ruim quando pensamos em uma estrutura de máquinas dependentes entre si. No laboratório do Docker Swarm será empregado somente um Vagrantfile para instalar três máquinas virtuais, o que facilita a organização do código fonte, deixando a estrutura de diretórios mais simples e limpa.
-
52Docker Swarm - criando o cluster - comandos de execuçãoVídeo Aula
É necessário executar alguns comandos para a configuração do cluster Swarm para que o manager node tenha conhecimento dos nodes que vão compor o ambiente. Nesta aula também serão listados os comandos para a criação de um service.
-
53Docker Swarm - criando o cluster - mão na massaVídeo Aula
A montagem do cluster Swarm é feita de forma simples através de dois comandos, o init para iniciar o cluster e o join para adicionar nodes ao Swarm cluster. Confira na prática como vamos executar a instalação do cluster, além de alguns testes iniciando containers com alta disponibilidade por meio do comando service.
-
54Docker - revisão - comandos de administração de containersVídeo Aula
A importância da revisão para fixação dos comandos é sempre bem-vinda. Vamos revisar os comandos executados nas aulas anteriores, conforme a lista a seguir:
docker build
docker run
docker network
docker ps
docker rm
docker logs
docker rmi
docker system prune
-
55Sonarqube - IntroduçãoVídeo Aula
Adicionar análise estática de código no pipeline de DevOps é prática altamente recomendada. Com auxílio dessa ferramenta podemos evitar subidas de aplicações para produção com bugs ou até mesmo falhas de segurança. Então vamos aprender sobre a arquitetura do Sonarqube, funcionalidades e benefícios que o time de desenvolvimento pode ter com o uso dessa ferramenta.
-
56Sonarqube - Configuração do Lab - Parte 1Vídeo Aula
A configuração do laboratório será feita a partir de uma máquina vagrant, porém, toda instalação do Sonarqube vai ser baseada em bash script por meio do provision.sh. O objetivo desta aula vai um pouco além da instalação do Sonarqube, demonstrando passo a passo como instalar um produto a partir de comandos bash, configurando serviços no systemd, manipulando arquivos, variáveis de ambiente, dentre outros comandos fundamentais para o dia a dia de um profissional de operações.
-
57Sonarqube - Configuração do Lab - Parte 2 - Sonar scannerVídeo Aula
Dando continuidade à aula anterior, após a instalação do sonarqube via provision, vamos agora instalar o utilitário sonar scanner, responsável por enviar o código-fonte para o servidor do sonar. A instalação vai seguir o mesmo modelo do Sonarqube, utilizando scripts bash através do provisionamento do vagrant.
-
58Sonarqube - Configuração do Sonar - criação de projetoVídeo Aula
O primeiro acesso ao Sonarqube solicita o reset da senha default, por motivos de segurança. O próximo passo é criar um projeto que vai receber os códigos-fontes a serem analisados. Nesse lab vamos utilizar a aplicação redis-app, criada no lab do Docker Compose como exemplo de análise de código.
-
59Sonarqube - Sonar scanner - analisando aplicação NodeJsVídeo Aula
A aplicação NodeJS criada no lab do docker compose foi escolhida para ser analisada pelo Sonarqube nesta aula. Vamos gerar um Bug e corrigir logo em seguida para validar o comportamento da ferramenta, com exemplos práticos da análise e correção de código, utilizando o Sonarqube também como fonte de resolução de problemas.
-
60Introdução ao Jenkins - Instalação do laboratórioVídeo Aula
Na aula introdutória ao Jenkins vamos falar da importância do Jenkins no que diz respeito ao CI/CD, formato de trabalho (master e slave multi plataforma), dependência de ferramentas e plugins, como git e maven, e os passos iniciais de configuração do produto.
-
61Jenkins - Mão na massa - Criação de laboratórioVídeo Aula
A configuração do laboratório do Jenkins será feita por meio do provisionamento do vagrant, utilizando bash script para instalação do Jenkins, docker e docker-compose. A configuração inicial de plugins também será demonstrada.
-
62Jenkins - pré requisitos para criação do Pipeline DevOpsVídeo Aula
Aqui você vai entender os pré-requisitos necessários para a criação do nosso primeiro pipeline DevOps. A criação de um repositório no github será o primeiro passo.
Vamos reutilizar a aplicação redis-app criada no laboratório do docker-compose, reaproveitando o código já existente.
-
63Jenkins - Mão na massa - criação do repositório gitVídeo Aula
Veja na prática como criar o repositório git com os artefatos necessários para a geração do nosso primeiro pipeline no Jenkins.
-
64Jenkins - Mão na massa - criando primeiro pipeline - parte 1Vídeo Aula
A criação do primeiro pipeline, que você confere aqui, está focada na apresentação da integração contínua, desde o checkout do código-fonte, passando pelo build da imagem docker até os testes da aplicação. Será demonstrado como utilizar a linguagem de pipeline, de forma simples e objetiva, através da criação do Jenkinsfile.
-
65Jenkins Mão na massa - criando primeiro pipeline - parte 2Vídeo Aula
Os ajustes finais da primeira versão do pipeline serão executados nesta aula, fique de olho!
-
66Jenkins Mão na massa - criando script bash para teste da aplicaçãoVídeo Aula
A ideia de exercitar bash script está sendo aplicada no decorrer do curso, com exemplos práticos que se encaixam nas atividades de forma natural. Vamos criar um script bash um pouco mais avançado agora, que executa um teste GET na nossa aplicação Node e verifica se o serviço está no ar.
-
67Introdução - Objetivos e arquitetura da integração Jenkins e SonarqubeVídeo Aula
É fundamental automatizar todos os passos do ciclo de vida do software em uma esteira de DevOps. Nas aulas anteriores aprendemos como instalar, configurar e analisar um código-fonte em Python no SonarQube, de forma manual. O objetivo dessa seção é integrar o Jenkins ao Sonarqube, automatizando a tarefa de análise estática de código, bem como a segurança da nossa aplicação.
-
68Configuração do Lab Jenkins e Sonarqube - rede de comunicaçãoVídeo Aula
É fundamental automatizar todos os passos do ciclo de vida do software em uma esteira de DevOps. Nas aulas anteriores aprendemos como instalar, configurar e analisar um código-fonte em Python no SonarQube, de forma manual. O objetivo dessa seção é integrar o Jenkins ao Sonarqube, automatizando a tarefa de análise estática de código, bem como a segurança da nossa aplicação.
-
69Configuração do sonar-scanner e plugins no JenkinsVídeo Aula
A configuração do sonar scanner é necessária para que o Jenkins execute a análise estática do código por meio do nosso Pipeline DevOps. Essa chamada vai ocorrer toda vez que um novo commit no Github for criado, melhorando a qualidade do nosso código, evitando subidas indevidas para o ambiente produtivo.
-
70Adicionando Sonarqube ao pipeline DevOpsVídeo Aula
Vamos aprender a configurar a segunda parte do plugin do sonar scanner? E ainda, alterar o pipeline DevOps adicionando os steps do Sonarqube. Confira!
-
71Configuração do Quality Gate - personalizar validação do códigoVídeo Aula
Percebemos na aula anterior que nosso código não possui testes unitários. Na política default do Sonar os testes unitários devem cobrir pelo menos 80% do código. Então vamos aprender como configurar o Custom Quality Gate para atender às necessidades do nosso laboratório.
-
72Nexus - IntroduçãoVídeo Aula
É uma boa prática pensar em um armazenamento centralizado dos artefatos gerados pelo pipeline de DevOps. Nesta aula vamos aprender como utilizar o Nexus, gerenciador de repositório muito popular que vai nos auxiliar na atividade aqui proposta.
-
73Nexus - Configurar containerVídeo Aula
Neste laboratório vamos utilizar uma imagem docker pré-configurada para subir o serviço do Nexus no nosso ambiente, que será utilizado futuramente pelo pipeline DevOps por meio do Jenkins.
-
74Nexus - Configurar Registry Docker e usuário JenkinsVídeo Aula
Vamos agora configurar o serviço de registry do Docker no Nexus. Também é necessário criar um usuário para o Jenkins conectar ao Nexus.
-
75Nexus - Configuração de usuário e Registry DockerVídeo Aula
Após iniciar o container docker com o Nexus é necessário executar alguns passos administrativos para finalizar a configuração do Nexus. A criação do usuário Jenkins e a configuração do registry Docker também serão vistas neste momento.
-
76Nexus - upload manual para o registryVídeo Aula
A importância de validar a execução do script antes da alteração do pipeline já elimina a possibilidade de suspeita de erro de configuração do lado do Nexus. Vamos executar o build, a tag e o push da imagem docker para o registry do Nexus.
-
77Nexus - integrando Jenkins ao repositórioVídeo Aula
O passo final na cadeia de integração contínua será o upload da imagem docker para o Nexus. Saiba como integrar o Jenkins ao Nexus utilizando boas práticas, evitando uso de URLs fixas no código, senhas hardcoded, o que mantém o código limpo, reutilizável e em conformidade com os requisitos de segurança recomendados.
-
78Kubernetes - IntroduçãoVídeo Aula
O gerenciamento de containers pode ser caótico quando o volume e a complexidade do ambiente aumentam. O Kubernetes nasceu dessa necessidade: de gerenciar containers de forma transparente e automatizada para os operadores de infraestrutura. Conheça alguns conceitos de arquitetura e veja as funcionalidades do Kubernetes.
-
79Kubernetes - apresentação do k3s - Objetivos do labVídeo Aula
Apresento neste tópico a distribuição kubernetes chamada k3s, muito mais leve e de simples configuração, sempre bem-vinda em laboratórios, pois é homologada para funcionar da mesma forma que um cluster k8s.
-
80Kubernetes - configurando o k3s - LabVídeo Aula
Demonstrar a instalação do cluster é um passo importante como experiência de primeiro contato com a ferramenta. Seria perfeitamente possível automatizar a instalação via provisionamento, porém nessa aula vamos fazer um pouco diferente e agregar mais experiência com a instalação do zero do cluster K3s.
-
81Kubernetes - utilitários de linha de comando para k8sVídeo Aula
O uso constante do terminal pode ser cansativo, principalmente quando as linhas de comando são extensas ou executadas com muita frequência. Para evitar retrabalho, vamos apresentar atalhos (ou autocomplete) que facilitam o nosso dia a dia e aumentam a produtividade. Além disso é recomendado instalar os utilitários já conhecidos para troubleshooting, como telnet, net-tools (netstat) para nos auxiliar na montagem do laboratório.
-
82Kubernetes - Configuração do registry privadoVídeo Aula
Saiba como configurar um registry docker privado. Ou seja, como utilizar o registry configurado no Nexus como repositório docker para o cluster k3s.
-
83Kubernetes - deploy do redis server - parte 1Vídeo Aula
Arquivos YAML na vida de um profissional DevOps é algo tão natural quanto tomar café. Vamos criar o primeiro deployment, feito manualmente, sem copiar templates? Justamente para passar por problemas comuns de erros de digitação, falta de identação, entre outros obstáculos comuns para quem trabalhar com K8s. Para isso a ideia é empregar o exemplo de deployment utilizando redis como nosso primeiro deploy no kubernetes.
-
84Kubernetes - validando o deploymentVídeo Aula
Nem sempre o retorno de sucesso (objeto criado) do kubectl necessariamente quer dizer que o deploy foi executado com sucesso. Confira uma lista de comandos necessários para o troubleshooting e para encontrar informações referentes ao objeto recém-criado.
-
85Kubernetes - Expor serviço do RedisVídeo Aula
A criação de um novo objeto chamado Service é necessária para que os containers possam se falar. O Service trabalha na camada de networking e será o componente responsável por expor a porta do container para a rede K8s, para que outras aplicações estabeleçam conexão com a aplicação em questão.
-
86Kubernetes - Validando a camada de redes do RedisVídeo Aula
Problemas de comunicação são comuns em ambientes complexos. Quando falamos de k8s precisamos entender que a edição manual de arquivos yaml pode gerar erros de configuração, principalmente se alguma parte referente à camada de rede for esquecida, como o expose de uma porta. Veja como fazer um troubleshooting na camada de redes, validando se nosso Redis está configurado corretamente para receber conexões de outros pods.
-
87Kubernetes - Deploy da aplicação redis-app - parte 1Vídeo Aula
O deploy completo de uma aplicação web no k8s será apresentado nesta aula. Vamos mostrar na prática como criar uma configuração do zero, os erros comuns de execução e possíveis problemas que podem ocorrer em um ambiente real. Vamos aprender como configurar:
Deployment
Service
Ingress
-
88Kubernetes - Deploy da aplicação redis-app parte 2Vídeo Aula
A continuação do deploy é focada em validar o deploy, verificar se os serviços estão responsivos e bem configurados. Nesta aula finalizamos o deploy ponta a ponta de uma aplicação no kubernetes, desde a configuração do deployment até o Ingress, expondo a aplicação para fora do cluster k8s.