1. An Introduction to the Cloud
Cloud Computing and a look at Windows Azure
Harbinder Singh
2. What is a Cloud
Wikipedia
A cloud is a visible mass of droplets, in other words, little drops of water or
frozen crystals suspended in the atmosphere above the surface of the Earth
or another planetary body.
On Earth the condensing substance is typically water vapor, which forms
small droplets or ice crystals, typically 0.01 mm (0.00039 in) in diameter.
When surrounded by billions of other droplets or crystals they become
visible as clouds.
3. Cloud Computing Characteristics
Wikipedia
Cloud computing is Internet-based computing, whereby shared resources,
software and information are provided to computers and other devices on-
demand, like the electricity grid.
Cloud Characteristics
A cloud service has three distinct characteristics that differentiate it from
traditional hosting.
It is sold on demand, typically by the minute or the hour;
it is elastic -- a user can have as much or as little of a service as they want
at any given time;
and the service is fully managed by the provider (the consumer needs
nothing but a personal computer and Internet access).
4. Common Cloud Features
Cloud computing leverages the following:
Massive scale
Homogeneity
Virtualization
Resilient computing
Low cost software
Geographic distribution
Service orientation
Advanced security technologies
5. 4 Cloud Deployment Models
Private cloud
Enterprise owned or leased : The cloud infrastructure is operated solely for
an organization. It may be managed by the organization or a third party and
may exist on premise or off premise.
Community cloud
Shared infrastructure for specific community: The cloud infrastructure is
shared by several organizations and supports a specific community that has
shared concerns (e.g., mission, security requirements, policy, and
compliance considerations). It may be managed by the organizations or a
third party and may exist on premise or off premise.
Public cloud
Sold to the public, mega-scale infrastructure : The cloud infrastructure is
made available to the general public or a large industry group and is owned
by an organization selling cloud services.
Hybrid cloud
Composition of two or more clouds: The cloud infrastructure is a composition
of two or more clouds (private, community, or public) that remain unique
entities but are bound together by standardized or proprietary technology
that enables data and application portability (e.g., cloud bursting).
7. 3 Cloud Service Models
Cloud Software as a Service (SaaS)
Use provider’s applications over a network
Cloud Platform as a Service (PaaS)
Deploy customer-created applications to a cloud – providers estate
Rent processing, storage, network capacity, and other fundamental computing
resources
Cloud Infrastructure as a Service (IaaS)
Rent processing, storage, network capacity, and other fundamental computing
resources from the Provider
To be considered “cloud” they must be deployed on top of cloud infrastructure that
has the key characteristics
8. SAAS – Software as a Service
Software as a Service (SaaS). The capability provided to the consumer is to use
the provider’s applications running on a cloud infrastructure and accessible from
various client devices through a thin client interface such as a Web browser (e.g.,
web-based email). The consumer does not manage or control the underlying cloud
infrastructure, network, servers, operating systems, storage, or even individual
application capabilities, with the possible exception of limited user-specific
application configuration settings.
In the software-as-a-service cloud model, the vendor supplies the hardware
infrastructure, the software product and interacts with the user through a front-end
portal. SaaS is a very broad market. Services can be anything from Web-based
email to inventory control and database processing. Because the service provider
hosts both the application and the data, the end user is free to use the service from
anywhere.
9. PAAS – Platform as a Service
Platform as a Service (PaaS). The capability provided to the consumer is to deploy
onto the cloud infrastructure consumer-created applications using programming
languages and tools supported by the provider (e.g., java, python, .Net). The
consumer does not manage or control the underlying cloud infrastructure, network,
servers, operating systems, or storage, but the consumer has control over the
deployed applications and possibly application hosting environment configurations.
Platform-as-a-service in the cloud is defined as a set of software and product
development tools hosted on the provider's infrastructure. Developers create
applications on the provider's platform over the Internet. PaaS providers may use
APIs, website portals or gateway software installed on the customer's computer.
Force.com, (an outgrowth of Salesforce.com) and GoogleApps are examples of
PaaS. Developers need to know that currently, there are not standards for
interoperability or data portability in the cloud. Some providers will not allow software
created by their customers to be moved off the provider's platform.
10. IAAS – Infrastructure as a Service
Infrastructure as a Service (IaaS). The capability provided to the consumer is to
provision processing, storage, networks, and other fundamental computing resources
where the consumer is able to deploy and run arbitrary software, which can include
operating systems and applications. The consumer does not manage or control the
underlying cloud infrastructure but has control over operating systems, storage,
deployed applications, and possibly select networking components (e.g., firewalls,
load balancers).
Infrastructure-as-a-Service like Amazon Web Services provides virtual server
instances with unique IP addresses and blocks of storage on demand. Customers
use the provider's application program interface (API) to start, stop, access and
configure their virtual servers and storage. In the enterprise, cloud computing allows
a company to pay for only as much capacity as is needed, and bring more online as
soon as required. Because this pay-for-what-you-use model resembles the way
electricity, fuel and water are consumed, it's sometimes referred to as utility
computing.
11. Business Benefits of Cloud Architectures
There are some clear business benefits to building applications
using Cloud Architectures as broadly stated below:
Almost zero upfront infrastructure investment:
Just-in-time Infrastructure:
More efficient resource utilization:
Usage-based costing:
Potential for shrinking the processing time
12. What is Driving Cloud Computing?
Customer Perspective
• Economics
• Faster, simpler, cheaper to use cloud apps
• No upfront capital required for servers and storage
• No ongoing operational expenses for running datacenter
• Applications can be accessed from anywhere, anytime
Vendor Perspective
• Easier for application vendors to reach new customers
• Lowest cost way of delivering and supporting applications
• Ability to use commodity server and storage hardware
• Ability to drive down data center operational cots
• In one word: economics
13. What are the Barriers to Cloud Computing?
Customer Perspective
1 Data Security
• Many customers don’t wish to trust their data to “the cloud”
• Data must be locally retained for regulatory reasons
2 Latency
• The cloud can be many milliseconds away
• Not suitable for real-time applications
3 Application Availability
• Cannot switch from existing legacy applications
• Equivalent cloud applications do not exist
Vendor Perspective
1 Service Level Agreements
• What if something goes wrong?
• What is the true cost of providing SLAs?
2 Business Models
• SaaS/PaaS models are challenging
• Much lower upfront revenue
3 Customer Lock-in
• Customers want open/standard APIs
• Need to continuously add value
14. General Security Advantages and Disadvantages
General Security Advantages
Shifting public data to a external cloud reduces the exposure
of the internal sensitive data
Cloud homogeneity makes security auditing/testing simpler
Clouds enable automated security management
Redundancy / Disaster Recovery
General Security Challenges
Trusting vendor’s security model
Customer inability to respond to audit findings
Obtaining support for investigations
Indirect administrator accountability
Proprietary implementations can’t be examined
Loss of physical control
15. Cloud Criticisms
What's Wrong with Cloud computing
No control of your data
It's just as bad as using a proprietary program
Vendor can hold both your data and program functionality Hostage
What do the terms of service say?
Terms of Service
[XYZ Company] makes no representation, warranty, or
guaranty as to the reliability, timeliness, quality, suitability, truth,
availability, accuracy or completeness of [its cloud
computing service].
Quote
“The interesting thing about cloud computing is that we’ve redefined
cloud computing to include everything that we already do... The
computer industry is the only industry that is more fashion-driven than
women’s fashion. .. It’s complete gibberish. It’s insane. When is this
idiocy going to stop?
- Larry Ellison, CEO Oracle
16. Amazon Cloud Architecture
Amazon cloud components
Elastic Compute Cloud (EC2)
Simple Storage Service (S3)
SimpleDB
New Features
Availability zones
Place applications in multiple locations for failovers
Elastic IP addresses
Static IP addresses that can be dynamically remapped to
point to different instances (not a DNS change)
Linux based virtual machines
1.7Ghz x86 processor
1.75GB of RAM
160GB of local disk
250Mb/s of network bandwidth
$0.10 per hour per machine + bandwidth
17. Google / IBM Architectures
“Google and IBM plan to roll out a worldwide network of servers for a cloud
computing infrastructure” – Infoworld - Initiatives for universities
Architecture
Open source
Linux hosts
Xen virtualization (virtual machine monitor)
Apache Hadoop (file system)“open-source software
for reliable, scalable, distributed computing”
IBM Tivoli Provisioning Manager
Google Cloud Services
As SaaS it offers Google Apps: a web-based communication, collaboration &
security apps which includes, Gmail, Google Calendar, Google Talk, Google
Docs & Google Sites. 15 Sep 2009, Google announced that it will provide
GovCloud, which will host Google Apps in a separate data environment with
enhanced encryption for meeting state and government security standards.
As PaaS it offers Google App Engine: a platform for developing and hosting
web applications in Google-managed data centers. Currently, the supported
programming languages are Python and Java (by extension other JVM
languages are also supported).
18. Microsoft Cloud Architecture
There are some clear business benefits to building applications
using Cloud Architectures. A few of these are listed here:
19. Windows Azure @Microsoft
Presentation
•ASP.NET C#, PHP, Java
•Distributed in-memory cache
Services
• .NET C#, Java, native code
• Distributed in-memory cache
• Asynchronous processes
• Distributed parallel processes
• Transient file storage
Connectivity
• Message queues
• Service orchestrations
• Identity federation SERVICE ACCESS WORK
BUS CONTROL FLOWS
• Claims-based access control
• External services connectivity
S
•Relational & transactional data
•Federated databases
•Unstructured, de-normalized data
20. Microsoft Cloud @: Microsoft
~100 Globally Distributed Data Centers
Quincy, WA Chicago, IL San Antonio, TX Dublin, Ireland Generation 4 DCs
21. Windows Azure Platform
Personal
Application Information
Application Services Data
Marketplace Marketplace
Repository
Services Workflow Distributed
Frameworks Hosting Hosting Cache
Secure Claims-
Declarative Federated
Security Token
Policies
Based
Identities
Service Identity
Composite On-Premise
Connectivity Service Bus
Applications Bridging
Relational ADO.NET, Transact- Data
Data Database ODBC, PHP SQL
Synchronizatio
n
Compute
Unstructure Message Distributed Content
Storage d Data
Blobs
Queues Filesystem Distribution
22. Windows Azure Platform Components
The components of the Windows Azure platform are:
Windows Azure: Provides a Windows-based environment for running
applications and storing data on servers in Microsoft data centers.
SQL Azure: Provides data services in the cloud based on SQL Server.
Windows Azure platform AppFabric: Provides cloud services for
connecting applications running in the cloud or on premises.
23. Windows Azure
Whatever a Windows Azure application does, the platform itself provides the same
fundamental components, as Figure 2 shows.
Windows Azure has three main parts: the Compute service, the Storage service, and the
Fabric.
• As their names suggest, the Compute service runs applications
• The Storage service stores data.
• The third component, the Windows Azure Fabric, provides a common way to manage
and monitor applications that use this cloud platform.
24. Windows Azure
Windows Azure runs on a large number of machines, all located in Microsoft
data centers and accessible via the Internet.
A common Windows Azure fabric connects all the processing power into a
unified whole.
Windows Azure compute and storage services are built on top of this fabric.
The Windows Azure compute service is based on Windows. Developers can
build applications using the .NET Framework, unmanaged code, or other
approaches written in various languages, such as C#, Visual Basic, C++, and
Java.
Developers can create Web applications, using technologies such as
ASP.NET, Windows Communication Foundation (WCF), and PHP, applications
that run as independent background processes, or applications that combine the
two.
Both Windows Azure applications and on-premises applications can access the
Windows Azure storage service, and both do it in the same way: using a
RESTful approach. This service allows storing binary large objects (blobs),
provides queues for communication between components of Windows Azure
applications, and even offers a form of tables with a simple query language. For
applications that need traditional relational storage, the Windows Azure platform
provides SQL Azure Database. An application using the Windows Azure platform
is free to use any combination of these storage options
26. Windows Azure
On Windows Azure, an application typically has multiple instances, each
running a copy of all or part of the application’s code. Each of these instances
runs in its own Windows virtual machine (VM). These VMs are provided by a
hypervisor that’s specifically designed for use in the cloud.
Windows Azure applications can consist of Web role instances and Worker role
instances, with each instance running in its own virtual machine.
A Web role instance accepts incoming HTTP (or HTTPS) requests via
Internet Information Services (IIS) 7. A Web role can be implemented using
ASP.NET, WCF, or another technology that works with IIS.
Web roles are intended to accept and process HTTP requests using IIS.
In addition for non web application logic, Windows Azure provides Worker
roles.
A Worker role instance is quite similar to a Web role instance. The key
difference is that a Worker role doesn’t have IIS preconfigured to run in each
instance, and so unlike Web roles, Worker role instances aren’t hosted in IIS. A
Worker role can still accept requests from the outside world, however, and
developers can even run another Web server, such as Apache, in a Worker
role instance.
27. Windows Azure
Worker role instances can communicate with Web role instances in various
ways like :
Windows Azure storage queues.
Worker roles and Web roles set up direct connections via WCF or another
technology.
Each VM also contains a Windows Azure agent that allows the application to
interact with the Windows Azure fabric
28. Windows Azure Storage
The simplest way to store data in Windows Azure storage is to use Blobs. A
storage account can have one or more containers, each of which holds one or
more blobs. Blobs can be big—potentially as large as a terabyte each
Another way to use blobs is through Windows Azure XDrives, which can be
mounted by a Web role instance or Worker role instance.
Windows Azure storage also provides Tables. These aren’t relational tables.
Here the data is actually stored in a set of entities with properties. A table has
no defined schema; instead, properties can have various types, such as int,
string, Bool, or DateTime. Instead of using SQL, an application can access a
table’s data using ADO.NET Data Services or LINQ. A single table can be quite
large, with billions of entities holding terabytes of data, and Windows Azure
storage can partition it across many servers if necessary to improve
performance.
The third option in Windows Azure storage, is queues, used to provide a way
for Web role instances to communicate with Worker role instances. This is
more like a message queue.
30. SQL Azure
SQL Azure Database provides a cloud-based database management system
(DBMS). This technology lets on-premises and cloud applications store
relational and other types of data on Microsoft servers in Microsoft data
centers.
SQL Azure Database is built on Microsoft SQL Server. This technology offers
a SQL Server environment in the cloud, complete with indexes, views, stored
procedures, triggers, and more.
The data can be accessed using ADO.NET and other Windows data access
interfaces, ODBC, etc. Applications that access SQL Server locally will largely
work unchanged with data in SQL Azure Database.
Customers can also use on-premises software such as SQL Server Reporting
Services to work with their cloud-based data.
This service an application gets is more robust than what a single instance of
SQL Server provides.
All data stored in SQL Azure Database is replicated three times. Also like
Windows Azure storage, the service provides strong consistency: When a write
returns, the data has been made persistent
31. SQL Azure Database @Microsoft
Relational database service
Browser SQL Azure Database
(Windows Azure Compute) • SQL Server technology foundation
SOAP/REST Astoria/REST - EDM • Highly symmetrical
HTTP/S HTTP/S
• Highly scaled
App Code Database “as a Service” – beyond hosting
(ASP.NET)
SQL Server Reporting
Server
Windows Azure
(on-premises)
Customer Value Props
Compute
T-SQL (TDS) Self-provisioning and capacity on demand
T-SQL (TDS)
Symmetry w/ on-premises database platform
SQL Azure Automatic high-availability and fault-tolerance
Database MS
Datacenter Automated DB maintenance (infrastructure)
Simple, flexible pricing – “pay as you grow”
- AD Federation (LiveId /.Net Svcs ACS)
32. App Fabric
The functions provided by AppFabric today address common infrastructure
challenges in connecting distributed applications.
The components of Windows Azure platform AppFabric are:
Service Bus: Exposing an application’s services on the Internet is harder than
it might seem. The goal of Service Bus is to make this simpler by letting an
application expose endpoints that can be accessed by other applications,
whether on-premises or in the cloud. Each exposed endpoint is assigned a
URI, which clients can use to locate and access the service. Service Bus also
handles the challenges of dealing with network address translation and getting
through firewalls without opening new ports for exposed applications.
Access Control: This service allows a RESTful client application to
authenticate itself and to provide a server application with identity information.
The server can then use this information to decide what this application is
allowed to do.
33.
34. The Fabric
All Windows Azure applications and all of the data in Windows Azure Storage
resides in some Microsoft data center. Within that data center, the set of
machines dedicated to Windows Azure is organized into a fabric.
The Windows Azure Fabric consists of a (large) group of machines, all of which
are managed by software called the fabric controller. The fabric controller is
replicated across a group of five to seven machines, and it owns all of the
resources in the fabric: computers, switches, load balancers, and more.
Fabric VM Choices
In the first release of Windows Azure, the fabric offers four VM sizes for
developers to choose from. The options are:
Small, with a single-core 1.6 GHz CPU, 1.75 GB of memory, and 225 GB of
instance storage
Medium, with a dual-core 1.6 GHz CPU, 3.5 GB of memory, and 490 GB of
instance storage
Large, with a four-core 1.6 GHz CPU, 7 GB of memory, and 1,000 GB of
instance storage
Extra large, with a eight-core 1.6 GHz CPU, 14 GB of memory, and 2,040 GB
of instance storage
35. Windows Azure Benefits @ Microsoft
Almost zero upfront infrastructure investment:
Just-in-time Infrastructure:
More efficient resource utilization:
Usage-based costing:
ring your ideas to market faster and pay as you go
Reduce costs of building and extending on-premises resources
Reduce the effort and costs of IT management
Respond quickly to changes in your business and customer needs
Choose an on-premises or off-premises deployment model that best suits
your needs.
Scale your IT resources up and down based on your needs.
Consume computing resources ONLY when the needs arise.
Focus less energy on managing operational resources and constraints.
Remove the need to manage hardware
Use your existing development skills to build cloud applications
Consistent development and management experience across on-premises
and the cloud.
36. References
Effectively and Securely Using the Cloud Computing Paradigm
Cloud Computing – IBM
http://www.microsoft.com/windowsazure/windowsazure/
Introducing the Windows Azure Platform: David Chappell
Microsoft Cloud Computing : David Chou
Cloud Computing: A Greater Threat to Freedom than Proprietary Software?
http://msdn.microsoft.com/en-us/azure/cc994380.aspx