Cloud Computing: Basic Architecture
اسلاید 1: Cloud Computing Lesson 2: Basic ArchitectureCourse Module by David S PlattHarvard University Extension SchoolLecture by Nilanjan Banerjee
اسلاید 2: OK, Cloud Sounds Good, Now What?Continuing the electric power analogy, how do we have to design our software (motors and other consumers of electricity) to run on this nice cloud platform (power generation and transmission network) over which we, the customers, have very little detailed control (must use available voltages, frequencies, etc.)?
اسلاید 3: Some Common Patterns in Distributed Programming
اسلاید 4: Background Part 0: VirtualizationYou can’t physically touch the cloud server machines. Hardware can and frequently will change. To avoid dependency on specific hardware, you generally write your server program to run on virtual machines.
اسلاید 5: Background Part 0: Virtualization DiagramCloud StackVirtual Machine ManagerOperating SystemHardwareCloud ApplicationsCloud Services
اسلاید 6: Background Part 1: AbstractionObjects used locally represent a combination of code and data in the classic OO sense of the term.method1(object) methodnstate
اسلاید 7: Background Part 1, AbstractionClient 1ProxyService HostInstance 1Instance 2Client 2ProxyIn remote access, Client machines generally access servers through proxy objects, which expose methods similar to local objects, but actually contain communication code that makes a call to server and returns results. The proxy Looks like a local object, feels like a local object, programmer likes to think of it as a local object because that’s easy and familiar. But it isn’t really a local object, and shouldn’t be treated as one, as it is above.
اسلاید 8: Background Part 2: StatelessnessIt is expensive and difficult to maintain the connection from proxy to a specific server-side object from one call to the next. For example, load balancing is difficult, as is lifetime management. So you generally want to design your objects so that they don’t expect their internal state to be maintained from one call to another. The proxy often stays alive on the client side, but is connected to a difference object instance on the server side on its next call.
اسلاید 9: Background Part 2: StatelessnessClient 1ProxyService HostInstance 1Instance 2Instance 3Client 2Proxyt=0t=0t=1
اسلاید 10: Background Part 2: StatelessnessThe term statelessness does not mean that no data is maintained from one call to the next. It does mean that no data is maintained in an individual object instance. Whatever data is maintained from one call to the next is maintained in some sort of storage system, so that the next object instance can pick up where the first left off.
اسلاید 11: Background Part 2: StatelessnessClient 1ProxyService HostInstance 1Instance 2Instance 3Client 2Proxyt=0t=0t=1Object fetches previous state from storage when it is instantiated at the start of a call. It stores current state in storage when it is deactivated at the end of a call.
اسلاید 12: Background Part 3: ChunkinessCalls to local objects are very quick, call overhead is low. In distributed system, call overhead is very much larger. Therefore, it is important to make fewer calls, with more data in each callOptimum level of chunkiness depends on application and will require experimentation EARLY in design process.
اسلاید 13: Background Part 4: Message PassingIf client has to wait for server to finish processing, or even be alive at the same time as the server, we can wait a long time to get the job doneOften the client does best to leave a message about a job it wants done, then harvest the results later. Example: voice mail or text msgs vs. direct conversation. Different programming model: no immediate output parameters. Output comes through another msg (again, like voice mail).
اسلاید 14: Background Part 4: Message PassingClientMessageMessageClientMessageMessage BrokerQueueServiceInstance 1Instance 2
اسلاید 15: Cloud Architecture of Different Vendors
اسلاید 16: Amazon Cloud OfferingAmazon Elastic Compute CloudYou create Amazon Machine Images (their VM) containing your choice of OS (Linux or Windows)You then run whatever programs you want, such as IIS.Additional services, such as storage or payment processing, are available a la carte
اسلاید 17: Google Cloud OfferingRequest/ResponsePython/Java VM processAppStdlibStateless service APIsStateful service APIsMemcacheDatastoreBlobstoreURL FetchMailImagesTask QueuesXMPPGoogle Accounts
اسلاید 18: Google Cloud OfferingYou write your app and plug it into Google App Engine, which handles HTTP(S) requests, nothing else. Think RPC: request in, processing, response out. Works well for the web and AJAXApp configuration is dead simple, no performance tuning neededEverything is built to scale. “Infinite” number of apps, requests/sec, storage capacity. APIs are simple, stupid
اسلاید 19: Azure Overview
اسلاید 20: Azure OverviewApplication is the software built by the programmer. It does something useful for the user, who connects to it via the InternetAzure runs on multiple Windows PCs in a data center. It is the layer that provides system services to the application. From the app’s point of view, this is the operating system.
اسلاید 21: Inside the Azure Layer
اسلاید 22: Inside the Azure LayerCompute service runs applications.Storage service stores data in simple blobs, tables, and queues. Relational storage is available through SQL Azure (next lecture) Fabric is the control, management, and monitoring service for Azure itself.
اسلاید 23: Inside the Compute LayerEach compute instance (web role or worker role) runs in its own virtual machine. Your service agreement specifies the number and size of VMs that you can runInstance SizeCPUMemoryGBStorageGBI/O PerfSmall1.6 GHz1.75225ModerateMedium2 x 1.6 GHz3.5 490HighLarge4 x 1.6 GHz7 1000HighExtra Large8 x 1.6 GHz14 2040High
اسلاید 24: Inside the Compute LayerEach VM contains a single role instance.
اسلاید 25: Web RolesA Web role is a computing object instance which is exposed to the outside Internet. It runs in a VM containing IIS 7.Can communicate with the outside world via ASP.NET, WCF, or any other .NET technology that works with IIS.
اسلاید 26: Worker RolesA Worker Role is a computing object which is not exposed to the outside InternetIt runs in a VM which does not contain IIS. Conceptually similar to a background processing job. Worker roles may process requests queued by Web roles, or they may sift through large amounts of pre-stored data on their own.
اسلاید 27: AgentEach compute instance contains an Agent which represents the application’s connection to Azure.Provides simple API that lets a compute instance interact with the Azure Fabric.
اسلاید 28: Usage Scenarios
اسلاید 29: Scalable Web ApplicationMany Web Roles to handle many usersData stored in tablesExample: online multiplayer game
اسلاید 30: Application or Service BusBlobsTablesQueuesRESTFirewallPattern 1AOn-Premise LOB Application or Service bus leveraging scalable cloud storage
اسلاید 31: BlobsTablesQueuesPattern 1Highly scalable dynamic HTML or RIA application leveraging scalable cloud storageASP.NETWeb RolesHTML or Silverlight in the browserASP.NETASP.NETASP.NET
اسلاید 32: Parallel Processing ApplicationMany Worker Roles to process data and perform calculationsData stored as blobsOne Web Role for control.Roles communicate with each other via queues.
اسلاید 33: QueuesPattern 2AHighly scalable dynamic HTML or RIA application leveraging Azure Queues to pass messages to a background processing agent.Background ProcessingWeb RoleWorker RoleHTML or Silverlight in the browserASP.NET
اسلاید 34: BlobsTablesQueuesPattern 2Highly scalable dynamic HTML or RIA application leveraging Azure Queues to pass messages to a background processing agent.Background ProcessingWeb RoleWorker RoleASP.NETServiceHTML or Silverlight in the browser
اسلاید 35: Demo Thumbnail Application From Azure SDK
اسلاید 36: Web RoleWorker RoleBlob ContainerPicture Blob 1Picture Blob 2Thumbnail Blob 11. User uploads pictures to blobsQueue“Make TN for new blob 2”2. Web role puts msg in queue3. Worker role fetches msg4. Worker creates TN blob, places in containerThumbnail Blob 20, 5 Web role displays thumbnails to user
اسلاید 37: CreditsSlides 5-7, 9, 14, 18 and 19 contain information from “Cloud Computing: Software Engineering Fundamentals”, by J. Heinzelreiter and W. Kurschl, Upper Austria University of Applied SciencesSlides 20 and 22, contain diagrams from David Chappell’s white paper “Introducing Windows Azure”, http://go.microsoft.com/?linkid=9682907
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.