Tuesday, August 20, 2019

5 Questions Everyone's Asking About Microservices (Question 2)

When discussing the development impact on existing applications while transitioning to microservices, there are five questions that keep popping up in one form or another. They are the same regardless of the size of the organization and seem to become part of strategy discussions later in the process as organizations move towards microservice architectures.

These articles cover questions that everyone should ask about microservices. Their based on experiences from interactions with organizations in the process of conquering microservices for existing development and for delivering modern applications.

Previously we covered the first question around the performance impact of microservices. In this second article we'll take a look at dealing with state after splitting up monolithic applications.

State and monoliths

After the initial discussion around the first question, it’s usually followed by issues of how to deal with state in a monolithic application.

“How to deal with services that get split off from their monolith usage and are stateful, where we want to use the benefits of a container platform like OpenShift?”

There are two types of stateful in relation to applications:
  1. Building a business application that uses either in-memory state or database state.
  2. Building a specific database engine and need highly performant, even low-level, access to the underlying disk.
The first option is the mainstream way of developing and deploying cloud-native applications with their stateful components, while still splitting out microservices, using a container platform like OpenShift based on Kubernetes.

Option two is another story and is often best left to specialized vendors. This is because these types of solutions can go deep enough to involve maintaining extensions to operating system kernels themselves. It makes more sense to focus on your domain specific business value and delivering that to your customers.

Next time in this series of articles, a look at dealing with data across a distributed microservices architecture.

(article co-authored with Burr Sutter)