4 ms·
It is true that Elastic Beanstalk is free, and is very easy for a developer to use to begin with. However, If I were to advice a new startup on their infrastruc
by reacharavindh 8y ago
It is true that Elastic Beanstalk is free, and is very easy for a developer to use to begin with. However, If I were to advice a new startup on their infrastructure, I would not recommend it for the following reasons. It is my personal judgement. Others may prefer to go all in on Amazon.
1. It is clearly a vendor lock in. You build your business upon all AWS services, using an AWS orchestrator - good luck ever getting out.
2. Abstraction. It is a controversial opinion. I'd rather have less magic when possible and know what goes on underneath, and possibly have control over. Now, a startup may choose to offload the duties of operating a database(RDS), storing files(S3), performing backups(S3/Glacier) in the interest of time and trade-off control, optimisation and $$. However, considering the generalisation of simpler startups, IMHO operating a small scale Postgres on a standard EC2 instance is not really much of a hassle...
3. Cost - however small it may be in terms of actual dollars, AWS managed services(S3, RDS, SES, SQS etc..) come with added cost over simply running their open source equivalent yourselves.
Again, Keeping it simple - not in terms of what the user needs to do to deploy their application, but in terms of what components do you need to get your application running in production.
- scarface74 8y ago1. It is clearly a vendor lock in. You build your business upon all AWS services, using an AWS orchestrator - good luck ever getting out. If you are starting a business, the least of your business risks is lock in to AWS. Besides that, you're handing a regular old zip file with your code to Elastic Beanstalk, it creates a VM with the standard web server package installed depending on your language. If later on, you need to go to another environment (and in the grand scheme of things, few companies ever switch out their infrastructure no matter how many Repository classes they write to abstract their database), you create your same webserver set up in the new environment. Every cloud vendor has a hand-me-your-code-in-a-zip-file-and-I-setup-everything-for-you service. However, considering the generalisation of simpler startups, IMHO operating a small scale Postgres on a standard EC2 instance is not really much of a hassle... Why would I want to manage my own Postgres database and worry about backups, patching, etc. when I can pay someone else to do it? Cost - however small it may be in terms of actual dollars, AWS managed services(S3, RDS, SES, SQS etc..) come with added cost over simply running their open source equivalent yourselves. And that's more for your developers to manage, I'm sure if you can find some gullible young developers to work 60+ hours per week pulling double duty as developers and infrastructure operators it will be cheaper. I for one am not willing to do that. Every hour that your developers are spending maintaining infrastructure and doing the "undifferentiated heavy lifting" they are spending time not creating features adding business value. You're talking about adding more servers (and no redundancy) to save a few pennies. I would avoid any company managed like that like the plague. I actually have walked away from offers where the company was "on AWS" but all they were doing was running a bunch of EC2 instances and hosting everything themselves and expected their developers to be on call for infrastructure failures. On the other hand, I did take a job where the new manager's marching orders were to move as far away from managing any infrastructure that could be done by AWS. We have to have a serious justification to put anything new on EC2 instances instead of using Lambda or Fargate.
- davidjnelson 8y ago> I actually have walked away from offers where the company was "on AWS" but all they were doing was running a bunch of EC2 instances and hosting everything themselves and expected their developers to be on call for infrastructure failures. In addition to wasting engineer time and sanity, this is bad for the bottom line. Hardware fails, and if new hardware doesn’t cause systems to auto failover, you lose revenue, customers and trust. If you don’t autoscale, your service degrades when you need it most and you lose new customers and business when you get spiky load. With all the advances in things like fargate and Aurora Serverless, it doesn’t make sense not to use these. The baseline cost is ~$200/mo for a setup that doesn’t go down when hardware fails or get slow when you get an influx of users. And it’s straightforward to set up.
- krageon 8y ago> If you are starting a business, the least of your business risks is lock in to AWS. You are locking yourself into a cloud provider that is a part of a really hostile country in terms of digital privacy. Your customers may not care right now, but they really should. If you can sell that kind of behaviour to yourself because you're "starting", then your customers deserve the kind of business they are getting from you. To me it sounds incredibly unethical.
- scarface74 8y agoSo which provider should a US based start up use? If they use a colo which country do you think it’s going to be in? Seeing that all of the most valuable tech companies in the world besides the ones in China are based in the US, do you suggest they host with Alibaba Cloud?
- krageon 8y agoThere is more to the world than the US and China (both of which are terrible choices). Outside of those places there are also cloud providers that give good service at a reasonable price.