Introduction
What is CD?
What's Involved in Continuous Delivery
Getting Software to Production
Tools
The Complete Picture
Summary
The course is part of these learning paths
There was a time where it was commonplace for companies to deploy new features on a monthly, bi-monthly, and, in some cases, even quarterly basis.
Long gone are the days where companies can deploy on such an extended schedule. Customers expect features to be delivered faster, and with higher quality. And this is where continuous delivery comes in.
Continuous delivery is a way of building software, such that it can be deployed to a specified environment, whenever you want to. And deploy only the highest quality versions to production. And ideally with one command or button push.
With this level of ease for a deployment, not only will you be able to deliver features to users faster, you'll also be able to fix bugs faster. And with all the layers of testing that exist between the continuous integration and continuous delivery processes, the software being delivered will be of higher quality.
Continuous delivery is not only for companies that are considered to be 'unicorns', it's within the grasp of all of us. In this Course, we'll take a look at what's involved with continuous delivery, and see an example.
This introductory Course will be the foundation for future, more advanced Courses, that will dive into building a complete continuous delivery process. Before we can start trying to implement tools, we need to make sure that we have an understanding of the problem we need to solve. And we need to know what kind of changes to our application may be required to support continuous delivery.
Understanding the aspects of the continuous delivery process can help developers and operations engineers to gain a more complete picture of the DevOps philosophy. Continuous delivery covers topics from development through deployment and is a topic that all software engineers should have experience with.
Course Objectives
By the end of this Course, you'll be able to:
- Define continuous delivery and continuous deployment
- Describe some of the code level changes that will help support continuously delivery
- Describe the pros and cons for monoliths and microservices
- Explain blue / green & canary deployments
- Explain the pros and cons of mutable and immutable servers
- Identify some of the tools that are used for continuous delivery
Intended Audience
This is a beginner level Course for people with:
- Development experience
- Operations experience
Optional Prerequisites
What You'll Learn
Lecture | What you'll learn |
---|---|
Intro | What will be covered in this Course |
What is Continuous Delivery? | What Continuous Delivery is and why it's valuable |
Coding for Continuous Delivery | What type of code changes may be required to support constant delivery |
Architecting for Continuous Delivery | What sort of architectural changes may be required to support continuous delivery |
Mutable vs. Immutable Servers | What are the pros and cons for mutable and immutable servers |
Deployment Methods | How we can get software to production without downtime |
Continuous Delivery Tools | What sort of tools are available for creating a continuous delivery process |
Putting it All Together | What a continuous delivery process looks like |
Summary | A review of the Course |
If you have thoughts or suggestions for this Course, please contact Cloud Academy at support@cloudacademy.com.
Welcome back to Introduction to Continuous Delivery. I'm Ben Lambert, and I'll be your instructor for this lecture. In this summary, we'll review what we've covered so far.
Now we've covered a lot of information in this course, so I wanted to do a quick recap to make sure that some of what I consider to be the high level important points aren't lost. Alright, let's run through them quickly.
First, if you're going to deliver code regularly throughout the day, it needs to be able to run, even if some features aren't complete.
Next, modular coding practices will make for code that's easier to test and maintain.
Number three, security needs to be considered throughout the entire software life cycle.
Four, start most all new development as a monolith.
Number five, gradually refactor monoliths that are too large into microservices.
Number six, immutable servers are great, however mutable servers can also work as long as you're careful to ensure that they're not snowflake servers.
Number seven, there are a lot of options for no or low downtime deployments, such as blue, green, and canary.
Number eight, the list of tools that exists in DevOps and the Continuous Delivery space is longer than the Great Wall of China. Well, not really, but it's pretty long.
Number nine, your CD process should make your releases so boring that you may not even know that new changes went live.
And number 10, finally, all companies that are considered unicorns are using continuous delivery practices, and it's not a secret why.
So, this has been Introduction to Continuous Delivery. Thanks for taking the time to watch, I hope this has been useful to you and that you've gotten something out of this.
If there are aspects of Continuous Delivery that you'd like to know more about, please let us know at info@cloudacademy.com.
I hope to hear from you!
I'm Ben Lambert, thanks for watching!
Ben Lambert is a software engineer and was previously the lead author for DevOps and Microsoft Azure training content at Cloud Academy. His courses and learning paths covered Cloud Ecosystem technologies such as DC/OS, configuration management tools, and containers. As a software engineer, Ben’s experience includes building highly available web and mobile apps. When he’s not building software, he’s hiking, camping, or creating video games.