Explaining the power of microservices (without the jargon)

No doubt you’ve heard the buzz about microservices, and you are probably wondering what all the excitement is about. Far from just being another IT buzzword, microservices are absolutely crucial for application development on the cloud. I’d like to explain how microservices architecture can create new value for business – often in ways you had never previously imagined.

 I’ve been in IT a long time. The ability to reuse code has been the holy grail of application development my entire career. Subroutines, object-oriented programming, object libraries, SOA – these were all supposed to be the magic bullet for reuse. We may not have reached the final answer, but microservices is one of the biggest steps forward in years.

Think of microservices as the logical extension of long-term trends in the evolution of software development. It’s a simple, yet powerful concept that is making all the difference for cloud-native application development.

Microservices architecture is a new approach to software development that creates very small modules containing data and functionality that can be easily combined, reused and scaled in various ways. Application services are broken up into small, independent functions, allowing developers to rapidly build applications, add new features, or launch new services. When combined with containerization, microservices can scale up and down depending on the need of the moment.

An analogy for non-techies

I like to explain microservices architecture using the analogy of a house. Think of your house as an ‘application’ or business system. In traditional, monolithic application development, the front door and back door of the house are the only ways to get in or out. Accessing ‘functionality’ in the house, such as the kitchen, meant following the floor plan – through the front door, down the hall, and so on.

project2
On the left, the traditional ‘monolithic’ house.  On the right, if you could take a microservices approach to your house, how it might scale after a party.  (diagram credit: Eric Dymond)

With microservices, the house itself is radically redesigned, so that individual functions such as the dishwasher or a bedroom are available in any quantity you want, in one simple step, from wherever you are. Having a weekend party? Get instant access to five dishwashers and three extra bedrooms, then scale back to normal operations when you’re finished. Reuse or recombine functionality in any way you want!

That’s the power of microservice architecture.

Why microservices are here to stay

Complex applications built from a set of modular components are faster and easier to develop, adapt, and scale to meet demand, and take up fewer resources. Developers have the freedom to focus only on their piece of the project, which means continuous integration and development are built into microservices architecture, while virtually eliminating infrastructure risk. If one component fails, it’s easy to isolate and fix it while the rest of the application keeps on ticking.

 To recap:

  • Microservices architecture splits large applications into (much) smaller pieces that exist independently of each other.
  • Each microservice does one thing and does it very well.
  • Microservices offer a fast, flexible and efficient approach to building, deploying, and updating individual parts of an enterprise application, streamlining application development and updates.
  • Security based on industry standards is built into each microservice, so it’s already there when you recombine or reuse the component.

A word about APIs and containers

Microservices are most powerful when they are  containerized. Think of a shipping container, which is used to quickly and efficiently load and transport cargo around the world. Putting microservices into a container lets you build a powerful system that gives you all the functionality you need, since the container gives you both scalability and replicability. The most common way to implement this is using Docker containers and using Kubernetes to orchestrate, monitor, manage, and scale microservices.

Microservices use application program interfaces (APIs) as gateways to access an application’s data or use an application’s functionality. APIs are how the world’s electronics, applications, and web pages are linked up to work together. It is the combination of microservices (public and private) plus containers that gives developers the scalability needed to rapidly add new value, features and functionality.

Why microservices are revolutionary

The 2019 IDC FutureScape Report says that the digital economy is driving the shift to modular, distributed, cloud-native technologies. It predicts that by 2022, 90% of all applications will be using microservices architectures.

That’s not surprising, when you consider what microservices can do for businesses.

Consider a very simple example. Not too long ago, company web sites contained static maps that showed their location. To get there, you needed a paper map. Today, a single mapping app such as Google Maps (a third party, microservice-based API) shows the company location along with dynamic, real-time suggested routes and predicted travel times for walking, driving, or transit. Not only is this revolutionary, it’s a win-win-win: it saves developers the effort of reinventing a mapping app every time; it gives consumers fast, customized information; and it is a huge win for the company who developed the product.

The opportunity is enormous

I believe that many organizations have not yet grasped the breadth of opportunity awaiting them with microservices architecture. They hear the buzzwords, but they aren’t clear on the value it brings to the business. Let me elaborate.

Not only are microservices at the frontier of cloud application development, they are the most powerful way to move the valuable functionality in your legacy applications onto the cloud. No need to move your 50-year-old legacy payroll solution to the cloud all at once to experience the benefits. Take out the piece that is scalable and reusable for other business needs, turn it into a microservice, then build or refactor the rest of the system over time.

Imagine taking a great idea from your finance application, combining it with another idea from your HR application, and creating a new, powerful solution that nobody had thought of before. It’s possible with microservices architecture.

Business leaders ask us how they can get the same kind of competitive edge. We have been thrilled to help large enterprise clients rapidly gain new functionality and create new business models using containerized microservices architecture on the cloud.

In one sense, microservices is just a new word for reuse and scalability in IT, but these days, multi-million-dollar business are stitching together publicly available microservices with their own solutions and ideas to disrupt and topple entrenched industries. Who knows what the next industry disruptor will be?

Next up: Migrating applications to the cloud

Most companies are starting to build cloud-native apps using microservices architecture, but it’s also a key component of a good strategy to migrate legacy applications to the cloud. Everyone’s journey has its own twists and turns, but to reap the greatest benefit, you need to refactor and redesign your application as you migrate it and modernize it for the cloud.

I’ll be talking about cloud migration in my next blog. Stay tuned!

Want more detail on this topic?

Read this helpful overview of microservices.

Watch the video “What are microservices?”

Explore the benefits of application modernization.

IBM offers Cloud Garage workshops, assessments and more.

 

 

 

 

Published by

Mark Dymond, P.Eng

With over 20 years of consulting experience I've worked with clients in the banking, retail, travel and government sectors. Based in Toronto, Canada, currently I lead the Cloud consulting team for IBM Canada. I've led successful project and program teams in Canada, the US, and Europe of more than 200 people. Thoughts, comments and mistakes are most definitely my own!

One thought on “Explaining the power of microservices (without the jargon)”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s