Since the early 2000s software has evolved rapidly and these non-stop changes have greatly upset the balance of power in computing.
For something like a Content Management System (CMS) to be cloud-native, the entire system must exist in the cloud. It needs to be developed, tested, deployed, debugged and updated on the cloud. The system would not be installed on an on-premise server for permanent residency nor is it converted to a virtual machine image to make it available across servers. Systems like these are designed for the cloud, which requires fundamental changes to a business’s architecture and the IT economy that supports it.
A cloud-native application is made for the systems that host it, rather than having to be converted or staged in a virtual environment that hides the nature of the cloud from it. Since the beginning of computing, software has been designed for the machines destined to run it. Dartmouth’s John Kemeny and Thomas Kurtz essentially invented modern computing by devising a language meant to withstand trial-and-error programming: BASIC. The principle of BASIC is that software can make the best use of the machine it runs on and should be nurtured and developed inside said machines rather than compiled separately. Cloud-native computing uses the same principle, extended to include cloud platforms.
Since the start of software developers and high-level programming, software became less reliant on the hardware it needed to be designed for. Hardware is now designing itself for software and we can’t go back.
“The cloud” (which is way too late to rename) is a machine, notwithstanding one that spans the planet. A cloud may be any combination of resources, located anywhere on Earth, whose network connectivity enables them to function in concert as a single assembly of servers. A business could own its cloud in its entirety, or rely on the likes of Microsoft, Amazon, and Google to have a cloud-native environment, or use both it’s own and cloud suppliers “cloud”. So when we say an application is “native” to this type of cloud, what we mean is not only that it was constructed for deployment there, but that it is portable throughout any part of the space that this cloud encompasses.
A cloud-native application is designed for the cloud platform it is intended to run on. Its life is in this cloud platform. It changes the computing landscape for 2 reasons:
- “Version” means something different than it did 10 years ago – anyone who knows Windows understands this. There probably won’t be a Windows 10 – but there was a Windows XP, Vista, 7, 8 and 8.1. all before 10. A true cloud-native application will evolve as smartphones do – you didn’t need to pay to update your Android from Oreo to Pie.
- The is no clear reason as to why any application needs to be installed on a PC – except in instances of no connectivity
Soon the very phrase “cloud-native” may fall into disuse, like the tag on the 1990s and early 2000s TV shows that read, “Filmed in high definition!”