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.
26 июл 2024