You hear this everywhere these days: Build applications that are cloud-native — that is, developed specifically for cloud platforms. The trouble is, everyone has his or her own definition of “cloud-native.” As a result, cloud-hosted applications are all over the place in their use of native features. Many are not designed properly, and they’re worse off in the cloud than when they ran in the data center.
What are the fundamentals of being cloud-native? As I see it, being cloud-native is more about the application architecture and design than how you code the thing. Sadly, many people — in IT and at the vendors — are missing the boat on both points.
To properly take advantage of a cloud platform, including IaaS and PaaS, you have to design the applications so that they’re decoupled from any specific physical resource. Of course, clouds can provide an abstraction or virtualization layer between the application and the underlying physical (or virtual) resources, whether they’re designed for cloud or not. But that’s not good enough.
When this architecture is considered in the design, development, and deployment of an application, the utilization of the underlying cloud resources can be as much as 70 percent more efficient. This cloud computing efficiency equals money. You’re paying for the resources you use, so applications that more efficiently work with those resources run faster and generate smaller cloud services bills at the end of the month.
Each cloud has its own way for you to leverage its native features. But typically, you can access these features via layers, including the topmost virtual platform/OS, underlying resources (such as storage and data), and then the cloud-native services, such as provisioning and tenant management.
They provide the capability you need. But to be truly cloud-native, you have to understand how to properly use each layer. This means understanding the cloud platforms, as well as the subplatforms and resources. Most developers and application designers are not yet thinking in those terms. It’s time to start.
Here’s a presentation I gave at Cloud Expo on this topic: