This video course covers the theory behind, and the hands-on
application of, those concepts needed to maximize the throughput of your
organization. The course introduces frameworks for discussing DevOps
principles and brings those concepts to life with explanations and real
working code. It instills a deeper insight into applying DevOps
principles with a variety of tools like Puppet, Saltstack, Vagrant, and
Graphite.
You will learn how to automate and build configurations for
infrastructure servers and then address areas of automation, continuous
deployment, containers, and monitoring. You will create impressive
changes to how you deliver software and services. This course will help
all those who wish to work in a DevOps culture, who are responsible for
delivering both new features and stability. Such teams will work closely
across the entire organization to ensure a shared responsibility, which
is no longer just ops or dev territory; most importantly, they work
together in areas like continuous delivery, automated deploys, and
infrastructure/configuration management. With the help of this course,
such teams no longer need to wait for other teams to solve a problem:
fixes can be made quickly, all by learning tips and techniques to
succeed with DevOps.
About the Author
Dave Mangot is the Director of Operations for Librato and Papertrail and an accomplished systems engineer with over 20 years’ experience. He has held positions in various organizations, from small startups such as Terracotta to multinational corporations such as Cable & Wireless and Salesforce, in positions ranging from systems administrator to architect. He has led the transformations of multiple companies both in operational maturity and in a deeper adherence to DevOps thinking. He enjoys time spent as a mentor, speaker, and student to so many talented members of the community. Dave lives with his wife and three children in San Francisco, CA.
What is DevOps?
This video gives an overview of the entire course.
There is a lot of press about DevOps, but really what's in it for you? In this video, we show the results of the science behind the approach and start looking at software development in a whole new way.
In Gene Kim's DevOps model of the three ways, the first way is about optimizing delivery of our software. In this video, we are exposed to systems thinking and ways we can improve our speed of delivery.
Getting feedback on our improvement is the only way to know if the changes we make are having an effect. In this video, we examine the ways to get feedback and the benefits of collecting feedback.
The fastest and best way to move quickly is to continually experiment with new ideas, concepts and techniques. This video discusses how continually testing, probing, and analyzing lead to the highest performing teams.
The components of the three ways, used together, enable us to move faster, learn quicker, and improve more than ever in the past. The principle of Kaizen is the rationale for these improvements.
The CAMS model – DevOps Thinking
In this video, we introduce the CAMS model of DevOps and start to examine why Culture was made the very first, and most important, component of the model.
We'll explain why automation is a critical component in DevOps that allows us to get all of the benefits of the three ways in this video.
Just like the second way where we need feedback, the Measurement part of the CAMS model complements the second way; we'll examine what you can measure and how to use that information to your advantage.
In this video, we'll briefly discuss the final component of the CAMS model—Sharing. There are examples of sharing built into DevOps continually; we'll discuss why.
Establishing a DevOps Culture
A DevOps Software Development Life Cycle (SDLC) looks very different from a traditional SDLC. We examine how the DevOps one helps us achieve the goals of Gene Kim's three ways.
"You wrote it, you run it." What does that mean? In this video we look at the concept of service ownership and how everyone is responsible for how our software performs in production.
Let's talk about hack events—not only how they are great fun to participate in, but also how to run one and why they are such a key component of the culture of many admired companies.
We take a look at destructive testing and how to incorporate it into the culture of your company in order to deliver high-quality software.
In many large companies, we achieve the goals of DevOps through cross functional teams. In many small companies, we act as one cross-functional team. We look at why it's such a powerful way to organize teams.
Automation – Configuration Management
This video will look at the reasons why automation is a necessary part of the maturity of a company. We'll talk about what the normal problems are and how automation empowers us.
Now we fire up a virtual machine and write our first infrastructure code. We'll get introduced to the operating model of SaltStack and use it to configure our virtual machine.
Being able to configure a single virtual machine—being able to control thousands of machines from a single location—is how we leverage automation to do things we could only dream of in the past. In this video, we learn how to do just that.
Containers are one of the hottest topics in DevOps at the moment. Why? We will look at what came before, what's great about containers now, and how to choose between containers and configuration management.
We've built and run a virtual machine using configuration management. In this video, we do the same for containers as we learn about Docker and build and run our first container.
Automation – Continuous Delivery
We know that automation is important for DevOps, and Continuous Delivery is critical to being able to deploy quickly and satisfy the 1st way of DevOps. We look at how a proper continuous delivery pipeline is formed.
In this video, we are first introduced to Vagrant, which we'll use again and again throughout the course. We'll learn how easy it is to set up a test environment, and to control our virtual machine after we do.
In this video, we go beyond the basics of Vagrant. We learn how to control multiple machines and set up a development environment that leverages both our favorite tools and multiple Vagrant virtual machines.
Now that we know how to write some configuration management code and how to work with Vagrant virtual machines, we bring the two concepts together and learn how to automate the testing of our configuration management code.
We know what it takes to get our code to be ready for production with automation and testing. Now we look at some different methodologies for delivering software over the last line, into production.
Measurement
We know that in order to make improvements we need to be able to measure how far we've come. In this video, we look at different types of metrics you can collect, how to collect them, and how they can be used.
Graphite is one of the most popular open metrics tools available. We'll set up our very first Graphite server, examine the components, and look at some of the ways we can use it to really understand our data.
Using the built in data from our example was a great way to get used to the Graphite system. In this video, we're going to go one level deeper and see ways in which we can programmatically submit real data to our metrics system. This will allow us to monitor anything we can measure.
There are lots of different pieces of software that will allow us to collect metrics about our systems and applications with very little effort. We look at some popular and simple examples and how we can automate their installation using Puppet.
Being able to collect lots of data is great, but we can't sit and look at dashboards all day long. We'll configure a monitoring and alerting system to take our Graphite data and perform actions based on what it finds.
Sharing
Agile software development revolutionized the way software was developed, much like how DevOps revolutionizes the way it is delivered. We'll learn about the goals of agile and look at specific examples of its implementation.
We know that retrospectives are valuable ways to collect feedback. We dive even deeper into that concept as we discuss learning reviews, things to enable your success, and pitfalls we need to be cautious of.
Practicing ChatOps is one of the most fun and effective ways of Sharing in a DevOps culture. We'll talk about what makes ChatOps so powerful and then build our own Chatbot to really bring the concept home.
There are lots of other ways the most successful companies practice sharing. We look at a few different techniques you can experiment with to bring sharing deeper and wider into your organization.
Where Do I Go From Here?
We've learned over the duration of the course that DevOps is more than just Dev and Ops. We examine how you can bring other parts of the organization into the DevOps fold and enable the delivery of secure, high-quality software.
Solving the problems presented by auditors and compliance can be some of the most challenging parts of our work in IT. In this video, we'll examine how, armed with our DevOps approach, we can use the things we've learned to make these problems much easier to solve.
A company is more than just Dev, Ops, Security and compliance. It's a living, breathing ecosystem of many different departments and people, all working together towards the same goal. We take a look at how we can bring the entire system together.
Peter Senge's idea of a Learning Organization shares many elements that we describe when talking about DevOps. We examine Peter's idea and present resources you can use to explore the areas of DevOps that interest you the most in greater depth.