Digital transformation initiatives are sweeping businesses around the world, and with good reason. Industry trends show that organizations investing in digital transformation are innovating faster than their peers and digital transformation will disrupt every industry within the next two years. A study shows that the global digital transformation market is expected to grow at a CAGR of 24.3% from US$ 445.4B in 2017 to US$ 2,279.4B by 2025¹.
Today, industries are being disrupted by a new force—software innovations. There is a paradigm shift where new companies are born digital and established enterprises are transforming as technology companies. Enterprises with technologies at their core are impacting virtually every industry like hospitality (Airbnb—more than 260 million homes and room rentals through the company since its launch², transportation (Uber—A single app would work across cities and nations with simplified ordering process and visibility about ride), retail (More than 80% of online transactions across numerous categories can be attributed to Amazon³, DTH services, internet entertainment services (Netflix—They changed their DVD-by-mail model into online on-demand rental model), music streaming (Apple Music and Spotify) and automobile (Tesla) apart from others.
Digital transformation looks different in every industry and company based on the business process and model. However, the primary objective to revolutionize the value delivered to customers by capturing customer data and analyzing it to serve them better and faster, thereby improving top line business growth, remains a constant across industries.
Technology view
The key to transformation lies in cloud-native solutions that leverage modern architecture, microservices-based containerized application development and the ability to build and deliver it rapidly, reliably and repeatedly through continuous delivery and DevOps. A recent study says that 15% of all new enterprise IT applications are cloud-native a figure set to grow to 32% by 20204.
Cloud native
Cloud-native applications are pieces of software designed to capitalize on cloud functionality. They are composed of microservices—an architecture model, where each application is a collection of small services that can be operated independent of other services in the application. These services are packaged in containers. By embracing cloud-native applications, enterprises can expect to gain not only speed and agility of application delivery but also increased flexibility in application development and reduced complexity of their IT systems, empowering development teams to do better and more innovative work.
Containers
Containers provide an isolation context for microservices. They are highly accessible, scalable, easily portable from one environment to another, and fast to create or tear down. These qualities make them ideal for building and running applications composed of microservices.
Continuous delivery and DevOps
This is an approach to rapidly build, test and deliver software in a continuous mode. Software developers and IT operations teams collaborate under this model to build, test and release software updates as soon as they are ready, without affecting customers or developers in other teams.
How containers work
Containerization is an OS-level virtualization method to deploy and run distributed applications without launching an entire virtual machine (VM) for each application. It allows multiple isolated applications/services to run on a single host and access the same host’s OS kernel. It consists of an entire runtime environment of an application/service, plus all its dependencies, libraries and other binaries, and configuration files needed to run it, bundled into one package. There are many container technologies like Docker, Rkt, Java Containers LXD, OpenVZ, Windows Server Containers etc. Docker is among the more popular ones. It is an open source development platform that helps to package applications into containers. The brain for application containers provisioning, management of the multi-containers as a single entity, managing availability, scaling and networking of the containers, resides in container orchestration. There are many container orchestration technologies such as Kubernetes, Docker Swarm and Mesos Marathon apart from others. Kubernetes is considered the de facto standard and is referred to as a new-age operating system. Every leading cloud service provider like AWS (EKS- Amazon Kubernetes Cluster), Azure (AKS-Azure Kubernetes Cluster), GCP (GKS- Google Kubernetes Cluster), IBM and RedHat provides Docker and managed Kubernetes cluster.
How enterprises are moving toward digital transformation
Enterprises are aspiring to transform their business processes but face challenges with a diverse set of applications that comprise new and legacy technologies. Many existing applications remain critical to the business but are rigid and inflexible to modernize and over time, their operational inefficiency makes them expensive to maintain. The key to make these applications easier to maintain is to move them to public cloud using services offered by Azure, AWS, Google, IBM and others and incrementally modernize them. There is no need to redesign the entire application. The process followed for incremental transformation is shown in the figure below. The various steps involved are:
Conclusion
There are multiple use cases for containers as cloud-native applications, stateless applications, cloud migrations and modernizing legacy applications apart from others. Container adoption has seen an exponential increase in the last 2-3 years with a total of 37B container images downloaded till date and 100M downloads happening every day5.
Some enterprise applications that need to be modernized as part of digital transformation initiatives are constrained by legacy technologies. These applications do not comply with the 12-factor application development principles as well. Two different approaches can be taken to transform these applications— incremental step approach or complete transformation. The incremental step approach is more convenient and cost effective. It starts with containerization of the application which brings significant tangible benefits like faster optimization of infrastructure, faster instantiation and higher modularity. This further leads to financial and operational efficiency which helps in self-funding subsequent phases of the transformation like DevOps adoption and redesigning of business processes as microservices to fully digitize the business process.
References
Akhilesh Laddha
Cloud Practice Director, Distinguished Member of Technical Staff, Wipro Limited.
Akhilesh has 20+ years of IT experience across industry verticals, 7+ years in Enterprise Architecture, Cloud Consulting, Cloud application migration, Cloud solution development and executing large transformation projects across cloud platforms. He is also a certified AWS and Azure Solution Architect.