What is On Premise versus in the Cloud?
Published on July 29, 2020,
Assume we all have the understanding that On-Premise means a physical data center where the infrastructure is managed by you, and the Cloud is a physical data center not controlled by you. And for the record, the combination of the two is being referred to as Hybrid Cloud. This blog is intended to reiterate what other notable industry experts have already expressed about where an application and its associated workload should go. Should an application remain in your on-premise data center or be migrated to the public cloud? Four primary factors should influence your decision:
- The need for customization
The need for customization is about the environment that is needed to support an application's workload. Does it fit nicely in a predefined, scripted package as you would get from a cloud provider, or does it have unique dependencies that can only be found in your on-premise environment?
Scalability isn’t just about a linear growth pattern but about the need for elasticity based on seasonality or burst computing demands. Your on-premise data center is not ideal for handling short term computing requirements without overprovisioning, which then is wasted space and power when the demand is over. A cloud is perfect for the rapid spin-up and spin-down of computing resources and far more economical.
Security is a hotly debated topic when it comes to safer on-premise or cloud environments, and I am not going able to cover all aspects in this brief discussion. However, the security decision that does need to be made is driven by emotional, political, and regulatory dictates. Taking these into consideration often results in a passionate belief that “if I can touch it, I can protect it”; therefore, an application on-premise will be safer. This is supported by the accountability for many organizations coming from GDPR, HIPAA, PCI, and other regulatory demands, that a cloud environment might not comply with.
The cost factor drives all of our actions at some point. While the cloud provides economies of scale for specific application types, others can quickly become cost-prohibitive in the cloud. Small and start-up organizations may find a cloud-only environment ideal for them as they don’t have the capital to set up and manage a new op-premise data center. Older, more mature organizations may have established data centers and need to weigh the value of owned and depreciated assets (CapEx) versus the cloud’s ongoing operating expense (OpEx). Organizations need to evaluate each application workload to understand its cost and how best to optimize the cost versus performance (and security) equation.
Mission-critical applications with high-availability and compliance or regulatory requirements because of the need for resource control and geographic location of data. Applications that require high levels of security should be run in on-premises environments as well.
Find projects and applications that support a business opportunity and quickly moved into the cloud to save costs and resources while improving the bottom line but won’t pose a disaster if security or availability was compromised. Applications such as modular data crunching, where data can’t be identified out of context, maintaining data security. DevOps is an excellent candidate for cloud computing -- mainly to gauge performance levels and work out bugs. Mentioned above, applications that temporarily experience erratic traffic patterns.
Forrester Research outlined the following best practices for cloud computing:
- Conduct functional and scalability testing and development work
- Deploy short-lived and highly volatile Web applications
- Run quick, grid-type high-performance computing analysis
Key Questions to Ask
Deciding between On-Premise or Cloud isn’t tricky, but it does take a bit of understanding about the application and associated demands. Who is using it and what for? Are their security or regulatory mandates associated with it? What is the user experience required? How much does it cost to operate? By asking and understanding these questions, you can quickly decide where to place an application and its workload to optimize it for cost, performance, and security.