Distributed isn't Microservices, In-Process isn't a Monolith

Sdílet
Vložit
  • čas přidán 5. 08. 2024
  • Amazon Prime Video moved one of its monitoring services from
    "microservices" to a "monolith". I'm using quotes because that's how they termed it in the post, which did themselves a disservice by making this statement. Almost every blog post or video covering this has missed the mark. All they did was refactor. This has nothing to do with microservices or a monolith.
    🔗 EventStoreDB
    eventsto.re/codeopinion
    🔔 Subscribe: / @codeopinion
    💥 Join this channel to get access to a private Discord Server and any source code in my videos.
    🔥 Join via Patreon
    / codeopinion
    ✔️ Join via CZcams
    / @codeopinion
    📝 Blog: codeopinion.com
    👋 Twitter: / codeopinion
    ✨ LinkedIn: / dcomartin
    📧 Weekly Updates: mailchi.mp/63c7a0b3ff38/codeo...
    Original Post: www.primevideotech.com/video-...
  • Věda a technologie

Komentáře • 61

  • @ninocavalo
    @ninocavalo Před rokem +45

    Finally some reasonable and thoughtful perspective about the topic.

  • @ianokay
    @ianokay Před rokem +3

    Wasn't the refactor akin to decomposing the product from one logical boundary with multiple independently scalable (different physical) micro-services, to one logical boundary with tightly coupled (physically) services on one machine (which could be considering composing them into a less independently scalable... monolith)? Bringing multiple physically independent services together into one major, coupled, structure? I think that's a fitting description of monolith

    • @pradeepsahoo7243
      @pradeepsahoo7243 Před 7 měsíci

      Depends on where you draw the line for a service. Generally, if you would consider a solution to a business usecase as a service and the refactoring they did to come up with a service that's faster, more scalable, less expensive is the right solution. Monolith is multiple services tightly coupled together and usually sharing the same stateful data store.

  • @StrandedKnight84
    @StrandedKnight84 Před rokem +11

    Yes! I was waiting for someone to point this out.
    Serverless can be much cheaper or much more expensive than reserved instances, depending on the use case.
    Like you say, context is king.

  • @viktorshinkevich3169
    @viktorshinkevich3169 Před rokem +3

    This is the best overview of trending article, great job Derek!
    I was confused people not seeing this as distributed VS in process and logical VS physical boundary and rather talking about microservices and monoliths.
    The moment I read the article I got a memory of past years when people were trying to shrink their monoliths and ended up with distributed monoliths instead of microservices and suffered from it.
    And you did not disappoint, highlighting the same “problem” Amazon solved here by changing the physical boundaries. You even noticed, just like myself when reading, that Amazon reused many of their components and refactoring thus went quite smoothly for them. Ofc it did, because responsibilities did not change, it’s still the same service (micro service, whatever).
    Thank you for you job!

  • @TransparentWorld1275
    @TransparentWorld1275 Před rokem +1

    Great video! It clarified some of the questions and confusions in my head that I got from reading the blog post vs reading LinkedIn influencers' takes on it.

  • @neal321
    @neal321 Před rokem +2

    Yes, 100% agree! This has nothing to do with microservice vs monolith. This is just one service in the prime video system to monitor video streams, people are too worried about definitions of terms rather than the actual use case

  • @MrDomenic123
    @MrDomenic123 Před rokem

    Great video, Derek! I hope this will be seen by many to avoid any further confusion and misunderstanding.

  • @roeiohayon4501
    @roeiohayon4501 Před rokem +5

    I had the same thought after reading the article. Many people mistakenly believed that Amazon consolidated all their microservices into one massive monolith, based solely on clickbait videos and the article's title. Nevertheless, I found the article informative and would have appreciated additional numerical stats and a detailed explanation of how they calculated the cost-effectiveness of their new architecture.

    • @CodeOpinion
      @CodeOpinion  Před rokem +1

      Agree. I enjoy when teams post articles like this to give some insights as to things they discovered along the way.

  • @drewkillion2812
    @drewkillion2812 Před rokem +3

    Fireship definitely wrote that video tongue and cheek. The other articles are likely clickbait

  • @joshualetcher4743
    @joshualetcher4743 Před rokem

    Thank you!!!! I've been seeing all these posts and videos and rolling my eyes, these creators either are using clickbait to get views or just don't know what they're talking about.

  • @vlakarados
    @vlakarados Před rokem

    As usual, it's a great hype-blowing video. One comment though - 5:30 - the service is everything, but the Customer, Audio/video stream and SNS notification, with the latter 2 being the contract.

  • @f135ta
    @f135ta Před rokem +1

    Finally, someone realised the "really" hidden cost of scalable cloud services.. All the cloud services made sense as individual products, but when you combine them all and use them as intended, be prepared to get your wallet out

  • @marna_li
    @marna_li Před rokem +1

    Yes. A big disservice to themselves for not knowing what a microservice is.
    From the perspective of AWS as a system, this "monolith" is still considered a microservice. Just because you re-organize code that was previously spread out to multiple processes into one unit doesn't make it less of a microservice (by any definition) from an architectural perspective. They can still individually deploy and scale just that service without hurting the rest of AWS.
    What this really shows is that serverless functions have their drawbacks. I know from experience.

  • @allinvanguard
    @allinvanguard Před rokem +1

    Great opinion! This emphasises the point that cutting domains does not require you to include infrastructure into the decision. You can have a pluggable modular structure in a monolith and just lift and shift it to a microservice based infrastructure when the domains are sliced properly, as well as vice versa.

    • @CodeOpinion
      @CodeOpinion  Před rokem

      Yes, but the difficult part generally is how you communicate and/or compose data between boundaries.

  • @maddalab
    @maddalab Před rokem

    First the good stuff in the video
    Very quickly, accurate and succinctly describes the before and after solution. Call out the key point in the new architecture (a) there is no orchestration involved with S3 that involves lambda function
    A good explanation of how to think about a service - logical separation rather than physical (memory) boundaries.
    Then the bad - A lot of semantic gymnastics in this video.
    Couple of examples
    Says - In this particular context the cost of the lambda architecture didn't make sense. With the new architecture we are all in memory because we are the same task - without citing an example where lambda functions with orchestration (required for any non trivial "service") would work. The catch - they don't work - if only for cost reasons. But also for the over head introduced in orchestration, monitoring, error handing and all the essential orthogonal requirements for any "service"
    Says - A service is the authority of a set of business capabilities - any one is free to draw a line on what a business capability is - it is logical after all as the video states, using reductio ad absurdum a service can provide the entire businesses capabilities and would be a monolith, no wait that is a service.
    Now on the AWS post itself - no one in their right mind would think a lambda architecture for detection and aggregation is the right solution to experiment with on application design, it is way more easier to start with the solution they ended up with, and then move to the first if it provide to be the right solution. The final architecture is how we've built services and monoliths for over 2 decades - the only lesson one has to take away to scale is - be stateless. You can do that with PHP's process per request model or lambda or with some discipline in whatever tools you choose.
    Lets end with with some lighthearted fun at AWS -
    Principal Architect at AWS (soon to be distinguished engineer) - We rewrote all AWS services in PHP

  • @ghoul4375
    @ghoul4375 Před rokem

    Thanks for the insight! If you feel like it would be a good fit for a new video, I would find a review of Microsoft Orleans and where it fits in the micro services and/or monolith space very valuable. It seems like an under appreciated framework that should be leveraged for often.
    Thanks again for all of the informative content!

    • @CodeOpinion
      @CodeOpinion  Před rokem +1

      I have talked about Orleans before (czcams.com/video/iE8cisVgoj8/video.html), however I'll revisit the (virtual) actor space again soon.

  • @mackie1001
    @mackie1001 Před rokem

    I encounter this confusion quite a lot. People think in the physical and get confused where a given autonomous service is made up of multiple distributed processes (be they containers or server less function or whatever). Much better to think in terms of boundaries and responsibilities like you say 👍🏻

  • @kardeskalap2165
    @kardeskalap2165 Před rokem

    Finally some reasonable perspective, well done!

  • @ZadakLeader
    @ZadakLeader Před rokem

    The lightning has definitely been much better in the past 2 videos :)
    But i don't know why the clarity is still a bit low, might just be the limitation of the camera. Anyway, good content!

  • @frattaro8556
    @frattaro8556 Před 2 měsíci

    The biggest cost issue for this service would (should) be bandwidth anyway.

  • @TransparentWorld1275
    @TransparentWorld1275 Před rokem

    One of the few videos that didn't claim that "Amazon moved their infrastructure to monolithic architecture" and specified that it's a piece of the video streaming system

  • @soycabanillas
    @soycabanillas Před rokem

    Have you seen the code report video from fireship until the end? I think that the conclusion is on point.

    • @CodeOpinion
      @CodeOpinion  Před rokem

      A thumbnail that says Serverless sucks? It still missed the point as this has nothing to do with microservices or monoliths.

  • @jwbonnett
    @jwbonnett Před rokem +1

    They don't need a detector as the client knows the bitrate, you can detect in the client and report back, no extra processing in the cloud. It's just bad design. Prime shouldn't have called the article what they did, creating confusion of microservices vs monolith. Serverless is not microservices either. It's about using the right tool for the job.

  • @Mikenight120
    @Mikenight120 Před rokem

    Finally a rational point of view, a real champ

  • @br3nto
    @br3nto Před rokem

    You said it well. There’s a difference between logical and physical boundaries, and than difference matters. Also the difference between micro service vs monolith isn’t binary, nor is it single dimensional. There are the number of logical vs physical boundaries, and then how the logical boundaries are distributed between the physical boundaries.

  • @transientwaveform1475

    All the commentary around this blog post was making me go insane. This is the first take that I feel is sane

    • @CodeOpinion
      @CodeOpinion  Před rokem +1

      I felt the same way, which is why I had to post a video. I was losing my mind reading/watching some of the commentary on twitter/youtube/etc

  • @frozencanuck3521
    @frozencanuck3521 Před rokem

    Hi Derek -- Any chance you'll have a Mastodon account? Would love to follow you there

    • @CodeOpinion
      @CodeOpinion  Před rokem

      Maybe? I haven't thought about it too much

  • @gravisan
    @gravisan Před rokem +1

    I think the important thing to call out here is, most distributed architectures are dog shit and people tend to design systems without much thought into what the actual problem being solved is.
    The point here isn't whether server less is good or not, it's asking the people that use this stuff in their system - do you know wtf you are doing?

  • @krccmsitp2884
    @krccmsitp2884 Před rokem

    Absolutely! All of it.

  • @TristanOnGoogle
    @TristanOnGoogle Před rokem

    Is "In-Process" the right expression to oppose to "distributed" though ? Because there are multiple parallel processes in a non distributed system. What about "[physically] grouped services" to oppose to "[physically] distributed services" ?

    • @CodeOpinion
      @CodeOpinion  Před rokem

      An individual request is processed together fully in-process. It's not distributed workflow as it was previous with lambda/step functions. Them scaling horizontally with ECS doesn't change that.

    • @TristanOnGoogle
      @TristanOnGoogle Před rokem

      @@CodeOpinion What I mean is it's not "in-one-process" as "in-process" suggests (see "parallel execution" in your slide which implies multiple parallel processes) I watch all your videos, and in general, in the case of a modular monolith a request will be processed in a primary domain (in one process), then an event can be emitted to a message broker, and then multiple consumers may continue the request processing, and it's not a physically distributed system, but it's not really "in-process", I was looking for a better general word to described "regrouped" services :)

  • @iham1313
    @iham1313 Před rokem

    had the same topic yesterday - if you use something wrong, it‘s not the fault of the thing; it is yours.
    maybe amazon wants to earn more by renting vm instances instead of lambdas …

    • @CodeOpinion
      @CodeOpinion  Před rokem

      Context changes. Using a tool correctly in a given context, but then the context changes. Which is what happened to them via volume/scale. So they adapted. That doesn't make the tool wrong or using the tool wrong.

  • @m1dway
    @m1dway Před rokem

    Things to note here... API != Service and another thing
    CONTEXT IS KING!!!!

  • @frattaro8556
    @frattaro8556 Před 2 měsíci

    This is correct.

  • @ifyugwumba8120
    @ifyugwumba8120 Před rokem

    Its trending 😂
    How aws abandoned
    I think aws would have made more explanation.
    Thank you

  • @ianokay
    @ianokay Před rokem +2

    Aren't microservices just defined by having combined physical and logical boundaries? And that's what everyone is suggesting is problematic? That "moving to monolith", is the suggestion it may be wise to stop always doing that, and instead to move multiple logical boundaries into one physical boundary. That's the whole point everyone is making now, right?

    • @CodeOpinion
      @CodeOpinion  Před rokem

      Microservices have implied physical boundaries, which is fine. However, it doesn't need to be an exact 1:1 with a logical boundary. Check out this video, which should help: czcams.com/video/BFcxgcoO5Ns/video.html

    • @ianokay
      @ianokay Před rokem +1

      @@CodeOpinion I've watched that but I'll rewatch since it's dense... but if a "microservice" is not 1:1, and is an EC2 with 2 disparate services (logical boundaries) coupled to its physical scalability, is it really a microservice?

    • @konnaf24
      @konnaf24 Před rokem +1

      Exactly! We've had disparate services for a long time, such as modular router software in my field, but we never referred to them as microservices because they were restricted within the limits of a single server without communicating over the network. They could have been referred to as a monolith or a modular monolith, but never as microservices.

    • @ianokay
      @ianokay Před rokem

      @@CodeOpinion I'm more-so not clear about your response here in this comment; can you clarify further about what I got wrong in my initial line of reason and set of questions in response to this video?

  • @Xmasparol
    @Xmasparol Před rokem

    Looks like you've roasted Fireship LOL

    • @CodeOpinion
      @CodeOpinion  Před rokem

      Some peoples takes were way different than mine, some were close but much prefer the clickbait clearly.

  • @escapepeterpan
    @escapepeterpan Před rokem

    🎉

  • @oursbrun4243
    @oursbrun4243 Před rokem

    I mean;
    I have watched some of those "reviews". Their analysis are correct (same as yours). Those titles were just clickbait...

  • @ray89520
    @ray89520 Před rokem

    Totally agree - I didn't get the whole buzz when the article came out. They changed the implementation, so what?
    A great software architect finds the best matching architecture based on the various requirements. These can be functional, but also all non-functional/quality attributes related (think ISO 25010 as one possible approach) and also in-placed constraints (like certain technology choices or cost budgets) and based on these find the best suited design and architecture for the moment and foreseeable future.
    That can be described in multiple aspects - logical and physical is the obvious one, but you can also think about process and development view (think about 4+1 architecture view model).

  • @bernaridho
    @bernaridho Před rokem

    This and explanations in many other videos/websites are NOT scientific. No precise well defined and verifiable terms.

  • @beachbum868
    @beachbum868 Před rokem

    umm ...... monoliths are a service

  • @JimmyStewpot
    @JimmyStewpot Před rokem

    You are using too much logic. It may cause the internet to break...

  • @eNtrozx
    @eNtrozx Před rokem

    Microservices are all about not using the same process for different business needs
    what are you talking about man

    • @CodeOpinion
      @CodeOpinion  Před rokem

      In the decomposition of a larger system.