By Roger Jennings
Wiley Publishing, Inc.| English | 363 pages | PDF | 7.420 KB | Download | Password: cloud
Cloud computing became a hot topic in mid-2008 and, by mid-2009, had achieved top buzzword status. As proof of its popularity, a mid-August 2009 search on Bing.com for ‘‘cloud computing’’ returned 92 million hits. Hardly a week goes by that doesn’t include at least one cloud computing conference somewhere around the globe.
The term cloud computing implies access to remote computing services offered by third parties via a TCP/IP connection to the public Internet. The cloud symbol in a network diagram, which initially represented any type of multiuser network, came to be associated specifically with the public Internet in the mid-1990s. The preceding definitions encompass almost all common Internet-based activities, ranging from individuals sending e-mail messages and viewing Web pages to retailers processing credit and debit card charges for online purchases.
On the client side, many computer hardware and software suppliers took up the challenge of breaking the Microsoft/Intel hegemony in the PC market by designing and marketing networked diskless workstations, also known as thin clients. Microsoft offered its own thin Internet clients as Web TV set-tops and connected to intranets with Zero-Administration Windows (ZAW) for NetPC clients. These client designs reduced cost by eliminating local fixed disks and relied on networked servers to load applications and store user files. However, thin-client prices weren’t low enough to capture significant market share from the ubiquitous Windows PC.
The new netbook platform, which appeared in the laptop PC market just as cloud computing gained widespread attention, appears to offer sufficient cost incentive to achieve volume manufacture. Netbooks usually offer conventional hard disks with less capacity than mainstream laptops or solid-state disks (SSDs). Application service providers (ASPs) and web hosting firms were the first to rent server CPU cycles and storage space on an as-needed basis. The larger of these organizations are expected to participate in the cloud computing market.
The Windows Azure Platform is Microsoft’s Windows Platform as a Service (PaaS) offering that runs on servers and related network infrastructure located in Microsoft data centers and is connected to the public Internet. The platform consists of a highly scalable (elastic) cloud operating system, data storage fabric and related services delivered by physical or logical (virtualized) Windows Server 2008 instances. The Windows Azure Software Development Kit (SDK) provides a development version of the cloud-based services, as well as the tools and APIs needed to develop, deploy, and manage scalable services in Windows Azure, including Visual Studio 2008 or 2010 templates for a standardized set of Azure applications.
According to Microsoft, the primary uses for Azure are to
- Add web service capabilities to existing packaged applications
- Build, modify, and distribute applications to the Web with minimal on-premises resources
- Perform services, such as large-volume storage, batch processing, intense or high-volume Computations, and so on, off premises
- Create, test, debug, and distribute web services quickly and inexpensively
- Reduce costs and risks of building and extending on-premises resources
- Reduce the effort and costs of IT management
Microsoft designed the Azure Platform to enable .NET developers to leverage their experience with creating in Visual Studio 2008+ ASP.NET Web applications and Windows Communication Framework (WCF) services. Web application projects run in a sand-boxed version of Internet Information Services (IIS) 7; file-system-based web site projects aren’t supported, but announcement of a ‘‘durable drive’’ is expected at PDC 2009. Web application and Web-based services run in partial trust Code Access Security, which corresponds approximately to ASP.NET’s medium trust and limits access to some OS resources. The Windows Azure SDK (March 2009 CTP) enabled optional full trust Code Access security for invoking non-.NET code, using .NET libraries that require full trust, and inter-process communication using named pipes. Microsoft promises support for executing Ruby, PHP, and Python code in the cloud platform. The initial development platform release was restricted to Visual Studio 2008+ as the development environment with future support scheduled for Eclipse tools. The Azure Platform supports Web standards and protocols including SOAP, HTTP, XML, Atom, and Atom Pub.
Today’s cloud-based infrastructures are likely to exhibit better availability than most enterprise on premises IT services. Availability is usually measured in nines; for example, four nines represent services being available 99.99% of the time. There are 43,200 minutes in a 30-day month, so achieving four nines availability would permit a maximum of 4.32 minutes (0.01% of 43,200) of scheduled or unscheduled downtime per month.
It’s common for telecommunications systems and data centers to be designed to achieve five nines availability, which corresponds to less than 30 seconds downtime per month. Cloud-computing vendors ultimately must enter into service-level agreements (SLAs) that specify competitive application availability. Customers want five nines, but it appears that vendors might offer only three nines; for example, Microsoft announced in mid-July 2009 that its SLA would cover 99.95% uptime guarantee for two or more Azure service instances and 99.9% availability for storage services. Similarly, Amazon Web Services warrants 99.95% uptime for EC2 and 99.9% for S3. Google hadn’t announced an SLA for Google App Engine when this book was written. Cloud-computing SLAs offer rebates or credits for downtime but don’t cover business interruption losses.