A Monster with Two Heads in the Clouds: “Virtualization” and “As-a-Service”
Virtualization-centric solutions versus Service-centric solutions.
- Virtualization-centric solutions – in this approach, the main function of the cloud is to provide different provisioning and management services around servers virtualization. Server images which are deployed on virtual servers are key components in this approach as the atomic deployment and management unit for the cloud. Application provisioning is usually a set of images deployed on a number of servers. The virtualization infrastructure provides many of the enterprise level features such as high availability, replication of data, storage allocation and management, and even in some cases scalability for the application. The virtualization-centric approach evolves from the bottoms up, starting by trying to solve infrastructure inefficiency issues, server utilization, resource management and more.
- Service-centric approach – in this approach, the cloud aggregates several high level services – such as data services, platform services, management services etc. – for customers to choose from when developing and deploying applications. This direction is demonstrated by different cloud vendors who offer a comprehensive framework which includes everything needed for the application to run- with all the services often wrapped in a friendly user interface, “shielding” the customer from the underlying infrastructure. In this approach the user is spared the virtualized infrastructure layer: want more storage – move this slider, want more scalability for the application – slide the cluster size control higher, etc., Great examples for this approach are the Heroku and PHPFog platforms.
There seemingly is no contradiction between the two approaches, and they can – in theory – reside side by side on the same infrastructure cloud provider. However, I do see a problem with offering both tracks on the same vendor, because of the fundamental differences between the two driving forces.
Service-centric solutions are driven by the developers community, while the virtualization approach is driven by the IT community. What’s good for IT is not always good for the developer and vice versa.
The IT community and the Virtualization-centric approach:
IT organizations look for horizontal solutions, such as a virtualization infrastructure that can be used by all applications, and in most cases does not require application changes.
Private clouds, being dominated by IT way of thinking, are dealing mostly with existing and legacy applications, with only a small portion of the applications actually in development stages. IT managers are looking for solutions to their major pain: efficient management of the business-critical components – which is an operational challenge. Future developments are a small piece of the pie as they see it, and pose a less immediate problem that needs addressing. This is the reason why most private clouds today do not have service-centric solutions in place. Another point playing in favor of the IT approach is the maturity of those cloud services and their mobility. Most service-centric solutions today are built for specific platforms or public clouds and are not distributed as enterprise software.
The developers’ community and the service-centric approach:
Public clouds, on the other hand, are more focused on Service-centric approach. At the heart of this philosophy is a short and efficient cycle between development and production, with none, or very little IT resources involved. This approach assumes mostly new developments and deployments and very few legacy projects. These solutions are being used mostly by smaller organizations, or even single applications, driven these days mainly by small development groups and the mobile applications market.
The services built today already contain management features, configuration change processes, scaling features, high availability, disaster recovery etc. These features are intrinsic to the service, and are frequently not even exposed outside of the service boundaries. The service is supposed to provide an end-to-end solution – encapsulating all the development issues and infrastructure to make life easier for the customers.
Public cloud services and the IT community:
In most cases, IT organization would like to have a much higher level of control over their public cloud services, similar to the control they have over their private cloud. At the very least, IT professional expect some integration with their management systems and procedures. For IT managers, having no control over the infrastructure and relying on an external company or an automated system (Stanley Kubrik’s HAL rings a bell? J ) could steer up concerns regarding their ability to provide the level of service they’re used to. This is why many enterprises which are in the process of building a private cloud have no presence on public clouds.
Your Organization’s Cloud Strategy
The cloud is a game changing philosophy. Having the right perspective on it is crucial for the future success of any organization, small or large. Today there is an immediate economic justification for migrating from older data centers and dedicated servers to virtualized environments. In addition to the immediate financial justification, I believe that the future value of the cloud lies in the simplicity and availability of resources and services in a continuously changing business environment and fluctuating economy.
The business world we operate in introduces new challenges on enterprises and on how they are required to develop and maintain their applications. The ability to minimize the go-to-market time and the turnaround time for the business to react are the most powerful capability of a cloud strategy.
Service-centric solutions are gaining popularity and are become more mature. Organizations, their IT department and their R&D groups have to plan their strategy beyond virtualization – to platforms and services, both internal and external. This is what the cloud really about.
Xeround’s cloud database service is a great example of a cloud service that is designed to be part of a broader service strategy -
- Designed to run on private cloud as well as public clouds
- Integrated into application platforms (Heroku, Open Source PaaSs and more)
- It is cloud agnostic and can be deployed on any cloud infrastructure
- Proving its maturity fast with the help of our customers
- Makes use of the underlying virtualization infrastructure to manage resources automatically
- Simplifies developers work by providing automatic scalability, high availability and recovery
- Includes (some to be exposed soon!) cross cloud features
- Always-on, no downtime guarantee to ensure business continuity
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)