Zero-configuration microservices with Node.js and Docker

By Armagan Amcalar

Elevator Pitch

Microservices is very hot, alas, we see a lot of ideas from the past rebranded as microservices; whereas the thinking behind it implies and promises a bigger change. This talk goes over the details of what actually makes a microservices architecture and presents one with Node.js & Docker.

Description

The concept of microservices is hot and it draws many developers from a diverse background. Unfortunately, we see a lot of ideas from the past rebranded as microservices; whereas the thinking behind microservices implies and promises a bigger change. This talk will go over the details of what actually makes a microservices architecture and how other distributed systems — that rely on queues and other mechanisms to function — fail to fulfill the promise.

A modern microservices implementation should be;

  • Zero-configuration: any microservices system will likely have hundreds of services. Therefore, a manual configuration of IP addresses, ports and API capabilities is infeasible.
  • Highly-redundant: service failures are very common in this scenario. So it should be very cheap to have copies of such services at disposal with proper fail-over mechanisms.
  • Fault-tolerant: the system should tolerate and gracefully handle miscommunication, errors in message processing, timeouts and more.
  • Self-healing: it’s normal for outages and failures to occur. The implementation should automatically recover any lost service and functionality.
  • Auto-discovery: the services should automatically identify other new services that are introduced to the system to start communication without manual intervention or downtime.

Finally, this talk will present how such a system can be easily realised using Node.js and Docker.

Notes

I have been developing distributed applications way before it was called microservices. I am the author of a library backed by state-funded research efforts called cote and I have been talking about this subject for over 3 years in several countries.

I can also present this talk as a tutorial/workshop. If this should be a tutorial (or a workshop), a wifi network that doesn’t block IP multicast or IP broadcast would unlock more interesting applications within the session.