Lesson 114 - Microservices vs. Service Based Architecture

  Рет қаралды 12,026

Software Architecture Monday

Software Architecture Monday

Күн бұрын

Пікірлер: 33
@martapadillamontoliu4382
@martapadillamontoliu4382 2 жыл бұрын
Super comprehensive and useful; thanks Mark. I have seen often enough organisations trying to move to 'microservices' because of all the hype, underestimating the complexity and all the implications (including the organisational ones)
@markrichards5014
@markrichards5014 2 жыл бұрын
Glad you found the video helpful Marta!
@matheussoaressilveira8408
@matheussoaressilveira8408 3 жыл бұрын
Great Mark! Both archictectures are very interesting. I think that service based with some miscroservices would fit good as well.
@mouradhamoud1495
@mouradhamoud1495 3 жыл бұрын
Thank you for using the star rating table
@KhoaNguyen-lk4py
@KhoaNguyen-lk4py 3 жыл бұрын
Thank you for giving a useful information. This can help me to rethinking the way that I apply microservices architecture in the existing systems in my company
@markrichards5014
@markrichards5014 3 жыл бұрын
Glad it was helpful!
@conconmc
@conconmc 3 жыл бұрын
@Mark Richards - What about the difficulty of tracing or debugging in microservice architectures? I have often found with the added "ping pong" of micro services it can often be difficult to debug
@vadimbondarenko1135
@vadimbondarenko1135 Жыл бұрын
Great and clear explanation, thanks!
@alexsharma
@alexsharma 3 жыл бұрын
Good one. Just a suggestion - record similar video for monolith, event based architecture etc. Vs Micro services.
@stewarthull7535
@stewarthull7535 2 жыл бұрын
Fantastic explanation!
@lampham7874
@lampham7874 2 жыл бұрын
it's all clear, thanks for your explaination
@davideb4258
@davideb4258 Жыл бұрын
Silly question about database separation. In a microservice architecture, we say we must use separate databases. Do you mean separate servers, separate databases within a server, or separate namespaces within the same DB?
@markrichards5014
@markrichards5014 Жыл бұрын
That's not a silly question at all! Each service must own its own DATA, whether that data is in a separate schema in a domain or central database or a separate database. Could be either one depending on your scalability and availability requirements. The point is more about access to that data - only the service(s) in the physical bounded context should have access to the data, wherever it resides.
@davideb4258
@davideb4258 Жыл бұрын
@@markrichards5014 but having data in a single DB can impact scalability, right?
@markrichards5014
@markrichards5014 Жыл бұрын
@@davideb4258 You bet it can! In many cases we try to create separate physical domain databases when possible to help scalability and keep domain data together.
@silentsudo
@silentsudo 3 жыл бұрын
Thank you mark for clear differentiation, can we say that if we are refactoring monolith to microservices then service-based architecture is one of the stop we are bound to arrive at?
@markrichards5014
@markrichards5014 3 жыл бұрын
Not necessarily, however it is one I usually recommend as a halfway point when migrating to microservices. In most cases I have seen hybrid approaches, where part of the system uses domain services, other parts use microservices.
@sant4398
@sant4398 Жыл бұрын
Thanks for the presentation. I have your book and also read there about the SBA. But I still have a question - why there're no much information about this pattern/style on the internet? If you google it - you will find a lot of links to SOA, but not much to SBA if any.
@markrichards5014
@markrichards5014 Жыл бұрын
Service-based architecture is a term I coined for this hybrid of microservices back in 2013. Many companies are using this architecture, but didn't have a name for it. I'm currently working on an online training for service-based architecture for the O'Reilly platform.
@iorch82
@iorch82 Жыл бұрын
About the granularity, some DDD authors talk about bounded conext sized microservices. Doesnt that put them into the SOA territory? Still cant see the differences other than shared data stores.
@markrichards5014
@markrichards5014 Жыл бұрын
Granularity is the other big difference. Microservices = single purpose functions, SBA = domain services (all functionality within that larger domain). Additionally, microservices typically uses micro-frontends, whereas with SBA we typically have single or domain-based user interface.
@mohamadothman9208
@mohamadothman9208 2 жыл бұрын
Thank you very much
@simonk1844
@simonk1844 Жыл бұрын
Regarding the star-ratings, I could debate the conclusions on many of these. * Elasticity: depends upon startup time (as mark says) - but moderately coarse-grained services can be capable of quick startup. * Evolution: can often be worse for fine-grained services. Functionality changes can require access to additional data - which is more likely to be already available in a larger-grained service vs requiring a new inter-component integration for a fine-grained service. And changing an API used internally within a code-base is far easier than changing one used over a network. There's definitely a big gain in maintainability and evolution when a component is small enough to be maintained by a single team (< 8 devs), but the effects of even finer grain are highly debatable. * Modularity: given each service is a separate code-base then yes a fine-grained service has perfect "modularity". But it is balanced by needing to duplicate code. Modularity therefore does not necessarily mean maintainability or understandability. * Overall cost: agreed, fine-grained services require extra work. Particularly if each has its own DB. * Performance: fine-grained services can be even worse than described here, depending on problem. The critical point is the number of synchronous inter-component interactions - these have very high performance impact. And some fine-grained service approaches do a lot of these. * Reliability: rated as equal in both, but inter-process communication is a very common source of system failures - and some fine-grained designs do a lot of it. Potentially a fine-grained solution can provide limited service while other services have outages, but that depends a lot on other design factors. * Scalability: depends upon the resources needed. A moderately coarse-grained service doesn't necessarily need more resources than a very fine-grained one. * Testability: is really proportional to the number and complexity of connections to other services. As noted above, a fine-grained service can potentially have more such connections than a coarse-grained service. So as always in architecture, the answer depends upon the problem domain. Personally, I think the optimal size is driven by human nature and limitations; services should be small enough to be maintained by a team of no more than 8 devs. Below that I'm not convinced of the benefits of finer grain in most cases..
@markrichards5014
@markrichards5014 Жыл бұрын
The star ratings are meant to be the *general* characteristics as compared to other styles using qualitative analysis. There are certainly cases (as you've pointed out) that can change these star ratings, and, as always, "it depends" on your particular circumstance and design.
@murghay01
@murghay01 3 жыл бұрын
This was amazing!
@yar697
@yar697 2 жыл бұрын
Waching your video and reading your book at the same time. But cant understand which type of architecture i made on my project now. Its not fine grained, and some services are doing 3-4 related functions. All of them have separate DB. They separated to two domains. I think, that it it MS, but some still doubted)
@JamesSmith-cm7sg
@JamesSmith-cm7sg 2 жыл бұрын
Hi Mark, I assume these scores are independent of team size? For example, the scores could be radically different if you have 5 developers versus 500?
@alxx736
@alxx736 Жыл бұрын
Can you make a Video about why microservices do not need ESB?
@markrichards5014
@markrichards5014 Жыл бұрын
Good idea! In short, it's all about the bounded context in microservices and the consolidation of all business logic within a service. See lessons 43, 44, and 45 on how to provide the capabilities of an ESB in microservices.
@alxx736
@alxx736 Жыл бұрын
@@markrichards5014 Thanks
@deepakmc8090
@deepakmc8090 3 жыл бұрын
Good one
@michaeldeng1981
@michaeldeng1981 3 жыл бұрын
Totally agree, microservices are much harder. For most of enterprise projects, I think service-based architecture should be good enough.
@apgd81
@apgd81 3 жыл бұрын
Well noted…. Scalable, elastic but with bad performance
Lesson 113 - Cart Before The Horse AntiPattern
7:34
Software Architecture Monday
Рет қаралды 3,5 М.
Lesson163 - Service Based Architecture
11:15
Software Architecture Monday
Рет қаралды 8 М.
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 62 МЛН
Lesson 110 - The Pros and Cons of Event Driven Architecture
11:09
Software Architecture Monday
Рет қаралды 10 М.
Lesson 153 - Service Based vs SOA
10:14
Software Architecture Monday
Рет қаралды 6 М.
Monolithic vs Microservice Architecture: Which To Use and When?
10:43
Lesson126 - Is SOA Dead?
11:35
Software Architecture Monday
Рет қаралды 6 М.
Job Stories vs User Stories: What's the Difference?
8:38
Mountain Goat Software
Рет қаралды 5 М.
Lesson 59 - The Tradeoffs of Loose Coupling
12:42
Software Architecture Monday
Рет қаралды 4,1 М.
Lesson 165 - Event-Driven Architecture
11:25
Software Architecture Monday
Рет қаралды 10 М.
Monolith vs SOA vs MicroServices and when to use what
18:49
Fredrik Christenson
Рет қаралды 14 М.
Service-Oriented Architecture
9:05
Systems Innovation
Рет қаралды 237 М.