Continuous deployment is a software development approach in which every code change goes through the entire pipeline and is put into production automatically, resulting in many production deployments every day. Unlike continuous delivery, which requires human intervention to approve production deployment, continuous deployment automatically pushes any updated, working version of the software to production. In a sense, continuous deployment is the next step of continuous delivery: every change that passes the automated tests is deployed to production automatically. The goal of continuous deployment is to release applications (and business value) to end users faster and more cost-effectively by managing small, incremental software changes.
Continuous deployment is usually managed by application release automation tools. Historically, the activities of deploying to testing and production were handled by testing and data center teams, separate from the software development team. Agile operations and DevOps lifecycles have modernized the development process with automation, putting engineering, operations and support teams together as one team. Application containers can bring developers and operations engineers closer together by providing a shared resource. Containers can also facilitate the Build step of the DevOps lifecycle. By design, containers are easy to scale and can support the growth of new business applications.
Open source technologies and development tools can support continuous deployment and the DevOps model with automation and lifecycle management products. For example, SUSE OpenStack Cloud dynamically allocates IT resources on demand in a software-defined infrastructure. The SUSE Containers-as-a-Service (CaaS) Platform bridges development and operations with a unified container platform that helps save time and makes it easier to deploy microservices.