Challenges with Microservices, Part 1

Share this post:

Republished from developerWorks TV

From the IBM Cloud Architecture Center, six IBM Cloud experts discuss the challenges of developing with microservices. Join David Hodges, Roland Barcia, Gang Chen, Kyle Brown, Erin Schnabel and Rick Osowski as they outline issues that clients are facing with microservices, including operations, considerations with heritage systems, security, and the newness of microservices in general.

David Hodges starts the discussion on microservices: David Hodges

“It seems like microservices is leading the hype curve and gets lots of attention… it also comes with its problems and complexities… operators have to deal with that.”

Roland Barcia Roland Barcia explains the problems clients are trying to solve with microservices:

“Clients are trying to modernize their applications to keep up with the rate of change… in the past, operations dictated how applications were written… people spent years writing monolithic applications in which a lot application function was packaged inside the app… now they are seeing the difficulty developers are having in adding new features to respond to changing marketing demand.”

Roland goes on to say that most clients are not building greenfield apps but already have legacy applications with key data in them that they need to expose. He talks about how the integration of microservices affects everyone in the process, including developers by how they build applications.

But he thinks the biggest nightmare is reserved for the operator. Organizations are constructed around these monolithic applications and the monitoring element of the process is designed to fit the structure and environment of the app. Today, however, there are little bits of apps running in lots of places, local or cloud, some built with different languages, some employing different workloads (like containers). How is a poor operator to manage this circus?

Kyle Brown Kyle Brown discusses the application patterns he sees while working with clients to transition them to microservices:

“The one we’re seeing most often is one Martin Fowler identified… he called it the ‘Strangler Pattern.’ There are these existing monolithic applications and you cannot get rid of them all at once. The Strangler Pattern looks to replace a large application like this piece by piece.”

In other words, you can’t shift from the old app to a new one in a single rewrite because of the complexity of the construction. (Martin Fowler notes that often when you’re rewriting an old application with newer capabilities, you even have to reproduce the old bugs in the system to make the new pattern work.)

Kyle also reports on something his teams are calling “Adapter Microservices” in which the microservice doesn’t own its own data (a common feature of microservices). In this case, you need to provide a RESTful API to those services.

Rick Osowski Rick Osowski talks about value of microservices frameworks and the challenges to applying them:

“Netflix is an example of how these frameworks operate… they force you to do more with less. Netflix started out with a very specific business need, so they developed a very robust microservices framework based on Java and they seized the ability to open source it which made these components extremely adoptable by the community.”

Rick continues by noting that the key problem with the Netflix example is that they are Java-only; you want to employ the best-of-breed language for each component and situation. As more move to the cloud, clients are having different language needs. Rick says we often have the “Netflix conversation” with clients to help them determine whether they need a single language-bound solution or a multi-cloud, software-based framework.

Erin SchnabelErin Schnabel talks about the Java-based work IBM is doing with microservices and the game her team built to help developers engage with these topics.

“A core of IBM services are written in Java and when we talk with developers [about microservices, here at JavaOne and elsewhere], we hear ‘How do I test it?,’ “How do I monitor it?,’ ‘How do I handle routing?,’ ‘What about data integrity and consistency?’ We’ve built a game to help engage developers on these topics.”

One of the more important talks Erin is having with developers is how to secure data communications in microservices.

gchen Gang Chen gets approached by customers who want to know how to do DevOps in a microservices world; how do you support multiple channels like mobile, web, IoT, etc.; how to track the flow of microservices; how to integrate high availability and failover needs to a microservices environment:

“These are the kinds of questions we’re hearing, so we’re testing and writing up our findings and building a reference implementation on microservices implementation.”



More stories
February 13, 2019

Simplify and Automate Deployments Using GitOps with IBM Multicloud Manager 3.1.2

Use Argo CD, a GitOps continuous delivery tool for Kubernetes, and IBM Multicloud Manager to achieve declarative and automated deployment of applications to multiple Kubernetes clusters.

Continue reading

February 11, 2019

Solving Business Problems with Splunk on IBM Cloud Kubernetes Service

In this tutorial, we will install Splunk Connect for Kubernetes into an existing Splunk instance. Splunk Connect for Kubernetes provides a way to import and search your Kubernetes logging, object, and metrics data in Splunk.

Continue reading

February 8, 2019

A How-To for Migrating Redis to IBM Cloud Databases for Redis

If you’re moving your data over to IBM Cloud Databases for Redis, you’ll need to take some steps to successfully migrate all of your data. We’ve got you covered. In this post, we’ll show you a quick way to start migrating your data across to Databases for Redis, whether your database is on-premise or in the cloud.

Continue reading