What is DevOps?
The Business Value of DevOps
Who's using DevOps?
Modern software systems are becoming increasingly complex, to meet quality, availability, and security demands. And these systems are changing rapidly to keep up with the needs of end-users. With all of the changes, how do you ensure stability, quality, security, and innovation? In this course, we look at how the DevOps philosophy can provide a holistic way to look at software development, deployment, and operations. And provide some tenets to help improve quality, and stability.
You will gain the following skills by completing this course:
- Why automation, culture, and metrics are essential to a successful DevOps project.
- How DevOps can positively impact your business's bottom line.
- Learn which major companies are successfully utilizing DevOps in their own engineering processes.
You should take this course if you are:
- A newcomer to the DevOps or cloud world.
- Looking to upgrade your skills from a conventional software development career.
This Course Includes
- Expert-guided lectures about DevOps.
- 1 hour of high-definition video.
- Solid foundational knowledge for your explorations into DevOps.
What You'll Learn
|Video Lecture||What You'll Learn|
|What Is DevOps?||In this lecture series, you'll gain a fundamental understanding of DevOps and why it matters.|
|The Business Value of DevOps||Need to justify the business case for DevOps? This is the lecture series for you.|
|Who's Using DevOps?||Find out who's using DevOps in the enterprise - and why their success matters for your own organization.|
If you have thoughts or suggestions for this course, please contact Cloud Academy at email@example.com.
Welcome back to our Introduction to DevOps course. I'm Ben Lambert and I'll be your instructor for this lecture.
In this lecture, we're going to talk further about how DevOps can improve system stability.
In our previous lecture, we reviewed the fictitious company, Acme Products Unlimited and their transition from monthly to daily deployments. We looked at the transition through the lens of lead time. Now, we're going to look back at that same scenario through the lens of system stability.
We've mentioned a few times already that change from development is at odds with the desire for stability that operations strives for. The more changes that are introduced, the more chances for instability there are.
If you remember the scenario, APU was having trouble keeping their E-Commerce site up and running before they adopted a DevOps philosophy. When their operations team wasn't putting out fires, they were manually configuring servers. They weren't using any automation to help them manage their infrastructure. They were performing manual deployments that brought the site down for hours, and they were probably experiencing a high degree of burn out.
So, looking at this scenario with our stability lens, what changes had the most impact on stability?
First, there was a change in the company's culture. Operations was no longer its own silo. Rather, operations engineers worked with cross-functional teams of developers, QA, and security engineers, and they all worked towards a common goal.
These cross-functional teams allowed APU to bake quality into the product. If the operations member notices a recent change is causing a 30% spike in CPU usage on all of the application servers, then they can work with the developer directly to understand what happened and how to resolve it. Or if a particular build fails a static code analysis, the security engineer can help the developer understand and fix the code before it ever gets close to production.
Because there are no longer silos, the barriers to getting issues resolved are lowered. This sort of cross-functional team allows input and collaboration from all technical disciplines, allowing a more secure, stable and higher quality product. So, increased collaboration outside of the silo helped to improve the quality of the software, which would have had a noticeable impact on stability.
The second thing that helped was the use of metrics. Knowing the baseline for system performance allows the engineers to see if their changes are impacting the system. This allows for greater stability because they're able to quickly determine if changes are causing problems.
Finally, they automated everything. By creating a continuous integration process, they were able to identify problems before they made it into production. Preventing easily testable bugs from making it to your production site has an obvious positive impact on stability.
By creating an elastic infrastructure, they made a huge impact on stability, because the site would now scale automatically to meet the demands of traffic. By using an immutable server model, they reduced instabilities by ensuring servers are only ever replaced, never changed. And by using a blue green deployment model, they ensured a smooth transition between changes.
So, how does DevOps improve stability? It's a lot of little changes really, but overall, DevOps pushes towards baking quality into your software. It also promotes automating things like infrastructure management, allowing your site to scale to meet the demand without human intervention. And automating deployments makes them predictable and consistent, traits that tend to help with stability.
In our next lecture, we'll take one final look at our APU scenario through the lens of reduced operational costs. Okay. Let's get started.
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.