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.
[ Get the no-nonsense explanations and advice you need to take real advantage of cloud computing in InfoWorld editors' 21-page Cloud Computing Deep Dive PDF special report. | Stay up on the cloud with InfoWorld's Cloud Computing Report newsletter. ]
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.
This article, "What being cloud-native really means," originally appeared at InfoWorld.com. Read more of David Linthicum's Cloud Computing blog and track the latest developments in cloud computing at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.