What Is The Best Server For Your App? By James Tredwell on November 8, 2019 You have finished development work on your web application or mobile app’s back-end. During the development and early testing phase, you hosted it on a throwaway cloud server for convenience and to keep costs down. But now that you’re ready to open the app up to real users, where should you host it? There is no shortage of options. A cloud server is convenient and it worked well during dev and testing. A PaaS platform such as Heroku is more expensive but easier for developers to manage. If you want a challenge, you could build a private cloud platform with containers and an orchestration solution like Kubernetes, splitting the application into microservices and hosting each one in a container. Google “JavaScript app hosting” or “PHP app hosting” and you will be deluged with an array of top-ten articles listing new hosting providers that you’ve probably never heard of – all of which offer services built on top of existing cloud platforms. Here’s an option that won’t be mentioned by developers who prioritize the new over the practical: a dedicated server. A dedicated server is a bare-metal physical machine hosted in a data center. But aren’t dedicated servers expensive, hard to manage, and excessively complex compared to cloud solutions? No, no, and no. Are Dedicated Servers More Expensive? If you compare the monthly cost of entry-level dedicated and cloud servers, there appears to be no contest: cloud servers are cheaper. But, in a like-for-like performance, storage, and bandwidth comparison, a dedicated server is faster, can handle more concurrent users, and typically offers a larger bandwidth and storage allocation as part of the package. A $150 per month dedicated server might include dual six-core Intel Xeon processors, 32 GB of RAM, 4 TB of storage, and 30 TB of bandwidth. If you think dedicated servers are more expensive, I invite you to head to your favorite cloud platform to find out how much an equivalent cloud server will cost. A similarly equipped reserved instance of an AWS EC2 t3a.2xlarge virtual machine will cost you approximately double the monthly lease on a bare metal server. There is also a surprise factor to consider. When you lease a dedicated server with a generous bandwidth allocation, you know exactly how much you will pay each month or year. The same is not true of the cloud, and many businesses have been surprised by a rapidly expanding cloud infrastructure bill. For applications where performance matters – databases, web applications, financial services – dedicated servers are almost always the best option. Dedicated servers don’t suffer from contention issues: your application isn’t fighting against other applications for resources. Remember, even though cloud platforms look like they’re providing a self-contained server environment, in reality, many virtual machines run on the same underlying hardware. Additionally, the architecture of the platform can cause latency problems. A significant cause of cloud dissatisfaction is slow IO caused by network-attached storage. On a dedicated server, storage is integrated into the machine itself. Applications don’t have to make network requests to access their data. Are Dedicated Servers Less Flexible? Platform-as-a-Service solutions are notoriously inflexible. Users are limited to the software the environment provides because, much like shared hosting platforms of old, the provider manages the operating system, libraries, and tooling. When a user’s application is built for an older or newer version of a library than is available on the platform, they’re out of luck. Container-based platforms help users to overcome some of this lack of flexibility, but they are often more complicated and expensive than a dedicated server. A dedicated server is a single-tenant environment. You get to decide which operating system, which libraries, and which tools it runs. And, because dedicated servers are so powerful for their price, you can choose to run many containers on it, each with their own environment. The main benefit of dedicated servers is that users can make them anything they want. A dedicated server will happily host a single monolithic application — not fashionable but often the best choice for technical and business reasons. Or they can deploy multiple containers and virtual machines. Are Dedicated Servers Less Reliable? Cloud platforms often make claims about the redundancy of their servers. As software simulations of real servers, they can be duplicated or backed up and replicas spun up in seconds. The same is not true of dedicated servers. However, there are many disaster recovery and business continuity solutions for dedicated servers. Data can be backed up to a server or storage platform in a geographically distant data center and restored quickly should the need arise. This is one area in which cloud platforms and dedicated servers work well together. Advanced disaster recovery solutions can fail-over to cloud-based replicas of bare metal machines when problems arise. When the issue is resolved, the dedicated server takes over and runs the application as usual. But Dedicated Servers Aren’t As Cool What’s cooler than an inexpensive, highly reliable, and robust hosting solution capable of supporting thousands of users? The simple truth is this: the vast majority of applications don’t need the cloud. Dedicated servers have been the backbone of business-critical IT operations for decades, and they remain an excellent solution. Many newer solutions are over-engineered and rely on a complex mesh of virtualization and orchestration software that imposes a particular view of development and operations methodology. For most businesses and most applications, a powerful dedicated server running Linux will be less expensive, less complicated, and just as reliable.