داستان Uber و مایکروسرویس

مطالعه داستان‌های بکارگیری متدهای نوین در شرکت‌های بزرگ فناوری می‌تواند ارزشمند و آموزنده باشد. این یکی از داستان‌های خواندنیست که مهندسان شرکت Uber توضیح می‌دهند که چرا و چگونه به سوی معماری مایکروسرویس مهاجرت کرده‌اند. مهندسان اوبر در این مطلب، سبکی از معماری مایکروسرویس را پیش گرفته‌اند که خودشان آن را Domain-Oriented Microservice Architecture نامیده‌اند.

بخشی از این مطلب:

As a result, we adopted a microservice architecture. Ultimately our systems became more flexible, which allowed teams to be more autonomous.

🔘 System reliability. Overall system reliability goes up in a microservice architecture. A single service can go down (and be rolled back) without taking down the whole system.

🔘 Separation of concerns. Architecturally, microservice architectures force you to ask the question “why does this service exist?” more clearly defining the roles of different components.

🔘 Clear Ownership. It becomes much clearer who owned what code. Services are typically owned at the individual, team, or org level enabling faster growth.

🔘 Autonomous execution. Independent deployments + clearer lines of ownership unlock autonomous execution by various product and platform teams.

🔘 Developer Velocity. Teams can deploy their code independently, which enables them to execute at their own pace.

منبع: https://eng.uber.com/microservice-architecture/

مایکروسرویس یا مانولیت؟

کریس ریچاردسون (Chris Richardson) یکی از افراد صاحب‌نظر در حوزه معماری مایکروسرویس است. او در اکثر سخنرانی‌های خود بر این نکته تاکید می‌کند که «تا جای ممکن از معماری Monolith استفاده کنید.» و فقط و تنها فقط زمانی از معماری مایکروسرویس استفاده کنید که مطمنید معماری مانولیت دیگر برای شما کافی نیست.
در اغلب موارد می‌توانید اقدامات زیر را انجام دهید و همچنان از مزایای معماری مانولیت بهره‌مند شوید:

Make the most of the monolithic architecture.
The monolithic architecture is not an anti-pattern.
If software delivery is slow =>
▫️Optimize development process
▫️Improve deployment pipeline = more automation
▫️Improve team autonomy
▫️Modularize the monolith
▫️Eliminate hand-offs and create cross functional teams
▫️If technology stack is obsolete => modernize to a new monolith

بیشتر بخوانید:

https://www.slideshare.net/chris.e.richardson/decompose-your-monolith-strategies-for-migrating-to-microservices-tide