That. I see tons of posts of under/fresh grads trying to use microservices, k8s and TerraForm for their tiny < 100 qps apps.
A properly designed monolith on a dedicated server/VM can easily serve tens of thousands of users just fine and will be far easier to maintain than this mess (plus way cheaper as well).
The main advantage of those tools is when you have a number of distributed teams and you want to scale to millions of users. For nearly anything else, a far smaller setup is what you want.
> I would argue that the majority of AWS' profits come from inefficiencies of their customers.
Agreed. I've spoken with a few companies that could save quite a bit of money by buying RIs with a few clicks. With a little bit of work they could save a lot more moving large parts of their workload to spot instances. Almost feels like they want to brag about the AWS bill size...
They might try to educate, but I don't think they engineer their products to make "getting it right" easy. It's not in their interests, but they _could_ make a product that is much easier to use correctly, cheaply, or both.
AWS creates work, and creates spend, much more than it needs to.
Yes, AWS incentives are not aligned with their customers. Any sufficiently sized organization on AWS ends up building custom tooling to help manage cost. They may also hire consultants to help optimize cost.
My experience is that AWS is remarkably open to helping you get things right. They seem to focus on making things possible before easy, but (Enterprise) support is quite good and have specific incentives on spend efficiency that run counter to the short-term goals of Amazon.
I can only imagine how the Oracle cloud must go for victims^Wcustomers.
AWS TAMs I know spend a sizable portion of their time making sure that their costs are low for their customers, monitoring monthly spend and looking for inefficiencies. Business and Enterprise support customers also receive full access to Trusted Advisor, an automated tool which checks your account for spending inefficiencies and best practice violations.
When your profit margin is 25%+, the bigger risk is not people reducing spend, it's moving to a different cloud. Helping people decrease spend by increasing complexity is a form of vendor lock-in, and preserves the long-term revenue.
Or you go for even smaller use cases. I host some stuff for some companies to share business information with external suppliers for example. These apps serve < 100 users a month.
Still, they all get a load balance configuration to grab the free TLS certs with auto renewal while keeping configuration simple.
While I would not recommend premature TLS termination for critical business data, it is sufficient for many applications.
Admins get their familiar AWS console to configure the apps and I can make sure these are bundled in a way to be deployed on many different systems.
If I wanted to, I could use AWS identity provider like cognito and have it all in one place.
I think the main argument for cloud provider is the utility and convenience they provide for small projects.
While I do not like the business practices of Amazon and would never like to work for them on AWS, I am also lazy and cannot say I that they didn't develop something very useful.
Generally companies don't really care if a solution is 70$ or 3,50$ a month. They do care about my wage much more. Unjustifiable!
Sure, you could dump it all on a server somewhere without using any external micro services. But in my experience these project are much more likely to start to randomly haunt you from the past. And worse, I so actually have to maintain the servers.
And the price difference for inefficiently used services is mostly between 5$ and 15$. But these extra 10$ a month can easily be set off for reduced development or administration time.
If after ~40 years the service is still active, I would freely admit to that mistake.
Granted, this isn't applicable for application that do actually need to be scaled. But the time to launch for standard solutions that nudge a few bits here and there can be reduced quite a bit thanks to infrastructure like this. And it may be in use anyway since all the Google Home/Alexa IOT stuff.
I used to host in savvis then IT team pushed me into their datacenter for cost reasons but they are so terrible with changes and support that azure/aws are very attractive to improve my dev speed even if it means i have to do all the ops work. Probably more expensive than colo but i have to use them if i do that but i have more freedom in the cloud (until they figure that out i'm sure).
I’m an AWS true believer, but in that case if I were on a budget, I would scrounge up enough cheap used hardware, setup my own home network and host everything myself just to learn.
I would think it makes a ton of sense for a graduating student to use managed micro services instead of their own monolith they need to continually support.
A properly designed monolith on a dedicated server/VM can easily serve tens of thousands of users just fine and will be far easier to maintain than this mess (plus way cheaper as well).
The main advantage of those tools is when you have a number of distributed teams and you want to scale to millions of users. For nearly anything else, a far smaller setup is what you want.