DevOps is an ever evolving landscape and vRealize Automation supports the growing space by keeping its frameworks open to leverage DevOps principals effectively in context of deploying infrastructure and brokering services. In this blog article, me and my teammate, Scott Young, attempt to bring out some of the best use cases for vRealize Automation from a DevOps and GitOps perspectives. This is the second blog in the DevOps using VMware Cloud Foundation series.
1.1. What DevOps looks like in vRealize Automation?
As brought out in the introductory blog DevOps with VMware Cloud Foundation, one of the enablers of the DevOps process is traditional infrastructure automation. Essential tool that complements achieving DevOps in vRealize Automation is Git. Git is base the of everything that we do with DevOps to store our YAML or Infrastructure as code artifacts. The inbuilt service Code Stream helps automate the infrastructure and application deployment with release pipeline management.
An example use case of deploying infrastructure by developing a blueprint using Git can be as below
- Capturing the applications / Infrastructure requirements – what do we need the blueprint to do.
- Generating the initial YAML blueprint – this might be in the vRA Blueprint Designer, or it could be in a text editor like VSCode.
- The YAML is committed to source control like GitHub or GitLab, or uses the in-built versioning.
- With the completion of blueprint development, a new version is issued and committed to the test repository
- Source control webhook triggers a Code Stream pipeline to validate it passes a security scanner and the deployment completes successfully.
- Code Stream pipeline merges the test code into the production repository and creates a Service Broker catalog item
- Service Broker users can consume the new catalog item
- Operations team identifies the need for more RAM or CPU – Day two actions.
- The end user scales the deployment in Service Broker (or Cloud Assembly)
1.2. DevOps v/s GitOps?
GitOps upholds the principle that Git is the one and only source of truth. GitOps requires the desired state of the system to be stored in version control such that anyone can view the history of changes. All changes to the desired state are performed through Git “commits”. This means that both the application and the infrastructure are now versioned artifacts and can be audited using the gold standards of software development and delivery. There is a convergence mechanism to bring the desired and observed states in sync both eventually, and autonomically. This is triggered immediately with a “change committed” alert. After a configurable interval, an alert “diff” may also be sent if the states are divergent.
Though a lot of GitOps description refers as a way to do Kubernetes cluster management application and delivery, it can equally apply to any infrastructure – provided that infrastructure can be modeled in a declarative language. While DevOps is a culture or practice where principles of agile software development are applied to operations, GitOps is almost identical, except that it defines an operating model that applies DevOps principles to infrastructure management using Git.
1.3. How does vRealize Automation power the VI Admin?
Traditional infrastructure automation and day two operations as always been the power of vRealize Automation. Again, as brought out in the introductory blog DevOps with VMware Cloud Foundation, second enablers of the DevOps process is modern infrastructure automation such as containers and Kubernetes. vRealize automation helps here by integrating with PKS, thus deploying and on-boarding PKS clusters. Additionally, external native Kubernetes cluster can also be integrated to the platform. Deploying containers to Kubernetes endpoints is simplified with codestream pipelines with Kubernetes clusters as part of blueprint which can be versioned and synced with Git. Though this seems to overlap a lot with the capabilities of Tanzu portfolio, Tanzu focuses on applications and continue empowering application developers adopting DevOps principles.
With containers now dominating the developer space, Docker is the standard for modern infrastructure and Kubernetes has emerged as leader in cluster management and container orchestration. However, while setting up and managing Kubernetes clusters can be fun for folks who like to tinker with infrastructure, some application developers and testers do not want to get bogged down with logistical and administrative fire drills. Even folks who feel comfortable managing Kubernetes on their own admit that it inflates their total cost of ownership.
So, vRealize Automation effectively leverages GitOps by focusing solely on Infrastructure automation, be it traditional or modern infrastructure. This up-levels VI Admin as they help decrease complexity and the total cost of ownership for application developers letting them focus on developing business critical applications.
1.4 Getting Started
vRealize Automation Cloud, the software as a service option, is available and offers the same user experience as on-prem software. With its free trial option, you can get started today to explore the power of vRealize Automation, which is the new industry standard for multi cloud management and deployments. Check out https://cloud.vmware.com/vrealize-automation-cloud to request your free trial.