Time was when applications lived on-prem, running on wholly-owned infrastructure and maintained - at some cost - by IT staff. Updates came few and far between because of the time and cost of testing.
In today's fast-moving world with its proliferation of both data and the devices that create it, this approach cuts little ice. Rather, organisations are working to unlock the value in that data tsunami, and are tasking their developers with responding with highly-scalable solutions and ever-compressed timetables.
What is cloud-native?
Consequently, a new paradigm has arisen, driven by that need for scalability, flexibility and agility, and enabled both by the plunging cost of cloud services, and the increasing ability of applications and networks to bridge the performance gap between local and remote computing.
Cloud-native applications run exclusively on cloud-based infrastructure, and are uniquely designed to take advantage of new cloud-based features and functions.
To get there, you need to start by moving applications from an on-prem onto a cloud-based infrastructure, using your cloud provider's IaaS offerings, with the first benefit being the elimination of upfront capital costs. This is clearly not as simple as it sounds but it has been successfully performed by replicating the on-prem infrastructure using software and hardware components that work together.
An example might be to replicate a 50-node cluster by renting and connecting 50 virtual machines in the cloud and installing the exact same applications and OSes as were running on-prem.
While offering the typical advantages of cloud computing - such as swapping capex for opex, flexible services on demand and lower maintenance - this type of configuration is a stepping stone towards a fully cloud-native setup. So the next step is to move onto an environment where your cloud provider's PaaS infrastructure abstracts the idea of the server operating system and allows the business to concentrate solely on applications and the services that they deliver., rather than on how they deliver those services.
Abstraction and beyond
This is the first touch point of the cloud-native concept. It requires a redesign of applications and their interactions - but means that business requirements can drive the design and hence outcomes.
Cloud-native applications take this idea a step further. In a PaaS model, the underlying platform provides pre-configured operating system images that need neither patching nor maintenance, and can be scaled automatically based on application load. A cloud-native regime extends the PaaS concept by providing developers with complete abstraction from the underlying infrastructure through a pay-per-execution billing model that automatically scales based on trigger invocations.
These are cloud-native applications, made of small components that can be developed, tested and deployed quickly; some organisations deploy dozens of pieces of new code every day. Could your organisation be among them?
These are early days in the cloud-native journey. However, there exists a big momentum behind the idea of agile applications that deliver quickly, and enable agility while cutting costs. Given that major cloud services providers support the concept, which demonstrates demand from enterprises, it would be imprudent not to plan appropriately.