Microservices and Digital Transformation: What Business Leaders Need to Know
This is the second piece in a series exploring the role of microservices in the wider context of Digital Transformation. In this article, we will examine the challenges that business leaders face due to legacy systems, how microservices can mitigate these challenges, and the trends in their adoption. We will also take a much more in-depth look at the benefits that come with using microservices.
Innovate or Evaporate?
The title statement might be a little “overdramatic”, but let’s take a deep look at what is giving business leaders nightmares.
According to Forbes, one of the main reasons that companies fail is because they don’t constantly innovate. This is true in every industry but especially in technology, where the pace of change is so rapid that you often don’t realize what you’re missing until it is too late. The only way to truly survive and thrive in business today is through innovation. If you don’t innovate, your competitors will take your customers away from you.
Kong recently commissioned a field survey in December 2021 and January 2022 of 500 senior technology decision makers in the U.S., Europe (France, Germany, UK and Sweden), and APJ (Australia, Japan and Singapore) from organizations across a wide range of industries. However, regardless of industry, company size, or geographic region the final message from business leaders was effectively the same.
As the chart shows, there has also been a significant increase in the fear of being displaced by competitors over the last 2 years among companies:
Besides, Kong’s 2022 API & Microservices Connectivity Report claims that the post-pandemic period also comes with increasing pressure to innovate:
- 75% of respondents worry about falling behind their competitors' pace of innovation, up from 62% in 2021 and 57% in 2020.
- 81% of senior technology leaders say that their company will either go out of business or be acquired by a competitor in 6 years or less if they are unable to keep up with digital innovations in their industry.
- 40% of respondents think the timescale is even shorter: if their companies don't keep up with digital innovations in their field, they'll either go out of business or get bought out by a competitor in three years or less.
Therefore, companies are demanding new innovations; it's no longer a luxury they can afford to ignore. When asked about their organization's key priorities in innovation, global technology leaders highlighted the following pain points: service reliability and availability, application performance and scalability, automation, and risk mitigation. They boil down to the ability to ensure business continuity, efficient processes, and effective risk management.
Priorities for Digital Innovation Efforts
Microservices – A Magic Aspirin for our Headache?
So, at a very high level, microservices architecture is the architecture that most of us hear about most frequently and can be considered the “anti-pattern” of the more common monolithic architecture. The monolithic architecture basically combines all the applications functionality, frameworks, dependencies, business logic, security, user interface, and sometimes even the “kitchen sink” into a giant code base that must be compiled, tested, and deployed as a single unit. Individual functional components of the application are tightly coupled together via dependencies, so when changes are made to a specific component (either to add functionality or fix an annoying bug), all other associated components must also be retested.
Five Essential Benefits of Microservices
Not a week goes by without some article or post trying to convince us that microservices will magically solve all our problems. Does a microservices architecture really make us more responsive to the needs of our users, more competitive, scalable, reliable, and secure? In addition to the generally shared notion about the significance of microservices architecture for apps, there are some bullet points for you to consider and draw your own conclusions. To begin with, the results of a study published by O’Reilly show what respondents replied when asked about microservices benefits for their companies.
Benefits from Moving to Microservices
Microservices Are Small & Easier to Understand
Microservices' relatively small size makes the functionality easier and faster to understand compared to dissecting all the components that compose a large monolithic application before changes can be made. One of the more significant side effects is that the teams that work with microservices tend to write higher-quality code with fewer defects, and new team members can become productive in a shorter period.
In a nutshell, microservices are small and independent units of functionality that communicate with each other over the network. Each one is responsible for one specific task, which makes them easier to understand and develop. They also have their own unique lifecycle, so it is much easier to manage them individually than it is with monolithic systems.
Microservices Are More Agile
Microservices allow you to make small changes quickly and almost instantly deploy those changes either for testing or production. You do not have to spend a lot of time on building the complete system, and downtime is almost nonexistent, as it was in our case for a global leader in life advisory services. Release cycles are greatly reduced (think of Agile Scrum) and you can react to customer demands more quickly.
Microservices apps can be updated easily as developers work on various parts of the system since they are effectively “stand-alone”. Multiple versions of the same microservice can be deployed to get feedback regarding performance, or end-user adoption. Resistance to testing becomes almost non-existent.
For developers, the independence of microservices makes it simple to set up a CI/CD infrastructure, which can be evidenced by one of Infopulse’s cases for integrated IT solutions provider. By upgrading only the particular services, they can avoid taking the application offline entirely, providing continuous operation. As a result, developers can roll out improvements to their products with greater efficiency and less disruption to users.
Development teams are now free to evolve their individual microservices over time or replace them altogether. They are no longer tied to a specific framework or vendor simply because other components are. Deprecated frameworks are no longer major showstoppers.
There is no limit to the number of microservices that can be connected. For instance, the Netflix web application is divided into more than 700 microservices. With this level of scalability, developers can easily adjust the resources allocated to each microservice to ensure that the application can handle large amounts of traffic and user requests without slowing down or crashing. This scalability also means that businesses can start small and gradually add more microservices as their needs evolve, reducing the initial investment required to build the entire application.
Microservices Dynamically Scale as Needed to Optimize Costs
Let's face it, not all application components have the same workload. With a typical online eCommerce application, for instance, the number of people accessing your product catalog is likely to be significantly greater than the number of customers presently paying for products in their shopping cart. Although merchants might wish it were the other way around, this is not the reality. Seasonal (e.g., Christmas shopping) and even hourly (financial results or trends) variances in system workloads are also common.
Microservices scaling using a combination of containerization and orchestration (i.e., Docker and Kubernetes) gives organizations the ability to scale up or down the number of running services to meet the current demand. This ability provides the best possible scenario in terms of end-user experience, while at the same time reducing operational costs through dynamic compute resourcing.
Microservices Apply the Right Level of Security
Thanks to the microservices autonomous nature, developers can make the right decisions regarding how much and where security needs to be applied to their individual microservice. Logging, audit trail, internal organizational security metrics, as well as machine-to-machine security parameters can be applied on an individual basis. Developers no longer have to make everything fit the same constraints and most importantly security is no longer an afterthought.
Microservices Improve the Customer Experience
Successful organizations understand that attracting and retaining customers is neither trivial nor a “one and done” thing. Customers demand a fast, intuitive, and responsive interface, personal data protection, 24X7 availability, and a reason to come back. Responding to this challenge, Infopulse took part in the implementation of a range of high-tech solutions to align with the digital transformation strategy of the client, a mobile communications provider, with the aim of enhancing the customer experience.
Microservices can be scaled as needed to meet the demand. Also, they can be distributed globally to be closer to the user and reduce latency, as well as meeting any specific governmental data security issues such as GDPR.
Failure of a single microservice does not make the entire application “go down”. New functionality and features can be added when and where they are needed. Deploying a fix/feature now takes hours and not days/weeks/months. Customers are a fickle bunch and will not have a second thought about switching their allegiance to someone new who can deliver faster, more conveniently or just simply makes life easier. So, the latency in microservices is taken out of the picture, which keeps customers from becoming dissatisfied and abandoning. But there are also some gray areas as well.
Although latency is stated to be dangerous, it is a powerful tool for leapfrogging the competition. Deloitte's recent research on mobile site data showed that decreasing loading time by 0.1 seconds resulted in a boost in conversion rates and consumer spending, resulting in $8k of daily revenue for a $100k eCommerce site. However, any lag of more than one second can cause customers to lose focus, and a lag of 10 seconds can cause frustration and abandonment, particularly in applications designed to work in real-time.
Where Are Organizations at With Their Microservices Journey?
There is no simple switch or magical converter to move a monolithic application to a microservice architecture. It will take time, money, and commitment to make this transition. It is technically possible to simply take your existing monolithic application, package it up in a container, and deploy as many copies as needed to meet varying load demands. This may solve the problem of responsiveness, but not the problems associated with development and deployment agility, interdependency between components (i.e., fragility). Besides, replicating multiple copies of the same application is probably a tremendous waste of compute resources such as memory, CPU, and storage. So, the question is then how are other companies dealing with this? Are they doing nothing? Big Bang approach? A slow migration?
If you take a closer look, everything is quite clear-cut. A good picture of microservices adoption is given in the already mentioned Kong’s 2022 API & Microservices Connectivity Report. The transition from monolithic to microservice architectures is well underway, as evidenced by the following statistics. Respondents claim that their organizations:
Considering the rate of microservices introduction, IBM also published a report titled "Microservices in the Enterprise, 2021" which has some fascinating figures:
To sum up, the time wasted before innovation even begins is a precious commodity that may have a dramatic impact on a company's bottom line. There are countless examples throughout the history of businesses that collapsed just because they were too slow to adopt new technologies. Here is an example of what went wrong for Yahoo: By putting so much emphasis on media, they overlooked consumer trends and missed opportunities to enhance the user experience. Yahoo failed in creating a mechanism to profit on content "views," as did Google.
To be fair to the reader, this article may make it sound like the microservices architecture is some sort of revolutionary new software innovation that has suddenly appeared over the last year or two, when in fact microservices are not a new concept at all. The term "microservice" was discussed at a workshop of software architects near Venice in May 2011 and the Microservices and REST API evolution timeline are publicly available.
Teams have been using microservices for developing for over ten years now on various projects, but the availability and maturity of a secure container technology along with more feature-rich API and cloud adoption have accelerated microservices architecture adoption.
Hopefully, this article provided a little more insight into the benefits of microservices architecture and how business leaders can use this approach to combat their single biggest fear today – “lack of innovation will cause them to fall behind their competition and even possibly cease to exist”.
Using a clear and comprehensive implementation plan, businesses can start to migrate their current monolithic application to a collection of stand-alone functional parts that communicate with each other while allowing each part to evolve over time as needed.
In our next article, we will play the role of “Microservices Devil’s Advocate” and examine more closely when and where microservices make sense, when they are not a good choice, and challenges to adoption. Stay tuned for part three.