Chapter 22: Software Deployment Environments
In this chapter, you'll learn how software moves through development, staging, and production environments, how to manage environment-specific configuration, and how containers make deployment consistent.
In Chapter 21, Introduction to Containers in Linux, you learned the basics of working with Docker. You created and ran containers, managed images, used volumes to store persistent data, connected containers through networks, and pushed images to registries.
In this chapter, you'll learn how software is deployed through different environments before it reaches end users. We'll look at how applications move from a developer's computer to testing and staging environments, and finally into production.
You'll also learn the purpose of each environment, how they differ, and how configuration settings can change between environments without modifying the application code itself.
We'll also connect these ideas to what you learned in previous chapters, such as the containers from Chapter 21, which help ensure applications run consistently across environments, while the Infrastructure as Code (IaC) concepts from Chapter 20 make it possible to create and manage those environments in a reliable and repeatable way.
For the LFCA exam, the DevOps Fundamentals domain (12%) covers deployment environments at a conceptual level. You should understand the role of each environment, why they exist, how they differ, and the common problems that occur when environments are not managed properly.
This chapter covers these topics in a practical and beginner-friendly way, helping you prepare for the scenario-based questions you may encounter on the exam.
The concepts discussed here are universal and apply whether you're using AWS, Azure, Google Cloud, a private data center, any Linux distribution, or any deployment toolchain.