I have 3 spare laptops lying around; weakest of them is with a Celeron J4155 and I have put a web app with no caching on it (it does have a persistent DB) and hammered it with my workstation until it finally started giving up at ~2500 req/s (Elixir/Phoenix stack). Again, that's a Celeron J4155 with a SATA III SSD in an M.2 factor (so disk speed caps at 550MB/s at best; usually 400-460) and 12GB RAM. Most programmers wouldn't touch such a machine.
I imagine I can buy 2 more of these laptops and make a completely replicated 3-cluster of the entire stack of our company and the slowest requests (on admin UI where we have a lot of SQL JOINs) would likely never go above 200ms. That totals at about 600 EUR (yep, I bought the laptop second-hand for 200 EUR). Then 500 more EUR for a good UPS to plug the laptops and my routers to. Boom 1100 EUR and several weekends later I can likely charge my own employer for hosting at 100 EUR a month for their entire infrastructure and I would likely still be ripping them off even with that.
The only real cost is human time and energy invested in making it work. But for most companies that's not a 24/7 fight so that cost is fairly low. You can do it twice a year and you're likely never going to have problems.
So yep, I am completely with you here (if my rant didn't make it obvious). Infrastructure costs are already being heavily optimized by companies out there.
If this were true, what made the cloud providers popular in the first place?
Hosting apps in the cloud was a fair exchange 10 years ago because operational tooling in general was more immature. Nowadays it's much easier to self-host many pieces of software though.
Without a cloud you’re always running up against limits, out of power, out out cooling, out of rack space, out of hardware. You get new resources by adding to wish lists and seeing if the end of quarter budget will agree with your request which might be filled in a few months, maybe next year, often never.
You hoard hardware that ends up doing nothing most of the time so you have it when you do need it. Management spends a lot of time and energy managing the datacenter budget.
With cloud you get what you want without asking too much and management periodically spearheads savings efforts to show off, but ultimately usually spends a lot more than they would have otherwise with less friction.
A big part of cloud adoption, according to my theory, is getting executives out of the way of computing resource needs and freeing up their time to fill with something else like bothering employees for more status updates (which are easier and require less skill).
I grew up in this era and keep hearing this repeated but it simply wasn’t true. Enterprises would plan ahead and buy enough hardware for years and it would work fine until you bought more. The myth that you need to scale your infrastructure 10x in a day doesn’t apply to 99% of enterprises, and even if it did it’s probably a result of bad planning on the part of leadership. As a result of the current paradigm businesses end up renting servers at a substantial markup for fairly obsolete hardware.
Over a given period of time, computers get faster/cheaper by more than most businesses expand. When you need to expand, buying a newer, faster machine may cause you to save money because the faster machine uses less power than the existing one.
This lasted for 11 years and only stopped because two of the 5 senior engineers retired and because the company was bought a few weeks earlier.
So again, don't look at this through Silicon Valley lens. Most of the companies in the world have a very different mold compared to SV.
Professional hardware is expensive and server h/w is a small part of it.
I bet most customers of cloud services are not in a high-growth phase, so this is scenario most organizations aspire to ("What if we suddenly got popular?" is a fantasy that's hard to disabuse someone of internally, if you want to be known as a team player
> Management spends a lot of time and energy managing the datacenter budget. With cloud you get what you want without asking too much...
I fully agree, this is the core reason why most companies gravitate towards cloud: management abdicates control of costs to engineers, resulting in less friction - but its OpEx, not CapEx, so the bean counters are chilled about it. If the same low-friction approach were applied to DC equipment, you'd get similar results, but cheaper.
The cost of these services is not because big tech has to use that much to run them, but because big tech would make less money if they lowered prices. AWS generates tons of profits, why lower that for no reason?
That's not the people we're talking about. Racking a server and setting it up to do virtualization takes maybe a few hours for one person, if that, over a period of years. Maintenance on the host itself is the same.
The real labor cost is in setting up and maintaining applications for your specific needs. None of that goes away by using someone else's hardware.
But AWS does a lot of that for you by offering cloud services and not just hardware. That is why people pay so much more for AWS than other just hosting solutions.
It also doesn't really work. Some textile company is going to have some line of business software to run their textile mill. Amazon doesn't provide that. You still have to do labor to configure it. These are the hard things, because they're custom and don't have a huge installed base of people who already encountered and solved all the problems you're going to have. But for the same reason, they're the things AWS doesn't provide.
What they provide is common things like DNS. But DNS is easy to set up and maintain, because it's common, and so already has smooth edges. That's not where the labor was going.
Also, outsourcing moves the blame to someone else if things go wrong. (and things in infra go wrong nearly constantly).
The problem with this kind of thinking is ofcourse, that there is no risk taking and innovation in suchs an organisation..
It gets really tempting to setup a backup/failover node on one of my spare laptops lately...
My old employer had a strategy which basically boiled down to owning everything inside this company expect for the coffee machines and cleaning crew. His reason being? This made it possible to run on very thight margins when the economy takes a downturn without having to scramble for money because of leased/loaned equipment etc.
In the 2008 crisis, this is how he stayed afloat with his company, and even made a pretty profit during a time of crisis too.
I don't think your salary counts as CAPEX, it's a normal monthly expense for the company.
This has now created an entire ecosystem of developers and "devops engineers" (what we used to call sysadmins) who know little beyond the cloud and have to keep using it for career-related reasons. This in turn pushes companies to use the cloud as finding talent for old-school on-premises infrastructure is difficult.
It's true that cloud providers aren't reliably cheaper as some assumed at one point. But there's something to be said for cutting out the fully burdened costs of some number of employees (especially given everyone is saying tech talent is expensive and scarce at the moment) and just letting AWS deal with it even if you could theoretically do it cheaper yourself.
I had to laugh at someone's comment around re:Invent last week that just because Amazon has to offer 17 types of databases for its customers (or whatever the exact quote was) doesn't mean you have to collect them all as if they were Pokemon.
Where I work right now people don't just quit two days later. They like the company and if they feel they want to go someplace else they're not being difficult about it. They cooperate in passing down their knowledge to colleagues before they go.
It's not a matter of outsourcing culture. Cloud providers really do provide computing in a cost efficient matter since they practically provide IT infrastructure at wholesale, and it produces an anti-trust risk because, as you pointed out, the actual hardware that can make it go is not nearly as expensive.
And we don't have the requirements of most big Silicon Valley companies that you reference. It boggles my mind why so many commenters IMMEDIATELY assumed we're a hyper-growth startup or whatever. We're an expanding data provider and our growth is super predictable, and our set of requirements changes like once a year.
So really, not sure why you and others keep repeating things I already agree with. The cloud wins from one point / scale and on, absolutely; otherwise it wouldn't ever take off. I am saying that people give up way too quickly and run to the cloud long before they need it -- that's all.
Even with the specs you mentioned, you can rent a lightsail server that is comparable on AWS for like 80 usd a month, so I would push back against the idea that using cloud services in pretty much any scenario is a purely technical decision.
Part of the context of discussing things this way is the original article: do the prevalence of service companies signal the end of big tech? I would say no, because the only way to not be reliant cloud service providers is to do what you describe and compete directly with their infrastructure services by forming your own technical infrastructure. But the logical conclusion to doing things this way is that eventually whoever can control more physical infrastructure has an advantage. What if Amazon is able to replicate your service offerings? They would be able to immediately able to offer their version using their cloud services at a fraction of the price because they can amoratize the cost of computing over their cloud business. Then, when they have eliminated you as competition, they can recoup everything by increasing the price. This is a HUGE anti-trust concern, and one that all tech companies should be at least a little bit concerned about in the long term. It doesn't go away because you can have an (in your case more expensive than lightsail) up front investment to own your companies computing resources.
Give me an AWS service with predictable billing and ability to put hard limits so you don't have your credit card charged for surprising amounts if you get bursty unexpected loads, and I'll be all over them without thinking of on-prem hosting.
It would be a lot preferable for there to just be multiple computing resource providers, rather than just three, but the reality is that setting yourself up as a cloud provider is quite inaccessible. Democratizing the industry of cloud services will probably require regulation.
So it pays off to be wary of filter bubbles. The SV way of doing things assumes a ton of VC money to burn, something that, to this day, is still not a wide trend in the EU (even if it happens here and there).
Plus that company's setup is not unusual in any way per se; the only "unusual" thing is "we don't run to the cloud at the first IT problem". A ton of other companies are like this, I'd bet even in the US.
Right now they/we can't do it though, the talent is there but that talent is super busy reworking software that's no longer well-adapted to their new requirements. We'll see if the topic becomes more relevant in the future.
One can rent VMs from Hetzner at 1/3 the price of AWS (and 1/10 the data transfer fees). No managed services, like Dynamo or S3, but will full convenience of on-demand scale-up
Or, for mid-sized corporations - buying a rack of computers, wiring them together, and installing OpenStack to make an internal cloud - that isn't some black magic wizardry either
A lot of these threads end up talking about "scaling" from a pure hardware perspective. Once you start talking about medium-to-large companies, the real scaling headache is people, process, and organizations.
Obviously from one scale and on the cloud is very much worth it. IMO the discussion has to be shifted to "before which point you can easily get away without the cloud?".
My point never was to idolize on-prem; I have agreed in other comments that from one point and on the cloud absolutely wins.
I'm mostly pointing out that there is a lot you can do before bowing your head to Amazon and accept $30_000+ monthly bill for infrastructure that I can fit in my 1 square meter food closet and which would likely cost me (or a few other experienced backenders) 2-3 weekends to setup.
Time will tell but IMO it's super important to reserve the right to take a deeper look if you don't like your costs.
We're not as helpless as big tech wants us to believe.
I don't think that setting it up is main problem here. Keeping it up to date and secure is the hard part.
But most of the problem isn't with infrastructure. Once you start using AWS's services it is the software that is most problematic. And that is why all these infrastructure / cloud provider wants to do serverless.
I hate having to learn all of AWS, GCP and Azure proprietary tech, I’ll take a Linode box any day thank you
Colo is cheap, connectivity is cheaper then it has ever been, and most bussiness don't require massive scaling to do their bussiness.
Also, owning your own infra allows you to innovate and play a game outside of the borders aws, gcp and azure are drawing up for you.
However, Cloudfront, JSDeliver, etc are a pain. I understand the benefits of caching javascript locally to me, but I want to see companies start hosting their scripts all from their own servers.
If FontAwesome isn't already a tracking company, it's only a matter of time. Cringy-cool name, tentacles throughout the web, all for _fonts_. I'm a senior fullstack dev and I get tradeoffs, but the technical-societal-tradeoffs of the web are bewildering.
The major exception for us is S3, scaling storage seems like it would suck terribly.
Not just companies. Web developers love the complexity of their stack. Some monolith written in native performant language and put on a decent hardware can cover needs of the most reasonable size business. This simple fact makes them very uncomfy when presented. Many of them would not be even aware that such things are possible. They'd rather be spoon fed by the likes of the Amazon telling them how to develop their wares. The fact that the more inefficient their software is the more money said Amazon will make is ignored. They'd invent all kinds of largely BS arguments to avoid going a simpler route. One can just read numerous articles on HN describing "our stack". On a client site they have this React atrocity. Sure this thing works well for orgs the size of FB. But they're not FB and never will be.
Distributed redundancy is a good example. There are very, very few situation in which this couldn't be resolved with a simple BGP daemon on a server and anycast.
I don't see this mentioned enough but it wouldn't be surprising if some companies will want to start owning and running their own IT infrastructure. Buy your own servers and setup a small data-center for a small to medium business. This will be a thing again. The pendulum has to swing, but the question is -- is there money in enabling this for companies that want to go this way? I expect some startups in near future to target this opportunity and help shift towards decentralization (again).