Modern dev practices exacerbate private cloud disadvantages
The public cloud has become the go-to hosting environment for enterprise DevOps shops -- a trend that won't bode well for the future of private cloud architectures.
As enterprises look to embrace cloud-native development strategies and reduce IT management complexity, the disadvantages of private cloud become more pronounced.
Traditionally, wary enterprises believed private cloud was a safer bet than public cloud because it offered greater visibility into IT infrastructure and systems, while still providing some cloud benefits. In these cases, organizations often developed an IT modernization strategy by which they would move to private cloud, then transition to public cloud -- often refactoring application code at each step.
For example, enterprises would first refactor an application for a private cloud, such as OpenStack. Then, after a short period of time, they would refactor it again for the move to the public cloud. Refactoring requires time and money, and doing it twice can run up a hefty price tag and waste resources. It is more beneficial, if you plan to move to public cloud, to go there directly.
Or, as one of my past clients stated: "The private cloud was a very expensive rest stop for our code and data; it should have been avoided."
Today, organizations increasingly choose to refactor existing applications for public cloud out-of-the-gate -- rather than simply lift-and-shift them -- or build cloud-native applications, as part of a DevOps strategy.
Private cloud's DevOps dilemma
This change in how organizations build and deploy applications has exacerbated the limitations of a two-stage, transitional migration approach. Enterprises now view applications as lumps of clay to mold into workloads that are native to public IaaS clouds.
While a range of target platforms can support DevOps practices, public cloud is typically the best fit. Enterprises can define infrastructure as code that's bound to the application, and public cloud providers make almost all of the infrastructure services in their portfolio available upon request. This, along with the massive scale available through public clouds, gives DevOps developers more choice and flexibility.
One of the biggest private cloud disadvantages is that they typically offer relatively limited services. Although they provide basic storage and compute resources, the higher-level services are do-it-yourself on private clouds. Because of this, they cost more and are frustrating for developers who want these services yesterday.
So, interest in DevOps and other modern development practices leads to more interest in public cloud, which, in turn, leads to less interest in private clouds.
Ironically, public cloud providers have all pushed on premises with their own proprietary spins on private cloud. However, packaged offerings such as AWS Outposts and Microsoft Azure Stack are still ultimately intended to move enterprises to the public cloud, or support a hybrid cloud model.
The role of hybrid clouds going forward
Hybrid cloud architectures are likely to change in the face of newer dev practices as well.
Traditional hybrid clouds, which pair public and private cloud resources, have a strong history of providing some choice and flexibility. But, as enterprises deploy resources on more than one public cloud, the standard private cloud component may not work as well.
In its place, an enterprise may need to deploy a traditional on-premises system instead that uses middleware to work with those public cloud environments.
Private cloud complexity
In addition to more limited services for modern DevOps teams, management complexity is another major private cloud disadvantage today.
Enterprises that build a private cloud typically supplement it with public cloud platforms from different providers. The result is a multi-cloud architecture, which can lead to a tipping point where the complexity of managing that environment outweighs the benefits it provides.
While a private cloud doesn't cause the complexity problem alone, it does make matters worse. Not only does a private cloud act as another hosting environment for applications and data, but it requires IT teams to manage the underlying infrastructure -- a responsibility they're free of with public cloud. This puts limits on an organization's budget, and hinders an IT staff's ability to deal with the cloud holistically.
While the use of only a single public cloud platform could reduce this complexity, it's better to architect that plan ahead of time, so it doesn't become too much of a drain down the road. The key question is how to create common cloud services, such as security, governance and operations, that are systemic and not one-offs. The more you can do this, the less complexity you'll have to contend with.
Private clouds will continue to be a sound architecture for certain enterprises, but they've largely run their course. Even though private cloud continues to show growth, this is partly due to traditional on-premises hardware being relabeled as private cloud.
Public cloud is generally the ultimate destination for workloads. These platforms provide exponentially more features, functions and services. They do require enterprises to move to cloud-native or refactor applications, but they also provide a better bang for your refactoring budget, in most cases.