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.
- Zero-configuration: Any microservices system will likely have hundreds of services. A manual configuration of IP addresses, ports and API capabilities is simply infeasible.
- 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.
- 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.
- Self-healing: It’s normal for outages and failures to occur. The implementation should recover any lost service and functionality automatically.
- 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.
The microservices revolution is upon us. Let’s kick it off and be a part of the change.