Digital transformation will be the mantra for IT initiatives in 2018, and the underlying technology will be agile software development. IT organizations are at a crossroads: they can either work to become more agile and innovative, or business unit managers will decide to expand their use of public cloud providers, and hence reduce the role and value of internal IT organizations.
In this article, we’ll look at the changing role of IT in an era of digital transformation, how DevOps is now driving the implementation of intelligent cloud platforms to enable Continuous Development and Continuous Delivery of applications, and what’s required in a cloud platform to support digital transformation.
How digital transformation impacts IT’s role
In most organizations today, the process of developing, deploying and managing applications on an ongoing basis is a complex and largely manual task. Application development teams request and wait for resources they need from the IT organization, first for development, then for testing, and then for deployment. Application teams and IT teams work together to estimate the resources their new applications will require, then purchase and provision those resources and hope for the best. Once deployed, a fragmented and complex set of tools is used to monitor applications and infrastructure, but usually not together. The cascade of alerts and reports from these tools flows to the IT teams to analyze and make recommendations. Remedial action, resource reallocation, and application enhancement are applied manually, and the cycle repeats.
For traditional packaged applications and waterfall-developed in-house applications, this model can work. Such environments have been designed to maximize stability, in large part by minimizing change. As long as application teams, operations teams, and infrastructure all move at the same pace, everything is fine. However, problems arise and the life-cycle breaks down when DevOps needs to accelerate. At this point, IT teams and development teams find themselves in conflict, often working at cross purposes even as they pursue common goals for the success of their organization.
In the era of digital transformation, every organization is becoming a software company. Applications are defining and continuously redefining products, services, customer experience, business processes, and competitive advantage. About the only thing not being redefined by applications is the IT infrastructure. As applications and organizations become more dynamic, IT largely operates at the pace it always has. High-velocity DevOps life-cycles collide with an IT infrastructure that is optimized for stability and too complex to keep up. The pace of the organization is slowed down by its applications, while the pace of applications is slowed down by their infrastructure.
The changing role of DevOps organizations in determining infrastructure
No longer content to wait for the IT department to provision resources, DevOps organizations are taking control away from the IT department and are provisioning resources themselves with public cloud services such as AWS, Azure, or Google. These platforms have enabled agile software development, and the spread of agile software development is integrating development and deployment into a unified continuous integration/continuous development/continuous deployment (CI/CD/CD) process.
Unfortunately, what began as a fast, ad hoc way of acquiring compute resources from the public cloud has become a significant drain on enterprise resources. Monthly cloud costs are spiraling, and the IT department has little control over these expenditures. In many ways, DevOps has usurped IT’s role in resource provisioning. Also, it’s easy to create a sprawling, undisciplined IT environment where the company is not sure which workloads its developers have on AWS or other public clouds. Finally, the company may be developing applications that use intellectual property or confidential client information, or require high security or government compliance, so using public clouds for DevOps may not be an option.
How on-premises cloud platforms support Continuous Development and Delivery
If cloud platforms accelerate the application life-cycle by applying new technology to operations and integrating and aligning applications and infrastructure, the challenge for IT is to regain control over the process. The answer is to deploy a private cloud platform. With a self-provisioning private cloud platform, DevOps teams can continue to set up their own workspaces and access the tools they need to complete their development cycle, and IT’s private cloud – rather than a public cloud provider – makes those resources available.
As compared to public cloud, private cloud delivers improved security and governance, higher performance, and lower costs. It also unifies the separate compute, storage, and networking silos to deliver a cost-optimized IT infrastructure.
What’s required in a cloud platform to support digital transformation
Here are some specific attributes a private cloud should have in order to meet the demands of an organization moving toward digital transformation.
- Simple Deployment. An enterprise shouldn’t have to invest in specialized cloud experts and spend months deploying a private cloud. Some private cloud platforms can now be deployed within an hour by existing IT personnel.
- Automated provisioning tools. A self-service private cloud should offer a set of automated provisioning tools to allow developers and testers to create their own DevOps and DevTest environments. It should include both a self-service user interface and an API-driven Infrastructure as code that lets developers create VMs and databases, access storage, set up network connections, etc., using RESTful API coding.
- DevOps Workbench. A private cloud platform must add value to application developers as well as to IT operations. The cloud should include a DevOps Workbench that allows individual developers to quickly and easily create the environment they need to develop, test, and deploy their application. Developers should be able to use a self-service, AWS-like interface to request and immediately receive needed infrastructure from the pool of resources made available by IT. The cloud should include a catalog of popular open source DevOps tools that can be quickly and automatically deployed.
- Application Store. The cloud should incorporate an application store where developers can have point-and-click access to common tools and services, such as Jenkins, Git, and Maven; Ansible, Chef and Puppet; RabbitMQ and Redis; and storage backends such as MySQL, Postgres, Cassandra, and MongoDB.
- Hyper-Converged Operations. The private cloud platform should converge operational silos and enable IT administrators to manage resources through a single interface. The operations interface should be a SaaS application that provides any-time, anywhere cloud-based management of the application infrastructures. A SaaS platform is the best venue for a self-service private cloud solution because it makes it easy to do upgrades to the various features of the UI, application store, and administrative dashboards.
- Application Optimization. The cloud should employ machine learning algorithms to ensure that each application workload has the resources it needs.
- Automated resource optimization. The cloud should use machine learning to guide placement of application workloads, and to recommend changes to application resources over time based on observed behavior. These capabilities increase the productivity of developers and shorten time to deliver application changes.
The world is changing through digital transformation, and all companies are becoming software companies. But in order to compete successfully in this new environment, companies need to empower their DevOps organizations with self-service private cloud platforms that deliver agile development capabilities while reducing complexity, costs and operational overhead for IT organizations. With the right private cloud platform, any company can make the digital transformation to agile software development.