4 ms·
You are correct, if you have no need to add additional servers or scale the platform, have predictable bandwidth and storage requirements, and your sysadmins do
by sitharus 8y ago
You are correct, if you have no need to add additional servers or scale the platform, have predictable bandwidth and storage requirements, and your sysadmins don't mind patching all the base OS instead of just rolling new VMs.
However AWS allows you to accomodate uneven growth and load. You can create new machines in minutes (or half an hour for Windows). The virtual nature allows you to quickly ditch a broken host for a good one. You can also save money on development infrastructure by switching it off, or run background jobs on spot machines. Then there's the other services available such as S3 and Lambda.
Of course there are other clouds worth considering, but the advantage of cloud infrastructure is the ability to call it up without months of lead time.
- brazzledazzle 8y agoI think your points are sound but it’s worth pointing out that you can roll new host OS’s and VMs without patching on-prem too. You just have to have the discipline to run your internal data center the way cloud providers do. You can even take advantage of one of the few benefits of on-prem and roll a fresh host OS without downtime for the VMs running on it by using live migrations.
- NathanKP 8y ago> You just have to have the discipline to run your internal data center the way cloud providers do. AWS employee here, so I am obviously cloud provider biased, but in my viewpoint having that discipline only comes from having very good, expensive engineers. It's hard to get people who really know how to run a datacenter well, especially when most of the good ones would probably prefer to work for a larger cloud provider since than is more interesting and impactful than running a smaller datacenter for a single company. The forgotten / underestimated cost is the salaries of these people to set things up well in the first place, be on call to fix things when they break, and perform those upgrades in the same way that cloud providers do. A single engineer salary can get you a LOT of cloud compute power on AWS. If a cloud provider allows you to build the same thing with two fewer engineers then that's probably an extra $400k or so for the infrastructure budget after you factor in these engineer's salaries, taxes, benefits, etc. And $400k can get you an incredible amount of AWS cloud compute.
- e_d_e_v 8y ago> The forgotten / underestimated cost is the salaries of these people to set things up well in the first place, be on call to fix things when they break, and perform those upgrades in the same way that cloud providers do. The thing is, you need this equivalently for any cloud provider as well. People who know how to operate and run a cloud account effectively are not a dime a dozen, and given the migration going on now are actually in higher demand than some qualified datacenter operators.
- jopsen 8y agoIMO the best examæel is spinning up a DB with nightly snapshots. This is trivial in AWS. Doing it in your datacenter takes planning, decispline, skills and time. Same goes for backups to S3 vs. setting up a SAN on the datacenter. Managing AWS infrastructure isn't trivial, it's easy to forget what that instance does, if everything was provisioned with point and click. Cloudformation or terraform makes it doable. But technical debt is also something you can defer payment on :)
- NathanKP 8y agoYeah the DB example is particularly relevant. Amazon Aurora now has continuous point in time backups so in the event of something going wrong you can roll the database back to an arbitrary second: https://aws.amazon.com/blogs/aws/amazon-aurora-backtrack-turn-back-time/ https://aws.amazon.com/blogs/aws/amazon-aurora-backtrack-tur... Additionally Aurora has robust zero downtime self recovery from a variety of error conditions including disk failures, and you can test that out by running a SQL query that simulates disk failures for example: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Managing.FaultInjectionQueries.html https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Auror... This level of operational excellence is incredibly hard to build yourself either on premise or even in the cloud if you are only using VM's. Time and time again you see companies that thought they had backups but then discover the backups don't work right. It's not because these companies are stupid, its because it is hard to do right, and building and testing this requires a lot of engineer time. When you do take the time to hire the right people who can do it right you end up finding it is way more expensive to do it yourself than using a cloud managed service. AWS is able to offer the service much cheaper because the cost of development and maintenance, etc is spread across a huge number of customers.
- damm 8y agoMost managed hosting providers have some form of Openstack or an API to provision baremetal servers or something similar. It is easy to sit back and say AWS is really easy; but it just means you haven't looked elsewhere. Additionally most public clouds have law enforcement or government entities monitoring or tracking things (to an unknown scale). You are always better off in a regular datacenter. If you don't know why maybe you should hire someone to tell you why. > Free answers are good. But if you want great answers you have to pay.