Not sure what cloud computing is, or how it can benefit your business? In this article, I'll introduce you to the cloud, help you interpret the buzzwords, and explain how your business might save time and money using a cloud hosting service such as Windows Azure, Amazon EC2, or Rackspace.
Discovering the Cloud and Cloud Computing
People use "cloud" as a buzzword when describing either the Internet or an intranet in association with some type of service or application offering. When you hear the term "public cloud," think of the Internet; when you hear "private cloud," think of your company's intranet. Usually, "cloud" by itself refers to the public cloud.
The phrase "cloud computing" refers to Internet or intranet applications and services that you typically access, run, or manage via a Web browser. Such services often don't require you to install software on your computer.
Here's another way to look at it: Cloud computing is the delivery of computing as a service rather than as a product. Instead of purchasing, installing, and running a program on your local computers, the program runs on the provider's computers, and you pay a monthly or yearly fee for access.
You can find three main types of cloud computing service providers.
- Software as a Service (SaaS) providers, such as Google Docs, Microsoft Office 365, and Salesforce, are services designed for end users. As such, they represent the end result of cloud computing.
- Platform as a Service (PaaS) offerings, such as Windows Azure, are services that IT personnel use in application development and for providing applications (SaaS) and Web hosting to end users. Basically, your IT staff gets remote access to virtual computers hosted at the provider's data centers. PaaS providers typically offer a managed Windows or Linux operating system, which means that your business can dedicate more resources to development and fewer to configuring and maintaining the OS. The trade-off is that your IT personnel will have less control over the underlying OS.
- Infrastructure as a Service (IaaS) providers, such as Amazon EC2 and Rackspace Cloud Hosting, are similar to PaaS providers, but they usually offer your IT personnel more control over the OS. Although they typically don't provide automatic OS updates, your business can use the raw infrastructure to develop and deploy applications on pretty much any platform or OS.
PaaS and IaaS Providers
I'll focus on PaaS and IaaS providers here. If you're familiar with the concept of virtual computing, you might think of these services as providing virtual machines (like VMware or VirtualBox) via the Internet.
PaaS and IaaS providers supply access to their shared data centers, giving you the reliability, redundancy, and security of a global enterprise data center network. This saves you time and money, because you don't need to purchase and set up servers from scratch, and you pay only for the resources you consume. These services are particularly cost-effective for short-term projects, but they also deliver scalable, on-demand resources. For instance, within minutes you can double the amount of memory that your website might need to respond to a surge of end users.
One of the drawbacks of using a cloud computing host is that your data resides on another party's servers. This arrangement might raise privacy and security issues for companies dealing with sensitive data, but you can mitigate the risk by employing data encryption and choosing a cloud host with security certifications and accreditations.
Most PaaS and IaaS providers offer per-hour pricing for each instance, role, or server. Each of these is, in essence, a separate virtual computer on which you can run one, a few, or even hundreds of applications.
The PaaS platform Windows Azure can supply and manage the operating system, which is great if your applications don't require a specialized OS. You can concentrate on building, deploying, and managing cloud applications without worrying about OS updates and patches.
Windows Azure offers three main roles, or OS choices.
- Web role: This Windows Azure-supplied OS, preloaded with Internet Information Services 7, permits the development of applications using Web technologies such as ASP.NET, PHP, and Node.js.
- Worker role: This Windows Azure-supplied OS can run arbitrary code or host any type of application (including Apache Tomcat and Java Virtual Machines), and you can use it in conjunction with a Web role.
- Virtual Machine role: You, the customer, supply the OS by uploading a Windows Server 2008 R2 (Enterprise or Standard) VHD image. Unlike with the Web and Worker roles, with this role (currently in beta) you're responsible for keeping the OS up-to-date.
You can use any language, framework, or tool to build applications on Windows Azure. Features and services are exposed through REST (Representational State Transfer) protocols. The Windows Azure client libraries are available for multiple programming languages, and are released under an open-source license. They are hosted on GitHub.
Microsoft offers a three-month free trial of Windows Azure that includes the company's Small Compute instance and other resources sufficient for IT personnel to test and become familiar with Windows Azure. Like other cloud hosts, Microsoft has a pay-as-you-go pricing scheme, a per-hour cost for each role when deployed. You can estimate your monthly bill using the company's calculator.
Microsoft's service level agreement guarantees 99.95% uptime for its compute services when you have at least two instances of a role running.
SQL Azure provides a scalable relational cloud database service built on SQL Server technologies that Windows Azure applications or your on-premises applications can use. It supports exporting and ongoing synchronization with your on-premises databases. You can pay as you go, or make a six-month commitment for reduced pricing; in either case, you can purchase this feature independently or along with other Windows Azure platform products.
Microsoft's cloud storage lets you store structured or unstructured data for use with your Windows Azure applications or other applications via REST and managed APIs. You can also mount storage as virtual hard drives inside your Windows Azure applications by using the Windows Azure Drive feature, and you can move your virtual hard drives between private and public clouds. Microsoft offers pay-as-you-go pricing for Windows Azure Storage and Windows Azure Drive.
Amazon Elastic Compute Cloud is an IaaS platform offered through Amazon Web Services. It provides raw infrastructure for the deployment of pretty much whatever operating system your applications require. As such, Amazon EC2 provides control over the OS, but it lacks automated patching. That puts the onus on you to keep the OS up-to-date.
You can import supported virtual-machine images from your existing environment. (Amazon EC2 currently supports Windows Server 2003 R2 and Windows Server 2008 R1/R2 via images from VMware ESX VMDK, Citrix Xen VHD, or Microsoft Hyper-V VHD. The company plans to support more OSs and virtual platforms in the future.) Alternatively, you can create instances based on a variety of Linux and Windows OSs. Amazon EC2 also offers preconfigured instances with popular database servers (IBM DB2, MySQL, and more), resource management solutions, Web servers (Apache, IIS/ASP.NET), application development environments, application servers, and media servers.
The free usage tier offers the ability to create a "micro" Linux and Windows instance, along with other resources that your IT personnel can use to test and become familiar with Amazon EC2. The company has three purchasing models: On-Demand Instances, in which you pay an hourly rate with no commitment; Reserved Instances, in which you pay a one-time fee and a discounted hourly rate with a one- or three-year commitment; and Spot Instances, in which you bid on pricing. You can estimate your monthly bill using Amazon's calculator, with prices varying based on the region in which your instance is running.
The company's SLA states a 99.95% annual uptime, but you must run at least two copies of an instance in two separate "availability zones" to receive service credits.
Amazon Web Services also offers two database services: Amazon DynamoDB is a fully managed NoSQL database cloud service, provided under the free usage tier with limitations, while Amazon Relational Database Service provides a cloud-based relational database with capabilities similar to a MySQL or Oracle database.
Amazon Elastic Block Store offers block-level storage volumes for use with Amazon EC2 instances. Each instance you contract for includes some storage, but EBS provides for redundancy. You can format the storage volume as you would a hard drive, using your desired file system. You can also create point-in-time snapshots of volumes for backup purposes. Though you must pay for snapshot storage, these backups will require considerably less space than the original volumes, for several reasons: They're compressed, empty blocks are not saved, and each snapshot after the first contains only new or modified data.
Rackspace Cloud Hosting
Rackspace's Cloud Hosting service provides raw infrastructure with control over the OS. Automatic OS updates are included with the optional Managed Service Level. Unlike Amazon EC2 and most other IaaS providers, Rackspace doesn't let you upload your own existing virtual machines; you must choose from the Windows and Linux versions the company supports.
Rackspace charges a per-hour fee for each server, with an assortment of server sizes. Unlike some other cloud hosts, Rackspace doesn't allow you to stop the per-hour charges by halting instances. If you want to keep an idled server without being charged for a given period of time, you must back up your image (incurring charges from Rackspace's Cloud Files service), delete the server from your account, and then add it back when you want to run it later.
Use Rackspace's calculator for a better estimate of your costs. Keep in mind that the company currently doesn't offer a free trial, but you can freely create an account and access the administrative portal if you want to get a better idea of how the service works. You'll be charged only if you create instances or utilize their other resources.
Rackspace's Managed Service Level provides monitoring, OS and application infrastructure layer support (including automated updates and patches), and technical guidance on your cloud servers (visit the Rackspace website to see which Windows and Linux operating systems the company supports).
Rackspace's SLA states that its data center network is available 100% of the time--excluding scheduled maintenance, defined as downtime announced at least ten business days in advance and not exceeding 60 minutes in a calendar month. As a result, the guaranteed availability percentage essentially equates to about 99.999%, which is the best out of the three cloud hosts I've reviewed here.
Rackspace doesn't offer a separate cloud database service, but you can add Microsoft SQL Server 2008 R2 (Standard and Web editions) to select Windows servers. The company provides cloud storage through its Cloud Files service.
Choosing a Cloud Host
Determining which provider is best for your business depends largely on what you need the service for, how you wish to use it, and the degree of OS control you require for application development or hosting. You should also consider the provider's current security accreditations and evaluate the encryption options the company supports.
Windows Azure is a great cloud host for application developers who don't need Linux (although Microsoft plans to add Linux support by year's end). Windows Azure supports nearly all programming languages and is competitively priced. If your application allows you to use Microsoft's operating systems, you won't need to worry about OS patches or updates.
Amazon EC2 is a strong cloud host if you require full OS control of Windows or Linux machines, but can do without automated OS patching. Amazon Web Services also offers a range of other cloud services (more than Microsoft or Rackspace) that I didn't cover here.
Rackspace is a good choice if you desire the OS control that an IaaS provider delivers, combined with the managed services that a PaaS provider affords. On the other hand, Rackspace lacks some of the features that the other two services have, which renders it the most expensive of the three cloud hosts here.
Here's my take on how the three services score on key features or characteristics (on a scale of one to five; higher scores are better):
For more about cloud security, read "Into the Cloud--Securely."
Eric Geier is a freelance tech writer. He's also the founder of NoWiresSecurity, which helps businesses protect their Wi-Fi with enterprise (802.1X) security, and On Spot Techs, which provides on-site computer services.
This story, "How to choose a cloud hosting service" was originally published by PCWorld.