Modern Infrastructure and Applications with Docker
Software engineering and development is always evolving and introducing new technologies in its architectures and workflows. Software containers appeared more than a decade ago, becoming particularly popular over the last five years thanks to Docker, which made the concept mainstream. Currently, every enterprise manages its container-based application infrastructure in production in both the cloud and on-premises distributed infrastructures. This book will teach you how to increase your development productivity using software containers so that you can create, test, share, and run your applications. You will use a container-based workflow and your final application artifact will be a Docker image-based deployment, ready to run in production environments.
This chapter will introduce software containers in the context of the current software development culture, which needs faster software supply chains made of moving, distributed pieces. We will review how containers work and how they fit into modern application architectures based on distributed components with very specific functionalities (microservices). This allows developers to choose the best language for each application component and distribute the total application load. We will learn about the kernel features that make software containers possible and learn how to create, share, and run application components as software containers. At the end of this chapter, we will learn about the different tools that can help us work with software containers and provide specific use cases for your laptop, desktop computer, and servers.
In this chapter, we will cover the following topics:
- Evolution of application architecture, from monoliths to distributed microservice architectures
- Developing microservice-based applications
- How containers fit in the microservices model
- Understanding the main concepts, features, and components of software containers
- Comparing virtualization and containers
- Building, sharing, and running containers
- Explaining Windows containers
- Improving security using software containers