Who says the elephants can’t be agile?
Software is the engine of many of today’s most vibrant businesses. Traditional companies, relying hardware-centric businesses models, have struggled to embrace the software mindset. Look no further than industries like auto manufacturing and transportation where software-centric approaches from companies like Tesla and Uber have disrupted the market. This rapid shift, highlights the importance of software development.
In past years, DevOps was a mysterious term that was only uttered in the darkest corners of development circles, and now, you are hard pressed to find a company that does not use it. In fact the question today is not whether DevOps is part of your organization, but rather how deeply you have embraced it.
DevOps is an approach to development that focused on accelerating the creation, delivery and implementation of business critical application. A key element of DevOps is the ability to create development environments rapidly to accelerate the development, test and release cycle. Traditionally, creating and managing the lifecycle of development environments was complex and costly.
Imagine provisioning repositories, application servers, development servers and underlying data for tens or even hundreds of development teams, and then managing the environments’ lifecycle including refreshing data on demand and eventually de-provisioning the resources. To add to the challenge, you also had to manage the underlying hardware infrastructure including ensuring that you have appropriate compute, networking and storage performance and adding, replacing and migrating data when you don’t. Sadly, according to IDC, these challenges have limited the success of many DevOps initiatives as illustrated in the following statistics.
In short the entire DevOps process while tremendously powerful from a development perspective can be incredibly burdensome for IT, and these challenges can lead to failure. Even when the program succeeds, there can be massive IT inefficiencies as projects may never be de-provisioned resulting in excessive storage utilization and over-provisioned servers. A more efficient approach is needed.
Enter the cloud
There is a ton of excitement around cloud consumption models and use cases, and DevOps is one of the most powerful ones. Simply put, a cloud, whether private or public, delivers on-demand storage, networking and computing resources and is ideal for dynamic workloads like those from DevOps.
A cloud infrastructure can enable dynamic resource provisioning, and best of all with the right tools, can enable developer self service. In an ideal word, IT would not need to provision resources at all, but rather allow developers to provision pre-defined environments on demand. A hybrid model further simplifies matters by allowing for environments to be provisioned either on-premises or in a cloud and then moved as resources and costs dictate.
To further automate the provisioning and deprovisioning process, a variety of third party tools such as Chef, Puppet, Saltstack and Ansible are available that completely automate the creation of development environments. These applications allow IT teams to create infrastructure “recipes” and to dynamically initiate them on demand either in a local infrastructure or in the cloud. They also provide detailed reporting and visibility into your deployed development instances.
An interesting example of a embracing the cloud is one of our large financial services users. DevOps is a critical differentiator for this company and they have a team of over 800 developers working to enhance their existing applications and build new ones. They implemented a hybrid cloud that streamlined their DevOps processes using Actifio and Ansible.
This company wanted to increase their agility by enabling on-demand provisioning of development resources both locally and in the cloud. They used Actifio to automatically provision and mount database instances as development environments are initiated. The Actifio virtual copies are exact replicas of production databases and are read/write enabled; they consume virtually no additional storage space. The design also incorporated Ansible to create the appropriate computing and development resources, and the two solutions are integrated so that databases are automatically mounted as the development environments are created. Finally, they also implemented a VPN to Oracle Cloud which enabled development instances to be delivered transparently either on-premises or in the Oracle Cloud using the same process and tools. This implementation has enabled the customer to reduce provisioning time by 144x and storage costs by 60%.
In summary, DevOps is a powerful approach to accelerate application development and delivery. However, like most changes, implementing DevOps is not without its challenges. Incorporating the right tools such as orchestration and hybrid cloud computing can dramatically enhance agility, significantly increase ROI and drastically reduce the risk of failure.