The presentation from our online webinar "Design patterns for microservice architecture".
Full video from webinar available here: https://www.youtube.com/watch?v=826aAmG06KM
If you’re a CTO or a Lead Developer and you’re planning to design service-oriented architecture, it’s definitely a webinar tailored to your needs. Adrian Zmenda, our Lead Dev, will explain:
- when microservice architecture is a safe bet and what are some good alternatives
- what are the pros and cons of the most popular design patterns (API Gateway, Backend for Frontend and more)
- how to ensure that the communication between services is done right and what to do in case of connection issues
- why we’ve decided to use a monorepo (monolithic repository)
- what we’ve learned from using the remote procedure call framework gRPC
- how to monitor the efficiency of individual services and whole SOA-based systems.
5. What is a microservice?
• Loosely coupled
• Independently deployable
• Highly maintainable and testable
• Organized around business capabilities
• Owned by a small team
6. When microservices are good idea
• Complex application
• High scalability
• Rapid and frequent delivery
30. ACL in every microservice
• Duplication of ACL logic
• Redistributes ACL across all microservices
• Contexts mixing
31. ACL as dependent microservice
• ACL defined as single microservice
• Prevents duplication and redistribution
• Could be a Single Point of Failure
32. ACL on Gateway
• ACL on Gateway (could be implemented as microservice)
• No duplicated ACL code in microservices
• No huge over-head, simplifies internal communication
64. Multi-repository
• Pros:
• better owner (team) separation;
• clear scope
• Cons:
• hard to keep consistency (versioning is complex);
• risk of becoming a monolith;
• introduces more CI/CD setup costs
65. Mono-repository
• Pros:
• easy to maintain consistency;
• easier versioning
• Cons:
• different teams may affect each other;
• might lead to tight coupling;
• longer build times
66. • Databases
• Testing
• CI / CD as essential tool
• Destructive Testing
• Deployments
• many, many more…
What we didn’t covered today
youtu.be/D8l19VEokBA
67. Summary
• think twice if you really need a microservice architecture
• ensure you have all necessary resources to operate distributed systems
• make cold and educated decisions what’s best for your case, not netflix
• embrace contracts and tooling