Cloud computing dummies phần 5

  • 33 trang
  • file .pdf
110 Part III: Examining the Cloud Elements
It decided to leverage this asset while adding to the bottom line. A funny
thing happened after this modest plan was put in place: Customers began to
find that this could mushroom into something big. Fast-forward a few years:
Today, Amazon has established itself as the guerrilla in the market. Amazon’s
EC2 was launched in August 2006 and has evolved since then by adding dif-
ferent services and support for different operating systems.
What does Amazon offer today? Customers can rent computers or virtual
instances to run their own computer applications. EC2 provides a Web ser-
vices interface through which a customer can create virtual machines and
load and run any software. The customer has control of a virtual operating
environment and so can create, launch, and terminate server instances as
needed, which is why Amazon describes it as elastic. The customer can set
up server instances in zones that are insulated from each other (regarding
the failure of any component) and thus can set up a server instance that
backs up another server instance.
EC2 Compute Units
EC2 uses Xen virtualization to create and manage its virtual machines. (Xen
is a popular, proven open-source hypervisor — a thin layer of software that
allows other operating systems to run on the same system.) The Amazon ser-
vice allows the creation of virtual servers in one of three sizes: small, large,
or extra large.
Currently Amazon sizes these instances by using EC2 Compute Units based
on the approximate equivalent CPU capacity of physical hardware. One EC2
Compute Unit equals a 1.0–1.2 GHz 2007 AMD Opteron or 2007 Intel Xeon pro-
cessor. Using that as a basis, Table 10-1 shows the allocations of resources.
The first three table entries are the common instances that EC2 offers.
Amazon also provides two other alternatives for compute-intensive applica-
tions, which it refers to as High-CPU Instances. Those are the last two entries.
Platforms and storage
Amazon EC2 supports the following operating systems:
✓ Linux
✓ Sun Microsystems’ OpenSolaris and Solaris Express Community Edition
✓ Microsoft’s Windows Server 2003
This covers most of the common operating systems that companies might
want to use, other than those from IBM and Hewlett-Packard, both of which
provide their own cloud services (both alone and through partnerships).
Chapter 10: Seeing Infrastructure as a Service 111
The storage offered with the various instances persists only as long as the
instance is in use. Amazon also provides persistent storage for those who
want it, in the form of Elastic Block Storage (EBS). Users can set up and
manage storage volumes of anything from 1GB to 1TB (terabyte). You can
connect these EBSs to servers, so the data is attached to the server instance
while it exists.
Storage needs can also be met by Amazon’s Simple Storage Service (S3), which
is available independently to EC2 because its goal is simply to provide storage
space that is accessible via the Internet at any time. With S3, storage items
(called objects) can be any size from 1 byte to 5 gigabytes, and there’s no limit
of the number of items that can be stored. Each object is stored in a “bucket”
and retrieved via a unique, user-assigned key. Full authentication security is
provided.
Table 10-1 Resource Allocation Based on EC2 Compute Units
Instance System Compute Units Instance Platform
Storage
EC2 Small 1.7GB of 1 EC2 Compute 160GB 32-bit
Instance* memory Unit (i.e. 1 vir- platform
tual core with
1 EC2 Compute
Unit)
Large 7.5GB of 4 EC2 Compute 850GB 64-bit
Instance* memory Units (i.e. 2 vir- platform
tual cores with
2 EC2 Compute
Units each)
Extra 15GB of 8 EC2 Compute 1690GB 64-bit
Large memory Units (4 virtual platform
Instance* cores with 2
EC2 Compute
Units each)
High-CPU 1.7GB of 5 EC2 Compute 350GB Moderate I/O
Medium memory Units (2 virtual usage, 32-bit
Instance* cores with 2.5 platform
EC2 Compute
Units each)
High-CPU 7GB of 20 EC2 Compute 1690GB High I/O
Extra memory Units (8 virtual usage, 64-bit
Large cores with 2.5 platform
Instance* EC2 Compute
Units each)
*Alternatives for compute-intensive applications (known as High-CPU Instances).
112 Part III: Examining the Cloud Elements
EC2 pricing
Amazon’s primary charges are of two types:
✓ Hourly charge per virtual machine
✓ Data transfer charge
Amazon’s EC2 hourly charges are counted from the moment a virtual machine
is created to the time it’s taken down (rounding up to the next hour). The
charge applies whether the resources are fully used or lying idle.
The data transfer charges are for data in and out, not for data retained. There
are increased rates for running Windows and some small charges for data
transfer between instances.
If you compare resource for resource, the ISP offering of a Quad Core Xeon
server running at 2.4 GHz with 8 gigabytes of memory and 250GB of disk
space for about $300 per month is clearly a better deal than Amazon offers,
but that tells you that the Amazon’s IaaS business has a completely different
character than an ISP business. Amazon sells by the hour and ISPs don’t —
that’s the major difference.
EC2 customers
Many activities that occur in a data center are temporary. Consider these
examples:
✓ End-of-month and end-of-year workloads
✓ Ad-hoc workloads (such as creating a temporary data mart to analyze a
data set)
✓ System testing
You either cater for these workloads by putting something permanent in
place, or you have to commission resources for them. It’s really unlikely that
your data center has the ability to set up and take down virtual servers under
user control.
That’s what Amazon provides. If you make efficient use of the capability, it’s
likely to be less expensive than trying to achieve something similar in your
own data center. Amazon provides the capability to remove some of the peak
demands on the data center. For most companies that’s a win all the way
around: for the systems users, for developers for operational staff, and for
the company itself in terms of cost and service levels.
Chapter 10: Seeing Infrastructure as a Service 113
Checking Out Other IaaS Companies
We spend a good deal of time in this chapter describing Amazon’s EC2
because it’s the best known of the IaaS operations. However, it’s by no
means the only one. Companies that have entered the IaaS market include
Rackspace Cloud, GoGrid, MediaTemple, GridLayer, Flexiscale, and Joyent.
All of these, like Amazon, offer a pay-per-use arrangement, with the prices,
capabilities, and terms of usage varying.
The services they provide are similar to EC2 as well in that they provide
access to a resource pool and enable the configuration of virtual servers and
the installation of platform software and Web server software in a simple
way. Their approaches vary.
These companies (and others not mentioned) will inevitably be joined by
major IT companies such as IBM, Hewlett-Packard, Cisco, EMC, Microsoft,
Oracle, CSC, and Accenture, all of whom are strategizing and some of whom
are building data centers and preparing to enter the market.
Rackspace
Rackspace Cloud, a spinoff from Rackspace, for example, entered the market
in 2005 before Amazon did and offers a service that is much closer to an ISP
service than Amazon’s.
It focuses primarily on attracting customers that want to host Web sites and
its charges are more oriented to Web site usage. It charges for
✓ Storage space
✓ Bandwidth usage
✓ Compute cycles (which constitute its own measure of CPU and memory
usage)
However, it also offers “instant servers” that can be bought on an hourly
basis with prices based on memory used and instant storage.
This service is for companies that might want to gradually move their whole
operation into the cloud (assuming that all their software can run on com-
modity servers — no-frills servers designed for basic workloads or servers
grouped in clusters to provide lots of computing power through virtualiza-
tion). Refer to Chapter 6 for more information.
114 Part III: Examining the Cloud Elements
GoGrid
GoGrid has similar pricing to Rackspace, charging for
✓ Storage space (more than 10GB)
✓ Outbound data transfer
✓ Server RAM hours (with different prices for different combinations of
memory and CPU)
GoGrid emphasizes ease of use and offers a greater level of technical control
(including load balancing) than either the Amazon EC2 or Rackspace cloud.
Others
Many other companies are entering the IaaS market. Here are a few:
✓ MediaTemple is a highly successful ISP that’s turning its hand to IaaS,
but continuing with ISP-type pricing.
✓ Gridlayer is a grid computing company that has more than 12,000 servers
deployed. It offers virtual private servers, storage, and virtual private data
centers. The virtual private data center is what it sounds like — a collec-
tion of server resources that can be configured according to need.
✓ Flexiscale is like most of the IaaS companies already described,
although it distinguishes itself by providing an API to its environmental
software (which most companies don’t). It also provides a virtual LAN
(VLAN) to each customer. It claims to be significantly less expensive
than Amazon EC2, although it’s clear from the pricing that other IaaS
companies may come in less expensive than Amazon EC2, depending on
your needs.
✓ Joyent Accelerator is an ISP that has moved into the IaaS market and its
pricing (based on a monthly fee for specific levels of hardware) reflects
that. Its Zeus Accelerator is a virtual appliance that manages Web appli-
cations to guarantee performance. Joyent also has specific expertise in
most Web platforms, including Ruby on Rails.
Examining IaaS-Enabling Technology
The ability to offer IaaS requires software that can manage the infrastructure
that’s being shared. In this area, two technologies are worth drawing attention to:
Chapter 10: Seeing Infrastructure as a Service 115
✓ AppLogic from 3Tera
✓ Eucalyptus, an open source initiative
AppLogic
3Tera, Inc., was founded in 2004 to develop system software for utility com-
puting and cloud computing. In February 2006, it launched its AppLogic
product, which has since been taken up by many service providers and cloud
computing vendors.
You can think of AppLogic as management software that converts arrays of
servers into virtualized resource pools that can be shared among multiple
users.
The software enables users to create and retire virtual machines but also to
define necessary infrastructure such as firewalls, VPNs, load balancers, and
storage by using a browser interface. AppLogic enables the configuration of
✓ Virtual private servers
✓ Virtual private data centers (involving complex configuration of applica-
tion infrastructure)
✓ Cloud data storage
✓ Software as a Service (SaaS) applications
AppLogic is sold either on a usage basis or by software license, so it can be
used in house for private clouds. The product has been so successful among
service providers that it enables hybrid situations where a customer uses
more than one provider. It’s also useful in migrating from a private cloud to a
public cloud.
Eucalyptus
Eucalyptus is a rather forced acronym standing for Elastic Utility Computing
Architecture for Linking Your Programs To Useful Systems. Unfortunately the
name doesn’t give a reasonable description of what the software does.
Eucalyptus is a system for implementing on-premise private and hybrid
clouds, using the hardware and software infrastructure that’s in place, with-
out modification. In effect, it’s an add-on capability for data center virtual-
ization to create genuine cloud capability such as self-service provisioning,
security, performance management, and end-user customization.
116 Part III: Examining the Cloud Elements
Eucalyptus is open source, so the software can be downloaded free and it is
also shipped with the Ubuntu 9.04 (and later) distribution of Linux. It is thus
becoming the default open-source cloud capability. It is implemented by
using commonly available Linux tools and basic Web service technologies.
The current interface to Eucalyptus is compatible with Amazon’s EC2, S3, and
Elastic Block Store (EBS) — a storage area network (SAN) in the cloud — inter-
faces, so it is possible to create a private cloud by using Eucalyptus with the
intention of moving some or all of it onto EC2.
Trusting the Cloud
A significant amount of nervousness surrounds the prospect of using cloud
services. Part of this can be chalked up to unfamiliarity with using cloud-
based capability, but some of it is goes much deeper than that.
CSC, the global systems integration company, was quick to recognize this issue
and first used the term trusted cloud to define the kind of environment that
many organizations would want and expect from a cloud service provider.
The trusted cloud includes services that are
✓ Secure
✓ Transparent of control and result (whether it provides a full customer
interface so that you can see how everything functions)
✓ Able to provide evidence that systems operate as advertised (whether it
definitely meets the services levels it is supposed to be providing)
An organization might have many concerns in moving systems into an IaaS
environment, but these are the primary ones.
Although companies clearly trust their Web sites to cloud providers, they’re
much less likely to trust their mission-critical systems to the cloud. Secure
cloud data centers exist. In a way, this type of trusted cloud is similar to what
outsourcing specialists and managed service providers offer (plus a cloud
customer interface that puts the customer directly in control).
We discuss cloud standards in Chapter 14, and clearly standards will emerge
in time so customers can select cloud services without making significant
technical changes to either software or data. At the moment, however, no
established standards exist, so those organizations moving systems into the
cloud need to be concerned not just about the preceding points, but also
about overall control of their systems.
Chapter 10: Seeing Infrastructure as a Service 117
The IaaS customer needs to be able to integrate all systems and software run-
ning in the cloud with other corporate systems and manage the whole as a
single unit. This kind of orchestration of systems is a new challenge in many
areas, particularly in managing performance and managing security in a coher-
ent way.
What Infrastructure as a
Service Means to You
More and more companies are looking to defray costs and gain flexibility by
leveraging infrastructure that can be used on demand. What does this mean
to you?
✓ Think about how you’re getting your services.
✓ Understand which services include a set of well-defined interfaces and
which ones will lock you in to a complex set of services that will be dif-
ficult to move away from.
✓ Know why you’re using a cloud service. For example, if you need some
temporary capacity to test a new application, your requirements will be
very different than if you’re creating an application that will operate in a
cloud.
In addition to understanding potential cloud gains, get familiar with how your
infrastructure service provider handles the following capabilities:
✓ Explicitly defines service level agreements for availability, support, and
performance (of provisioning more resource)
✓ A utility computing billing arrangement, relating cost to actual resource
usage in a measured way
✓ A virtualization environment that enables the configuration of systems
(for compute power, bandwidth, and storage) as well as the creation
individual virtual machines (all to be available on an ad-hoc basis)
✓ A flexible, extensible, resource-rich environment that’s engineered for
secure multi-tenancy (multiple users or tenants running the software in a
shared environment on its servers)
✓ Internet connectivity, including a Web services interface to the custom-
er’s management environment
118 Part III: Examining the Cloud Elements
Chapter 11
Exploring Platform as a Service
In This Chapter
▶ Examining integrated lifecycle platform as a service
▶ Exploring anchored lifecycle platform as a service
▶ Enabling platforms as a service
T here are many ways to approach cloud computing, depending on what
business problem you’re trying to solve. When organizations are looking
for capacity on demand, they often look to Infrastructure as a Service (IaaS).
However, when an organization is looking for a deeper set of capabilities,
they look at Platform as a Service (PaaS).
Of course, like everything in life, there are shades of gray. In fact, many com-
panies that fit into the IaaS category offer platform services as well. But to
keep things a little simpler, we focus on the technologies and companies that
provide infrastructure and various development and deployment services for
the cloud.
Although PaaS has many definitions, we’d like you to think about it as a com-
puting platform that includes a set of development, middleware, and deploy-
ment capabilities. A key vendor characteristic is creating and encouraging a
deep ecosystem of partners who all commit to this environment for the future.
In this chapter, we discuss what types of services are included in a Platform
as a Service, the variety of approaches, and the considerations that you
should take into account. We provide examples of several key platforms
emerging on the PaaS market.
120 Part III: Examining the Cloud Elements
Putting Platform as a Service
on a Pedestal
There isn’t only one approach to PaaS. In fact, the lines between Platform as
a Service and Infrastructure as a Service can blur as well. But for purposes of
getting your head around platforms that help you develop applications in the
cloud, we separated Infrastructure as a Service. (See Chapter 10 for more on
it.) Platform as a Service has many characteristics worth mentioning.
Consider what all PaaS solutions have in common:
✓ PaaS has to leverage the Internet.
✓ PaaS must offer some type of development language so professional
developers (and in some cases users) can add value.
✓ These environments need a way to monitor and measure resource use
and to track overall performance of the vendor’s platform.
✓ Almost all PaaS platforms are based on a multi-tenancy architecture
(which lets multiple clients run their copy separately from each other
through virtualization) so that each customer’s code or data is isolated
from others. See Chapter 12 for more on multi-tenancy.
✓ A PaaS environment needs to support the development lifecycle and the
team development process, including testing.
✓ A PaaS platform needs to include services interfaces such as SOAP
(Simple Object Access Protocol) and XML (eXtensible Markup
Language), among others.
✓ A PaaS platform must be able to deploy, manage, test, and maintain the
developed applications.
✓ A PaaS platform must support well-defined and well-documented inter-
faces so elements and components can be used in the following:
• Composite applications are created by combining services to create
an enterprise application based on orchestration of business logic
and rules.
• Portals, which are an organized environment that organizes
application components for the customer.
• Mashups, which let end users easily bring together two or
more business services that can communicate and exchange
data.
Chapter 11: Exploring Platform as a Service 121
NIST PaaS
The National Institute of Standards and Technology “Platform as a Service is the ability to provide a
(NIST), a U.S. federal government agency estab- computing environment and the related develop-
lished to design technology standards, has come ment and deployment stack needed to deliver a
up with one definition of PaaS worth noting: solution to the consuming customer.”
Although PaaS platforms have some common characteristics, we think there
are some different approaches that are appropriate for different needs. We
have divided the environments into three categories:
✓ Integrated lifecycle platform
✓ Anchored lifecycle platform
✓ Enabling technologies as a platform
Integrated lifecycle platforms
Several emerging key platforms provide the developer with a full environ-
ment for creating an application without buying any individual tools. For
example, the platform provider will provide the developer with a full stack
including an operating system, a programming language, security, storage,
version control, collaborative tools, as well as tools to build Web interaction.
These integrated PaaS companies often include the following:
✓ A workflow engine
✓ Development tools
✓ A testing environment
✓ An ability to integrate databases
✓ Third-party tools and services
These platforms provide services as a well-integrated and well-tuned stack
with its own middleware and often its own programming interfaces.
Two prominent examples of integrated lifecycle platforms are Google App
Engine and Microsoft’s Azure, which we discuss in the section “Getting Inside
the Integrated Lifecycle Platform,” later in this chapter.
122 Part III: Examining the Cloud Elements
Anchored lifecycle platforms
Although anchored platforms have most of the same characteristics as the
integrated lifecycle platform, there is one key difference: These environments
have a packaged business software at the core.
The most prominent example of an anchored platform is Salesforce.com and
its Force.com platform. Likewise, Intuit is leveraging its QuickBooks financial
software environment to create an anchored platform.
Enabling technologies as a platform
Not all platforms in the cloud include a full lifecycle environment. Some plat-
forms are focused on providing specialized capabilities. Some of these capa-
bilities may be a specific tool.
For example, although Amazon.com provides a comprehensive IaaS platform,
it also offers platform tools such as SimpleDB and Simple Query Service
(SQS). Other enabling technology environments (such as Rightscale) provide
an integrated management platform designed for the cloud. Hyperic, a divi-
sion of Springsource (recently acquired by VMWare), offers a cloud-based
monitoring environment. WaveMaker lets users customize their platform and
allows developers to reuse existing code within the PaaS environment. There
are testing-based and social networking-based services as well.
The following sections in this chapter take a closer look at these three types
of PaaS. To do this, we look at some of the key vendors that provide these
capabilities. Clearly, there are many other players besides the ones we list
here, and there will be even more before this book is even published. Our
goal is to give you an understanding of how each of these PaaS approaches
works.
Getting Inside the Integrated
Lifecycle Platform
To really get a good understanding of what it means to have a lifecycle plat-
form as a service, we thought it would be helpful to give you an in-depth look
at two of the most important PaaS vendors: Google with its App Engine and
Microsoft with its Azure platform.
Chapter 11: Exploring Platform as a Service 123
Google App Engine
When you visit the Google App Engine Web site at http://code.google.
com/appengine, you will notice four phrases:
✓ No assembly is required.
✓ Google App Engine exposes a fully integrated development environment.
✓ It’s easy to scale.
✓ It’s free to get started.
That really sums up Google’s strategy for PaaS. Google isn’t trying to help
customers create every application to run on every platform. It is actually
quite focused, helping customers build Web-based applications. The platform
is for development and deployment.
In essence, the developer provides the Google App Engine with a URL (Web
address) for the application it’s building and the engine maps that code to
Google’s development platform. The App Engine handles the Web application
lifecycle, including routine tasks such as request logs, checking the applica-
tion status, updating the application version, operating the underlying data-
base, and handling workflow.
Google has integrated all the development tools into a single integrated envi-
ronment. When customers tie their development into the lifecycle environ-
ment provided by Google, they also gain access to Google’s IaaS. In this way,
customers can add more capacity on demand.
Other Google infrastructure services
In addition to development services, Google also provides other integrated
platform services, including but not limited to the following:
✓ Google Accounts for authentication
✓ Google native file system called GFS (Google File System)
✓ BigTable platform (for data management), a distributed storage system
that manages very large-scale structured data
It also includes infrastructure services such as
✓ Load balancing
✓ Persistent storage with queries
✓ Sorting and transactions
124 Part III: Examining the Cloud Elements
✓ Programming interfaces to support authenticating users and sending
email by using Google Accounts
✓ Scheduled tasks for triggering events at specified times and regular
intervals
This is essentially the same platform that Google uses to build its own
software.
Google development stack
In addition to these infrastructure tools, Google App Engine also includes a
development stack. Google calls this a scalable serving infrastructure that con-
nects the Web application code to the Google environment.
It does this by integrating with the following tools:
✓ Python runtime: To create an application for the platform requires a
programming language. The first one that Google supported was Python,
a high-level programming language that makes it easier to rapidly build
complex applications with minimal programming. Python includes
models and packages and supports code reuse.
✓ Java runtime: Google added Java as a second supported programming
language platform. This runtime is integrated with Google’s toolkits and
is intended to be used for AJAX (asynchronous JavaScript and XML) or
interactive Web applications.
✓ A Software Development Kit (SDK): This set of development tools
enables developers to write application code.
✓ A Web-based administration console: The console helps developers
manage their applications.
✓ Datastore: A datastore is a software layer that stores a Web application’s
data. It is built on the Bigtable (a high-performance database) structure.
(For more details on data in the cloud, see Chapter 8).
Google fees
Google has set up Google App Engine to encourage its wide adoption. As
with other cloud platforms, customers pay based on usage, so there’s no
set-up cost or other maintenance fees. For example, there is no charge for a
developer to build an application. After a customer deploys that application,
however, the charges begin to add up. The customer pays for storage and
bandwidth. Each of these applications can use up to 500MB of storage, up
to 5 million page views each month without an additional fee. A customer is
allowed to register up to ten applications per developer account.
Chapter 11: Exploring Platform as a Service 125
When developers create an application, they’re granted a quota of resources
that they can use without paying anything. This includes 6.5 hours of CPU
time per day and 1 gigabyte of data transferred in and out of the application
per day.
When additional resources are required, costs are as follows:
✓ $0.10–$0.12 per CPU core-hour
✓ $0.15– $0.18 per GB per month of storage
✓ $0.11– $0.13 per GB outgoing bandwidth
✓ $0.09– $0.11 per GB incoming bandwidth
✓ $0.15 per GB per month for stored data
✓ $0.0001 per recipients emailed
Microsoft Azure
Microsoft, the incumbent in the application development and deployment
market, has taken its .Net platform into the cloud. Azure is Microsoft’s PaaS
strategy that was announced in 2008. Microsoft defines the Azure platform as
“an Internet-scale cloud services platform hosted in Microsoft data centers,
which provides an operating system and a set of developer services that can
be used individually or together.”
Microsoft’s overall strategy is a combination of on-premise computing
with cloud-based services. The idea is that developers want to build some
applications that live on-site, while other components will live in the cloud.
Microsoft calls this strategy software plus services. The heart of Microsoft’s
strategy is to allow developers to use the same underlying technology and
enablers to build both on-premise applications and cloud applications.
While the main focus of the Azure platform is to bring Microsoft’s familiar
programming model to the cloud, Microsoft also intends to support other
programming models, including Ruby on Rails and Python. For interoper-
ability, Microsoft supports various Internet protocols, including HTTP, REST,
SOAP, and XML.
Azure platform
The Azure platform is composed of four different components:
✓ Windows Azure: This Windows environment runs applications locally
and stores the related data on servers inside the Microsoft data center.
126 Part III: Examining the Cloud Elements
✓ Microsoft .NET Services: These are the same .Net services that
Microsoft has in its Windows environment. It has been extended to sup-
port cloud-based as well as on-premise applications.
✓ Microsoft SQL Services: These are the same data services Microsoft
offers on premise that have been extended to the cloud. However, if you
want to take advantage of Azure’s scaling capability, you must rewrite
the SQL code. The goal of SQL services is to provide an asset of cloud-
based approaches for storing the data in the cloud. The data services
expose both SOAP and REST interfaces as data access methods. For data
storage, Azure doesn’t use a relational model.
✓ Live Services: This set of services allows developers to connect code
developed in the Windows Live platform into the cloud. These services
include a framework intended to integrate, connect, and synchronize
code. The platform also includes support for different programming lan-
guages and allows all resources to include a URL address.
When you put the pieces together, Microsoft has created a platform that
allows developers to use familiar tools such as Microsoft’s Visual Studio and
.Net services and then store the data in a Microsoft-owned cloud platform.
Therefore, developers familiar with building .Net applications will be com-
fortable with Microsoft’s cloud approach.
Like Google, Microsoft has a pay-as-you-go consumption model for its PaaS
offering. And like Google, Microsoft doesn’t charge for development and test-
ing phases. It begins charging customers when the applications are deployed.
Azure fees
The following is a list of the pricing Microsoft has released:
Windows Azure:
✓ Compute at $0.12 per hour
✓ Storage at $0.15 per GB stored
✓ Storage transactions at $0.01 per 10K
SQL Azure:
✓ Web Edition: Up to 1GB relational database at $9.99
✓ Business Edition: Up to 10GB relational database at $99.99
.NET Services:
✓ Messages at $0.15 per 100K message operations (including Service Bus
messages and Access Control tokens)
✓ Bandwidth across all three services will be charged at $0.10 in and $0.15
out per GB
Chapter 11: Exploring Platform as a Service 127
Getting Inside Anchored Lifecycle
Platform as a Service
Why did we distinguish between integrated lifecycle platforms and anchored
lifecycle platforms? It is simple, really. Anchored platform as a service is a
business application-centric approach to development in the cloud. Therefore,
anchored Platform as a Service vendors started out in life as Software as a
Service vendors, for the most part.
Because of their heritage, vendors in this space have several characteristics
in common:
✓ A large customer base
✓ Defined services such as billing
✓ Security and authentication
✓ Programming languages
✓ Integration services
These services are the same ones the company used to create its own SaaS
offerings.
In the next section, we focus on two of the anchored Platform as a Service
vendors and how they structure their offerings.
Salesforce.com’s Force.com platform
Salesforce.com initiated a platform called Force.com as its foray into the
cloud platform market. It helps commercial software developers create
cloud-based applications based on Salesforce.com’s development environ-
ment. In addition, applications built with Force.com’s tools can also take
advantage of the CRM applications.
At the heart of this platform is the multi-tenancy architecture. This means that
applications designed with Force.com assume that users will share a single
physical instance. However, those instances and the application code built in
those instances are isolated from each other. In addition, this type of multi-
tenancy also means that customizations designed by one user will be isolated
from customized designs built by any other user.
128 Part III: Examining the Cloud Elements
History.com on Salesforce.com
We need to give credit to Salesforce.com for Now here is when things changed. Instead of
being the innovator in this space. A little history stopping with a nice, neat CRM application,
lesson will help put the anchored PaaS area into Salesforce.com decided that it could leverage
perspective. When Salesforce.com first came this platform and create a broader community
to market in 1999, the objective was to provide a of software vendors that might like to build their
packaged Customer Relationship Management applications on top of their environment. The
(CRM) as a service. No matter how many cus- company therefore took its own programming
tomers asked the company to provide them environment that it had used to create its CRM
with an on-premise version of the product, the application and made it available to third-party
answer was always no. In the beginning, cus- software developers. In this regard, anchored
tomers were a little wary of having this upstart PaaS isn’t that much different than integrated
control their customer application. But after a PaaS. The difference is the ecosystem. When
couple of years, companies started to like what vendors began to write their applications to
they saw. With this Software as a Service, plat- take advantage of Salesforce.com’s platform,
form customers could have their cake and eat they could now market and sell their software
it too. They didn’t have to manage or update the to the growing Salesforce.com customer base.
application. Over time, Salesforce.com grew That is the real difference between integrated
until it had thousands of customers and plenty lifecycle platform and an anchored platform.
of individual users. (For more details on Salesforce.com, see
Chapter 12).
Force.com platform
The Force.com platform is centered around a development stack that
includes the following components:
✓ Metadata architecture: Salesforce.com needed a metadata architecture
to support its multi-tenancy approach. Salesforce.com considers this
metadata stack as the core of its differentiation in the market. The meta-
data layer is complex and includes an application server called Resin.
The Resin Application Server is a high-performance XML application
server for use with Java server pages (JSPs), servlets, JavaBeans, XML,
and a host of other technologies.
On top of this metadata layer is an authorization server. The metadata
layer is structured so that each organization has unique access to the
stack. Therefore, two companies could be physically connected to the
same server but there would be no way for them to access each other’s
data. The metadata layer will only point to the data that is specific to a
user. The environment is designed so that each customer has a specific
Web Service Description Language-based API. In fact, the architecture
Chapter 11: Exploring Platform as a Service 129
includes the approach of access APIs through the WSDL interface. There
are two versions of WSDL: one general and one for a specific customer
implementation. If a customer wants to share data, for example, they
have to go through the general WSDL interface.
✓ Service delivery infrastructure: Salesforce.com’s cloud delivery infra-
structure is based on its managed and secure data center environment.
This is the same infrastructure used to manage its CRM customers.
✓ Database as a service: The database is built on top of the metadata ser-
vices. The data services provide data security by enabling customers to
declare validation rules (such as confirming that an account number is
valid). It enables customers to build customized objects and fields. The
customer isn’t responsible for database tuning, backup, or upgrades,
because of the cloud infrastructure.
✓ Integration as a service: At the center of Force.com’s integration capa-
bilities is a Web services Application Programming Interface (API). This
API allows customers to access data stored in a Force.com application
because it supports industry-standard SOAP Web services. Salesforce.
com partners use this API to create connectors to packaged applications
such as SAP R/3 and Oracle Financials. In addition, there are prebuilt
integrations to services such as Amazon’s Web services, Facebook, and
Google App Engine. Force.com also supports Web services standards
including Java, .NET, PhP, and Perl.
✓ Logic as a service: This is a set of automated workflow services. A
built-in workflow engine includes services such as task creation, record
assignment, and other event-triggered services. Customers can use a
Salesforce.com programming language (called Apex) as a way to extend
the application by writing new code.
✓ User interface as a service: Force.com provides two ways of building or
customizing user interfaces:
• A builder to change the application layout and Visualforce
• A framework for building user interfaces for both private and
public clouds
Developers can use standard Web development tools including HTML,
AJAX, and Adobe Flex.
✓ Development as a service: Development tools include the Metadata API,
an IDE (Integrated Development Environment), a development sandbox
(a separate development space for developers), and a service called
Code Share for building cloud-based applications.
✓ AppExchange marketplace: This site enables vendors that have used
the Salesforce.com interfaces. It is, in essence, a channel for partners to
sell into the installed base.