DevOps is a set of cultural practices that emphasize collaboration between all parts of the IT organization and the “continuous delivery” of software. This page gathers resources about how containers fit into the DevOps ecosystem and how to implement DevOps with containerization.
Table of Contents:
Below we have compiled publicly available sources from around the world that present views on Containers and DevOps.
The Container Security book by Liz Rice Fundamental Technology Concepts that Protect Containerized Applications
This survey, a study conducted by SANS on security practices in software development, is the first to explicitly focus on DevSecOps. SANS dove deep into how security fits into DevOps, where security risks are and how they are being managed.
What is a Container — Containers are a method of virtualization that packages an application's code, configurations, and dependencies into building blocks for consistency, efficiency, productivity, and version control. This page gathers resources about containers, including technical definitions and comparisons.
What is a Container Image — A container image is a self-contained piece of software that has everything in it needed to run – code, tools, and resources. This page gathers resources about container images, including tutorials and container-related conferences.
What is a Container Image Repository — A container image repository is a collection of related container images, usually providing different versions of the same application or service. This page gathers resources about image repositories, including tutorials and specific environments in which image repositories are used.
Container Image Registries — A container image registry is a service that stores container images, and is hosted either by a third-party or as a public/private registry such as Docker Hub, Quay, and so on. This page gathers resources about container image registries, including tutorials and specific technologies or tools related to container image registries.
Containers and Agile Development — Agile software development and delivery via containerization are tightly related. This page includes resources about the benefits of using containers in the agile development cycle.
Containers vs Virtual Machines — A virtual machine (VM) is an operating system or application environment installed on software, which imitates dedicated hardware. This page gathers resources about the VM vs. containers comparison, including a comparison of strengths and weaknesses, application portability, security and isolation, and more.
Containers vs Traditional Application Model — The traditional application model is a model in which applications are executed directly on virtual machines or on bare-metal servers. This page gathers resources about the difference between containerized infrastructure and the traditional application model.
Containers and Microservices — Microservices or microservices architecture describes a particular way of designing software applications as suites of independently deployable services. This page gathers resources about using containers to build a microservices architecture and the benefits of combining microservices with containers.
Service Mesh — A service mesh is a configurable infrastructure layer for a microservices application. It makes communication between service instances flexible, reliable, and fast. This page gathers resources on service mesh architecture, examples an the Istio project.
Refactoring a Monolith to Microservices — Today’s requirements on modern web applications demand high availability and scalability for which a microservice architecture has shown to be a promising solution. However, building a microservice architecture from scratch is sometimes not possible when monolithic web applications are already in place and cannot be replaced. Instead, it is required to break up this monolith step-by-step into microservices.