So what is the Cloud?

« Back to Main Blog Page

10 March 2010 by Administrator

Cloud computing is a style of computing in which dynamically scalable and often virtualised resources are provided as a service over the internet. Users do not need to have knowledge of, expertise in or control over the technology infrastructure in the "cloud" that supports them.

Cloud computing is the next step on from grid computing. It may build on grid computing, or it may have little or no centralised infrastructure. Currently, the architecture of the cloud consists of a number of reliable services delivered through data centres, utilising servers with differing levels of virtualisation. These services are accessible anywhere that has access to networking infrastructure. The Cloud appears as a single point of access for all of the users needs. Commercial Clouds typically offer service level agreements to their customers. A large amount of the foundation for Cloud has been provided from the Open Source community.

Customers using the Cloud are renting usage of the system, paying by usage or subscription. This reduces infrastructure cost and gives the customer much more flexibility in regards to expanding and contracting their IT needs.

The Cloud

There are currently a number of providers of Cloud Computing in the marketplace. This report will focus on the following providers:

Amazon Elastic Compute Cloud
This is a part of the Amazon Web Services. EC2 is a web service which allows customers to create and manage different server instances.  S3 is a web service providing scalable data storage and Elastic MapReduce is a web service which provides data crunching/analysis services.

EC2 allows multiple AMIs (Amazon Machine Images) which can be Windows Server 2003, 2008 or any of the AMIs available from Amazon. Persistent data is stored in the EBS (Elastic Block Storage) which can be utilised across instances of the AMIs. The deployment procedure is very command line based, but this could potentially be automated to make life easier.

IBM Blue Cloud
An initiative which builds on their Tivoli industry management software by providing a Cloud to existing/new customers combined with extensive consulting / training to help customers successfully move to Cloud computing.

IBM is providing their Information Management, Websphere and Lotus products as Amazon AMIs for developers to work with.

Microsoft Azure
Azure

Azure is a new operating system, originally codenamed "Red Dog". The system consists of four "pillars"; storage; the "fabric controller", which is a management system for modelling, deploying and provisioning; VM / virtualised computation and a development environment. When Azure is deployed on one machine, multiple instances of it can be duplicated on the rest of the servers in the Cloud using virtualisation technology. This is achieved using simple Xcopy deployment.

Azure contains four layers:
Layer zero is Microsoft's Global Foundational Services (GFS). This is the lowest level of the software that interfaces directly with the servers.

Layer one is the base Azure operating system. This layer networks and controls the Windows Server 2008 machines which comprise the Microsoft-hosted cloud.

Layer two is a set of services which run on top of Azure. The initial set of services provided include Live Services, SQL Server Data Services (now known as SQL Services), .NET Services (formerly know as "Zurich"), Sharepoint Services and Dynamics CRM Services. Developers can use these services as required, or use the lower level Azure services to construct Cloud applications, or use the services from normal hosted web/Windows applications.

Layer three is defined as the Azure-hosted applications. Some of these are from Microsoft and include Sharepoint Online, Exchange Online and Dynamics CRM Online. Microsoft is also currently working on Forefront Online (a security product) and System Center Online (a management service of IT pros). It should be noted that the Sharepoint Online offering is very much more lightweight than MOSS 2007 and is missing a significant number of features. These Azure hosted applications will function in the same way that Salesforce does currently

When writing an application, the developer will still be using Visual Studio. The Azure libraries are downloaded and provide new cloud application types. Once a project is set up using the Azure web site, the application can be published to Azure using the standard Visual Studio publish function. When creating the project, the user is provided with UAT and Live URLs for the given project.

Sharepoint Services would allow us to add services for storing documents, provide InfoPath forms, control document security and provide complex search capabilities across the document storage. Dynamics CRM Services provide extensibility for Dynamics CRM. An application will be able to manipulate information stored on a Dynamics CRM 5 based system by using the CRM service. The use of these services would enable us to provide software which uses CRM and Sharepoint functionality in our own applications.

One of the differences with Azure is that you no longer use a SQL database for data storage. There are already tools appearing to migrate from SQL server databases to SDS storage. Microsoft provides two data storage methods; SQL Data Services (SDS) which is an entity-based storage service, and Azure Table Storage (ATS) which is a structured table based service. SDS offers more flexibility and security. There are some considerations with using these services. Being web-based, they are slower than SQL server so caching is more important. They do not support stored procedures, grouped queries and you cannot return partial records, ie. just an ID column from a query. It appears that Microsoft is pitching ATS for session storage and SDS for long-term data storage. Essentially this means that as long as an application only references SQL in the Data Access Layer, this should make the transition to Azure easier.

Azure uses familiar tools, Visual Studio, SQL Server, IIS7, etc. It provides a non-downtime upgrade facility by upgrading instances of an application one at a time. Deployment is managed by the Azure Portal, which allows Live and UAT environments to be scaled and configured and provides one-click deployment from UAT.

Azure uses a consumption based pricing system, although they have not released the tariffs at the current time.

One caveat of Azure is that the SDK is only supported on Vista and Server 2008.

SalesForce
As well as providing CRM, SalesForce has provided a platform called force.com, which provides a platform built on Eclipse to build applications mostly through customisation, with a purpose built IDE. Services provided by force.com are security, data, Integration, logic, user interface and application exchange. Force.com is licensed per user, application and month.

Citrix Cloud Center
The Citrix Cloud solution is provided using XenServer Cloud Edition, which is a virtual infrastructure solution. This manages any combination of Windows and Linux environments. Usage is metered rather than time based. Management is provided by Citrix Workflow Studio. This allows for burstable clouds. Citrix Workflow Studio integrates with Visual Studio to provide tools for developing and deploying activities (which are services) to the cloud. The system provided is very similar to the Amazon offering, but offers metered rather than time costing.

Zoho
Zoho offer a number of cloud-based web applications for doing common business tasks such as CRM, document management and project management. Zoho offer free utilisation of the products for low usage (ie. up to 3 users of the CRM product), and then charge per user per month.

Google Application Engine
Google offers a suite of APIs in Java/Python which provide the ability to host web application using Google's cloud space. Data storage is provided by an API. The google model provides quite generous free quotas before switching to the billed system. Payment is driven by usage rather than time.

Training
Using any of the Cloud systems would inevitably involve an element of retraining. The way that data storage, view state information and file management are handled in Cloud computing are very different to the model that we are used to. However, most of the offerings strive to make the transition as painless as possible and offer very visual tools for deployment and configuration.

Microsoft, as usual provide a lot of tutorials and online training for Azure. Out of all of the cloud providers, it provides the best resources. Amazon also provides reasonable resources, and its system seems to be starting to be used by other vendors.

In terms of the tools that we are familiar with, Azure is probably the most painless transition from our current development arena.

So what does this all mean?
The main advantage of Cloud based computing is that you no longer have to worry about scaling, load balancing or downtime of the application. Deployments should be much easier. There are some concerns around the limited ability to rollback applications, should they be found to be causing problems (for instance, Azure currently only allows you to swap the Live and UAT environments, so if you had a new UAT deployed, this would not work).

The removal of load balancing and scaling issues should result in time savings in-house, as many of the support tasks associated with a deployment would become the responsibility of the cloud provider. However, the different pricing structure would have to be evaluated against the current costs of hosting a system.

Where we envisage writing a system which has large amounts of data usage or many users of a system, Cloud computing looks to be a viable way to offer applications which can scale up or down discreetly as required. There are great possibilities to mix and match normal web applications which use Cloud based services for handling data which could be required by a large number of users in different locations. Alternatively, the whole application and data can be deployed to the Cloud.

The porting of existing system might prove to be problematic in regards to data migration. For instance in Azure there will be no migration implementation until Visual Studio 2010.

The security levels offered by most of the major systems available should meet the criteria that we need for secure data transmission and generally have lower attack vectors than hosted environments.

There have been mentions in the media about the reliability of cloud computing when compared with traditional hosted systems. The statistics on reliability show that cloud computing has been as reliable, and in some cases more reliable than hosted systems due to better redundancy for dealing with hardware failure, etc.

The only issue with going with a particular cloud provider is the cost of retraining and recoding involved in changing if the pricing structure becomes untenable. However, with the amount of competing products, it's likely that pricing will stay competitive.



Bookmark and Share

2 comment(s) for “So what is the Cloud?”

  1. Pokerspiel says:
    29 September 2010

    hey your blog design is very nice, neat and fresh and with updated content, make people feel peace and I always enjoy browsing your site.

    - Murk

  2. bagrhyday says:
    01 March 2011

    hi, new to the site, thanks.

Leave comment:

 
 
 

Follow Us On