Given the seemingly infinite scale, countless tools and services, and a virtual army of technicians and support personnel, the cloud can feel all-powerful at times. But despite its well-documented benefits, cloud development isn't the ideal solution for every problem or the right fit for every organization. Industries have different requirements for everything from security to reliability. And in some circumstances it can be prohibitively expensive to move from a well-functioning on-premises system to the cloud.
There are tradeoffs to consider when deciding between on-premises and cloud-based infrastructure, and while those tradeoffs do not affect every organization, it is important to be aware of them to make the right choice.
Let's take a look at on-premises vs. cloud computing models and how to evaluate your needs against the benefits and drawbacks of each option.
Security: Keep it in-house or trust the vendor
Security is a common concern when organizations evaluate on-premises and cloud-based infrastructures. On one hand, you can own and manage your security in on-premises computing. On the other hand, cloud-based computing enables you to focus less on security and more on your product or business.
It's difficult to compare on-premises and cloud computing security, because the models are fundamentally different in the way that they deal with that problem. IT teams are responsible for all aspects of security on premises, while cloud security offerings often abstract away the technical administration and provide specialized tools to manage things such as access control, firewalls and vulnerability management.
Ultimately, security depends on trust and, in many cases, that trust is better placed in the hands of your vendor. While it may feel more secure to maintain physical control of your hardware, the reality is that cloud providers are likely to have far more security expertise than your own organization. However, some security scenarios are more difficult to relinquish over to the vendor than others. Organizations that deal with classified or sensitive information may prefer to keep everything in house for privacy reasons.
Reliability: Natural disasters vs. public cloud outages
When it comes to on-premises infrastructure, there is almost always a cap on reliability. This includes your application's availability at any given time, or in particular regions, along with how well your application can scale within the available infrastructure. No matter how robust your on-premises infrastructure is, something will need to be fixed eventually. And even if nothing breaks, natural disasters are still a risk. Fires and floods can shut down an entire data center, and global pandemics can make it difficult for employees to access the hardware and perform routine maintenance.
However, the cloud isn't infallible in terms of availability. AWS and other providers have experienced multiple public cloud outages, and when that happens, nearly half the web is broken.
When choosing between individual cloud providers and your own infrastructure, it's important to consider how much control you need. In a scenario where the majority of the internet is down due to a cloud outage, consider how this will affect your organization. You may steer mission critical services that require high availability away from the cloud due to the risk of cloud outages, with the understanding that the burden of uptime lands solely on them.
Cost: Buying servers vs. pay as you go
It can be difficult to calculate the cost tradeoffs in your on-premises vs. cloud computing evaluation. On the flip side, you only pay for what you use in the public cloud. For example, if you already have the hardware, then your on-premises costs may only come down to maintenance and power. But if your computing needs to scale, you may need to purchase a second, third or even fourth server.
On the flip side, cloud computing means that you only pay for what you use. However, if your application infrastructure isn't designed properly, you may find yourself under-utilizing and overpaying for cloud services. Organizations should always consider the infrastructure that application development will be run on, as this will determine its limitations, capabilities and -- perhaps most importantly -- the cost.
Expertise: Old skills vs. new skills
When evaluating on-premises vs. cloud computing models, it's important to consider the expertise required to run each. One of the biggest benefits of the cloud is that it abstracts away the complex and challenging aspects of computing, which enables you to focus on what really matters for your business. But just because traditional systems administration isn't as relevant in cloud-based infrastructure doesn't mean that there aren't new skills to acquire when you move to the cloud.
For example, learning how to manage AWS IAM roles is challenging on its own, but tack onto that the different nuances behind countless services on the platform, and cloud computing can get complex. Therefore, when you move to the cloud, you should not simply eliminate an admin role in your company but rather evolve it. You need to consider both the expertise on your own team, and your ability to continue to hire for the necessary skills required for both on-premises and cloud-based services when determining which model is right for you.
The cloud is a powerful computing method, but it's hardly the only viable option. While many companies prefer the cloud due to its simplicity or low startup cost, others aren't so easily sold. Consider the benefits and drawbacks these models can have on your process, product and people.