The software development life cycle includes work phases before it moves to production. As the software changes move closer to production, the quality checks and approval policies become stringent. This process is enforced to ensure that no disruptions occur in the production environment.

vRealize Code Stream enables central IT to host and manage new application workloads being driven by lines of business and development operation teams. Application teams can independently use vRealize Code Stream to automate and streamline their software release process while continuing to use their preferred provisioning and deployment tools.

vRealize Code Stream also enables applications or operations teams to model their software release process in a release pipeline. A release pipeline is a sequence of stages where each stage is composed of multiple tasks and environments that the software has to pass through before it is released to production. The stages can include development, functional testing, user acceptance test, load testing, systems integration testing, staging, and production.

In each stage, teams might also use different kinds of development and management tools. Using different tools results in needing to build a product that is extensible and that can integrate easily with a variety of existing tools. To satisfy this need for flexibility, vRealize Code Stream offers a model-driven, open, and extensible architecture. With its catalog of plug-ins, you can integrate with existing tools, including build and integration systems, testing frameworks, provisioning, deployment engines, change management systems, and so on.

Each stage in a pipeline includes a set of activities such as provisioning a machine, retrieving an artifact, deploying software, running a test, creating a manual task, or running a custom workflow or script. The software changes are promoted to the next stage in the pipeline when they satisfy a set of rules called gating rules. The gating rules include testing rules and compliance rules. Gating rules that are associated with a pipeline are specific to an organization or an application. Users can define gating rules when a pipeline template is created. The environments do not need to be aware of these gating rules.