Should I use a cloud server or on-premises dedicated server for my business?
Good question! The correct answer is, it depends. However, in most cases there is probably no reason not to go ahead with cloud.
There is still a lot of concern about cloud security among businesses. This is, however, more bias than fact. Cloud is not inherently less secure than on-premises servers, but the contrary; the servers/application have to be configured correctly and secure, and kept updated with security patches, which is something that has to be done anyway regardless of the configuration used. In fact, if your network IS connected to the Internet and users are accessing the Internet as well, it is probably far less secure than hosting your application in the cloud. The reason is that most businesses do not have a strong 24/7 security team at their disposal, firewalls, monitoring, engineers and so on, while cloud servers are continuously monitored by the engineers of your cloud provider.
Chances are, your on-premise servers and the network will likely not be maintained and have the same level of protection as cloud servers managed by highly professional teams. This means they are going to be more vulnerable. Furthermore, if your servers also serve pages/requests to the outside world, your network can be subject to denial-of-service; and this is a very expensive service that most companies will not afford for their own dedicated Internet connection. On the other hand, cloud servers often come with high-bandwidth DDoS protection, either included in the monthly fee or as an addon.
From the cost standpoint, cloud again makes much more sense. Server hardware is expensive; IT technician work is very expensive; permanent redundant Internet connections are also expensive. Cloud makes this not only cheap, but also without the need for any upfront payments. One month pay for your cloud server is enough to start with. Also, your on-premise servers will likely consume electricity at a much higher price than in cloud. We have recently measured in our case that the electricity cost alone is the same as renting a cloud server per month – without the need for any hardware, internet, etc. It was pointless to even attempt hosting in-house.
From the availability standpoint, cloud wins again. The servers are continuously monitored and cloud engineers can fix any issue for you, 24/7 on duty. Multiple, redundant internet connections, power backup generators and so on. Not to mention that if an issue occurs they might be able to move your server on another rack based on a backup or image, something far more difficult if you have to reinstall an operating system from scratch.
And if you fear someone from elsewhere can access your data servers, there is always the choice to use a VPN (virtual private network) to connect to the server, and block it from outside world. This creates an environment that is much more similar to having your own private Intranet and locally hosted servers.
There are, however, some cases when locally hosted servers make sense. For high-risk, critical data you might want to use local, hardened and firewalled servers if necessary. Furthermore, for some high-CPU / high-math applications, dedicated servers / baremetal servers might be cheaper overall. Still, even in this case you can rent a cloud-based dedicated or baremetal server instead, and there is a strong chance cloud will be still cheaper even in this case. Also, if you need to load/unload many TB's of data to/between your servers on a daily basis, it will be much faster and inexpensive to do that via a local network, rather than over the Internet.
This being said, while cloud wins overall and it is probably the best choice in most cases, while there are still a few specific situations when on-premise servers are the right solution, due to the specifics involved such as high-risk data for example.