http://www.developer.com/services/vmware-vs-citrix-vs-microsoft-the-programmability-of-top-hypervisors.html

Back to article

VMware vs. Citrix vs. Microsoft: The Programmability of Top Hypervisors


February 7, 2011

For developers, virtualization offers an amazing opportunity to work more efficiently, contribute to savings in internal infrastructure operating expenses, and contribute to building out cloud technologies. Each of the major hypervisor vendors offers various methods of automating tasks for its platform; Microsoft, Citrix, and VMware have packages of offerings targeted at the development community. Further, some offer software application packaging and software distribution solutions.

One exciting area helping to ease and speed up development and test activities is leveraging automation everywhere in the software development lifecycle (SDLC), including the code, build, debug, test, stage and deploy stages. Another helpful development are ITIL offerings that allow for further application lifecycle control. And a hot field right now is desktop delivery based on virtualization (Virtual Desktop).

In this article, I break down the SDKs available for cloud development and other offerings such as code samples for the three leading hypervisors.

VMware Has Longest Hypervisor Product History and Most Offerings

VMware offers an extensive API suite for vSphere and vCenter automation including a Web Services SDK, Guest OS programmability, PHP, Perl, and Java SDKs and more. It also offers a complex deployment orchestration tool known as VMware vCenter Orchestrator which allows the automation of both VMware tasks as well as automating other IT infrastructure to accomplish IT tasks.

Leveraging the power of virtualization to the task of developing software, VMware vCenter Lab Manager offers an extensive SOAP API set that can provide solutions for test automation, build automation, and ease of access to development environments and tools. This includes integration points with HP BTO applications such as HP Quality Center

Third party software developers have leveraged the VMware SDKs to build entire applications and businesses around managing VMware infrastructure. Hence it is clear these tools are well tested in the real world and contain the tools needed to accomplish almost any task.

Large armies of software engineers (and IT experts) also share tips and tricks via VMware communities, making the platform that much more programmable. The ecosystem of users, developers, testers, and business process tool vendors ensures a vibrant and strong neighborhood of help for the software engineer.

Beyond what VMware offers, companies such as Electric Cloud have made use of the VMware SDK to offer developers the ability to leverage virtualization in the software build process. Electric Cloud offers build parallelization for increased build speed. They also offer build-test-deploy tools using virtualization as the underpinnings. And companies such as Abiquo offer single-pane-of-glass cloud management tools that allow PaaS or cloud service vendors to easily control plug-and-play on-demand offerings for either on-premise cloud or remote cloud. The table below lists the VMware programmer offerings.

Name

Description

Audience

vSphere PowerCLI

PowerShell based CLI for managing vSphere

vSphere Administrator

vSphere Command Line Interface (vCLI)

The VMware vSphere CLI provides command-line interface tools for managing vSphere ESX and ESXi servers.

vSphere Administrator

vSphere Web Services SDK

The VMware vSphere Web Services SDK provides a powerful and flexible toolkit for software developers to build management applications for the vSphere platform

Software Developer

vSphere SDK for Perl

The vSphere SDK for Perl provides an easy-to-use Perl scripting interface to the vSphere API. SDK ships with utilities and documentation for building vSphere management applications.

Software Developer

VMware Disk Development Kit

The Virtual Disk Development Kit is a collection of C libraries, code samples, utilities, and documentation to help developers create or access VMware virtual disk storage.

Software Developer

VMware VIX API

VIX provides a programming interface for managing and automating the OS guests inside your virtual machines

Software Developers, vSphere Administrators

vSphere Guest SDK

The VMware vSphere Guest SDK provides fast access to resource management information.

Software Developers

CIM SDK

Common Information Model (CIM) is an interface based on industry standards for building ESX/ESXi management applications. CIM SMASH/Server Management API features profiles compatible with the DMTF's System Management Architecture for Server Hardware (SMASH) initiative. SMASH profiles allow CIM clients to monitor system health of a managed server.

Software Developers

vCloud SDK for Java

VMware vCloud SDK for Java allows you to get started interfacing quickly using the vCloud API. It brings the REST-based vCloud API in the world of Java developers by providing easy-to-use client-side representation of vCloud resources and hiding the details of REST and HTTP.

Software Developers

vCloud SDK for PHP

VMware vCloud SDK for PHP provides interfaces to VMware vCloud Director. It is an easy-to-use PHP language binding to write vCloud API clients. The current version of VMware vCloud SDK for PHP is based on VMware vCloud REST APIs version 1.0.

Software Developers

vCenter ChargeBack API

The vCloud API is an interface for providing and consuming virtual resources in the cloud. It enables deploying and managing virtualized workloads in private, public, and hybrid clouds. The vCloud API enables the upload and download of vApps along with their instantiation, deployment, and operation.

Software Developers

VMware ThinApp SDK

The ThinApp SDK provides an open API to allow access to information about the ThinApp packages. This API enables developers to integrate ThinApp virtualized applications into existing Enterprise Delivery Systems or their own custom process or applications.

Software Developers

Table courtesy of VMware

Microsoft Appears to Be Playing Catch Up

Microsoft's approach to application development in the cloud is much different from VMware's. While VMware and third parties like Electric Cloud allow your development to be OS agnostic, Microsoft's base layer is Hyper-V or Windows Azure. This is really Microsoft's way of offering Windows as PaaS (Platform as a Service).

They do offer PHP, Java, and Ruby SDKs for developing on the Windows Azure cloud however you deploy your application to the cloud. In some respects this causes lock in to the Microsoft platform. The model is similar to Amazon EC2 or Google App Engine. Once your application is on that cloud, there is a barrier to moving it if you want.

Microsoft offers something called System Center Virtual Machine Manager for centralized management. And there is a tool for self service called the System Center Virtual Machine Manager Self-Service Portal, which should come in handy for development and test. Microsoft claims these are "partner extensible," but that is far different than offering well published SDKs and full sets of development tools.

Further support for development and test activities is provided by Visual Studio 2010 Ultimate and Visual Studio Test Professional 2010, which were announced in August 2010. Both allow leveraging Hyper-V in the development and test process. These are fairly new solutions not as market hardened as VMware's offerings or the third parties that offer such solutions on top of the VMware hypervisor.

Citrix Offers One Key Development Advantage

Five open-source licensed SDKs are available for Citrix XenServer; they cover Java, Python, C, C#, and PowerShell. Further, Citrix offers a downloadable virtual machine with all the SDKs and a XenServer Simulator along with typical Linux development tools.

Citrix has PowerShell SDK for Desktop virtualization automation and for application virtualization offers a robust library of development tools as outlined in the table below. The community is strong for Citrix XenServer development, with a large Citrix Developer Network forum.

Access Gateway Endpoint Analysis SDK

Allows creating endpoint analysis scan packages for client devices before granting them access to a server running Access Gateway Advanced Edition.

Binary SDK for 32- and 64-bit Windows Clients 10.x

This includes binaries, some source files, tools, APIs and supporting documentation that allow Citrix Technology Licensing Partners to partially customize the Citrix Receiver online plug-in software and to integrate it into their devices.

Health Monitoring and Recovery SDK

Explains how to create and configure XenApp health tests that can complement those provided by the XenApp Health Monitoring and Recovery feature out-of-the-box.

ICA Client Object SDK

Allows seamlessly embedding and integrating Citrix Receiver online plug-in functionality into third-party applications, or directly embedding the client in commercially available desktop applications that support object embedding, such as Internet Explorer, Firefox, and the Microsoft Office suite.

Password Manager Provisioning SDK 4.1

Allows configuring or deleting users' secondary, application specific credentials. Single Sign-On submits those credentials on behalf of the user after the primary domain authentication has occurred.

Simulation API SDK

The ICA Simulation API SDK extends the ICA Client Object specification and provides scripting interfaces that enable ICA Clients to operate in a non-user-interface or "headless" mode.

SmartAuditor SDK

Allows third-party applications to augment Smart Auditor session recordings with application specific event data that can later be retrieved during playback.

Streaming Profiler SDK

Allows creating applications or scripts that automate the management of streaming profiles.

Virtual Channel SDK

Allows creating custom Virtual Channels (VCs) for XenApp and XenDesktop so that any client resources could be seamlessly made available for the applications running on the hosts.

Web Interface SDK

Allows customizing and enhancing the capabilities of the Web Interface for XenDesktop and XenApp.

WinFrame API SDK

Allows managing live XenDesktop and XenApp environments including host, sessions, processes, shadowing, virtual channels, and system events.

XenApp Management SDK (MFCOM)

Allows creating programs or scripts that automate the management of XenApp.

XenApp 6 PowerShell SDK

Enables customers to manage XenApp 6 farms using Microsoft PowerShell scripting.

XenApp Commands (PowerShell) Tech Preview only

Allow PowerShell access to most aspects of XenApp including MFCOM functionality, Access Management Console features, and even functions found in the Advanced Configuration Tool (aka Citrix Management Console). Will work for XenApp 5 on W2K8 and on Presentation Server 4.5 with HRP03 running on Windows Server 2003 (aka XenApp 5 on W2K3).


Table courtesy of Citrix

One exciting advantage to the Citrix offerings is the inclusion of a XenServer simulator with the SDKs. This means you don't have to have bear metal to code and test. VMware does not offer ESXi as a VM, nor does Microsoft allow Hyper-V to be installed on anything but bare metal. This limits shops where investment in hardware is prohibitive.

Don't Count Microsoft Out in Cloud Programmability Market

Citrix and VMware clearly have the lead in supplying robust, market-tested development and test tools for their respective product sets. And each has a strong and established development community that has leveraged the tools for years. Yet, as we know, Microsoft's bread and butter is the development community and I would expect much more coming from Redmond around Hyper-V and cloud programmability in the coming years.

About the Author

Bruce Bookman -- Contributing Editor, Virtualization & Cloud -- With over 20 years in the software industry Bruce has a deep understanding of the software development life cycle and software quality assurance. He was at the birth of VMware's cloud offerings as a subject matter expert for vCloud. He has been both an individual contributor as well as a manager and has solid experience managing various aspects of the SDLC for independent software providers.

   Email   |   Website   |   Twitter   |   LinkedIn    |   Facebook    |   Blog   

Sitemap | Contact Us