> What is a reliable website? What does this website do?
It performs well and doesn't randomly go down when someone posts a link to it on HN or tries to put in bad input.
> I'm sure you can optimize it to be as efficient as you'd like.
Wrong! I've said nothing about optimizing things.
All I'm advocating is simple solutions that are proven to work.
A web server in Go is far from efficient. An optimized server in C/C++ can probably perform 20x better than a Go server. If not more.
However, a web server in Go makes far more reasonable use of system resources to achieve the desired goals. It's also pretty reliable.
> Bespoke, custom solutions that are not the core of the business are not solutions. Repeat that a dozen times.
I don't understand the point of this sentence.
Are you saying that Kubernetes or Elastic Search or AWS or any of the other buzzwords are at the core of their business?
Clearly they are not.
> MangaDex's business is not to be the most efficient website possible. Their business, I assume, is content and features for their users. They pick off the shelf technologies to do it because it's well documented, proven, and most importantly already built.
It's in the interest of their business to lower their cost of operations. Building on a complicated infrastructure when you don't need is incurring a lot of cost. Not just the monthly cost ($1500/mo) but the cost of the staff needed to understand and maintain this infrastructure.
It's not the kind of thing that is easy to maintain.
To be completely frank with you, I myself am not capable of understanding or maintaining such a system. And every company I've been almost had no one who understood how the system really works. Someone set things up sometime by following some tutorials. When things go wrong, people panic and go into fire fighting mode. They spend hours trying to make sense of what's going on, usually involving multiple people - because it's not a task that a single individual can handle.
> They compose these technologies to solve their business problems. Often there's a mismatch or an overlap in functionality that introduces inefficiency (complexity, cost, performance), but that's a trade-off MangaDex and many other businesses make. We can judge how poorly or well they've made some trade-offs base on their business and overall requirements.
You are talking as if these off the shelf technologies are reliable and easy to implement or integrate.
From what I've seen, these solutions are a lot more complicated than what I'm proposing.
Every place I've been to that tries to take this approach ends up burning too much money and resources trying to make their thing work.
It's not as if these companies don't have to write code to make their product work. You still have to write code anyway. So, why not, instead of writing tons of glue code and configuration files to hopelessly integrate a hodge podge of tools and frameworks ... why not just write the simple code that just does the thing you want?
> I'm going on and on in this thread mainly because I'm tired of people assuming they know better than the people in the trenches making these decisions. You're assuming you're more knowledgable and skilled than them in their own problem space! They're obviously unaware that using Go to make a server would solve their problems otherwise why wouldn't they have done it?
The first company I've been to that was doing this kind of thing was spending upwards of $10k/mo on the most beefed up server that AWS provides to host the database server, and they still struggled to server more than 1000 users concurrently.
According to you, I'm not in a position to give them suggestions or adivce about how to fix this problem!!
> I'm sorry, but who thinks only serving 2000 requests per second is hard? Or do you assume they think it's hard because you misunderstood or are unaware of their 100s of other requirements that they need to solve for in addition to serving 2000 requests per second?
What are the other 100 requirements that are not fulfilled by the thing I'm proposing?!
It performs well and doesn't randomly go down when someone posts a link to it on HN or tries to put in bad input.
> I'm sure you can optimize it to be as efficient as you'd like.
Wrong! I've said nothing about optimizing things.
All I'm advocating is simple solutions that are proven to work.
A web server in Go is far from efficient. An optimized server in C/C++ can probably perform 20x better than a Go server. If not more.
However, a web server in Go makes far more reasonable use of system resources to achieve the desired goals. It's also pretty reliable.
> Bespoke, custom solutions that are not the core of the business are not solutions. Repeat that a dozen times.
I don't understand the point of this sentence.
Are you saying that Kubernetes or Elastic Search or AWS or any of the other buzzwords are at the core of their business?
Clearly they are not.
> MangaDex's business is not to be the most efficient website possible. Their business, I assume, is content and features for their users. They pick off the shelf technologies to do it because it's well documented, proven, and most importantly already built.
It's in the interest of their business to lower their cost of operations. Building on a complicated infrastructure when you don't need is incurring a lot of cost. Not just the monthly cost ($1500/mo) but the cost of the staff needed to understand and maintain this infrastructure.
It's not the kind of thing that is easy to maintain.
To be completely frank with you, I myself am not capable of understanding or maintaining such a system. And every company I've been almost had no one who understood how the system really works. Someone set things up sometime by following some tutorials. When things go wrong, people panic and go into fire fighting mode. They spend hours trying to make sense of what's going on, usually involving multiple people - because it's not a task that a single individual can handle.
> They compose these technologies to solve their business problems. Often there's a mismatch or an overlap in functionality that introduces inefficiency (complexity, cost, performance), but that's a trade-off MangaDex and many other businesses make. We can judge how poorly or well they've made some trade-offs base on their business and overall requirements.
You are talking as if these off the shelf technologies are reliable and easy to implement or integrate.
From what I've seen, these solutions are a lot more complicated than what I'm proposing.
Every place I've been to that tries to take this approach ends up burning too much money and resources trying to make their thing work.
It's not as if these companies don't have to write code to make their product work. You still have to write code anyway. So, why not, instead of writing tons of glue code and configuration files to hopelessly integrate a hodge podge of tools and frameworks ... why not just write the simple code that just does the thing you want?
> I'm going on and on in this thread mainly because I'm tired of people assuming they know better than the people in the trenches making these decisions. You're assuming you're more knowledgable and skilled than them in their own problem space! They're obviously unaware that using Go to make a server would solve their problems otherwise why wouldn't they have done it?
The first company I've been to that was doing this kind of thing was spending upwards of $10k/mo on the most beefed up server that AWS provides to host the database server, and they still struggled to server more than 1000 users concurrently.
According to you, I'm not in a position to give them suggestions or adivce about how to fix this problem!!
> I'm sorry, but who thinks only serving 2000 requests per second is hard? Or do you assume they think it's hard because you misunderstood or are unaware of their 100s of other requirements that they need to solve for in addition to serving 2000 requests per second?
What are the other 100 requirements that are not fulfilled by the thing I'm proposing?!