iJS CONFERENCE Blog

How to implement Microservices Architecture

Five simple Rules

Jun 12, 2017

Microservices_Puzzle_Graphic

The software industry likes to create and follow hype. Unfortunately, the rate at which we can adapt to the hype is much smaller than the rate we generate it. It’s understandable, therefore, that we are sometimes tempted to take whatever solution we currently have at hand and simply rebrand it with minimal changes to suit the current fashion.

Microservices is one example. It is an amazing opportunity to reshape how we build server software, but since it implies huge changes and players want to be in the market as “solution providers” who adapt microservices first, they just rebrand their solutions without much change. In doing so, they miss the fundamental principles of microservices.

Microservices is about making software approachable — it’s about enabling. So as an industry, we should be doing our best to make microservices accessible to everyone. Microservices doesn’t require a huge infrastructure investment. It doesn’t require you to maintain several technologies just to run your app.

As long as you follow 5 simple rules, you will benefit from microservices regardless of the technologies you are using.

  1. Zero-configuration: Any microservices system will likely have hundreds of services. A manual configuration of IP addresses, ports and API capabilities is simply infeasible.
  2. Highly-redundant: Service failures are common in this scenario. So it should be very cheap to have copies of your services at your disposal with proper fail-over mechanisms.
  3. Fault-tolerant: The system should tolerate and gracefully handle miscommunication, errors in message processing, timeouts and more. Even if certain services are down, all the other unrelated services should still function.
  4. Self-healing: It’s normal for outages and failures to occur. The implementation should recover any lost service and functionality automatically.
  5. Auto-discovery: The services should automatically identify new services that are introduced to the system to start communication. This should require neither manual intervention nor downtime.

If your architecture demonstrates these capabilities and if you are breaking down the fulfillment of most of your API requests into several independent services, then, yes, you are doing microservices.

Join me on my talk Zero-Configuration Microservices with Node.js and Docker at International JavaScript Conference to learn more about the true properties of microservices and how you can realize such a system with only Node.js and a handy library called cote.
The microservices revolution is upon us. Let’s kick it off and be a part of the change.

Want more exclusive knowledge? Sign up for our newsletter now!

Sign up for the iJS newsletter and stay tuned to the latest JavaScript news!

 

BEHIND THE TRACKS OF iJS

JavaScript Practices & Tools

DevOps, Testing, Performance, Toolchain & SEO

Angular

Best-Practises with Angular

General Web Development

Broader web development topics

Node.js

All about Node.js

React

From Basic concepts to unidirectional data flows