Tuesday, September 25, 2012

Essential features of Enterprise Class IaaS (ECI)

Cloud is everywhere. If we'll make an analysis which IT news are making most of headlines - I bet "cloud" will be one of top 3. We see lot of interest out in the field as well. Service Providers (CSP's) are sending questions, RFI's or RFP's - trying to figure out what's available on the market for building public clouds. When meeting prospects first thing I'm trying to understand is "which cloud" they're trying to build and who's going to be target consumer of this cloud. According to my analysis - we have at least two major cloud concepts: Commodity Cloud & Enterprise Class Cloud. I'd not discuss Commodity Cloud as most of clouds being dicussed and build are Commodity Clouds (Amazon EC2, Openstack based clouds....ect.) I'd like to focus on Enterprise Class Cloud. There's no firm definiton and common vocabulary however there are number of features which are essential to Enterprise Class Cloud.
Feature #1: Target Consumer
First and foremost feature is TARGET CONSUMER. Target consumer for commodity cloud is software developper - often called DevOps - who wants to write webscale application and does not want to deal with infrastructure complexity. It takes an API (Amazon EC2 API for instance) and with few lines of code provisions relevant infrastructure that will host his application. This is not what an average enterprise user will be looking for. Enterprise user is hosting lot of "legacy applications" which have very specific infrastructure requirements like: resiliency, QoS or security. In most of the cases, applications are not "horizontally scalable" and are hosted in a single VM - therefore VM security is a paramount. In webscale applicaitons written for cloud VM is only a "small element" and application can withstand single or multiple VM outage. It's not a case in enterprise environmemnt.
Summarizing, enterprise class cloud shall provide automation for very complex network environments which are compatibile with what enterprises have currently in their datacenters. It's not only limited to virtualized infrastrcuture but as well shall cover physical rotuters, switches, ladbalancers and firewall to comply with security audit requirements.
Feature #2: Infrastructure
We have defined target consumer and now let's try to figure out infrastructure requirements. For commodity clouds most important thing is scalability to host hundreds of thousands VM's - hence networks for commodity clouds are based on L3 architectures without redundancy. Redundancy in most of the cases is being handled on "regional/datacenter" level. This is possible because redundancy in commodity clouds is being built in application logic. This is not a case for enterprise customer. Application running on VM must be SAFE and VM continuity is a key. Therefore we need to have fully redundant network infrastructure where underlying components outage will protect VM running on hypervisor. This is being handled on multiple levels: networking & hypervisor level - as enterprise class applications very occasionally are horizontaly scalable and in most of cases are running in single VM. Summaririzng, enterprise class cloud must provide compatibility with what enterprises are having in their datacenters in order to be able to move workloads to new operational model: cloud.
Feature #3: VM backup & restore
We mentioned that VM protection is a key in enterprise class cloud - therefore besides of network & hypervisor protection later - we need to provide facility where user can easily make backup & recovery of his VM. Most of the systems on the market are only dealing with VM provisioning & deprovisioning - leaving backup&restore for other 3rd party tools. In my opinion easy backup & restore is absolutuely essential and there must be a feature that by single click is enabling us to make VM backup on demand - or schedule backup to happen in off-peak hours. Havign said that Enterprise Class Cloud platfrom shall be seamlesly integrated with backup & restore applications. This is irrelevant for commodity cloud - as in commodity cloud VM is running only piece of code - therefore backup policies differ from enterprise requirements.
Feature #4: License Management
Bare VM is definitely not an offering which is of enterprise customer interest. Enterprise customer will be willing to purchse/consume VM+applicaiton stack on it - which includes operating system. Having said that, cloud platform needs to provide license key management. When consumer is purchsing an application then must have a choice to buy application license which needs to be taken care of by platform. This creates whole revenue chanel for SP by having extra license sales channel. For private cloud it's irrelevant as very often enteprises are using ELA's and they're being tracked by ITSM inventory tools. For public cloud it's bit different as you need to deal with licensing on multi tenant basis.
Feature #5: Service Assurance
Enterprise class user will be hosting enterprise class applications externally (in a cloud)  - therefore service assurance is an essential part. Customer needs to know how infrastructure is performing, heat maps & trending is highly regarded. Simple metrics about CPU/Memory are not enough in enterprise class cases. Systems must provide robust & complete analysis - otherwise enterprises will not move mission critical applications to the cloud.
Of course this list is not definitive. It's listing features of enterprise class cloud that I personally find essential. I'd try to list other features in comming blog posts.