Visão Geral
Curso Implementing A CI/CD Pipeline, Esta aula é uma experiência prática sobre como criar seu pipeline de CI/CD do início ao fim.
Construir, testar e implantar código pode ser complexo e demorado. Este Curso Implementing A CI/CD Pipeline, ministrada por instrutor, fornece a solução de como criar um pipeline de CI/CD automatizado que cria, testa e implanta código sempre que um desenvolvedor envia uma alteração de código, garantindo apenas alta qualidade e o código aprovado é implantado.
Os desenvolvedores não usam ferramentas de software isoladas, então por que aprender ferramentas isoladamente? Este Curso Implementing A CI/CD Pipeline, combina as tecnologias empresariais mais amplamente utilizadas em pipelines únicos, integrados e de ponta a ponta. Ensinaremos git desde o início para que você possa enviar código com segurança para um repositório remoto, como Github ou Bitbucket. A seguir ensinaremos como configurar servidores usando Ansible a partir do código armazenado no git. A seguir, integraremos git e Ansible com Jenkins CI/CD para construir, testar e implantar seu código em ambientes de teste e produção, criando um pipeline DevOps automatizado de ponta a ponta.
Conteúdo Programatico
Technology Overview
- Terraform – Infrastructure control (optional )
- Git - Source Control Management
- Chef - Configuration Management
- Inspec - Cookbook Testing
- Jenkins - Continuous Integration
- Docker – Containerization (optional for 4-day delivery)
Terraform – Infrastructure Automation (optional)
- Terraform use and purpose
- Getting started with Terraform
- General concepts
- Installation
- Configuration Files
- Provisioning and Building Infrastructure
- Changing Infrastructure
- Destroying Infrastructure
- Resource Dependencies
- Input Variables
- Output Variables
- Modules – Pre-defined Configurations
- Remote state management
- Terraform Enterprise
- Triggering a Plan from Version Control
- Workspaces
- Terraform Enterprise Runs
- Migration from Open Source to Enterprise
- AWS
- Managing infrastructure in AWS
- Creating IAM Policies
- Authenticating to AWS
- Launching a serverless application - Lambda
- Azure
- Managing infrastructure in Azure
- Authentication Methods for Azure
- Git – Source Control Management
- Purpose and overview of Git
- Use cases for Git
- Git workflow
- Github, Bitbucket and other Git providers
- Installation and configuration
- Finding help on Git
- Creating Local Git Repositories
- Basic Git Commands
- Comparing commits
- Using a Remote Repository
- Branching and Merging
- Using SSH keys with Git private repositories
- Chef – Configuration Management
- Chef Architecture and call flow
- Chef Use cases
- Idempotence
- Resources
- Recipes
- Cookbooks
- Integration Testing and Test Kitchen
- Chef Server – a central management repository
- Ohai, Attributes and the Node Object
- Chef Roles
- Jenkins – Continuous Integration / Continuous Deployment
- Jenkins Overview, Use Cases and History
- Initializing a Jenkins server
- Projects & Jobs
- Freestyle versus Pipeline
- Writing a Declarative Pipeline Project - CI/CD as Code
- Distributing builds using Master and Agent Nodes
- Views and Folders
- Managing Credentials
- Integrating with Git - Source Control Management
- Triggers: Webhooks and Polling
- Notifications: Slack and SMTP Email
- Testing Chef Cookbooks with Test Kitchen in Jenkins
- Multibranch Pipelines - Reading Entire Repositories
- Using Maven to Compile, Test & Package Java Applications
- Storing artifacts in JFrog Artifactory
- Deploying Chef cookbooks with Jenkins
- Docker – Containerization And Micro-Service (optional with 4-day delivery)
- Container Use cases: what problems Docker solves
- Docker Concepts and Components
- Most-used Docker Commands
- Storing Docker images
- Docker Compose
- Launching microservices using Docker
- Building a Docker Image using Jenkins
- Deploying a Docker container using Chef and Jenkins
Finally, we’ll create the end-to-end Pipeline using Git, Chef & Jenkins:
Three-day option:
- Write Chef cookbooks with Inspec tests
- Push the cookbooks to a branch within a Git repo
- This push will automatically trigger Jenkins to download the cookbooks
- Jenkins will then initiate testing the Chef cookbooks using Test Kitchen
- If any tests fail, Jenkins notifies the developer to fix and repeat the build
- Once all tests pass, Jenkins can require human approval. Once approved, Jenkins will upload the cookbooks to the Chef Server
- Jenkins will then trigger Chef-managed webservers (in AWS) to download the cookbooks from the Chef Server and deploy the cookbook code
- Jenkins will then send notifications over both Slack and email regarding any failures or the successful deployment of the cookbooks
Four-day option adds:
- Upon successful testing in Test Kitchen, create and save a Docker image
- Notify teams of successful deployment of Docker containers
Five-day option adds:
- Write Inspec tests for Terraform configurations
- Test our Terraform Configuration in Test Kitchen
- Jenkins will use Terraform to launch Docker Hosts running Docker containers, as well as use Chef to configure those containers to run micro-services