What just happened was actually pretty amazing. A sysadmin from the early 2000s would be blown away by how easy it is to deploy a web application today. You started with a Docker Image that holds a lightweight, portable, and self-contained version of a web application, and in one click you deployed it to the public internet, complete with:
It's important to understand that many companies have a more complex setup and do a lot of that stuff manually. Levels of complexity vary dramatically in CI/CD automation from one company to the next, just like levels of complexity vary dramatically in applications from one company to the next.
Just to give you a taste of the variety of CI/CD flavors, I want you to know that some companies isolate CI from CD into two separate systems, e.g. Jenkins for CI vs Rundeck for CD. On the flip side, you will also find companies that bundle CI/CD together into a single job that builds and deploys the application. If there's a different way to do CI/CD, there's a company out there somewhere prototyping it. Now that's enterprise coding!
Regardless, the principle is the same everywhere. At its core, CI/CD enables us so that:
That "build and deploy the app automatically" can be 10 lines of yaml or it can be thousands of lines of custom bash scripts. It all depends on the complexity of the app and the needs of the company.
bash scripts. It's easy to run locally, and it's easy to run on any CI/CD platform.