Alura > Cursos de Programação > Cursos de Python > Conteúdos de Python > Primeiras aulas do curso Integração Contínua com Docker e GitHub Actions: do build ao deploy em nuvem

Integração Contínua com Docker e GitHub Actions: do build ao deploy em nuvem

Fundamentos de CI/CD e GitHub Actions - Introdução

Apresentando o instrutor e o curso

Olá, bem-vindo ao curso de CI/CD, utilizando GitHub Actions e Docker. Meu nome é Danilo de Sousa Miguel, e serei seu instrutor durante todo o percurso deste curso.

Audiodescrição: Danilo é um homem negro, magro, com barba de média a longa, cabelo curto, e está usando uma camiseta cinza. Ele está sentado em uma cadeira preta com detalhes vermelhos. Atrás dele, há uma parede branca com luzes azuis e rosas.

Compartilhando experiência e conteúdo do curso

Tenho mais de 10 anos de experiência como engenheiro de software, atuando no setor acadêmico e também no setor corporativo. Este curso é para quem deseja se aprofundar nos conceitos de entrega e integração contínua. Vamos explorar fundamentos de CI/CD e GitHub Actions, fundamentos de conteinerização utilizando Docker, Docker avançado, com Dockerfile, Docker Compose, publicação de imagens, implantação em serviços na nuvem, segurança em pipelines, CI/CD, versionamento e observabilidade de serviços. Nos vemos nos próximos vídeos. Até então!

Fundamentos de CI/CD e GitHub Actions - Entendendo integração contínua (CI) e entrega contínua (CD)

Discutindo integração contínua

Vamos começar a discutir integração contínua, implantação contínua e entrega contínua. Vamos abordar os conceitos de CI e CD. Observando a apresentação na tela, temos alguns conceitos e algumas das principais características da integração contínua.

Comecemos pela integração, o CI (integração contínua). Trata-se de uma prática de desenvolvimento de software, na qual os membros de uma equipe e todas as pessoas envolvidas, como engenheiros e engenheiras de software, integram seu trabalho com frequência, geralmente várias vezes ao dia. Cada integração é validada e verificada por meio de builds e testes automatizados, com o objetivo de identificar erros antecipadamente, evitando que cheguem à produção.

Explorando as características da integração contínua

As principais características destacadas nas apresentações incluem commits frequentes, ou seja, validações dos ajustes com regularidade, execução automática de testes, o que leva à detecção precoce de erros, além de proporcionar um retorno rápido e de qualidade.

Abordando a entrega contínua

Passando agora para a próxima apresentação, temos a entrega contínua, ou continuous delivery. Trata-se da capacidade que uma ferramenta oferece a uma equipe, ou que a metodologia proporciona, de disponibilizar mudanças de todo tipo, incluindo novas funcionalidades, correções, depurações, experimentos e novas configurações, para produção, operação ou para os usuários finais, de maneira rápida, segura e com qualidade.

As principais características são a automatização do lançamento, a preparação constante do software, garantia de qualidade e a redução do tempo dessa integração, desse deploy (implantação), dessa disponibilização de uma nova versão do software para o usuário.

Explicando a implantação contínua

Passamos agora para o que é uma extensão do CD, que é a implantação contínua. Todas as mudanças que passaram por todas as etapas de uma sequência de passos, de testes, de análises, são implantadas automaticamente em produção, sem intervenção humana. Essa é a ideia.

As principais características incluem a automatização da implantação, implantação sem aprovação manual, ou seja, sem intervenção humana, monitoramento constante e capacidade de reversão.

Destacando os benefícios da automatização

Os benefícios de criar uma automatização assim, utilizando os conceitos de CI e CD, que acabamos de mencionar, são a redução de riscos, redução de custos durante o processo de desenvolvimento do software, detecção precoce de bugs (erros) e problemas, um retorno mais rápido sobre novas funcionalidades, maior confiabilidade nas entregas, proporcionando mais segurança à equipe, implantação mais frequente, pois o processo está automatizado, o que agiliza a implantação e reduz o tempo de lançamento de novas funcionalidades. Tudo isso é possível graças à automatização de todos os conceitos implementados.

Concluindo a apresentação

Um pouco de conceito, e nos vemos nos próximos vídeos, trazendo mais conceitos e um pouco de prática também. Até a próxima!

Fundamentos de CI/CD e GitHub Actions - Principais ferramentas de CI e CD

Introduzindo as ferramentas de CI e CD

Agora, vamos falar sobre as principais ferramentas de CI e CD existentes no mercado. Não temos apenas o GitHub Actions; há uma série de ferramentas amplamente utilizadas pelo público e pela comunidade em geral.

Explorando o Jenkins

Começamos observando no navegador: temos o Jenkins. O Jenkins é uma ferramenta que já existe há algum tempo, sendo uma das mais antigas. Suas principais características incluem flexibilidade, personalização e uma série de plugins que permitem essa personalização. Ele oferece suporte para praticamente qualquer ambiente de desenvolvimento, possui uma comunidade ativa, com muitos artigos sendo publicados constantemente, e permite instalação autohospedada, entre outras funcionalidades.

Analisando o GitLab

Também temos o GitLab, que é uma ferramenta conhecida e bastante rápida. Ele oferece configuração, integração, execução paralela de testes, muitas funcionalidades, além de orquestração do fluxo de trabalho e do pipeline automático ou automatizado.

Destacando o CircleCI

Além disso, temos o CircleCI, que vamos abrir no navegador agora. Esta ferramenta, que é muito conhecida, destaca-se pela velocidade, integração e execução paralela de testes.

Apresentando o Bitbucket e Bitbucket Pipelines

Passamos agora para o Bitbucket, que também é uma ferramenta de controle de versões de código. Junto com o Bitbucket, temos o Bitbucket Pipelines, uma ferramenta integrada ao Bitbucket. A configuração é feita por meio de arquivos YAML, que são os arquivos que utilizaremos para criar nossos pipelines, a sequência de passos que automatizará nosso processo de entrega e integração contínua.

Focando no GitHub Actions

Temos também o GitHub Actions, que é o que utilizaremos neste curso. Vamos mostrar brevemente o GitHub Actions, que, embora seja uma ferramenta bastante conhecida, está integrada ao GitHub. O GitHub Actions possui um painel que mostra tudo o que foi executado, os erros, tudo bem organizado. É uma ferramenta bastante flexível, de código aberto, e conta com uma comunidade muito ativa.

Concluindo a introdução às ferramentas

Essas são as principais ferramentas. O curso terá um foco no GitHub Actions, e esperamos vocês nos próximos vídeos para falarmos mais sobre CI e CD.

Sobre o curso Integração Contínua com Docker e GitHub Actions: do build ao deploy em nuvem

O curso Integração Contínua com Docker e GitHub Actions: do build ao deploy em nuvem possui 337 minutos de vídeos, em um total de 103 atividades. Gostou? Conheça nossos outros cursos de Python em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Python acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas