Microservice is a recently popular architecture and evolution of SOA.
The notion is first brought up by Martin Fowler. See his microservices resource guide.
What is Microservices?
Sam Newman: small independently deployable services that work together modeled around a business domain.
Why use microservice?
Improved autonomy, ship more quickly, scale your application/teams
How to migrate?
Strangler patter. Break down monolithic system.
synchronous vs asynchronous communication as inter service communication
Publications on introduction of microservices:
A good overview of microserivces concepts and practice in Java by IBM
Designing and Deploying Microservices – free comprehensive ebook by Nginx
A step by step implementation of microserivces in Spring Boot and Cloud
How to migrate to microservices?
Migrating to Cloud-Native Application Architectures by Matt Stine Free ebook
Decompose services. How big is big? How small is small?
Microservices vs SOA
- Microservices vs. SOA
- Microservices vs. SOA – Is There Any Difference at All?
- Microservices, SOA, and APIs: Friends or enemiess
Microservices: fine grained SOA. SOA encourages sharing, microservices minimizes sharing.
The cons of microservices
- Microservices vs. Monolithic Architectures: Pros, Cons, and How Cloud Foundry (PaaS) Can Help
- Microservices – Not a free lunch!
- The Hidden Costs Of Microservices
Not a free lunch:
- Overhead. Deploy lots of services, messaging, monitoring
- Devops skills, release automation
- Implicit interfaces
- Duplication of effort.
- Distributed system complexity
- Asynchronicity is difficult
- Testability challenges
- Encourage big design up front
Best practices of Microservices
- Pattern: Microservice Architecture by Chris Richardson
- Microservices antipatterns and pitfalls by Mark Richards
- Microservice Architecture: All the Best Practices You Need to Know
- Best Practices for Building a Microservice Architecture
Microservices related platform, technologies, tools
awesome-microservices from Github