In Part I I shared a chunk of what I learned from Aidan Finn‘s enlightening and entertaining session delivered at the E2E Virtulisation Conference in Hamburg tastefully titled, “Windows Server 2012 Hyper-V & VSphere 5.1 – Death Match”. In Part I we looked at pricing, scalability and performance, as well as storage in questioning how bold this statement was.
Pure license-cost wise, it more straightforward to run Microsoft Hyper-V than add another licensed hypervisor: note that Hyper-V does have a free offering (although this version doesn’t cover the virtual Windows Server instance licenses). We showed that scalability wise, Hyper-V can better common competition. Storage-wise Hyper-V, as should be expected from the newest offering, supports the newest technology: 4k sector sizes, and had the largest virtual disk support. Still, if you needed greater than 2TB of storage, you could always join multiple 2TB instances together, or bypass limits by mapping a LUN direct to the VM.
Still, besides pricing simplicity, performance improvements, and updated storage what has Microsoft done for the latest version of Hyper-V? In Part II, lets question further Aidan’s premise that Hyper-V kills vSphere.
Project Avalon was announced by Citrix back in May. Avalon is to deliver Windows apps and desktops as a true cloud service. Since then, there has been speculation on what that actually entails. “Cloud” or “Cloud Service” can have many different connotations; indeed, for many the very term “cloud” fills their ears with a high-pitched nee and causes a yearn to live in an anarcho-syndicalist commune.
Running small-scale, departmental-level deployments of desktop virtualization is relatively straightforward. Scale past thousands to several thousands of desktops and applications, and the process of management and delivery gets much harder. More importantly, data centre technology has changed. How do you scale an environment while segregating the roles of a virtual desktop administrator from those of the storage, networking, or virtual infrastructure teams? How can the data centre infrastructure team provide the right service to the desktop team, and vice versa, so that they can optimize delivery of virtual desktops?
Citrix has FlexCast, the concept that IT should be able to deliver a variety of types of virtual instances, with each tailored to meet performance, security, and flexibility requirements. But while FlexCast gives choices for users, the simplicity of the user interface belies the rapid duck-paddling of disparate, separately developed and maintained products that organisations have to maintain at the back-end, many of which creak at the mere thought of a little bit of scaled peril.
To avoid smelling of elderberries, Citrix needs to make the administration and deployment of their Windows application and desktop delivery more straightforward and relevant to current delivery methods. Easier large/massive deployments are necessary in order to maintain large enterprise account revenue and to entice service providers to build solutions on Citrix software. Project Avalon is intended to allow organisations to effectively centralize IT to provide cost savings through scale and administration and maintain security, while enabling decentralized IT resources to utilize those central services to give users and customers a productive experience.
At the same time, the VMware Horizon Suite is intended to provide the end user with a single place to get access to their applications, data, and desktops and to give IT a single management console to manage entitlements, policies, and security.
At Synergy 2012 in Barcelona, components of Project Avalon were revealed. Project Excalibur will focus on creating an integrated FlexCast platform, and Project Merlin will deliver self-service provision, management, and service orchestration.
What will these components provide, and where will it lead customers? Will embarking on a quest to get to Avalon lead to the promised grail or just to some watery tart?
When we think of VMware, we usually think of vSphere, VMware’s market leading data center virtualization offering. Data center virtualization is infrastructure software, concerned about applications only to the extent that they consist of workloads running inside of guest operating systems or virtual machines. However, there is an entirely different side to VMware, one focused on applications. This focus includes application management, application monitoring, and development platforms for next generation applications. This post will deal with the application management piece. Continue reading VMware’s Application Management Strategy
At Citrix Synergy in Barcleona, I got to have a look at Citrix’s latest addition to the FlexCast technology stack, Citrix RemotePC. Citrix RemotePC was released as part of Citrix XenDesktop 5.6 Feature Pack 1. While XenDesktop is Citrix’s hosted desktop solution, but Citrix Remote PC is not a virtualised desktop. Citrix Remote PC is secure brokering of a physical Windows endpoint (be that a desktop or a laptop) in your office, via Citrix’s HDX technology. Continue reading Citrix Remote PC: VDI complexity solved, or a kick start to a VDI project?
Over the last 15 years, Java has become one of the world’s most popular programming languages and runtime platforms for software development. Today, many agile developers are moving beyond the original Java language to newer ones that introduce new capabilities such as functional programming and dynamic typing while still run on the robust Java platform. With the migration of development to the cloud, the Java platform is experiencing remarkable resiliency with new vendors continually entering the Java Platform as a Service (PaaS) market.
The recent news that Heroku, popular in the Ruby community, is now supporting the full Java stack with a focus on enterprise Java development is a trend we see continuing. Vendors are embracing of the Java platform with it’s multi-language, multi-platform support. This article outlines the past and present of the Java platform including the new generation of languages and the leading PaaS vendors supporting them.
Java: Language and Platform
The Java language and underlying platform (including the Java Virtual Machine or JVM) emerged in 1995. Created by Sun Microsystems, Java burst onto the scene at just the time the Internet was taking off. After finding mild success with their initial focus on Java Applets (code run within web browsers), Sun turned their attention to enterprises and released the Java Enterprise Edition in 1998. Designed for building enterprise-class web applications, JEE (aka J2EE) has become one of the predominant standards today for building web applications. Many vendors sell products that implement the Java specifications including Oracle, IBM, HP and VMware with Spring.
From the beginning, the Java platform included the ability to run applications written in programming languages other than Java. Although Java has remained the most popular language, newer languages and newer compilers for existing languages are enabling the Java the platform to continue to grow beyond Java the language. While remaining a mainstay for enterprise customers, the growth of mobile and tablet apps in particular (Android is built with Java) has helped fuel the growth and popularity.
But today, nearly 20 years after the initial release of Java, it’s the platform and not the programming language that is increasingly the focus of agile developers and vendors.
Popular Languages for the Java Platform
There are several emerging languages that run in the Java platform and bring new capabilities to developers:
Scala – Short for scalable languages, Scala adds functional programming for improved parallel computing on the Java platform. Because it runs on the JVM, it can interoperate with existing Java applications and leverage existing Java libraries. Scala’s focus on parallel computing compliments the on-demand, scalable nature of cloud resources. As such, Scala is ideal for building highly scalable applications that run on dynamic cloud resources. Twitter, LinkedIn and Amazon.com are prominent solutions that use Scala for their high-performing applications.
Clojure – Clojure is a Lisp dialect for the Java platform. Like Scala, Clojure brings functional programming paradigms to the object-oriented Java community. Applications developed in Clojure can leverage multi-threaded architectures for fast performance and parallel processing – ideal when doing analysis of big data.
Groovy – Groovy is a dynamic language for the Java platform that can be used for applications as well as scripting. Similar to Ruby and Python, the language is fully interoperable with Java but it’s compact style means is generally requires less code to build applications (thus improving developer productivity). When used in conjunction with the web framework Grails the duo is quite similar to the popular Ruby on Rails framework for building apps. Because it runs on the Java platform and the code is similar to Java in style and syntax, many agile developers prefer Groovy and Grails for rapid web application development.
JRuby – JRuby is an implementation of the Ruby programming language on the Java platform. Originally developed by Sun, it’s now open source and allows developers to build Ruby applications that interoperate with Java applications and can leverage existing Java libraries. JRuby allows developers to rapidly build web applications in Ruby on Rails and deploy them on infrastructure that supports the Java platform.
Jython – Similar to JRuby, Jython is an implementation of the Python programming language on the Java platform. It allows developers to build applications in Python that interoperate with Java applications and can leverage existing Java libraries. With the popularity of Python growing, especially in the scientific community, Jython offers a nice solution for those wanting to use Python while still run on the familiar Java platform.
Java the Cloud Platform
A growing number of vendors are offering Java Platform as a Service (PaaS) solutions that support the Java Standard Edition (JSE) and JEE standards. Increasingly, these vendors support applications written in the languages described above in addition Java.
While individual features vary by vendor, most all provide simple steps for a developer to upload their Java application (as a .war or .ear file) and the solution takes care of much of the rest. This includes auto provisioning infrastructure resources on-demand (such as computing, storage, network and load balancers), deploying the application and monitoring for health. Most also include the ability to auto-scale the application based on traffic – a great feature for ensuring your web application can handle peak loads.
Like all PaaS’s, these solutions generally allow the developer to focus on the business domain and application logic and not worry about the infrastructure necessary to run it. Some, like Amazon’s Elastic Beanstalk, allow users to manage the underlying resources if they wish while others, like Open Shift and Heroku, keep these details hidden.
While a complete review of Java PaaS solutions is beyond the scope of this article, options include (in alphabetical order): AppFog, Cloud Foundry, CloudForge, CloudBees, CumuLogic, Elastic Beanstalk, Google App Engine, Heroku, Jelastic, Red Hat Open Shift, Stakato, StratosLive and Windows Azure.
Java’s future has never appeared brighter. While the popularity of Java the language may be fading, Java the platform has never been stronger. Developers are discovering new capabilities for solving complex problems and vendors new solutions for deploying Java applications in the cloud.