Alura > Cursos de Back-end > 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 Back-end, ou leia nossos artigos de Back-end.

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