I know a lot of companies and even regular developers are moving towards the cloud computing and hosting. There are a lot of benefits of moving into a cloud. Especially for the startup companies, buying couple of servers can cost them couple of hundreds thousands of dollars. With that money, you can hire bunch of smart people help company to develop the product and marketing people to plan it to sell.
However, I think when startup companies start to make money then it is a perfect time to think about get out of the cloud. Cloud might sounds very cheap. Don’t have to buy a physical server, don’t have to hire a person or group of team to manage the server, don’t have to worry about the downtime, don’t have to worry about the redundancy. All of them is handled by the cloud provider.
AWS is the one of the biggest cloud provider. A lot of start up companies use AWS as their primary server. However, there are some of the drawbacks of the cloud computing.
Cost – It sounds very cheap, you can use the server with public IP less than $100 a month. Cloud provider will handle the network, hardware failure and all the issues associated with the server. But running a service requires more than a 4 core 8GB VM. Sometimes it is hard to scale out, so you have to use a VM with more cores and more RAM, that will cost more than $100 a month. However, if you have a physical server running the hypervisor, then you can control all the VM requirement in house. You can start with 4core VM and use rest of the computing power more towards dev. Once you deployed your service, you can assign more cores to the deployment VM and move dev VM to different machine.
Control – If you use the cloud, you don’t have full control over the server. Moreover, if you are running a database in your VM and DB contains secrets of the company. You never know what cloud provider is doing with your data. I know a lot of people going to say it is not going to happen because the cloud is all about the trust, but you never know what will happen to you.
Performance – I didn’t notice while using the AWS, but while I use the Azure, they limit the performance of the disk IOPS. If you are running the DB on the cloud, it is very important to have a high performance disk. However, the basic SSD is limited to 500 IOPS, which is less of performance than old HDD. If you want to use a better performing SSD, then you have to create a Premium SSD and attach to your VM. However, if you are using a physical server, single SSD can do about 90k IOPS. If you set it up to Raid 10, the performance is non comparable.
This is my server and hosting all my own applications which include this website. I cannot wait to setup a HA cluster and have live migration of VM across the servers.
If you have different reasons for love physical servers, please let me know, and if you love cloud then also please let me know on the comments.