peshkova - Fotolia

Is VMware failing to supply necessary developer services?

VMware may have been on the cutting edge of virtualization for the past ten years, but the company's recent ventures leave some software developers less than impressed.

I genuinely believe that, as a corporation, VMware does not understand what developers want. The infrastructure team has ridden the VMware wave for the last ten years, revolutionizing data centers and enabling businesses. But now there's a bigger wave in sight: the cloud.

Unfortunately, the cloud's infrastructure is less exciting than that of virtualization. Infrastructure needs to be there for developers, but applications in the cloud are now transforming business. I think that VMware has missed the fact that, over the last ten years, developers have been given a whole new way of working with infrastructure. What VMware offers as a cloud is not what developers want to consume. VMware seems to be betting on containers, but I think developers want more. As of right now, VMware just doesn't offer adequate developer services.

Software development often involves doing a lot of repetitive work; work that doesn't directly solve the application's purpose. A lot of this work is spent developing something that is not specific to one application, but is reusable across many applications. For example, writing the code for a shopping cart isn't specific to a single website. That code should be reusable across multiple websites. A shopping cart is usually a component that is baked into either the web development tool or the hosting provider.

Reusable code is one of the key principles of software development, usually in the form of widely-used libraries. Any tool that makes developers build every component from scratch is not going to be adopted. Using libraries for common functions is critical to cost-effective software development.

What does this have to do with VMware? What does the VMware cloud have to offer to developers? So far, VMware offers virtual machines of all different sizes, even some with different software already installed, but not higher level services. Let's start with something basic: Most applications require a database.

I think that VMware has missed the fact that, over the last ten years, developers have been given a whole new way of working with infrastructure.

A developer just wants to create a database and start coding against the database, filling it with data, but VMware's software-defined data center (SDDC) doesn't offer databases. Instead, it offers a VM with a fixed hardware configuration and a database server installed. Once the VM is deployed, the developer must modify the VM for the hardware configuration that she needs and then use database server tools to create a database.

The same is true when a developer wants a place to store media files for a photo application. VMware SDDC offers a VM; the developer needs to build the VM hardware and then everything on top of that VM. This is a lot of work that should be done once when the SDDC platform is deployed. Application services should be built into the platform, not built uniquely by each customer.

Take a look at the developer services that Amazon Web Services (AWS) offers. There are a huge number of developer services that integrate directly into the applications, many of which are designed purely to be an element of a customer's application. There are several database services that can be directly consumed by developers and there are services for many of the components of an application.

The AWS platform makes software development simple and productive. It's relatively simple to stitch together a complex application using a collection of these services. More developer effort is concentrated on code specific to the business function and less is spent making the infrastructure work for the application.

VMware has a cloud-native applications business unit, which is where VMware Integrated Containers and the Photon Platform reside. So far all of the products from this backup utility are about deploying containers. In reality, this is an extension of VMware's expectation that a VM is the solution to every problem.

All of VMware's container offerings simply wrap each container instance in its own VM. Containers are one part of a cloud platform; much of the application logic should run in containers. Containers can be used to build applications and developer services, in the same way that VMs can be used to build services, but this doesn't address the need for the platform to deliver basic developer services. Containers alone, or with VMs, are not enough.

This is what's missing from VMware's vision of an SDDC. It seems that the infrastructure team -- not the software developers -- is doing the software defining. I'd say the same is true for the majority of private cloud platforms. Their aim is to speed up deploying infrastructure and allow VMs to be built and destroyed rapidly. These platforms don't address what the VM is used for. The VMs are just vehicles for applications and data. It is the applications that make the company work, generating income or building product. Faster VM provisioning is great, but it is nowhere near sufficient to keep developers from using AWS.

Next Steps

Where should you go for AWS developer support?

The best AWS app development tips of 2015

Can VMware surpass AWS' success with developers?

Dig Deeper on VMware basics