Apple recently announced that it will not be renewing its Enterprise License Agreement with VMware, and intends...
to build its own replacement platform using a free hypervisor. Apple is a massive company with a huge commitment to cloud services, which it runs on its own private cloud. The reported $20 million price tag for the ELA suggests that Apple has well over 1,000 physical hosts running ESXi. So, is it necessary to be a massive company in order to use a free hypervisor? The important thing to note here is that Apple is not simply using a free hypervisor, but is building its own platform on top of a free hypervisor.
Of the few free hypervisors, the ones most widely used are Xen and the kernel-based Virtual Machine (KVM); both use Linux for the hypervisor control interface. Xen has fallen slightly from favor since KVM was added to the Linux kernel. Free hypervisors can be installed on the physical x86 computers in Apple's data centers. Xen and KVM are free to use, but an enterprise customer will want additional support. When it comes to Linux support, particularly in the United States, Red Hat provides support for its own Linux and KVM. The question is, will Apple buy support from Red Hat? If Apple has a development team that is large enough, it may choose to support itself, which would mean spending money on building knowledge within the company, rather than investing in Red Hat.
Building a platform with open source development tools
Supporting hypervisors on 1,000 physical servers is just the beginning. Before this can be considered a cloud, you need something to aggregate these servers into larger pools. VCenter serves this function in the VMware stack, as well as vCloud Director or vRealize Automation. Another option is OpenStack, which can manage multiple different hypervisors, including vSphere, KVM and Xen. More recent developments include Apache Mesos, Google's Kubernetes and Docker Swarm, which provide automation for workloads across multiple physical servers. A common feature that these hypervisors share is the use of open source development and support models.
The fundamental idea behind open source is that software users can, and should, modify the software to suit their needs. Closed source software delivers a fixed application that can only be modified in ways that the vendor permits. Open source delivers the ability to fully customize the application for your own purposes. This is well and good, but modifying applications can be a difficult process, and can often only be done by a developer.
In order for Apple to build its own cloud platform, it will require a team of skilled developers, which poses a slight problem, as skilled developers are a scarce resource and businesses expect their developers to dedicate themselves to making the company unique. This is essential because it is this business alignment that delivers the greatest value to the company. Apple seems to have realized that it is in the business of delivering cloud infrastructure, so it makes sense to have a team of developers whose job it is to make Apple better at delivering that infrastructure. If you are not in the business of delivering computer infrastructure, then developing a cloud platform is probably not the best use of resources. It is a truth commonly acknowledged that deploying OpenStack requires several weeks of work, and most other platforms are less mature than OpenStack.
Building a private cloud isn't cheap
As a result, any organization that plans to build a private cloud by using a free hypervisor should anticipate dedicating some time to development. An alternative to this would be to bring in a consulting company with experience deploying the platform you need, but this method is likely to be expensive, and updates and changes will require more consulting time, further racking up costs. The net result is that building a private cloud platform using free software is unlikely to appeal to most organizations.
The good news is that small to medium-sized organizations are really looking for an easy button for IT infrastructure. The requirement for most private cloud deployments is not secure multi-tenancy or utility billing, but rather streamlined operations and rapid VM deployment. This is a much simpler problem than a private cloud deployment to match the AWS or Azure public clouds, and these demands can often be met with a reasonable amount of automation and some quality helpdesk processes.
Using a hyper-converged platform for virtualization is a great start, as it facilitates the provisioning and management of the underlying infrastructure. In the absence of hyper-convergence, a good, consistent build process and simplified storage deployment will help a lot. Self-service is one of the aims of cloud platforms, but for many organizations it isn't realistic to allow businesses to deploy their own VMs. It is far more practical to employ an automated deployment process that is manually initiated by helpdesk requests, because VMs can still be provisioned quickly and consistently without the huge investment in developing or deploying a cloud platform.
Building a cloud platform from open source tools is absolutely possible, provided you have a team with the necessary development skills and understanding. For a large organization, such as Apple, whose business is running a cloud platform, it makes sense to hire the right people and keep the expertise in house. For many other organizations, a true cloud platform isn't the right option; often all that's really necessary is automation.
The pros and cons of using VMware's free hypervisor
Five starter steps to building a private cloud environment
OpenStack vs. VMware for private cloud computing
Nutanix Acropolis takes on VMware with free hypervisor