What’s behind the rise of cloud-native applications

Cloud_Native

When the cloud first came along, it was all about migrating existing applications to early public web services such as Amazon Web Services (AWS), Rackspace’s OpenStack-powered cloud, or Microsoft Azure. Any apps you ran on servers in your data centers were virtualized as fast as possible and deployed to the cloud. For some of you, that’s still a dream. The rest of us are moving on to cloud-native applications.

There’s a lot of “cloud-washing” out there. That is, there are some marketing peopleout there  branding everything as “cloud native” and hoping it will stick. The result, besides confusing customers, is that some IT professionals won’t take the cloud native concept seriously at all. That’s a mistake.

As David Linthicum, senior VP of Cloud Technology Partners, an important cloud-consulting firm recently acquired by HPE, pointed out, “cloud native is more about the application architecture and design than how you code the thing.”

Specifically, “you have to design the applications so that they’re decoupled from any specific physical resource.” Sure, when you put an app on a cloud, you’re really putting it on a virtual machine (VM) “But that’s not good enough.”

For cloud native, you must also use each cloud’s native features while making the most of each of its abstractions — for example its software-defined storage, software-defined networking, and so on.

That’s not easy to do. It also has the problem of locking you into a specific cloud’s architecture. A useful compromise, and one I see many companies doing, is using containers and unikernals. By using either one, your applications can easily run on tens of thousands of nodes while making far more efficient use of the underlying hardware than VMs.

Containers,such as Docker and CoreOS rkt evolved from Linux control groups (cgroups) and LXC. Besides enabling the running of more server applications on the same hardware than a VM would, they make applications far more portable. This enables you to easily move them from development environments to production without refactoring or reconfiguration.

Better still, in cutting your sysadmin time and costs, you can use continuous deployment systems with containers using DevOps tools such as Ansible, Puppet, or Chef.

Beyond these, you can orchestrate containers with programs such as Kubernetes, Docker Swarm Mode, and Mesosphere. Put it all together and you get applications that can make much fuller use of the cloud than simply porting an application to a generic cloud.

While containers use shared operating systems to make the most of a server, unikernels strip out all of the operating system except what’s needed to run a single application. This package of a minimal operating system and an app forms a unikernel application.  Unikernels are also called library operating systems, because they also include the application’s required libraries along with access control and network policies.

If you’ve studied operating systems, this might remind you of operating systems such as Exokernel and Nemesis. While those might be of historical interest, today’s unikernels are operating systems like MirageOS and OSv. The modern unikernel operating systems all run on VMs.

Besides making it easy to deploy and run applications needing minimal resources, its promoters claim, “Unikernels shrink the attack surface and resource footprint of cloud services. They are built by compiling high-level languages directly into specialized machine images that run directly on a hypervisor, such as Xen, or on bare metal. Since hypervisors power most public cloud computing infrastructure such as Amazon EC2, this lets your services run more cheaply, more securely and with finer control than with a full software stack.”

There’s some truth to this, but the important point with both containers and unikernels is that they enable you to make cloud-native applications without binding yourself to a specific cloud architecture. If you want the best of freedom of choice and getting the most from your cloud resources, both deserve your attention.

RELATED LINKS

Cloud adoption: The good design decisions that will get you there faster

Microsoft: The Windows cloud business

Cloud-based security services set to soar

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: