Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Wait, who am I supposed to believe here?!? Prime Video tore down their micro services in favor of a monolith just last year! Which trillion dollar globocorp is my tiny, insignificant company supposed to emulate?

https://thenewstack.io/return-of-the-monolith-amazon-dumps-m...



If you read the Prime Video blog post the takeaway is definitely not "always use a monolith". I haven't used Step Functions but they specifically mention step functions with a lot of state transitions (and the pricing model is per state transitions) and storing things in S3 and having to access things there all the time (which I've used S3 before and I was a bit shocked by since it seemed obvious to me that was gonna be really expensive). The takeaway for me was it's important to actually understand the tools that you're using.

As an aside the Prime video article as a bit funny, at one point they have the line (which I hope is sarcastic but I fear that it isn't) "We experimented and took a bold decision: we decided to rearchitect our infrastructure" when their original design just obviously chose tools that didn't fit their workflow.


And just to add: that decision (to start with serverless for your POCs) came from above, CTO level.

Needless to say, microservices are not serverless/step functions.


> The takeaway for me was it's important to actually understand the tools that you're using.

no no no, that takes time, the hype train doesn't wait for anyone. the sacred monolith it is. all hail the Monolith! crush the microgerms, destroy the filthy tiny services.


They're pretty clear here on what the benefits are. Microservices allow you to scale up and down individual system components without having to carry along the rest of a vertically scaled monolith for the ride. This makes for more efficient utilization of compute resources. For a company renting compute resources from the cloud, like Netflix, this can save a lot of money.

What Amazon did, according to this needlessly snarky article that is not Amazon's tech blog, does not conflict with this. It's all theory. In reality, you should not be dogmatic and religious about your architecture choices, but empirical wherever possible. They measured utilization and cost and found they could do better in some cases with monolithic sub-systems. This doesn't mean all of Prime Video abandoned SOA.


> This makes for more efficient utilization of compute resources.

No it doesn't. The rest of the monolith is just a chunk in your compiled binary sitting on disk, which is trivial in terms of resource cost. If that code is not running, it is not using any runtime resources.

Microservices will, however, greatly increase resource requirements if they lead to additional serialization/deserialization, which is relatively expensive. If you're doing video encoding, this isn't such a big deal. For web services, it is likely to be the bulk of the resource cost. This is only exacerbated in modern infrastructures where services are more and more expected to use TLS to talk to each other.


Swapping out silicon calls for network calls is the definition of complicated...And starting complicated because you want to achieve some premature optimization is insane. Monoliths are preferable for 90% of the use cases that you see in public or private industries.


Honestly, I get that it somehow became cool to ignore the grammatically correct "computation" and "computational resources" in favor of just grunting "compute" — why not go all the way?

"efficient utility of compute resources", etc. Just shorthand everything.

Does it take a famous developer to do it first for everyone to feel comfortable doing it?


IIRC The Prime Video guys were processing videos using AWS step functions - which probably makes sense if you are processing a few videos every so often. If you are processing videos continuously then it’s much more cost effective to just have some big boxes running 24x7 crunching through a queue of jobs.


The meta takeaway is that you shouldn't be afraid to resist trends (in either direction: monolith or microservices). If you're 'wrong' today, you may be 'right' in 5 years.


My problem with these two articles is neither provide sufficient detail to learn anything meaningful.

Are there any good resources from trillion dollar globocorps that get down into the weeds?


AirBnB comes to mind. https://airbnb.io


Yeah, I've always been impressed at AirBnB's open source stuff, even if I don't use their actual product.


I watch ThePrimagen (coding content creator on YouTube/Twich) from time to time, and he works as an engineer at Netflix.

My impression seems to be that he doesn't like the container infrastructure, reflecting my own opinion, though he never calls out explicitly the infrastructure at Netflix as something bad. But every time he talks about work at Netflix, sounds about as complex as I'd image if I'd give the job to a CV driven engineer.


Netflix is huge, has wide breadth of activities, needs to move terabytes of video around, and so has a lot of essential complexity.


"Micro service" and "Monolith" don't have precise definitions anyway. Ideally, there's only one right architecture: the one that's sufficient for the problem at hand, all things considered (latency, availability, cost, provider, maintenance, conceptual integrity, ...).


I feel like the term "microservice" is open to misinterpretation (people tend to focus on the micro part a bit much; I remember someone waxing poetic about something like a csv parsing service they had). But surely monolith is quite unambiguous: a system which is deployed as a whole. That is, you cannot deploy some part of the system on its own. You want to get changes in part X to prod? Better be prepared to deploy A through W and Y and Z as well.

That feels fairly precise. But maybe some folks would disagree with this definition of a monolith.


Be thankful. That madness is what feeding a lot of families. Yours maybe one of those.


Mine is definitely one of those.


They moved one of their use-cases back to a monolith, not their whole suite of applications/services.


IIRC, the rebuild to monolith doesn't tell the whole story. They aren't ditching all of their microservices in favor of monolith. There is a person responsible from Prime giving a clear picture of this in twitter (sadly I'm not saving the tweet source)


Well .. which one is better for your chances to get more money in the performance review?


I was highly commended for bringing up 6 new microservices a year ago during my performance review. Late during development I noticed that at least 2 of them were useless (they are essentially message routing gateways, I planned to "enrich" messages from inside, but ultimately never did). It was already done and I did not want to waste time to integrate those two services into the others so I left it as is and, well, my boss loved it.


> Which trillion dollar globocorp is my tiny, insignificant company supposed to emulate?

None. They have a different set of problems than you.


I mean you could just read a variety of different sources, look at the different trade-offs, and make informed decisions based on the compromises of both different architectural designs and your own products’ needs?

Jesus the quality of conversation here is not good today.


[flagged]


Ridiculed by whom? We've seen many competitors try to make a streaming service and beyond Apple, they all provide a laggy experience even in the menus.

If you're going to emulate someone, it's not a bad idea to emulate who has the best results


Even Apple TV is pretty sluggish on my LG TV. And it sometimes makes my TV crash so I have to reboot it. It's maybe not as bad as the steaming pile of garbage that is Sky-Showtime, but it's got a ways to go before it's comparable to Netflix on my TV. Amazon Prime is pretty terrible on my TV too.


That’s your TV having a shitty processor and WebOS not being the best. Even expensive smart TVs don’t ship with good silicon.

Get something like an Apple TV or Fire TV Cube and you’ll have a better experience. The Apple TV 4K in particular ships with a very powerful processor, it’s far snappier than any other streaming box I’ve tried.


It's been a few years since I let go of my TV, a not new-at-the time, but high-end LG, and I loved WebOS on it. I considered it the best, even better than Apple TV, especially for netflix. The new owner runs it without complaints.


Yeah, no shit. Still, Netflix, Plex and Youtube work just fine, so Apple TV should be able to work at least as well. I'm not buying an extra device just to compensate for shitty software, that's silly. I prefer to unsubscribe.


These services aren't run by a company that primarily sells hardware/devices. See iTunes on Windows.


> I'm not buying an extra device just to compensate for shitty software, that's silly

Serious question: Then why did you buy an Apple TV? This is Apple's entire MO. You are expected to replace all your devices every year or two.


> This is Apple's entire MO. You are expected to replace all your devices every year or two.

As someone who previously was an "anti-fan" of Apple's (we're talking 2000s, early 2010s) for their ridiculous prices (and that still stands for things like the Vision Pro), I've now seen the light (or gone to the dark side if you prefer) and now believe Apple provides better value for money than most of their competition due to the longevity of their devices. I know this is anecdotal and a sample size of one but I'd be curious to see data backing up your claim above.


Apple was a rip off luxury brand back in the day if you had a Samsung Fascinate or something. MacBooks were horrible and macOS was annoying to deal with. Now they're the default price/performance choice if you want a decent reliable machine, and iPhones are obviously very good value if you just want a phone that works for as long as possible.


Can attest to this, typing this on a 6 year old iphone 8 plus


Yes, that must be why they abandon older hardware and don’t support it long term unlike Android based boxes and built in hardware…


I'm talking about the Apple TV streaming service, not the device.


Maybe for their other product lines, but not the Apple TV. It’s infrequently updated and they easily last 5 years or more.


Laggy menus typically have little or nothing to do with microservice architectures.


Incorrect. Frequently, UI lag on components that hit server side back services is made significantly worse by naïve microservices, especially in the face of organic growth.

Specifically, every API call that traverses a machine, boundary, necessarily impart, additional latency, and uncontrolled microservices can have a multiplicative effect


I agree that a bad implementation may lead to poor performance. However, this is irrespective of the architecture. The effects of an architecture are more noticeable in the context of maintainability, scalability, and extensibility.

Or perhaps I am misunderstanding your comment?


it's not actually irrespective of architecture. Some architectures are significantly more prone to certain kinds of problems than others. For example, monoliths can become so large as to make development, especially many-team development, inconvenient or impossible. In the specific case of microservices, the key benefit (multiple teams can develop and deliver in parallel without stepping on each other, separating concerns into their own ownership areas) has the tradeoff of distributed systems overhead, which can range from high latency (when a number of microservices are in a serialized hot path and the complexity is not being effectively managed) to lowered availability or consistency (when data is radiating through a network of microservices asynchronously and different services 'see' different data and make conflicting correct decisions). Monoliths see this set of performance problems much, much later in their lifecycle, because they have much better data locality and local function call characteristics.


Anything that is front-facing a UI or API typically has a response cache.

More so for something like a web app like AppleTV where the content is largely static.

There should be zero difference in performance between microservices and monolith in this scenario.


Incorrect. Many calls, such as to auth, identity, ad service, metrics, etc., cannot be cached.


Ad serving and metrics are asynchronous so won't block any UI. And authentication/identity has the same behaviour with monolith/microservices. It's ultimately just a look up this user in some database.

It's the serving of the content that requires coordination across multiple services and most of that should be cached at the serving layer.


Incorrect, in most apps nontrivial content is highly personalized and dynamically served, auth in microservices is frequently two or more hop rather than one hop, and ad serving and metrics frequently involve synchronous steps.


And yet if you can't even implement a smooth scroll of 2D images over a backdrop in 2024, why would I listen to your opinion of microservices?


Disney owned streaming services and HBO Max are far from laggy thanks to BamTech.

But as far as the menus being laggy. When you are trying to keep the bill of materials for streaming to less than $20 in the case of Roku, what do you expect?

The AppleTV box is $140 and the difference in quality shows


It's incredible how poor of an experience Apple TV Plus is on web browsers, even on Safari.


the circumstances when microservices make sense are pretty well documented, but of course it's not widely known, especially because it doesn't fit into the 'microservices are future' slogan.

https://www.infoq.com/presentations/microservices-netflix-in...


Pretty sure OP was sarcastic, lots of people blindly copy big corporation tech even if they don't have big corporation problems and scale.


Bullseye




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: