Explore the common terms used in the course and get an overview of CI/CD and its different approaches in this video.
- [Instructor] To get the most out of this course, there are a few things you'll want to be familiar with before diving in. It'll be helpful if you're familiar with application development and the software development process. If you already have some experience building, testing, and deploying applications, you'll be fine. Many CI/CD tools are configured with scripts and other codes. So if you're good with scripting, you'll be ready to configure tools and automate build steps. It will also be helpful if you're familiar with source code management tools like Git, Mercurial, or Subversion. Most tools start their processes when changes are applied to a code base, so you'll want to know how to commit changes and push them to a code repository. This could will be more of an overview than a tutorial. Instead of an in-depth analysis of each tool, we'll be noting some of their key features and then demonstrating how to make use of them. Exercise files are available if you'd like to take a closer look at some of the configuration files or the applications that are mentioned during our discussion. Before we get to the tools, let's discuss the meaning of continuous integration, continuous delivery, and continuous deployment. With continuous integration, developers work on their code in a local environment and commit their changes to a shared repository on a regular basis. Their code can then be combined or, in other words, integrated with code from other members of the team or any existing code. The new code is tested along with existing code and checked for errors. Using this method, developers can find and resolve problems more quickly compared to waiting until all the code for an application is complete and integrating everything at once. Continuous delivery is a partner to the continuous integration process. Continuous delivery enables developers to build, test, and release their software with every new change. By including tests in the delivery process, engineers can be confident that the final product meets requirements and doesn't have any unintended features, also known as bugs. Once the application is delivered, it can be deployed as needed. When a deployment completes without human interaction, it's referred to as continuous deployment. In this case, the application is automatically built, tested, and deployed into a production environment.
- Key considerations in picking your stack
- The landscape of CI/CD tools
- Self-hosted options such as Jenkins and Bamboo
- SaaS tools such as Travis CI
- Using AWS CodePipeline and CodeBuild
- Tools for code repositories