Let me begin by saying repatriation is a regular part of my conversation with my customers. Many organizations are truly analyzing the various details of standing up an architecture on one of the major cloud providers, and determining whether to bring them back into their data centers. So many factors add into the conversation, not the least of which is cost.
Does it make sense between standing the processing power and all the storage necessary up in the cloud? What about repatriation? What about compliance regulations? Sometimes even with the best research as to the above issues, performance truly could be a significant bottleneck.
All the old rules from the advent of a singular cloud provider apply. If anything, it’s easier to move stuff to the cloud, create new workloads, perform orchestrations, grow, modify, etc. than it ever has been before. So, this is good. But at what point does the repatriation process point our customers to understand that proper evaluation prior to deployment is actually the appropriate course of action?
So many applications simply aren’t geared toward containers, or cloud (Cloud Ready?) functionality, that they may never be viable. Granted, most of these are home-grown, but are very likely integral to the day-to-day operation of the users, and the programming expertise needed to re-architect is so expensive and proprietary, the original dependencies are likely unknown as the original talent that created the code has likely moved on. Even when these challenges are gone, it would still involve an extreme re-architecting of the app. The time alone, required to do so, may cause problems.
But, let’s posit that the organization desires to build for the cloud, and their architecture or application set supports it easily. Is it still right? It may be… I was asked on Quora if, in the future, nobody would build data centers, nobody would stand up on-prem architectures to support their infrastructure, and if everyone would be geared toward Cloud. It is my belief that the future is hybrid. Don’t get me wrong, I like the idea of placing apps/backups/data in cloud architectures, but I do believe that there will always be a place for data centers.
Just as in the early days of virtualization, not everything is appropriate to virtualize. I admit that way fewer today shouldn’t be virtualized. I feel the same about cloud apps.
The key here is that new apps, for the homegrown or otherwise should be built to support the dynamic levels of cloud orchestration. But in the enterprise space, very few of these applications were designed with cloud in mind. I know that re-architecting for cloud is far more difficult than building new. Taking advantage on new architectures, for MicroServices, DevOps, containers, and cloud environmental builds is the way of the future. There may come a time when all the applications being run by an enterprise customer will incorporate a cloud-native design, but today, the data center is maybe less mission critical, but still a reliance on some on-premises infrastructure must be maintained, added to as necessary, and should be considered as such.
This perspective says nothing about the true evaluation of the applications prior to any migration taking place is critical. I advocate for real research. Let’s ensure that our applications have undergone the scrutiny of security, compliance, cost, and viability before we even undertake these moves.
Newer technologies, are enabling enterprises to achieve new levels of orchestration, and are granting newer capabilities to assist organizations in migrations to the cloud, and as these mature, greater and greater apps to be moved to the cloud, but until these legacy apps are purged from the data center, cloud tech will never be exclusive.