Attacking your monolithic database with a swarm—a whole swarm!


Abstract:

Imagine one huge, monolithic relational database—say, a MySQL or Oracle installation—squatting in the middle of an organization's business like Jabba the Hut. The big blob is kind of comforting. Its massive gut keeps all the data all in one place, making it an attractive integration platform.

The problem is that the blob only speaks the language of structured data: SQL. Integrating it with non-relational and unstructured data can be an adventure. And because of its size and structure, adapting it to new tasks can be slow going at best. Unfortunately, nowadays, such blobs must move.

The world of apps is in constant flux and, with it, so are the demands on data. APIs are constantly changing to meet those demands (a social media connection here, a new mobile platform there). But throughout all this, core business can't be bogged down; it has to move fast. And that's where microservices—the dissection of the data monolith into agile little services—come in.

 

 

Source:

https://arstechnica.com/information-technology/2016/05/blow-that-data-monolith-to-smithereens-with-microservices-and-database-swarms/

 

Quotes:

One of the problems with microservices is their distributed nature. Distributed systems are tougher to program since remote calls are slow and are always at risk of failure. "If your service calls half a dozen remote services, each which calls another half a dozen remote services, these response times add up to some horrible latency characteristics," Fowler notes.

There are workarounds, such as making fewer, more granular services. But that makes for a more complicated programming model as you figure out how to batch those inter-service interactions. "It will also only get you so far," Fowler says. "You are going to have to call each collaborating service at least once."

 

Key points:

Microservices allow for scalability at the cost of operational complexity.  Problems with service discovery.  Logging and metrics are critical for migration.