In this lesson, we covered many facets of infrastructure management, including:
- Virtualization and Containerization
- Infrastructure as Code
- Cloud vs On-Premises infrastructure
DevOps brought about many changes to infrastructure management. DevOps practices include an emphasis on containerization, cloud-based infrastructure, and Infrastructure as Code. These practices have brought about cost-effective, scalable infrastructure and ultimately better user experience.
In your own words, what are two ways that DevOps improves upon traditional infrastructure management practices? How does DevOps provide benefits in terms of scalability, cost, and user experience in relation to those traditional infrastructure management practices?
One area where DevOps improves on traditional infrastructure management is the principle of Infrastructure as Code. Historically, infrastructure configuration was performed manually by company staff. This is not only a time consuming process, but it is error prone as well. Over time, servers can end up configured differently without anyone realizing it.
Infrastructure as Code solves this by storing infrastructure state in machine-readable configuration files. This leads to better scalability by enabling automation of infrastructure configuration and thus reducing staff hours spent on this task. IaC tools will also configure infrastructure consistently, which reduces the possibility of errors experienced by users.
Another area where DevOps differs from traditional practices is its heavy reliance on containerization. Without the use of containerization, there is a high risk that each environment an application is deployed in will have different versions of dependencies. This leads to the possibility of the application behaving differently across environments.
Containers solve this by bundling an application with all of its dependencies. The use of containers reduces unexpected bugs and leads to a better user experience. Containers are also smaller and faster than virtual machines (VMs), so they offer more convenience and scalability than using VMs to solve the same issue.