Tuesday, October 25, 2016

Bring Grandfathered Applications into the World of Microservice

In the modern world of software development, it is accepted that most applications will get more and more complex over time. This creates unique challenges for developers, as they may have to dive into someone else’s ten-year old code in order to make changes while hoping that they don’t break any unique function they cannot understand. Because developers have all felt this pain, the industry has welcomed a new kid in town named “microservices architecture”.

You’ve probably heard a lot about microservices recently from blogs, podcasts, and social media. You may have also read our own blog about the “LEGO approach” to microservices that outlines how building applications by chaining microservices together can feel just like the sensation of constructing LEGO towers as a child. Microservices have significantly simplified development, deployment, maintenance, scaling, and migration. When you are focusing on fixing bugs in one microservice, you don’t need to take into account the other microservices in use for the specific workflow or the business process. Similarly a specific node or the microservice can be  scaled on individually among the chain of microservices without affecting other nodes and offering superior performance efficiencies. Similarly, migrating a microservice from one server to another is just a simple one-line command and can let you run components across the datacenters and clouds.

It is true that starting from scratch to build an application now seems so more simple with microservices. But how can you apply this architecture on your one million lines of legacy code that has already been running for years? The common answer would be to change the API so that it can be compatible to other microservices. However, the cost of this approach can be prohibitive and could discourage developers.

Thanks to protocol agnostic messaging oriented middleware, RoboMQ, you can handle this situation elegantly.  With RoboMQ you can choose one of the two options to breathe the life back into your old application without digging into its archive of code. “ThingsConnect” is our suite of connectors and adapters for IoT devices, enterprise systems, and SaaS applications supporting all industry standard data integration protocols. It is more than likely that ThingsConnect can talk to your application as of today. Since we cover most of the common application protocols, ThingsConnect can act like a bluetooth dongle for your grandfather’s PC, a Wi-Fi controller for your three dollar light bulb, or a touchscreen control panel for your thermostat.

Option 1: Go Fully Microservice

If suitable, we recommend to convert the application itself into a microservice. Simply build a Docker image that contains the application and ThingsConnect connectors of your choosing. In this approach, developers look at the application in a new light, as illustrated below:

Fig 1: Dockerizing a legacy application

Option 2: Deploy ThingsConnect connectors as API gateway

Not everything is suitable for a container, in some situation, it might be a better choice to leave the application as it is but put ThingsConnect connectors as its API wrappers. Our connectors are highly portable units and are designed to run both on premises and in the cloud so you have the freedom to deploy them anywhere you want.

Fig 2: Wrap API gateway around legacy applications

By transforming the legacy application into a microservice, you also unlock many of the advanced features that RoboMQ provides, such as:
  1. Guaranteed delivery that ensures that you never lose a single transaction.
  2. Monitoring and analyzing the data traffic.
  3. Receiving alerts triggered by customized events.
  4. Designing and deploying new workflows without programming using the Flow Designer.
You could now build your business workflows using a collections of legacy applications and new microservices chained using RoboMQ integration middleware in highly scalable and truly distributed fashion.

A move to microservices can simplify many of the technical issues faced by older systems as well as leverage the wonderful advantages of ThingsConnect and the RoboMQ platform. 

Interested in jumping into the microservices world? Get in touch with us at sales@robomq.io and let us show you how we can give your application a boost.

1 comment:

  1. Thanks for sharing this post it's all information is really very nice and useful for all users.

    Welder Adapter