An introduction to the cloud 11 v1

36
An Introduction to the Cloud Cloud Computing and a look at Windows Azure Harbinder Singh

description

Cloud computing is Internet-based computing

Transcript of An introduction to the cloud 11 v1

Page 1: An introduction to the cloud 11 v1

An Introduction to the Cloud

Cloud Computing and a look at Windows Azure

Harbinder Singh

Page 2: An introduction to the cloud 11 v1

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.

Page 3: An introduction to the cloud 11 v1

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 CharacteristicsA 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).

Page 4: An introduction to the cloud 11 v1

Common Cloud FeaturesCloud computing leverages the following:

Massive scaleHomogeneityVirtualizationResilient computingLow cost softwareGeographic distributionService orientationAdvanced security technologies

Page 5: An introduction to the cloud 11 v1

4 Cloud Deployment ModelsPrivate 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 cloudShared 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 cloudSold 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 cloudComposition 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).

Page 6: An introduction to the cloud 11 v1

Major Cloud Vendors

Page 7: An introduction to the cloud 11 v1

3 Cloud Service ModelsCloud 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

Page 8: An introduction to the cloud 11 v1

SAAS – Software as a ServiceSoftware 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.

Page 9: An introduction to the cloud 11 v1

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.

PAAS – Platform as a Service

Page 10: An introduction to the cloud 11 v1

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.

Page 11: An introduction to the cloud 11 v1

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

Page 12: An introduction to the cloud 11 v1

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

Page 13: An introduction to the cloud 11 v1

What are the Barriers to Cloud Computing?Customer Perspective1 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 Perspective1 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

Page 14: An introduction to the cloud 11 v1

General Security Advantages and DisadvantagesGeneral 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

Page 15: An introduction to the cloud 11 v1

Cloud CriticismsWhat'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, orguaranty as to the reliability, timeliness, quality, suitability, truth, availability, accuracy or completeness of [its cloudcomputing 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

Page 16: An introduction to the cloud 11 v1

Amazon Cloud ArchitectureAmazon cloud components

Elastic Compute Cloud (EC2)Simple Storage Service (S3)SimpleDB

New FeaturesAvailability zones

Place applications in multiple locations for failoversElastic IP addresses

Static IP addresses that can be dynamically remapped to point to different instances (not a DNS change)

Linux based virtual machines1.7Ghz x86 processor1.75GB of RAM160GB of local disk250Mb/s of network bandwidth $0.10 per hour per machine + bandwidth

Page 17: An introduction to the cloud 11 v1

Google / IBM Architectures “Google and IBM plan to roll out a worldwide network of servers for a cloud computing infrastructure” – Infoworld - Initiatives for universitiesArchitectureOpen sourceLinux hostsXen virtualization (virtual machine monitor)Apache Hadoop (file system)“open-source software for reliable, scalable, distributed computing”IBM Tivoli Provisioning Manager

Google Cloud ServicesAs 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).

Page 18: An introduction to the cloud 11 v1

Microsoft Cloud Architecture There are some clear business benefits to building applications using Cloud Architectures. A few of these are listed here:

Page 19: An introduction to the cloud 11 v1

Windows Azure @Microsoft

Storage• Relational & transactional data• Federated databases• Unstructured, de-normalized data• Logical partitioning• Persistent file & blob storage• Encrypted storage

Connectivity• Message queues• Service orchestrations• Identity federation• Claims-based access control• External services connectivity

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

SERVICE BUS

ACCESS CONTRO

L

WORKFLOWS

Page 20: An introduction to the cloud 11 v1

Microsoft Cloud @: Microsoft

~100 Globally Distributed Data Centers

Quincy, WA Chicago, IL San Antonio, TX Dublin, Ireland Generation 4 DCs

Page 21: An introduction to the cloud 11 v1

Storage UnstructureUnstructured Datad Data BlobsBlobs Message Message

QueuesQueuesDistributed Distributed FilesystemFilesystem

Content Content DistributionDistribution

Data Transact-Transact-SQLSQL

Data Data SynchronizatioSynchronizatio

nn

Relational Relational DatabaseDatabase

ADO.NET, ADO.NET, ODBC, PHPODBC, PHP

Connectivity Composite Composite ApplicationsApplications

On-Premise On-Premise BridgingBridgingService BusService Bus

SecurityClaims-Claims-Based Based IdentityIdentity

Federated Federated IdentitiesIdentities

Secure Secure Token Token

ServiceService

Declarative Declarative PoliciesPolicies

Application Services ApplicationApplicationMarketplaceMarketplace

Information Information MarketplaceMarketplace

Personal Personal Data Data

RepositoryRepository

Frameworks Workflow Workflow HostingHosting

Distributed Distributed CacheCache

Services Services HostingHosting

Windows Azure Platform

Compute

Page 22: An introduction to the cloud 11 v1

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.

Page 23: An introduction to the cloud 11 v1

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.

Page 24: An introduction to the cloud 11 v1

Windows AzureWindows 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

Page 25: An introduction to the cloud 11 v1

Windows Azure

Page 26: An introduction to the cloud 11 v1

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.

Page 27: An introduction to the cloud 11 v1

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

Page 28: An introduction to the cloud 11 v1

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 eachAnother 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.

Page 29: An introduction to the cloud 11 v1

Windows Azure Storage

Page 30: An introduction to the cloud 11 v1

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

Page 31: An introduction to the cloud 11 v1

SQL Azure Database @Microsoft

Customer Value Props

Self-provisioning and capacity on demandSymmetry w/ on-premises database platformAutomatic high-availability and fault-toleranceAutomated DB maintenance (infrastructure)Simple, flexible pricing – “pay as you grow”

BrowserBrowser

MSDatacenter

SOAP/RESTHTTP/S

SQL Azure Database (Windows Azure Compute)

Windows Azure Compute

T-SQL (TDS)

App Code(ASP.NET)App Code(ASP.NET)

SQL Server Reporting Server

(on-premises)

Astoria/REST - EDMHTTP/S

- AD Federation (LiveId /.Net Svcs ACS)

SQL AzureDatabase

SQL AzureDatabase

T-SQL (TDS)

Relational database service

• SQL Server technology foundation

• Highly symmetrical

• Highly scaled

Database “as a Service” – beyond hosting

Page 32: An introduction to the cloud 11 v1

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.

Page 33: An introduction to the cloud 11 v1
Page 34: An introduction to the cloud 11 v1

The FabricAll 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 ChoicesIn 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

Page 35: An introduction to the cloud 11 v1

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.

Page 36: An introduction to the cloud 11 v1

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