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.
This training will implement such an implementation with Node.js and Docker Cloud. It’s a hands-on training and participants will enjoy building and managing a real-life microservices app in a cloud of their own choice.