See course https://www.coursera.org/learn/intro-ibm-microservices/
A microservice is an engineering approach focused on decomposing applications into single-function modules with well-defined interfaces which are independently deployed and operated by small teams who own the entire lifecycle of the service.
Microservices accelerate delivery by minimizing communication and coordination between people while reducing the scope and risk of change
Main keywords:
- decomposing
- single-function
- well-defined interfaces
- independent
- small teams
- entire lifecycle
- minimizing communication
- reducing the scope of change
- How can I find a service that I need?
- What if a service moves? Which instance do I use if there are multiple instances?
- Is that service up and running?
- What do I do if it's not running?
- How can I scale my services?
- How do I spread my load over multiple instances?
- How can I introduce new versions of services without impacting existing users?
- How can I test against failures?
- How does the failure of one service affect other instances of the same service?
- How does the failure of one service affect other related services?
- How can I protect against a catastrophic failure?
- How do I prevent the failure of one service taking everything down?
The more pieces running independently, the more the network becomes an issue with latency and disconnects.
In the microservices environment failures will happen, hardware errors are just one example. So fault tolerance is needed to recover and carry on. Given the independent services that interact, data placement and interfaces have to be carefully planned. Add to the possibility of failure that you could corrupt data. These are important considerations while designing and using microservices architecture.
- So You’re Thinking of Decomposing Your Monolith into Microservices
- Microservices: Decomposing Applications for Deployability and Scalability
- Want to develop great microservices? Reorganize your team
- IaaS, PaaS and SaaS – IBM Cloud service models
- Circuit Breakers and Microservices Architecture
- Want to develop great microservices? Reorganize your team
- Microservice prerequisites