VMware’s vision of the Software-Defined Data Center (SDDC) aims to define all Data Center constructs in software, such as Virtual Machines, Network configurations, Storage Policies, etc. The value of this approach is that it extends the power of virtualization from the Compute layer up into Network and Storage as well.
These definitions would consist of static content like install configurations and dynamic services and content that change very frequently. Since some of the dynamic content, such as vSphere templates, is binary in nature, it is not easy to manage its lifecycle from development to production. As a result, the process to package SDDC content and deploy it across multiple tenants, environments or locations, is mostly manual and inconsistent, today.
SDDC Automation Challenges
SDDC content changes generally flow from development to multiple test and production environments. These updates are often developed separately by different team members and then merged in a shared environment. Since the content is often in a binary form, the updates and merges cannot be handled as easily as code changes, by using a source control system. Multiple steps of imports and exports are required for a single change to propagate through the release pipeline from development to production. Keeping track of changes across multiple environments is challenging for the IT teams.
Even if moving content between environments could be automated, there’s still the difficulty of managing issues that arise due to content dependency. A vRealize Automation blueprint could depend on some workflows and policies. When moving the blueprint across environments, these dependent objects, at the correct versions, have to be moved as well. This becomes a time-consuming and complex process, that is error-prone and does not guarantee consistent results.
As with any software, SDDC content will end up having different versions. These versions could appear at multiple levels:
- versioning the entire SDDC and every object in it
- versions of some services e.g. MyApp v1.1
- versions of service components e.g. CentOS v7.0
Applying DevOps principles to managing SDDC content
While the SDDC automation challenges are formidable, they can be solved using the same DevOps principles that are taking hold in the world of application development. Tools like source control systems, automated testing, repository management, and release pipeline automation can all be combined for automating SDDC content lifecycle management.
VMware’s vRealize Code Stream provides a way to model and automate the software release process. It also embeds a repository management solution that can be used to store code or binary objects like VM templates.
The vRealize Code Stream Management Pack for IT DevOps provides out-of-the-box release pipelines along with vRealize Automation’s Advanced Service Designer (ASD) forms and workflows. Together, these automate the capture of content from multiple environments in a consistent format and store it in a common repository. The stored and versioned content can be grouped and pushed to multiple environments in one request.
Using the release pipelines from Code Stream, the content can be automatically moved across various environment with the appropriate controls and notifications. Any configured automated tests will be executed in each environment, to validate correctness and ensure consistently working software. Should the testing reveal any bugs or issues, the deployed content can be rolled back to the last released or known good-state configuration
As an example, the Mgmt. pack will speedily deploy vRealize Automation content across multiple tenants on a single instance or across multiple instances of vRealize Automation and vRealize Orchestrator. These multiple instances can be across Dev, Test, Production or even in multiple Data Center locations.
In summary, this management pack will enable “DevOps for Infrastructure’ and provide the following benefits
- Automated capture of Infrastructure content, in text or binary formats
- Store and version the captured content in a common repository
- Automated rollout or rollback of content from multiple environments
Learn more about VMware vRealize Code Stream by visiting http://www.vmware.com/products/vrealize-code-stream