3 ms·
What I don't understand is why anyone would spend, precious and expensive engineering resources on coding to a proprietary API owned by one of the largest compa
by macinjosh 4y ago
What I don't understand is why anyone would spend, precious and expensive engineering resources on coding to a proprietary API owned by one of the largest companies on the planet to whom you are nothing.
Ok so you save money on the monthly bill but what happens when Amazon decides they want to enter your market? What happens if they decide your service is too controversial and they kick you off?
If you were deploying your own services to EC2 instead of using AWS's own services you could at least setup shop elsewhere with just a bit of work.
To me it is antithetical to building a sustainable product. People just hoping their startup gets bought and then it is someone else's problem.
- pooper 4y ago> To me it is antithetical to building a sustainable product. Continuing what you said, Google uses macOS and Windows for client machines. That is ok because if Apple or Microsoft were to decide to cut off Google altogether, Google would have bigger problems. However, I think from a business point of view, this is similar to how so many businesses use cloudinary. Cloudinary is a software as a service company that provides cloud based image and video management services. What if cloudinary kicks you out? There is a lot of custom code out there to interface with cloudinary API. Where do we draw the line between using Cloudinary is ok but Amazon aws lambda is not?
- macinjosh 4y agoI can't find the quote, but I think it was Joel Spolsky on an old stackoverflow podcast with Jeff Atwood. They were discussing why stackoverflow built their own servers and did not use cloud or other hosting. He said something like companies should fully own and control their product and any direct dependencies thereof. If you think of it as a concentric set of rings you at least want to have full control over your ring and the ring below it. In the terms of a web app it meant the code for your application and the hardware it runs on. To me that seems reasonable.
- RussianCow 4y agoThat doesn't sound reasonable at all to me. Unless you are building your own cloud service or doing something out of the ordinary (for which cloud wouldn't be a good fit anyway), the hardware you run on has absolutely nothing to do with your business. Take the shortest/cheapest path and move on. To be fair to the Stack Overflow guys, AWS had fewer offerings when SO was built, so the comparison wasn't the same then as it is now.
- sparker72678 4y agoThe alternatives are tremendously more expensive in both time and money (and I’m thinking engineer salaries etc. here, not just monthly service costs). For most businesses the savings in money and time are worth the risks you pointed out here. If those risks are too high for you (and fair enough if they are), you’ll pay one way or another to avoid them.
- pclmulqdq 4y agoIs your cloud ops department free? I have personally seen that amazing sysadmins are a lot cheaper than passable cloud ops people.
- RussianCow 4y agoI don't think that's universally true. But even if it were, you'd need far more people if you were to manage the infrastructure yourself than to just use AWS.
- joshstrange 4y agoI mean most of my projects are not massive, they cater to up to ~10K or so people. Running EC2 or dedicated server somewhere else would be a lot for me, a single developer, to take on myself. However using Lambda, API Gateway, CloudFront, SQS, DynamoDB, S3, and more (sometimes also with PlanetScale for my DB) is a really nice stack and the costs are tiny (I'm talking <$30mo in my busy months and <$10 in my slower months, I write event-based software so it's very burst-y). To run an equivalent stack myself would require significant effort (upfront and ongoing) and I'm not sure I could get the costs that low. Another great aspect of my stack is it's all scales on it's own without any intervention on my part. What you are comfortable using is a sliding scale with some people thinking if you aren't hosting it in your own datacenter then you are crazy all the way up to "let's just use Firebase" (or similar). For me I've found that buying in fully can be very enjoyable and the risk is rather low (for me).
- michaelcampbell 4y ago> What I don't understand is why anyone would spend, precious and expensive engineering resources on coding to a proprietary API owned by one of the largest companies on the planet to whom you are nothing. > Ok so you save money on the monthly bill... Sounds like you do understand it.
- MajimasEyepatch 4y ago> What I don't understand is why anyone would spend, precious and expensive engineering resources on coding to a proprietary API owned by one of the largest companies on the planet to whom you are nothing. Who cares if it's proprietary? You're either locked in to a proprietary stack or you have to go out of your way to cobble together a FOSS stack on bare metal, in which case you're essentially locked into that. > Ok so you save money on the monthly bill but what happens when Amazon decides they want to enter your market? If AWS helps me get to market faster and cheaper than the alternatives, I don't particularly care what the rest of Amazon does. > What happens if they decide your service is too controversial and they kick you off? Normal businesses don't have to worry about this. I've honestly never heard of anyone getting kicked off of AWS unless they were doing something extremely sketchy. > If you were deploying your own services to EC2 instead of using AWS's own services you could at least setup shop elsewhere with just a bit of work. True, if this is truly all you're doing, you can probably find better options elsewhere at this point. But pretty soon, you're going to be interesting in managed solutions for other things that are important but not core to your business's value proposition, things like managed databases and logs and auditing and object storage and containers and data lakes. If you don't want to use the cloud services that actually make the cloud convenient to use, then yeah, I don't know why you'd use the cloud. But you could also run, say, Kubernetes on EKS and Fargate and still have a relatively easy time porting your software elsewhere in the future. And the other cloud providers have their own versions of things like S3 and Lambda and RDS. It's never easy to port production software to another provider, but it's not like it's impossible. And it's also an extremely unlikely scenario. I'd love to see some statistics on how many companies actually move off of their cloud providers; it's got to be one of the stickiest businesses out there. > To me it is antithetical to building a sustainable product. People just hoping their startup gets bought and then it is someone else's problem. At this point, just about every Fortune 500 company is using AWS, Azure, or Google Cloud in some capacity. For most companies, building out your own infrastructure is not part of your value proposition. So why not just pay somebody else to do the undifferentiated heavy lifting of figuring out how to run code in a generic way?
- pwinnski 4y ago> Ok so you save money on the monthly bill Right, you understand, but maybe you don't really understand? If you work at a company large enough, and with enough DevOps, NetOps, Ops people to go it alone, and can get favorable lease terms on hardware, then by all means, host it yourself! Paying all of those people and also paying for AWS seems odd, for sure. But if you work at a company without a deep bench in various Ops groups, then good news! You don't have to hire them! Instead you can rely on Amazon's deep bench, and focus your salary budget on developers rather than Ops people. There are scales at which, even not counting enormous budget expenditures on staff rather than managed services, AWS doesn't make sense. And if you're just using EC2, you'll hit those numbers more quickly than if you make good use of things like Lambdas and SNS/SQS and Dynamo and so on. The cost savings can be enormously staggering, and the more you lean into AWS managed services, the more that's true. We see the edge cases on HN, the rare instances of someone being kicked off of somewhere, but for most people, the uptime and long-term reliability of AWS managed services is higher than trying to go it alone.
- 60secs 4y agoIf you need to hire 5-10 engineers to save $1MM, you didn't save anything.
- pwinnski 4y agoRight, which is why I can't imagine moving from AWS to self-hosting. Having to hire a full set of Ops people to manage what AWS is managing for me would hurt.
- jjav 4y agoHow are you running AWS without people? Our AWS DevOps team isn't any smaller than they'd be if they were running a handful of servers in a colocation facility.
- pwinnski 4y agoIt's my former company now, but the answer is: For the initial workload that we migrated from the datacenter to AWS EC2 instances, we still had the existing DevOps people, and while they said things were a little easier, they were still pretty busy. For all new dev, which eventually including migrated some functionality from that initial workload, we used AWS-specific managed services like Lambda, Dynamo, and SNS/SQS, which required MUCH less effort from DevOps. Two of the existing DevOps people were able to handle everything the so-called serverless development required in addition to their previous normal work. I mean, the point of managed services is that the vendor takes care of managing them, so you don't need to deal with upgrades, security patches, etc, so if you're still doing just as much DevOps work, it's likely you're not taking good advantage of managed services! So we had some initial effort to automate and standardize CloudFormation configuration, and then developers were able to launch new code bringing in millions in revenue with very minimal oversight from DevOps. The advantage there, though, was mostly from "serverless" and managed services, not just EC2 vs datacenter. We still had a DBA for the Postgres stuff, we just didn't need one for the new Dynamo stuff.