You’ve built a web application that runs perfectly on your laptop—until you share it with a teammate or try to deploy it to a server. Suddenly, something breaks because their machine has a different version of Node.js, a missing library, or a slightly different operating system. In this chapter, we’ll meet two tools that put an end to that chaos: Docker, which wraps your app into a lightweight, portable box, and Kubernetes, which manages and scales those boxes across many machines.