June 16, 2011 | Written by: Manav Gupta
Share this post:
Everyone’s talking cloud, and some enterprises have started using it. So, what are the typical high-level use cases in a cloud? See the figure and description that follows. (In the figure, BSS is Billings Systems Support, and OSS is Operations Systems Support systems.)
- Request Service: At a minimum, a Service consumer should be able to request a Service through a portal or UI that is provided by the cloud. These Services typically reside in the Service Catalog, but more on that later.
- Integrate with help desk and asset management: When a Service is requested, it must be added to the enterprise catalog of Services being used (or delivered). Additionally, Service consumer might raise trouble tickets if a problem occurs, so the trouble ticketing systems must be updated with information about the new Service that is being provisioned.
- Provision Service: This is the actual engine for provisioning the requested Service. The automation layer must be smart enough to determine where the capacity is (on the managed infrastructure), whether the capacity meets the Service constraints, whether the underlying infrastructure is capable of adhering to the service level agreement (SLA), and then determine the details of how the storage will be provisioned, how physical CPU is carved out as virtual CPU, manage the overheads of the hypervisor that is managing and carving the resources, and so on.
- Integrate with storage provisioning: Although dealing with CPU and memory is easy (essentially, the hypervisor provides this capability), carving out storage and mounting it appropriately to support the applications running on the guest virtual machine (VM, Service) is tricky. Issues must be resolved: how much storage must be allocated to the core Virtual Machine Disk (VMDK, or equivalent, VM native storage for non-VMware hypervisors), how storage will be partitioned and mounted as Network File System (NFS) to the guest operating system (OS), or how the LUNs will be preformatted, mounted, and made available for the hypervisor to lay out the guest OS. All these choices determine the backup and recovery options available for the Service, and the growth possibilities as the software running on the guest OS is used over time.
- Discovery: After the guest operating systems are provisioned, they might have one or more software applications running on them. For complex Services, the provisioning might be a multi-step process (provision a VM, provision storage, provision virtual network connectivity for multitier Service, provision web, application, database, and so on), but ultimately, the software applications running on the guest operating systems have their own paths of dependency, licensing issues or constraints, support problems, upgrade issues, and others to be resolved. Therefore, the cloud infrastructure should provide the ability to discover the software applications running on the cloud, and their interdependencies.
- Monitoring: After a Service is provisioned, it must be monitored to ensure that SLAs are met, scaling demands can be handled, adequate backups are taken for restoring in the future, or simply claiming the resources back when the Service is no longer used or required. One way of doing this step is to deploy monitoring agents (after deploying the guest OS), with the preconfigured agent forwarding monitoring data to a preconfigured data warehouse.
- Event management: As the Services are provisioned, the problem of VM sprawl in a cloud only worsens. A Service deployed in the cloud might be composed of multiple VMs, each with a separate set of software applications. The cloud management platform should be able to consolidate the events from various sources and tie them to the single logical service delivered upon consumer’s request.
- Usage and accounting: One of the fundamental tenets of cloud is pay-per-use. Therefore, the cloud management platform should have the ability to track the exact usage, report it, and provide a bill (or integrate with external systems for billing and rating). Typically, most cloud management platforms have an agent that is deployed on the guest OS, which allows them to track usage. An added advantage on the cloud is to generate audit logs.
- Service dashboard: Instead of individually monitoring the guest operating systems and applications running on them, the best approach is to build a dashboard that displays the Service topology, mapping their current status (based on events collected from all monitored sources), providing a near-real time status of the cloud. The events consolidated earlier should be fed into the dashboard to provide a single, overall view.
- Manage service level agreements (SLAs): The most difficult of all is ensuring that the Service is available and usable to the standards agreed upon in the agreement. Behind the scenes, this step requires integration of all the previous steps and much automation to ensure that the IT resources that are used to deliver the Service are aligned to the SLA.