Side projects are increasingly popular among developers. The availability of inexpensive infrastructure makes launching a web app easier than ever. Any developer with an idea can code a minimal viable product and have it up and running in no time at all. Side projects can be an educational experience, a way to make a few extra dollars, or the beginnings of what may become a full-time job.
Once you’ve decided to embark on a side project, you’ll need infrastructure hosting — a way to bring your product to the wider world. There are any number of options, ranging from shared hosting plans to dedicated servers via cloud servers and PaaS platforms.
Personally, I like the freedom offered by a full server environment. That removes shared hosting from consideration. I’m not all that fond of PaaS platforms either. They certainly make it easy to deploy applications, but they impose more constraints than I would like about the sort of software I can run. A full server environment is maximally flexible, and I can replicate most of what a PaaS provides by deploying my applications in containers.
That leaves cloud servers and dedicated servers. In all honesty, either option is a good choice. Both provide a full server environment with root access. Both allow developers to install the software they need, and both are relatively easy to manage if you have a bit of Linux server admin experience and choose a decent hosting provider.
That’s not to say there aren’t differences between cloud servers and dedicated servers. Let’s have a look at a few points that distinguish them.
Cloud servers are virtualized servers, which brings a number of benefits. A cloud server can be deployed in less than a minute. You can go from deciding to deploy a server to being logged in over SSH in less time than it takes to make a cup of tea.
Dedicated servers are not virtualized: each dedicated server is a physical server sitting in a rack in a data center. The obvious advantage here is that your hardware isn’t shared with any other users. Contention problems on virtual servers are nowhere near as bad as they were a few years ago, but with dedicated hardware you’re guaranteed to have the whole of the server’s resources at your command.
Dedicated hardware is usually billed on longer cycles than cloud servers, so you’ll pay the contract period regardless of whether you decide to stop using the server. Dedicated servers often take a little longer to setup than virtual servers (although ServerMania dedicated servers will be available to you immediately).
Although it really depends on the server you choose, dedicated servers generally offer better IO performance than cloud servers and the top tiers offer considerable more power — something that’s probably not an issue for new side project. There is overlap — our hybrid servers are virtualized servers that outstrip the resources and performance of many dedicated servers. However, if performance is of paramount importance, a dedicated server is often a good choice.
Which should you choose? There’s no simple answer to that question. Both are fully capable of supporting the vast majority of side projects. Ultimately it’s a matter of personal preference: if bare metal appeals to you, choose a dedicated server. If you need the flexibility and elasticity of the cloud, choose a cloud server.