14:15 - 15:15
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 imply and promise 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. A manual configuration of IP addresses, ports and API capabilities is infeasible.
* Highly-redundant: service failures are 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 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 realised using Node.js and Docker.