by: VMware Sr. Director, Research and Development Gopinath Anantharaman
To read more about our DevOps journey, read part one of this blog, An Agile Delivery Model: Shifting the IT Mindset.
In a recent blog, we discussed how we moved to a DevOps model to enable automation for developers. We provide blueprints to developers so they can provision end-to-end instances and environments at the click of a button. We changed processes and reorganized teams with DevOps skills to decrease the handoff times between the Development and Operations teams. This blog takes a closer look at the IT Developer Application Plane, the portal that lies at the center of our DevOps and CD/CI adoption.
Key to the process was identifying the key pain points of our developers and development managers. Using a ‘day in the life’ scenarios, we closely examined these two roles to find and address the issues that were delaying the development process.
What emerged was the need to restructure the development and test process using a CD/CI pipeline. In addition, we required metrics and KPIs to monitor progress and continue improvements. Due to the complexity of re-platforming legacy applications, we decided to develop a technology stack that contains a mix of traditional and cloud-native apps. In this blog, we will explore the development of a developer portal to support our complex, hybrid ecosystems.
Prior to beginning our journey, questions were raised: How do we rapidly create instances? What happens to them over time? How do we monitor, track, and report on the process? How do we know when the instances are no longer needed? CD/CI was considered for both Day 1 on-demand instances and Day 2 operations.
Solution: An Integrated Developer Experience
The IT Developer Application Plane (also called the portal) was the solution. It features blueprints that enable a self-service portal for automated instance provisioning and release-when-ready deployments. The result is a faster time to value and better software builds.
The portal encompasses four pillars, as shown below. The first pillar is component management for a continuous delivery pipeline. This is the heart of the portal, where instances are created and destroyed.
The portal provides more than 100 out-of-the-box building blocks comprising the database, web, and application layers. These building blocks are grouped as appropriate to create blueprints which can then be created via workflows, and with governance. Blueprints are used to provision end-to-end instances and environments with the latest code, configurations, and data. Project tools and visibility into the CD workflow are integrated into the system.
Within the portal, developers can search on attributes and combine building blocks to build a tech stack. The building blocks can be mashed up to create instances for more complex systems.
This simple process applies to most of our application development. However, the portal is also designed to support enterprise complex instances, where the tech stack is very complex. Typically, these instances require three layers—the presentation/portal layer; middleware/microservices; ERP, SAP, Oracle, and custom databases. The stack may also need to support SaaS integrations and complicated governance requirements. To accommodate this greater complexity, the portal can create instances that run on 60 to 80 pre-wired VMs and run the latest data from production.
Managing Adoption & Capacity
Following the launch of the portal, our focus was on driving adoption, not managing capacity. We wanted developers to utilize and push the limits of its capabilities. As usage patterns emerged, we developed additional pillars to help manage our capacity without affecting developer productivity.
Leasing. We packaged our services into leasing options. Leasing gives us a mechanism for regaining unused capacity without affecting team performance. Developers can request one of three instance types—bronze, silver, gold—for 30, 60, and 90 days respectively. Teams are notified when the lease is about to expire and can extend their lease. If a team doesn’t renew, we hold the instance for a week before spinning it down.
Staging. For complex applications, we adopted a staged approach. Workflows were divided into three stages: stage 1- data stores; stage 2 – middleware; and stage 3 – presentation/portal. A mechanism requiring management approval prior to kicking off the provisioning is offered as needed. These logical groupings enable us to more easily manage dependencies within the workflow. For example, when an issue is detected, it can be fixed within the logical grouping before the software is moved to the next stage. This eliminates the need to go back to the start to find the source of the issue. Taking this one step further, we are identifying the top 10 failures in the hopes of eliminating or at least mitigating the occurrence in the workflow. By retrying at the right juncture and leveraging the workflow, we have streamlined our delivery timeframe.
The biggest benefit of the portal so far has been reduced time to delivery due to automation. Previously, IT took 48 hours to provision complex instances, followed by 1 to 2 days to test. Our goal is 28 hours–24 hours to set up the instance plus 4 hours of automated testing. Customers often tell me it can take anywhere from 2 weeks to 4 weeks to create this type of instance in their environments.
Other benefits include:
- More rapid software delivery as a result of faster instance creation and automation
- More stable instances, resulting in fewer issues
- Ability to reproduce existing instances for real-time incident resolution
- Access to the latest production data
- Centrally collect DevOps metrics
- Correct linking of instances from Day 1 for complex development projects
- Built-in compliance with security & hardening policies starting at the building block phase
What’s Next
IT continues to make progress its roadmap toward a completely functioning developer portal. To date, this project has taken six months with the oversight of a small team of five developers. We have almost completed the first two pillars, with the next steps being:
- Collection of meaningful DevOps metrics and industry validation data for comparison
- Integration of the development and deployment of cloud-native applications into the CI/CD pipeline, using chat bots via Slack
- Automated management of our Day 2 operations in the areas of patch management, trust pages (application links)
- Artificial intelligence (AI) operations that incorporate emerging tech such as, AI, machine learning, bots and natural language processing (NLP) to further automate workflows.
The roadmap remains fluid as we reprioritize our resources to maintain a robust, reliable portal and continue to improve the speed and quality of our software delivery. Improving business agility continues to be the core of our IT strategy.
Part one: An Agile Delivery Model: Shifting the IT Mindset
VMware on VMware blogs are written by IT subject matter experts sharing stories about our digital transformation using VMware products and services in a global production environment. Contact your sales rep or [email protected] to schedule a briefing on this topic. Visit the VMware on VMware microsite and follow us on Twitter.