Microservices - tarunchhabra/parakalo GitHub Wiki
Microservices = OA - ESB - SOAP - Centralized Governance/persistence + REST/HTTP + CI/CD + DevOps + Containers + Paas and Cloud
Convay's Law
http://progressivecoder.com/microservices-architecture/ http://progressivecoder.com/from-monolith-to-microservices/
Features of Microservices-
http://progressivecoder.com/microservices-architecture/
There won't be a monolithic database containing all the data belonging to the application. -Services are individually deployable (not exactly like SOA) -Services are fine grained and organized around business capabilities i.e. service Distribution-Based on Business Capability. (Domains driven design) -Different tools (programming languages, databases, runtime environments) for different services is a possibility (a pretty solid difference from SOA). -Services rely on faster messaging mechanisms as compared to traditional SOA that depends on ESB
http://progressivecoder.com/6-defining-features-of-microservices/
Circuit Breaking and Fault Tolernace- Hystrix
In a monolithic application, a single error has the potential of bringing down the entire application. This can be avoided in a microservice architecture since it contains smaller independently deployable units, which won't effect the entire system.
A microservice ecosystem is going to fail at some point or another and hence you need to embrace failures. Don't design systems with the assumption that its going to go smoothly throughout the year.
Things don't always go according plan and you need to be prepared for the worst case scenario.
If Service A calls Service B, which in turn calls Service C, what happens when Service B is down? What is your fallback plan in such a scenario?
Can you return a pre-decided error message to the user? Can you call another service to fetch the information? Can you return values from cache instead? Can you return a default value?
https://dzone.com/articles/making-your-microservices-resilient-and-fault-tole-1
https://eng.uber.com/service-oriented-architecture/
https://eng.uber.com/gatewayuberapi/
########################## Tools used in microservices
Deployment: Istio, docker, k8s - building microservices Caching: Logging Tracing