Apps

Detours on the way to microservices

Share this post:

MicroservicesIn 2008, I first heard Adrian Cockcroft of Netflix describe microservices as “fine-grained service oriented architecture.” I’d spent the previous six years wrestling with the more brutish, coarse-grained service-oriented architecture, its standards and so-called “best practices.” I knew then that unlike web-scale offerings such as Netflix, the road to microservices adoption by companies would have its roadblocks and detours.

It’s not quite ten years later, and I am about to attend IBM InterConnect, where microservice adoption by business seems inescapable. What better time to consider these detours and how to avoid them?

Conway’s law may be bi-directional

Melvin Conway introduced the idea that’s become known as Conway’s Law: “Organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations.”

But I saw it occur in reverse: When enterprise software organizations first decide to adopt microservices and its disciplines, I observed development teams organize themselves around the (micro-) services being built. When constructing enterprise applications by coding and “wiring up” small, independently-operating services, the development organization seemed to adjust itself to fit the software architecture, thereby creating silos and organizational friction.

More than the sum of its parts

When an organization first adopts microservices in its architecture, there are resource shortages. People who are skilled in the ways of microservices find themselves stretched far too thin. And specific implementation languages, frameworks or platforms can be in short supply. There’s loss of momentum, attention and effective use of time because the “experts” must continually switch context and change the focus of their attention.

As is usually the case with resource shortage, the issue is one of prioritization: When there are hundreds or even thousands of microservices to build and maintain, how are allocations of scarce resources going to be made? Who makes them and on what basis?

The cloud-native management tax

The adoption of microservices requires a variety of specialized, independent platforms to which developer, test and operations teams must attend. Many of these come with their own forms of management and management tooling. In one case, I looked through the list of management interfaces and tools for a newly-minted, cloud-native application to discover more than forty separate management tools being used. These tools were covering: the different programming languages; authentication; authorization; reporting; databases; caches; platform libraries; service dependencies; pipeline dependencies; security threat model; audits; workflow; log aggregation and much more. The full list was astonishing.

The benefits of cloud-native architecture do not come without a price: organizations will need additional management tooling and the costs of becoming skilled in those management tools.

Carrying forward the technical debt

When a company embraces cloud migration or digital transformation, a team may be chartered to re-architect and re-implement an existing, monolithic application, its associated data, external dependencies and technical interconnections. Too often, I discovered that the shortcuts and hard-coded aspects of the existing application were being re-implemented as well. There seemed to be a part of the process that was missing when the objective was to migrate an application.

In an upcoming blog post, I’ll consider some of the common detours and look to what practices and technologies are being used to avoid them.

Join me and other industry experts as we explore the world of microserivces at IBM InterConnect on March 19 – 23, 2017.

 

More Apps stories

A strategic approach to adopting cloud-native application development

Approximately three out of four non-cloud applications will move to the cloud within the next three years, according to a recent IBM report titled “The enterprise outlook on cloud-native development”. In today’s modern enterprise, optimizing the application cycle is critical: it can help companies keep up with consumer expectations, keep business operations agile, and speed […]

Continue reading

4 steps to modernize and cloud-enable applications

Customers today are no longer satisfied by the traditional consumer-business relationship. Instead, they expect engaging and informative digital experiences. In order to match these expectations and stay ahead of the curve, organizations must lean into digital transformation. Businesses need to modernize both customer-facing and enterprise applications to support a customer-centric approach to business. Developing a […]

Continue reading

Simplify modernization and build cloud-native with open source technologies

Cloud-native technologies are the new normal for application development. Cloud-native creates immeasurable business value with increased velocity and reduced operational costs. Together, these support emerging business opportunities. Advancements in application development have focused on net new applications. We have seen that existing applications that cannot easily move to the cloud have been left on traditional […]

Continue reading