Week 5: Go with the flow
Goals of the week
- Learn CI/CD processes with GitHub Actions, Gitlab CI or Code Pipelines
- Learn How to use different CD tools for deployments
- Learn How to create Pipelines
Continuous Integration (CI) and Continuous Deployment (CD)
CI/CD are key practices for DevOps. They are used to automate the software development process, enabling developers to quickly and easily build, test, and deploy code changes.CI/CD bridges the gaps between development and operation activities and teams by enforcing automation in building, testing and deployment of applications. CI/CD services compile the incremental code changes made by developers, then link and package them into software deliverables.
You will learn how to use CI/CD to automate the software development process, enabling developers to quickly and easily build, test, and deploy code changes. It's important to continue learning and experimenting with different CI/CD tools and practices
Courses: CI/CD for the Beginner Developer.
Course expectation: Good understanding of CI/CD and any related tool.
Estimated time to complete this course: 4 days.
- Learn: The basics of CI/CD: The first step is to understand the basic concepts of CI and CD, such as version control, build automation, test automation, and deployment automation.
- Learn: Set up a CI pipeline: Learn how to set up a CI pipeline using tools like Jenkins, Travis CI, or CircleCI. This can include configuring the pipeline to automatically build, test, and deploy code changes.
- Learn: How to use version control: Learn how to use version control tools like Git and SVN to manage code changes and collaborate with other developers.
- Learn: How to use build automation tools: Learn how to use build automation tools like Maven and Gradle to automatically build and package code changes.
- Learn: How to use test automation tools: Learn how to use test automation tools like JUnit, Selenium, and Cucumber to automatically test code changes.
- Learn: How to use deployment automation tools: Learn how to use deployment automation tools like Ansible, Chef, and Puppet to automatically deploy code changes to various environments.
- Learn: How to use containerization and container orchestration: Learn how to use containerization tools like Docker and Kubernetes to package and deploy code changes.
- Learn: How to use GitOps: Learn how to use GitOps to manage and deploy applications on a Kubernetes cluster. This can include using tools like Flux and ArgoCD to automate the deployment process and ensure that the desired state of the cluster is always reflected in git.
- Task: Design a continuous integration and continuous deployment (CI/CD) pipeline on GitLab to serve a static application on Amazon Web Services (AWS) CloudFront.
- Task: Design a continuous integration and continuous deployment (CI/CD) pipeline using GitHub Actions to deploy a backend application on an Amazon Elastic Compute Cloud (EC2) instance, and serve it using Nginx with a self-signed certificate.
- Task: Design a CI/CD that will mirror Github Repo to Code Commit, use AWS Code pipeline to deploy a node.js docker application on EC2 instance.