Unit II Cloud Computing Architecture PDF
Document Details
Uploaded by JoyfulBoron
Prasad V. Potluri Siddhartha Institute of Technology
Tags
Summary
This document provides an introduction to cloud computing architecture. It covers topics such as cloud reference models, infrastructure, platform as a service (PaaS), and software as a service (SaaS), along with different types of cloud services, including public, private, hybrid, and community clouds.
Full Transcript
Unit II Cloud Computing Architecture Introduction, Cloud Reference Model, Architecture, Infrastructure / Hardware as a Service, Platform as a Service, Software as a Service, Types of Clouds, Public Clouds, Private Clouds, Hybrid Clouds, Community Clouds....
Unit II Cloud Computing Architecture Introduction, Cloud Reference Model, Architecture, Infrastructure / Hardware as a Service, Platform as a Service, Software as a Service, Types of Clouds, Public Clouds, Private Clouds, Hybrid Clouds, Community Clouds. 1 4.1 Introduction 1. Utility-oriented data centers are the first outcome of cloud computing, and they serve as the infrastructure through which the services are implemented and delivered. 2. Any cloud service, whether virtual hardware, development platform, or application software, relies on a distributed infrastructure owned by the provider or rented from a third party 3. Cloud Computing can be implemented using a datacenter, a collection of clusters, or a heterogeneous distributed system composed of desktop PCs, workstations, and servers. 4. Commonly, clouds are built by relying on one or more datacenters. In most cases hardware resources are virtualized to provide isolation of workloads and to best exploit 5. According to the specific service delivered to the end user, different layers can be stacked on top of the virtual infrastructure: a virtual machine manager, a development platform, or a specific application middleware. 6. Cloud computing is a utility-oriented and Internet-centric way of delivering2 IT services on demand. These services cover the entire computing stack: 4.2 Cloud Computing Reference Model Cloud computing supports any IT service that can be consumed as a utility and delivered through a network, most likely the Internet, it includes quite different aspects: infrastructure, development platforms, application and service 4.2.1 Architecture 4.2.2 Infrastructure- and hardware as a service 4.2.3 Platform as a service 4.2.4 Software as a service 3 4.2.1 Architecture It organizes all the concrete realizations of cloud computing into a layered view covering the entire stack, from hardware appliances to software systems This layer is implemented using a datacenter in which hundreds and thousands of nodes are stacked together. Cloud infrastructure can be heterogeneous in nature because a variety of resources, such as clusters and even networked PCs, can be used to build it. Moreover, database systems and other storage services can also be part of the infrastructure The physical infrastructure is managed by the core middleware, the objectives of which are to provide an appropriate runtime environment for applications and to best utilize resources. At the bottom of the stack, virtualization technologies are used to guarantee runtime environment customization, application isolation, sandboxing, and quality of service. Hardware virtualization is most commonly used at this level. Hypervisors manage the pool of resources and expose the distributed infrastructure as a collection of virtual machines By using virtual machine technology it is possible to finely partition the hardware resources such as CPU and memory and to virtualize specific devices, thus meeting the requirements of users and applications. 4 4.2.1 Architecture contd… 5 4.2.1 Architecture contd… ❖ According to the specific service offered to end users, other virtualization techniques can be used; for example, programming-level virtualization helps in creating a portable runtime environment where applications can be run and controlled. ❖ This scenario generally implies that applications hosted in the cloud be developed with a specific technology or a programming language, such as Java,.NET, or Python. ❖ In this case, the user does not have to build its system from bare metal. ❖ Infrastructure management is the key function of core middleware, which supports capabilities such as negotiation of the quality of service, admission control, execution management and monitoring, accounting, and billing. ❖ The combination of cloud hosting platforms and resources is generally classified as a Infrastructure-as-a-Service (IaaS) solution Different examples of IaaS can be organized into two categories: Some of them provide both the management layer and the physical infrastructure; others provide only the management layer (IaaS (M)). In this second case, the management layer is often integrated with other IaaS solutions that provide physical infrastructure and adds value to them. ❖ IaaS solutions are suitable for designing the system infrastructure but provide limited services to build applications. 6 4.2.1 Architecture contd… 7 4.2.2 Infrastructure- and hardware-as-a-service Infrastructure- and Hardware-as-a-Service (IaaS/HaaS) solutions are the most popular and developed market segment of cloud computing. They deliver customizable infrastructure on demand. The main technology used to deliver and implement these solutions is hardware virtualization: one or more virtual machines opportunely configured and interconnected define the distributed system on top of which applications are installed and deployed. Virtual machines also constitute the atomic components that are deployed and priced according to the specific features of the virtual hardware: memory, number of processors, and disk storage. IaaS/HaaS solutions bring all the benefits of hardware virtualization: workload partitioning, application isolation, sandboxing, and hardware tuning. From the perspective of the service provider, IaaS/HaaS allows better exploiting the IT infrastructure and provides a more secure environment where executing third party applications. From the perspective of the customer it reduces the administration and maintenance cost as well as the capital costs allocated to purchase hardware. At the same time, users can take advantage of the full customization offered by virtualization to deploy their infrastructure in the cloud; in most cases virtual machines come with only the selected operating system installed and the system can be configured with all the required packages and applications SLA resource-based allocation, workload management, support for infrastructure design through advanced Web interfaces, and the ability to integrate third-party IaaS solutions. 8 4.2.2 Infrastructure- and hardware-as-a-service 9 4.2.2 Infrastructure- and hardware-as-a-service The above figure provides an overall view of the components forming an Infrastructure-as-a-Service solution. It is possible to distinguish three principal layers: the physical infrastructure, the software management infrastructure, and the user interface. At the top layer the user interface provides access to the services exposed by the software management infrastructure. These technologies allow either applications or final users to access the services exposed by the underlying infrastructure. Web 2.0 applications allow developing full-featured management consoles completely hosted in a browser or a Web page. Web services and RESTful APIs allow programs to interact with the service without human intervention, thus providing complete integration within a software system. Management of the virtual machines is the most important function performed by this layer. A central role is played by the scheduler, which is in charge of allocating the execution of virtual machine instances. The scheduler interacts with the other components that perform a variety of tasks: 1:pricing and billing 2:monitoring 3:reservation 4:management 5:VM repository 6:AVM pool manager 10 4.2.2 Infrastructure- and hardware-as-a-service The bottom layer is composed of the physical infrastructure, on top of which the management layer operates. The infrastructure can be of different types; the specific infrastructure used depends on the specific use of the cloud. A service provider will most likely use a massive datacenter containing hundreds or thousands of nodes. A cloud infrastructure developed in house, in a small or medium-sized enterprise or within a university department, will most likely rely on a cluster. At the bottom of the scale it is also possible to consider a heterogeneous environment where different types of resources—PCs, workstations, and clusters—can be aggregated. In the case of complete IaaS solutions, all three levels are offered as service. This is generally the case with public clouds vendors such as Amazon, GoGrid, Joyent, Rightscale, Terremark, Rackspace, Elastic Hosts, and Flexiscale, which own large datacenters and give access to their computing infrastructures using an IaaS approach. The role of infrastructure management software is not to keep track and manage the execution of virtual machines but to provide access to large infrastructures and implement storage virtualization solutions on top of the physical layer. 11 4.2.3 Platform as a service Platform-as-a-Service (PaaS) solutions provide a development and deployment platform for running applications in the cloud. They constitute the middleware on top of which applications are built. 12 4.2.3 Platform as a service Application management is the core functionality of the middleware. PaaS implementations provide applications with a runtime environment and do not expose any service for managing the underlying infrastructure It provides a classification of the most popular PaaS implementations. It is to organize the various solutions into three wide categories: PaaS-I, PaaS-II, and PaaS-III. The first category identifies PaaS implementations that completely follow the cloud computing style for application development and deployment. They offer an integrated development environment hosted within the Web browser where applications are designed, developed, composed, and deployed. This is the case of Force.com and Longjump. Both deliver as platforms the combination of middleware and infrastructure. In the second class we can list all those solutions that are focused on providing a scalable infrastructure for Web application, mostly websites. In this case, developers generally use the providers’ APIs, which are built on top of industrial runtimes, to develop applications The third category consists of all those solutions that provide a cloud programming platform for any kind of application, not only Web applications. Among these, the most popular is Microsoft Windows Azure. The PaaS umbrella encompasses a variety of solutions for developing and hosting applications in the cloud 13 4.2.3 Platform as a service 14 4.2.3 Platform as a service Essential characteristics that identify a PaaS solution: 1. Runtime framework 2. Abstraction 3. Automation 4. Cloud services Another essential component for a PaaS-based approach is the ability to integrate third-party cloud services offered from other vendors by leveraging service-oriented architecture. Finally, from a financial standpoint, although IaaS solutions allow shifting the capital cost into operational costs through outsourcing, PaaS solutions can cut the cost across development, deployment, and management of applications. It helps management reduce the risk of ever-changing technologies by offloading the cost of upgrading the technology to the PaaS provider. This happens transparently for the consumers of this model, who can concentrate their effort on the core value of their business. The PaaS approach, when bundled with underlying IaaS solutions, helps even small start-up companies quickly offer customers integrated solutions on a hosted platform at a very minimal cost. These opportunities make the PaaS offering a viable option that targets different market segments. 15 4.2.4 Software as a service Software-as-a-Service (SaaS) is a software delivery model that provides access to applications through the Internet as a Web-based service It provides a means to free users from complex hardware and software management by offloading such tasks to third parties, which build applications accessible to multiple users through a Web browser. In this scenario, customers neither need install anything on their premises nor have to pay considerable up-front costs to purchase the software and the required licenses. They simply access the application website, enter their credentials and billing details, and can instantly use the application, which, in most of the cases, can be further customized for their needs. On the provider side, the specific details and features of each customer’s application are maintained in the infrastructure and made available on demand. The SaaS model is appealing for applications serving a wide range of users and that can be adapted to specific needs with little further customization. This requirement characterizes SaaS as a “one-to-many” software delivery model, whereby an application is shared across multiple users 16 4.2.4 Software as a service In the software as a service model, the application, or service, is deployed from a centralized datacenter across a network—Internet, Intranet, LAN, or VPN—providing access and use on a recurring fee basis. Users “rent,” “subscribe to,” “are assigned,” or “are granted access to” the applications from a central provider. Business models vary according to the level to which the software is streamlined, to lower price and increase efficiency, or value-added through customization to further improve digitized business processes. Initially ASP(Application Service Provider)s offered hosting solutions for packaged applications, which were served to multiple customers. ASP(Application Service Providers)s already had some of the core characteristics of SaaS: They are 1. The product sold to customer is application access. 2. The application is centrally managed. 3. The service delivered is one-to-many. 4. The service delivered is an integrated solution delivered on the contract, which means provided 5. as promised. ❖ ASPs provided access to packaged software solutions that addressed the needs of a variety of customers 17 4.2.4 Software as a service Initially this approach was affordable for service providers, but it later became inconvenient when the cost of customizations and specializations increased. How is cloud computing related to SaaS? According to the classification of services shown in Figure 4.1, the SaaS approach lays on top of the cloud computing stack. It fits into the cloud computing vision expressed by the XaaS acronym, Everything-as-a-Service; and with SaaS, applications are delivered as a service. Initially the SaaS model was of interest only for lead users and early adopters. The benefits delivered at that stage were the following: Software cost reduction and total cost of ownership (TCO) were paramount Service-level improvements Rapid implementation Standalone and configurable applications Rudimentary application and data integration Subscription and pay-as-you-go (PAYG) pricing Another important class of popular SaaS applications comprises social networking applications such as Facebook and professional networking sites such as LinkedIn. Other than providing the basic features of networking, they allow incorporating and extending their capabilities by integrating third-party applications. 18 4.3 Types of Clouds Clouds constitute the primary outcome of cloud computing Clouds build the infrastructure on top of which services are implemented and delivered to customers. Such infrastructures can be of different types and provide useful information about the nature and the services offered by the cloud It is then possible to differentiate four different types of cloud: Public clouds. The cloud is open to the wider public. Private clouds. The cloud is implemented within the private premises of an institution and generally made accessible to the members of the institution or a subset of them. Hybrid or heterogeneous clouds. The cloud is a combination of the two previous solutions and most likely identifies a private cloud that has been augmented with resources or services hosted in a public cloud. Community clouds. The cloud is characterized by a multi-administrative domain involving different deployment models (public, private, and hybrid), and it is specifically designed to address the needs of a specific industry 19 4.3.1 Public clouds Public clouds constitute the first expression of cloud computing services offered are made available to anyone, from anywhere, and at any time through the Internet. structural point of view they are a distributed system, most likely composed of one or more datacenters connected together, on top of which the specific services offered by the cloud are implemented. Any customer can easily sign in with the cloud provider, enter her credential and billing details, and use the services offered. A fundamental characteristic of public clouds is multitenancy. A public cloud is meant to serve a multitude of users, not a single customer Any customer requires a virtual computing environment that is separated, and most likely isolated, from other users QoS management is a very important aspect of public clouds A public cloud can offer any kind of service: infrastructure, platform, or applications For example, Amazon EC2 is a public cloud that provides infrastructure as a service; Google AppEngine is a public cloud that provides an application 20 development platform as a service; and SalesForce.com is a public cloud that 4.3.1 Public clouds Public clouds can be composed of geographically dispersed datacenters to share the load of users and better serve them according to their locations For example, Amazon Web Services has datacenters installed in the United States, Europe, Singapore, and Australia; they allow their customers to choose between three different regions: us-west-1, us-east-1, or eu-west-1. Such regions are priced differently and are further divided into availability zones, which map to specific datacenters. According to the specific class of services delivered by the cloud, a different software stack is installed to manage the infrastructure: virtual 21 4.3.2 Private clouds 1. Public clouds are not applicable in all scenarios, For example institutions such as government and military agencies will not consider public clouds as an option for processing or storing their sensitive data 2. In other cases, the loss of control of where your virtual IT infrastructure resides could open the way to other problematic situations. More precisely, the geographical location of a datacenter generally determines the regulations that are applied to management of digital information. As a result, according to the specific location of data, some sensitive information can be made accessible to government agencies or even considered outside the law if processed with specific cryptographic techniques 3. For example, the USA PATRIOT Act5 provides its government and other agencies with virtually limitless powers to access information, including that belonging to any company that stores information in the U.S. territory 4. private clouds, which are similar to public clouds, but their resource-provisioning model is limited within the boundaries of an organization 5. Private clouds are virtual distributed systems that rely on a private infrastructure and provide internal users with dynamic provisioning of computing resources. Instead of a pay-as-you-go model as in public clouds, there could be other schemes in place, taking into account the usage of the cloud and proportionally billing the different departments or sections of an enterprise 6. security concerns are less critical, since sensitive information does not flow out of the private infrastructure. 22 4.3.2 Private clouds 1. existing IT resources can be better utilized because the private cloud can provide services to a different range of users 2. is the possibility of testing applications and systems at a comparatively lower price rather than public clouds before deploying them on the public virtual infrastructure key advantages of using a private cloud computing infrastructure for enterprises Customer information protection Infrastructure ensuring SLAs Compliance with standard procedures and operations From an architectural point of view, private clouds can be implemented on more heterogeneous hardware: They generally rely on the existing IT infrastructure already deployed on the private premises. This could be a datacenter, a cluster, an enterprise desktop grid, or a combination of them. The physical layer is complemented with infrastructure management software (i.e., IaaS (M); see Section 4.2.2) or a PaaS solution, according to the service delivered to the users of the cloud. 23 4.3.2Private clouds Different options can be adopted to implement private clouds. Figure 4.4 provides a comprehensive view of the solutions together with some reference to the most popular software used to deploy private clouds. At the bottom layer of the software stack, virtual machine technologies such as Xen , KVM , and VMware serve as the foundations of the cloud Private clouds can provide in-house solutions for cloud computing, but if compared to public clouds they exhibit more limited capability to scale elastically on demand. 24 4.3.3 Hybrid Clouds 1. Public clouds are large software and hardware infrastructures that have a capability that is huge enough to serve the needs of multiple users, but they suffer from security threats and administrative Pitfalls. 2. Private clouds are the perfect solution when it is necessary to keep the processing of information within an enterprise’s premises or it is necessary to use the existing hardware and software infrastructure 3. One of the major drawbacks of private deployments is the inability to scale on demand and to efficiently address peak loadsIn this case, it is important to leverage capabilities of public clouds as needed. 4. Hence, a hybrid solution could be an interesting opportunity for taking advantage of the best of the private and public worlds. This led to the development and diffusion of hybrid clouds. 5. Hybrid clouds allow enterprises to exploit existing IT infrastructures, maintain sensitive information within the premises, and naturally grow and shrink by provisioning external resources and releasing them when they’re no longer needed. 6. Security concerns are then only limited to the public portion of the cloud that can be used to perform operations Figure 4.5 provides a general overview of a hybrid cloud: It is a heterogeneous distributed system resulting from a private cloud that integrates additional services or resources from one or more public clouds. For this reason they are also called heterogeneous clouds. 25 4.3.3 Hybrid Clouds In an IaaS scenario, dynamic provisioning refers to the ability to acquire on demand virtual machines in order to increase the capability of the resulting distributed system and then release them. Infrastructure management software and PaaS solutions are the building blocks for deploying and managing hybrid clouds In particular, with respect to private clouds, dynamic provisioning introduces a more complex scheduling algorithm and policies, the goal of which is also to optimize the budget spent to rent public resources 26 4.3.4 Community Clouds Community clouds are distributed systems created by integrating the services of different clouds to address the specific needs of an industry, a community, or a business sector The 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 Figure 4.6 provides a general view of the usage scenario of community clouds, together with reference architecture. The users of a specific community cloud fall into a well-identified community, sharing the same concerns or needs; they can be government bodies, industries, or even simple users, but all of them focus on the same issues for their interaction with the cloud. This is a different scenario than public clouds, which serve a multitude of users with different needs. Community clouds are also different from private clouds, where the services are generally delivered within the institution that owns the cloud. From an architectural point of view, a community cloud is most likely implemented over multiple administrative domains. This means that different organizations such as government bodies, rivate enterprises, research organizations, and even public virtual infrastructure providers contribute with their resources to build the cloud infrastructure 27 4.3.4 Community Clouds 28 4.3.4 Community Clouds Candidate sectors for community clouds are as follows Media industry Healthcare industry Energy and other core industries Public sector Scientific research The term community cloud can also identify a more specific type of cloud that arises from concern over the controls of vendors in cloud computing and that aspire to combine the principles of digital ecosystems7 The benefits of these community clouds are the following 1. Openness. By removing the dependency on cloud vendors, community clouds are open systems in which fair competition between different solutions can happen. 2. Community. Being based on a collective that provides resources and services, the infrastructure turns out to be more scalable because the system can grow simply by expanding its user base. 3. Graceful failures. Since there is no single provider or vendor in control of the infrastructure, there is no single point of failure. 4. Convenience and control. Within a community cloud there is no conflict between convenience and control because the cloud is shared and owned by the community, which makes all the decisions through a collective democratic process. 5. Environmental sustainability. The community cloud is supposed to have a smaller carbon footprint because it harnesses underutilized resources. Moreover, these clouds tend to be more organic by growing and shrinking in a symbiotic relationship to support the demand of the community, which in turn sustains it. 29