The series focusing on cloud essentials for IT professionals includes:
- Part 1: What Is Service
- Part 2: What Is Cloud
- Part 3: Windows Azure Computing Model
- Part 4: Fabric Controller and AppFabric
- Part 5: Publishing Windows Azure Application to Public Cloud
- Part 6: Building Private Cloud of IaaS
Cloud computing, or simply cloud, is changing how IT delivers services and how a user can access computing resources at work, from home, and on the go. Cloud enables IT to respond to business opportunities with on-demand deliveries that are cost-effective and agile in the long run. Much happening in enterprise IT now is a journey to transform existing IT establishment into a cloud-friendly, cloud-ready, cloud-enabled environment. To start off, there are key concepts we, as IT pros, must grasp to fully appreciate the transformation that is going on and forward.
What Is Service
In the context of IT, “service” is a term frequently used to describe a form of delivery or availability. In a Windows machine, for example, core services to authenticate users and process commands automatically start and run behind the scene to provide essential functions for running a desktop session. In the context of cloud computing, I simply explain a service as something delivered “on demand.” Namely, a computing resource delivered as a “service” is available on demand to an authorized user. Specifically in cloud computing, “on-demand” also carries additional connotations.
On-demand in the context of cloud computing suggests that a resource is made available whenever and wherever an authorized user makes a request. How it happens is not a concern of a subscriber. It is about the ability to consumer a subscribed resource anytime, anywhere, on any network, period based on SLA. It implies compute, networks, and storage capacities can be adjusted dynamically according to demands.
In other words, a cloud computing architecture must enable that a subscriber can increase the capacities as needed and decrease them when no longer required. On-demand also means there is a business model in place to support “pay as you go” and “pay according to how much you have consumed.” In a production environment, there may be administrative as well operational constraints on to what extent a subscriber can change the resource allocations. This can and should be negotiated and stated in a service level agreement between a subscriber and a service provider. Conceptually, a service delivered through cloud is a set of computing resources available, scalable, and consumable on demand.
Characteristics of Cloud Computing
Cloud similar to many IT terms like: database, networking, security, collaboration, portal, workspace, etc. is something that too often means different things to different people. Accessing your company’s application via Internet, is that cloud computing? Employing VPN to authenticate into your private network, is that a private cloud? Is remote access considered some form of cloud computing? These questions may seem trivial, yet they are fundamental to preclude ambiguity, uncertainty, and uneasiness. For technical professionals, cloud may mean: utility computing, high speed computing grids, virtualization, automatic configuration and deployment, on-demand and remote processing, and combinations of them. For non-technical users, cloud is simply the Internet, a cable form a service provider, or just something connecting my computer. Cloud computing nonetheless is logically well defined and very specific on the what and how.
The conventional wisdom, as published in The NIST Definition of Cloud Computing, assumes noticeable characteristic regarding how computing resources are made available in cloud including:
- On-demand self-service
- Ubiquitous network access
- Location independent resource pooling
- Rapid elasticity
- Measured service with pay per use
And realize that based upon a delivery model, these characteristics results in various user experiences. For instance, on-demand self-service may imply the ability to: acquire an account and create a user profile as in SaaS, code and publish an application in PaaS, or configure and deploy a VM in IaaS.