Deploying Cloud-Native Apps Outside the Public Cloud

There are times when it is better to deploy cloud-native apps on-prem or in a colocation facility instead of in the cloud.

Christopher Tozzi, Technology analyst

January 4, 2022

4 Min Read
clouds outside an office building
Getty Images

One of the tricky things about the term “cloud-native” is that cloud-native applications don’t necessarily run in the cloud. Indeed, there are some good reasons to consider deploying cloud-native apps on-premises or in a colocation center instead.

To prove the point, let’s take a look at cloud-native use cases that don’t involve the cloud, along with technologies that make it easy to deploy cloud-native apps outside the cloud.

What Is a Cloud-Native Application?

Although there is some debate about what, exactly, cloud-native means, the general consensus is that cloud-native apps are designed to take full advantage of the distributed, scalable, service-based architectures that are closely associated with the cloud.

In other words, cloud-native apps are designed to operate in environments where infrastructure resources are delivered as consumable services and can be scaled up and down quickly as application demand fluctuates.

Reasons Not to Use the Cloud for Cloud-Native Apps

Public clouds are a prime example of the type of scalable, distributed hosting environment described above.

But they’re not the only example. You can build very similar environments on your own private infrastructure, then use those “non-cloud cloud-native” environments to deploy cloud-native apps.

There are several reasons why you might take this route instead of deploying cloud-native apps in the more obvious setting of the cloud. In general, they align with the drawbacks of using the cloud for any type of application.

  • Privacy: You may have a cloud-native application that manages highly sensitive data, and you want to reduce the risk of sensitive data exposure by running the application on your own infrastructure.

  • Cost: Public clouds can be expensive, especially when you don’t optimize them for cost. Running cloud-native apps on private infrastructure may provide more control and visibility into costs.

  • Lock-in: Depending on exactly which cloud services you use to deploy a cloud-native app, you may end up depending on specific solutions that aren’t easily portable across public cloud platforms. For example, each of the major public clouds’ serverless computing services are distinct, so a cloud-native app deployed using serverless functions on one cloud will be difficult to move to a different cloud. You can avoid these cloud lock-in risks by deploying cloud-native apps on private infrastructure using hosting technologies that can run anywhere.

  • Performance: Some applications are likely to perform better on private infrastructure, where they can use private networks instead of relying on the internet to connect users and move data.

Deploying Cloud-Native Apps On-Premises

If you don’t think the cloud is the best place to deploy your cloud-native app, running it on-premises (or in a private data center or colocation facility) is eminently feasible.

The most obvious approach today is to use Kubernetes, which allows applications to run in distributed, scalable environments hosted on both cloud-based and private infrastructure. Indeed, in most respects there will be no perceptible differences – for either admins or users – between a cloud-native app running in Kubernetes in the cloud and one running in an on-prem Kubernetes environment.

Another approach to running cloud-native applications on-premises is to leverage a hybrid cloud framework, like Azure Arc or Google Anthos, that makes it possible to deploy cloud services on private infrastructure. In this case, your cloud-native app would still more or less be running in the cloud, but you could host it on your own, private infrastructure.

A private cloud framework like OpenStack, too, could be used to build a cloud-native environment on private infrastructure. Here again, one could argue that this approach would still leave you with a cloud-native app hosted in the cloud. But it would be a private cloud that you fully control, mitigating some of the cost, performance and privacy dilemmas of using the public cloud.

Conclusion

Cloud-native apps usually live in the cloud. But they don’t have to live in the cloud. It’s not only possible, but relatively easy, to deploy cloud-native apps without the cloud, and there are good reasons for doing so.

About the Author

Christopher Tozzi

Technology analyst, Fixate.IO

Christopher Tozzi is a technology analyst with subject matter expertise in cloud computing, application development, open source software, virtualization, containers and more. He also lectures at a major university in the Albany, New York, area. His book, “For Fun and Profit: A History of the Free and Open Source Software Revolution,” was published by MIT Press.

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like