| |
Cloud Computing – Introduction
The prospect of Cloud computing technology goes far beyond simply providing scalable hardware, network capacity, and application support with software updates. It has the potential to transform the role of IT within the enterprise. The business world is grappling with this uneasy reality that companies can run almost every information system they rely on without owning any computing and storage equipment other than client devices and fast network switches and routers. Thanks to the Cloud computing concept and business model, businesses can rent access to applications and data center equipment: CPU, network, and storage that reside on the Internet, pay for them on a subscription or per-use basis and provide employees with access to information from anywhere, any time with nothing more than a connected device. The potential to one day subscribe to systems as a service could mean an end to wrangling with infrastructure decisions by letting a service provider worry about issues like server capacity, storage and bandwidth.

Services available in a Cloud
The actual definition of a Cloud service is still evolving, but there are attributes that many agree comprise a Cloud service:
- The service is provided by the platform provider and resides in the Cloud
- The service is always available
- The interface to a service is defined
- The provider of the service will maintain, enhance, and resolve any problems with the service
- Any service can be allocated a cost
Examples of Cloud services are low level services that require an API, like storage or database access, or a high level service like an application.
As businesses face increasing pressures to be as agile as possible, they’ll be forced to adapt to evolving computing models to remain competitive. But how do enterprises relate and understand what the Cloud concept can do for them. No more wrangling with software updates or growing storage requirements and having to expand computing capacity and capability and making room for additional racks of servers to support a growing business? .
Cloud computing also may prove to be an ideal strategy for reaping the full benefit of mobile devices by allowing companies to essentially push their application services out to employees, rather than employees having to get access to the IT environment. Like all technological advances, Cloud computing has risks and enterprise decision makers should understand the risks before making a move to Cloud computing. Many enterprises utilize some form of Cloud computing already thru use of mail services like gmail, hotmail, SalesForce.com, Amazon S3 and EC2. Even employee HR services such as personal benefit services thru Fidelity or Hewett for example, are utilized by enterprises as part of their employee services. Recently the New York Times posted its reference libraries in the Cloud as a world wide reference service. In addition Genentech has converted their entire IT operation to web based services.
This paper examines three key functional segments that comprise today's Cloud computing architecture. Taking this piecemeal approach enterprises can take advantage of these key functional capabilities at a pace they are comfortable with in order to obtain a reasonable level of comfort with the technology.

Infrastructure (IaaS)
Infrastructure as a Service is the simplest abstraction of Cloud computing. The infrastructure consists of three major components – equipment, data center and management. Equipment consists of the servers, network, disk, CPU, memory, and data center facilities, the basic building blocks of a virtual system or Cloud.
The data center includes the facilities that house the equipment, like power and cooling systems, backup generators, and security systems. Management consists of managing the systems and monitoring the performance of the Cloud and of specific user applications.
These resources are managed by a provider which makes these facilities available to the general public. The infrastructure size of a Cloud is one of the criteria for choosing a particular Cloud. It’s not a requirement that Clouds are virtualized, however, the trend is towards virtualization because of the benefits of cost, management, and scalability.
Managed Hosting
Managed hosting allows you to basically choose the platform according to your business needs, very similar to the way you would build out your own infrastructure. However, someone else manages it for you. This can be extended to having the provider maintain or provide specific services in the Cloud. This type of Cloud could range from a private Cloud to a public Cloud. You would host your current applications in the Cloud and maintain them as you do today. Testing platforms and deployment platforms would all reside in the Cloud.
Platform as a Service (PaaS)
Platform as a service is the next layer above the infrastructure. It consists of capabilities that developers can integrate into applications and services that allow them to develop applications. This layer refers to application development, test, deployment and maintenance in an integrated environment. Basically the entire application life cycle would be supported on the platform.
In many situations today, applications are developed on one system, tested on another system, and then deployed on yet another system. Building and maintaining each of these environments, takes away from the actual development of the application. You end up spending considerable time just getting your application to run in the next environment. Google provides an environment that addresses many of these features. However, it only supports a specific development environment, i.e. it currently only supports Python and an associated IDE. By only supporting a specific development environment, you are not only required to learn a new environment but you also become locked-in with the current provider of the platform. Can you migrate your application to another platform? Will the other platform have the same services? The questions go on and on.
Ideally you would want a platform to support a development environment that is standard in the industry, like Java. Amazon’s EC2 supports Java with an Eclipse IDE. WaveMaker also deploys an open IDE on Amazon’s EC2 that is Java based for developing web applications. This whole area of application development in a Cloud is just beginning to take off and developers do not want to be constrained by the development tools they have to use. They also do not want to use proprietary methods.
Issues that arise when picking a PaaS vendor are similar to the ones you would have to make if you were building your own IT platform for running your applications:
Will my hardware and related infrastructure be enough to handle the load?
Will the development tools being used allow me to manage the software development project?
What are the maintenance costs now and in the future?
The same issues need to be addressed when choosing a PaaS vendor. If your application has the ability to grow unbounded, can the PaaS vendor handle its growth? Does the PaaS vendor have the tools you need to develop your applications? In this case, what are the tools? Are they proprietary? Are they open source? Can you migrate these to another Cloud? And finally, what are the costs of the platform now and in the future? If you become locked-in to a specific platform, the prices can increase at any rate. This was evident in the early days when IBM locked-in all customers to their platform, and then raised the prices for software and maintenance. The customer had no where else to go.
Software as a service (SaaS)
Software as a service is the next level of abstraction in Cloud computing. This is at the highest level in Cloud computing. Basically, SaaS consists of applications that are available to a user over the internet for a price. Usually these applications reside in a Cloud where all the capabilities of the Cloud support the application, like dynamic scalability, high availability, and unlimited resources. By using these types of applications in large organizations that are locally or globally dispersed, they provide up to date information for collaboration.
The obvious benefits of SaaS to the user are that there are no up-front costs of purchasing, installing, and deploying the software and no costs in maintaining the application and its updates. In the true definition of SaaS, the application is a multi-tenant application which means that one instance of the application serves multiple clients, thus leveraging large economies of scale in deployment, management, and maintenance. The more sophisticated SaaS applications can also handle custom modifications for different clients. This is accomplished by describing the changes using metadata and interpreting this metadata at runtime to apply the necessary change.
Some examples of SaaS applications are the following:
- Salesforce.com’s CRM application
- Zoho’s CRM application
- Yahoo’s mail
- Google’s gmail and Google Docs – word processing, spreadsheet, and presentation program
- Microsoft’s Azure’s offering of Exchange Online, SharePoint, Office Communications, and Dynamic CRM
- ThinkFree provides an office suite – word processing, spreadsheets, and presentation graphics
- NetSuite provides applications in ERP, CRM, Ecommerce and Business Intelligence
Not all applications categorized as SaaS applications are multi-tenant. In many cases, each client has their own copy of the application and associated modifications. This is much like the ASP (Application Service Provider) model. Either the Cloud provider or the customer will maintain the application including periodic updates. This is can be negotiated with the Cloud provider. As you can see, there are various levels of application control by the user depending on the application, or type of application. For example, an email application like Google’s Gmail, would be entirely managed by the Cloud provider, Google. The user would not be involved with any modifications, updates, or maintenance.
At the other extreme, the application could be a proprietary application that is deployed in the Cloud where the user configures, deploys, maintains, and supports the application. In either case, there are benefits in using the Cloud environment as your platform. Obviously, in the case of a true SaaS application where the user is not responsible for any application life cycle activities, the user saves on all aspects of the application life cycle and the platform costs since the provider is responsible. At the other extreme where the user basically is responsible for all aspects of the application, the user saves on the costs of the platform and its maintenance costs. And of course, there are various examples that lie between these two extremes.
Cloud Attributes
Virtualization
Any particular Cloud can have servers that run Linux, Windows, Solaris, or any other operating system. Another alternative is to provide virtualization of the servers. Virtualization allows you to take hardware and divide it into pieces that fit business needs. However, one must remember that not all virtualizations are the same. For example, Vmware, Sun, and Microsoft all have their own hypervisor, which means that migrating applications from one environment to another is not transparent. Virtualization of servers allows for better management of resources especially when dynamic scalability is required. This also relates to deprecating resources partially or completely, since the cost of Cloud computing is based on usage in many cases.
When virtualization is used, some of the areas you need to be aware of are the following:
- Application support
- Server efficiency
- Aggregation of resources
- Management
- Pay per use
These issues should be addressed if you are looking to enter into a Cloud that is virtualized. If you plan to keep servers in-house for developing or testing and then deploy into a Cloud environment that is virtualized, you should consider installing the same virtualization product on your own servers. This makes the deployment safer and basically eliminates the testing of the application in the Cloud.
Network
The components of a Cloud do not have to be located in one place. They can be distributed in a number of locations. Thus, applications can be distributed and run in multiple locations. This is usually not a problem unless there are network latency problems. Many Cloud providers will guarantee certain service levels, and others will allow your applications to run in a particular location. When picking a Cloud environment you need to make sure the network bandwidth can handle not only your current load but also your future needs. This is usually one of the areas of Cloud computing where users under-estimate the bandwidth that is required, especially when deploying a web application.
Storage
The Cloud storage technology can offer cost savings, incredible scalability, high availability and the flexibility of on-demand capacity. Some of the players in this arena are EMC, Amazon’s S3, Nirvanx, The Planet, and Parascale. It is estimated that Cloud services are expected to reach $35 to $40 billion by 2012. A good portion of this revenue is expected to come from storage. In fact, expect to see Clouds specializing in just storage which includes backups and archiving.
Cloud storage can use enterprise-class storage or less expensive storage depending on the use. For example, why use enterprise-class storage for archiving. As long as the performance is acceptable based on your business needs, you can save money and alleviate the headaches of maintaining a storage environment by utilizing Cloud storage services. When data is stored in a Cloud, the provider can use techniques like de-duplication to reduce the storage requirements and reduce your storage and bandwidth costs even more if you are being charged by the gigabyte used.
Usually storage charges are based on amount of storage used and bandwidth necessary to access the storage. In addition, the providers of the Cloud can also charge per request of the data. This is where the cost can escalate. For archived data that only needs to be accesses infrequently, there’s not a problem, but when the number of accesses start to climb beyond your expectations so do the costs.
Tier one data, which is mission critical data, is not a candidate for the Cloud at this time due to security, location, and access. This is the data that is used to run your business and usually is associated with high volume transaction processing. Tier two and tier three storage which is non-mission critical data is the likely candidate for Cloud storage, and based on the latest studies this is were the action is currently. As with all technology, the storage vendors will continue to address the market issues and improve on their products to eliminate some of the current issues noted.
Issues that should be considered when dealing with storage are the types of data that needs to be stored and retrieved along with the frequency of access. And then there’s the price for storage and the operations. The obvious use for Cloud storage is for backups and archiving, since these don’t require the response times of mission-critical data. You need to determine what format the data is being stored in; how accessible it is; are there translation requirements; can the backups be tested; how protected is the data in transit; and how long will it take you to get it in a form that you can use on your servers. These issues also apply to moving storage between Clouds. You want to keep your lock-in with a vendor at a minimum. At each level of Cloud computing there are potential issues that arise relating to vendor lock-in.
On the positive side, cost savings can be realized in terms of your physical infrastructure costs when you use the Cloud storage services. You save from purchasing traditional storage arrays, data centers, offsite backup and recovery facilities, management of these resources, and the facilities like heating, cooling, and maintenance.
HRG believes that mission critical data will remain in the enterprise’s local storage for the next three to five years, but tier two and tier three data will start to move from the customer’s data center to the Cloud. There will be Clouds that specialize and are tuned for archiving and backups. Providers of these Clouds will see the most activity in the next few years. Just by eliminating the costs associated with tier two and/or tier three storage, enterprises can reduce their costs considerably.
Considerations for selecting a Cloud service
From the user point of view, you don’t need to know anything about the infrastructure of the Cloud computing environment. You only need to know if the Cloud computing environment meets your requirements for running your applications. The nice thing about Cloud computing is that you can migrate a little at a time if you wish. You can continue to host your own applications while you migrate them one at a time into the Cloud computing environment.
A user needs to determine his/her business computing requirements and then match those to the appropriate provider. The following is a list of items that can help you distinguish one provider from another.
- The key component is the stability and experienceof the provider. The last thing you need is to make a contractural commitment and the provider either going out of business and or being acquired by another firm who may be a competitior. In either case, your business is at risk.
- In addition, security of your applications and data are critical to your success and this is the second most
- Size of server farm – the size of the server farm determines the capacity that can be handled. The user needs to determine if the Cloud is sufficient not only for his business needs (present and future) but for all the other users of the Cloud.
- Global and Local server farm locations – do the server farm need to be global and connected to run the business or local. Does the provider need to provide collocation of servers. All theses questions need to be analyzed based on business needs.
- Application types supported – does the Cloud support the type of applications required of the business. These can range from enterprise applications (CRM, ERP, HRM, Retail, Financial services, manufacturing, etc.), federal government, entertainment (gaming, multi-player online, social networking, etc.), Web 2.0 (RIA), SaaS, and Carrier (telecommunications).
- Multi-tenant applications – these are truly applications that fall under the umbrella of SaaS. One instance of the application supports more than one user or tenant. In addition, each user can have their own customized modifications. Obviously this type of application is the most cost effective with regards to resources. In this type of environment, the application and associated changes are maintained as metadata, where the metadata is referenced at runtime.
- Service Level Agreements (SLAs) – does the provider provide SLAs for reliability, scalability and availability.
- Multi-tenant development environment – does the provider provide or support a development environment (IDE) for developing multi-tenant applications.
- ISV support – what type of applications does the provider support, especially in the virtualized environment.
- Security – is the security provided sufficient for the user’s business.
- Support for specific regulations – does the provider support business regulations for your business (SOX, HIPPA).
- Services – what type and size of services does the provider support and how experienced are they. For example, the user may want their applications to be maintained, modified, and enhanced by the provider.
- Cost – how is the cost computed and how does it scale when more resources are needed.
- User interface – how easy is the user interface for increasing capacity, monitoring your application, determining performance measurements, etc.
- HA and Disaster recovery – what are the parameters associated with HA and disaster recovery (e.g., how fast is the system restored to working order in case of a disaster).
- Niche provider – is the provider a niche player. This is important if future applications require capabilities not currently provided.
Conclusion:
HRG believes that Cloud providers that provide a variety of options in hosting the different types of applications will be the most successful. Users that want to cut costs and still maintain their enterprise applications will be looking for a Cloud environment that supports their needs. The key factors will be the ease in which the application can be deployed in the Cloud and the tools available for maintaining the application.
|
|