A Microservices Architecture
The architecture of a microservices based set of applications follows mainly the same principles.
- You need a registry for all your services running in multiple instances
- You need some kind of authentication / authorization mechanism. Best is to have a SSO solution (OAuth).
Mainly that is enough to start. But you will fast realize that having a client connect to various services has its disadvantages. So you need additionally
- Single Entry Point for clients to access your services. This is known under the term of an API Gateway or Edge Server. You can use a reverse proxy for that.
To ease the deployment of multiple instances in various environments, a centralized configuration service comes in quite handy. We add this
- Centralized Configuration Service
Last but not least some operation and monitoring services
- Logging Service
- Deployment Service (like building VMs, Container images etc)
- Load Balancing / Fail Over
This overview is mainly inspired from the great work found here:
A first full stack implementation of the spring microservices world with netflix oss services can be found here:
For MOS ERP this means we get an architecture like:
This is the first draft of the architecture. I will continue to evaluate it and refine it…