Article

Technology Modernization for Digitization - How to leverage Microservices and DevOps

Technology Modernization for Digitization - How to leverage Microservices and DevOps

When was the last time you saw a "Site temporarily down for maintenance" page? When was the last time you saw glitches with large scale social media applications last for more than a few hours? When I was a kid, we used to have instances when the television channels would blackout for a couple of hours with weird noise that rings in my ears when I think about it. Though the memes around 90's kids and 2K kids sound funny, the reality is that the technology is changing at a rapid phase. The transition from the 80's to the 90's to 2K kids is phenomenal in terms of technology transformation.

As technology gets transformed, the end-user experiences and expectations also get transformed at the sub-conscious level and the organizations are forced to reinvent continuously. Gone are the days where you can invest in a legacy Mainframe or ERP application, roll it out and forget about the patronage for the next 10 years. The organizations are increasingly forced to reinvent from a technology perspective as every business is a digital business. Technology modernization is the underlying initiative for digital transformation and it involves organization-wide reengineering and synchronization.

Technology modernization and digital transformation go hand in hand and they have to be oriented towards, enhancing customer experience, smart workforce management, and process efficiency. To meet these objectives, the technology platforms and the organization got to be agile. Few major questions to be answered are:

  1. Is there agility in the organizational technology ecosystem to meet new requirements and changes?
  2. Is the organization thought process oriented towards design thinking with a focus on end-user empathy?
  3. How open is the organization to accommodate and open for changes and challenges?

To summarize, it's all about agility, design thinking, and change management which lays the foundation for the technology modernization in sync with your digital transformation. Though they may look more of management or motivation terms they have underlying relevance to technology modernization.

Microservices - The fundamentals:

Let us, deep-dive into the agility of technology infrastructure. In many organizations, the ability to transform and reorient the applications, make minor enhancements takes months due to rigidity of the technology stack and mindset of the resources. I was talking to one of my ex-colleague working with the IT division of a bank and he was narrating stories on how hard it is even to upgrade the version of browser in the employees' machines as it impacts so many applications. The effort for any changes induces a butterfly effect where testing efforts multiply on an exponential basis.

Technology agility comes with the ability to manage smaller pieces without a major impact on the rest of the ecosystem. As they say, you cannot eat an elephant in one piece, the technology orientation has to dissect larger applications or solutions into a group of smaller pieces that can be managed without impacting other smaller applications. In technical terms, we call it microservices where each service can be run independently without impacting the other. In simple terms, you can have an application for login and profile management, and that work when your application for video streaming is down due to some issues.

What is Microservice?

  • Microservices enable building single-purpose applications which can be packaged to address larger use cases via big sized applications. Each microservice is generally built around a set of business capabilities and is independently deployable.
  • Microservices architecture from a theoretical perspective implies, developing any software application as a suite of small, niche-focused, independently deployable services.
  • Microservices approach has been successfully adopted by organizations like Netflix, Google, Amazon, McDonald, and others. The transformation not only improvises the e-commerce process but also enables digital platforms with innovative ways of goods, services, and experiences to customers at scale and in real-time.
  • Adopting microservices allows organizations to achieve greater agility at lower costs along with inherent granularity and reusability.
  • Automation and agile development are other major by-products of microservice orientation.

Benefits of Microservice orientation:

  • Microservice architecture aligns with business and transforms business services in an agile fashion.
  • Business processes and transactions are automated with the composition of microservices which allows us with rewriting only the process to be changed or newly introduced while the other services are on the go
  • Provides ease and speed with which the organization can change can determine the ability to react to trends in the industry and maintain a competitive advantage.
  • With solution logic as composable services form, the organization can run at the pace of business and match business changes with an agile response in delivery.
  • As business gets transformed digitally, there are many chances for the incorporation of changes or replacement in application features which can be done in the ease with microservice architecture.

DevOps - The fundamentals and how to go about it

With a microservice standardization and design mindset that we talked about in earlier two parts, the final one is going to be around change management where we will explore options to automate and leverage tools to manage operations what we call as DevOps. With multiple environments and multiple versions of code, the software developers traditionally spend a lot of their time on configuration and change management tasks. DevOps on a microservice application deployed on cloud completes your modernization cycle.

DevOps is a combination of cultural philosophies, practices, and tools that increases an organization's ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes.

In a non-DevOps environment, there is increasing conflict between realizing new features and application stability. The KPI for the development team is around their ability to deliver new features quickly where the operations teams KPI is around the stability of the application and sustainability of continuous operations.

In a DevOps environment, it is more of a collaborative agile team where they are responsible for iteratively delivering new features and also ensure the stability of the application. The combination of a shared codebase, CI & CD, Test-driven development, and automated deployments act as preventive quality assurance as it secures the quality of the application at every phase. A few pioneering examples for DevOps tools on AWS and Azure are GitHub, Bit Bucket, Visual Studio, Visual Studio Code, Sublime, Jenkins, Docker, and Jasmine.

Technology has grown in leaps and bounds in the past 4 decades, and the preceding parts of this article have highlighted the contemporary developments to enlighten the inquisitive mind on how to make the most of it. Thus, the present-day innovators are continuously raising the bar that the life span of technological nuances are minimized to weeks and days by the newer and better products. With such endless growth in progress, certainly there is more in store for the future, and, as we have been acclimatized down the years, we all know that in the world of technology the best is always yet to come.

About the Author

Prem Kumar is an accomplished IT professional and entrepreneur with 18+ years of experience in technology and general management/leadership across industries. Co-founded a series of entrepreneurial initiatives and currently managing OptiSol Business Solutions, an IT services firm with focus on digital technologies.