VMware is a massive development shop!! I mean we have a TON of developers always cranking out new features and capabilities for our solutions. So, it is safe to say that we run into all of the same challenges that other companies that are developing applications run into. In this post, I am going to walk through the transformation that VMware has gone through to overcome many of the challenges our customers face today by using our own solutions internally. We call it “drinking our own champagne“…because frankly no one wants to “eat their own dog food“!!!
Like many companies with large numbers of developers and development teams, VMware is no different in terms of the challenges we face when it comes to delivery. We were a company who’s focus was developing tools used to create and manage the software defined datacenter and these tools were design to run in the datacenter (on-prem). Now VMware is a company that has transformed to not only focus on enhancing those on-prem solutions, but we are also focusing heavily on providing choice to our customers by offering these tools as SaaS services. That’s not as easy as it sounds…at all. In order to deliver our current solutions in a SaaS format we had to make the transformation that many of our customers are starting now. Going from old-school monolithic application design concepts and delivery to modern micro-services architectures to be able to run at cloud speed and scale.
What We Deal With:
Let’s digest the above graphic to understand the magnitude of the environment we deal with in just ONE of our business units. In a single business unit at VMware (this example is the business unit I am in, called the Cloud Management Business Unit or CMBU) we have on average 4 to 5 releases going on in parallel at any time, 120+ projects yearly, over 10M lines of code…there is a lot going on!
With so many things going on we faced challenges trying to deliver on the demands that our business, and our customers, were expecting. Below are some of the challenges we were facing:
- 6-12 months releases depending on feature sets
- 2-4 weeks feedback loop from developer check-in to build certification
- Too many manual steps involved in generating a fully certified build
- Low automation coverage of functional and E2E tests
- No automated process for validating Scale and Performance
Any of the above sound familiar to what you might be dealing with? I’m sure at least some of it resonates or you wouldn’t be reading this blog! We had to do something to speed up, and be more “agile”, or we would never be able to deliver on our promise of choice and bring our solutions to SaaS!!
What We Did:
Knowing we had to change some things, we started by doing the following:
- SW Engineers own all functional tests
- Implementation of DevOps practices
- KPIs (code coverage, test automation) raised and strictly enforced
- Initially slowed down feature development to invest in delivery tool (here is where VMware Code Stream comes in) and test automation
Drinking Our Own Champagne:
So now for the good stuff! How did we use our own products (specifically VMware Code Stream) to solve the problems that we have delivering on the products our customers can use to solve the same problems….ya that is a brain teaser.
By utilizing VMware Code Stream to automate and stream line our delivery process through CI/CD pipelines we now are able to move at the pace that our business, and you (our customers), demand. We now successfully manage an environment that has quickly surpassed what we use to do before we invested in using VMware Code Stream internally. Resulting in the CMBU being able to…
Yep, that’s a lot…But we know we can do even more!!!
The Pipeline Magic:
You are probably saying “ok, this sounds awesome but what does this pipeline look like”? Well let me show you what our pipeline flow diagram looks like so you can see the feedback loop we now have in place for all of our products and SaaS services:
There you have it! The magic is in the process and using VMware Code Stream as our top level deliver solution we can deliver on the services that you know and love today.
Best Practices / Lessons Learned:
Here are the key take-aways that we learned through this process that are the must have items to make your transformation successful:
- Executive sponsorship is key to success
- CMBU engineers using our own products daily has led to world class solutions
- Specialization and dedicated focus on CI/CD pipelines and system validation is key to success
- Tooling and automation to increase developer productivity and velocity should be prioritized over new feature development as the latter is a natural outcome from the former
- KPIs to constantly measure and improve is critical to success (e.g. deployment time, code check-in to production, provisioning success rates)
Just like you face everyday challenges meeting the demands of your business, VMware also faces those same challenges. By using the solutions that we make to help you overcome your challenges we solved our own and are a true representation of “drinking our own champagne”. I mean how can we go and tell you that products like VMware Code Stream can help you become more agile if we don’t prove it ourselves in our own development, right!!!!
Just to prove my point one last time…as of today when I wrote this blog here is our stats for April 2019 runs:
CMBU Development: 3558 pipeline executions in April with 834 pipelines
VMW IT Development: 1166 executions in April with 316 pipelines (and they just got started!!!)
I hope you found this blog useful in understanding how we have transformed our development operations to meet the demands of the business and you can take some of this back and use it to solve some of your own challenges. I challenge you to check out VMware Code Stream and see for yourself how quickly you can achieve agility!!
Getting Started with VMware Cloud Services: