Common tools in this space include Chef, Puppet, and Ansible, but new container-based approaches like Docker are on the rise.
- A lot of infrastructure as code tooling hinges on what kind of backend you're using, whether it's bare-iron in your own data center or cloud infrastructure as a service, like AWS. - Or something else like, a platform as a service or using a container based approach. - [Instructor] Many are moving to the cloud with their workloads. In Amazon's cloud, their cloud formation templates allow you to specify instances, network, load balancers, and even security settings for your infrastructure in JSON format. Microsoft Azure has Azure resource manager templates that do much the same thing. - [Instructor] New tools like HashiCorp's TerraForm allow you to specify all these settings in a more abstract fashion with the idea that it will work across multiple cloud providers. - Unfortunately, truly integrated solutions that allow you to model and configure both your infrastructure and your applications together are less common. - [Instructor] Ubuntu's Juju is an open source example of this approach. Where not only in the infrastructure, but also the services running on it are modeled and controlled together. This approach is much more common in the Docker world, and we'll talk about that in a moment. - You may need to dynamically configure machines running in their environment. Using tools like Chef, Puppet, Ansible, Salt, or CFEngine can help you accomplish this. Even if you're not building every production node with configuration management at deploy time, and you're using something like Packer instead to bake images as your deliverable. You can still use these tools to build the image that you then bake. - [Instructor] These configuration management tools allow you to specify recipes for how a system should get built. This includes the OS dependencies, System Configuration, Accounts, SSL, Certs, and most importantly your application. - [Instructor] These tools have been on the market for some time and many have become full featured development environments. - [Instructor] Yeah. For example with Chef, you often use the generic Ruby Linter, Robocop and the Chef specific linter Foodcritic to get code hygiene coverage. - [Instructor] Unit testing is also possible with a tool like Chefspec and full integration testing is done with the kitchenCI, which runs a full converge with test harnesses, with hooks to Serverspec and Test suite. - Chef puppet and their peers also can take the place of a searchable CMDB. To do that, Chef runs a piece of software called OHI on the systems and OHI profiles the system and stores all the metadata about it in a chef server. - You know, this works, but then your CMDB is only as up-to-date as the latest convergence, which most people run either hourly or on demand. It doesn't help as much with dynamic workloads where a state changes in seconds or even minutes. - [Instructor] Etcd, Zookeeper and Consul are a few common tools to perform service discovery and state tracking across your infrastructure. They keep key value information and service health metrics, and enable more real time orchestration of your systems. - We've mentioned Dockers and containers a bit. And at the end of the course, we go into more on that topic. But we also to cover a few of the tools arising from the community for container based infrastructure. - Containers generally don't use Chef or Puppet as their configuration is generally handled with a simple text file called the Docker file. Containers have just enough software in OS to make the container work. A lot of the functionality of Chef and Puppet aren't relevant to containers, and they're more relevant to long running system. - [Instructor] Docker Swarm, Google's Kubernetes and Mesos are three popular Docker platforms that do orchestration of containers. They allow you to bring in multiple hosts and run your container workload across all of them. They handle the deployment the orchestration and scaling. Since the container is the application. These solutions get to the fully automated level that Juju does for service solutions. - [Instructor] Some private container services like Rancher, Google's Cloud Platform, or Amazon's ECS take care of running hosts for your containers. So you can focus just on your application. - This brings us to another interesting tool. Habitat, habitat is by the people that make chef and it builds itself as application automation. - While Chef is more about configuring infrastructure. Habitat extends down into the application build cycle and then into the application deploy cycle bookending and complementing Chef. - Well, that brings us through the infrastructure tool chain and arms you with some tools to get started with. - Join us in the next movie. As we talk about continuous integration and deployment.
In this course, well-known DevOps practitioners Ernest Mueller and James Wickett provide an overview of the DevOps movement, focusing on the core value of CAMS (culture, automation, measurement, and sharing). They cover the various methodologies and tools an organization can adopt to transition into DevOps, looking at both agile and lean project management principles and how old-school principles like ITIL, ITSM, and SDLC fit within DevOps.
The course concludes with a discussion of the three main tenants of DevOps—infrastructure automation, continuous delivery, and reliability engineering—as well as some additional resources and a brief look into what the future holds as organizations transition from the cloud to serverless architectures.
- What is DevOps?
- Understanding DevOps core values and principles
- Choosing DevOps tools
- Creating a positive DevOps culture
- Understanding agile and lean
- Building a continuous delivery pipeline
- Building reliable systems
- Looking into the future of DevOps