Marc Andrews

In part 1, we learned about Docker and created a Dockerfile that provides a suitable environment in which our application's services can run. If you recall, our sample application has two services, a Node backend API, and a React front-end. In part 2, we will use Docker Compose to orchestrate our application's services during development so that we can run our distributed application with a single command.

Many of today's web applications are composed of multiple layers. At minimum, there are two: a front-end presentation layer, that usually runs client side, and a back-end layer, that provides the logic and data. It's common to have additional layers too, such as a database layer. For example, PostgreSQL or MongoDB provide long-term data storage, and a cache layer, for example Redis, for short-term, rapid-access data storage. It is even possible to have multiple back-end layers each with their own concerns. For example, one layer responsible for RESTful requests, another for Websockets, and another for computation-intensive requests.