1.06k likes | 1.07k Views
This text is a comprehensive guide to cloud computing principles and paradigms, covering topics such as virtual machines, secure data storage, and workflow engines. It includes a detailed outline and evaluation criteria for the course. Don't miss this valuable resource!
E N D
雲端計算Cloud Computing Text Book:Cloud Computing: Principles and Paradigms, by R. Buyya, J. Broberg and A. Goscinski, Wiley (全華圖書代理)
Info • Time:Mon. 2:10~3:25, 3:45~5:00(Room 207) • Evaluation: • Homework50% • MidtermExam 25% • Final Exam 25% • Website:http://ares.ee.nchu.edu.tw/course/cc106/
Outline • Introduction • Virtual Machines Provisioning and Migration • Management of Virtual Machines • Cluster as a Service • Secure Distributed Data Storage • Integration of Private and Public Clouds • Autonomic Cloud Engines • Workflow Engines • MapReduce Programming Models • SLA Management
Cloud Computing In A Nutshell • Virtualization means delivering useful functions while hiding how internals work • Being fully virtualized, computing must allow computers to be built from distributed components • e.g., processing, storage, data, and software resources • Cluster, grid, and now, cloud computing, have all aimed at allowing access to large amounts of computing power in a fully virtualized manner • By aggregating resources • By offering a single system view
Cloud Computing In A Nutshell (cont.) • Delivering computing as a utility • A business model for on-demand delivery of computing power • Consumers pay providers based on usage • Pay-as-you-go • Similar to services from traditional public utility services • e.g., water, electricity, gas, and telephony • A category of sophisticated on-demand computing services initially offered by commercial providers • e.g., Amazon, Google, and Microsoft
Cloud Computing In A Nutshell (cont.) • A computing infrastructure is viewed as a “cloud” • Businesses and individuals access applications from anywhere in the world on demand • Offering computing, storage, and software “as a service” • A cloud should have: • Pay-per-use • No ongoing commitment, utility prices • Elastic capacity and the illusion of infinite resources • Self-service interface • Resources that are abstracted or virtualized
Cloud Computing In A Nutshell (cont.) • Cloud computing providers usually offer a broad range of software services • In addition to raw computing and storage • Include APIs and development tools • Allow developers to build seamlessly scalable applications upon their services • Allow customers to run their everyday IT infrastructure “in the cloud” • Delivering computing as a utility has been realized with the advent of cloud computing • The main technological advancements • Public clouds, management tools, and development frameworks
Roots Of Cloud Computing • The convergence of technology fields that significantly advanced and contributed to the advent of cloud computing • Hardware (virtualization, multi-core chips) • Internet technologies (Web services, service-oriented architectures, Web 2.0) • Distributed computing (clusters, grids) • Systems management (autonomic computing, data center automation) • A specification and standardization process followed • Leading to maturity and wide adoption
From Mainframes to Clouds • From in-house generated computing power into utility-supplied computing resources delivered over the Internet as Web services • On demand delivery of infrastructure, applications, and business processes in a security-rich, shared, scalable, and based computer environment over the Internet for a fee • Consumers can attain reduction on IT-related costs • Choosing to obtain cheaper services from external providers vs. heavily investing on IT infrastructure and personnel hiring
From Mainframes to Clouds(cont.) • The “on-demand” component of this model allows consumers to adapt their IT usage to rapidly increasing or unpredictable computing needs • Providers of IT services achieve better operational costs • Hardware and software infrastructures are built to provide multiple solutions and serve many users • Increasing efficiency and ultimately leading to faster return on investment (ROI) as well as lower total cost of ownership (TCO)
From Mainframes to Clouds(cont.) • The unavailability of efficient computer networks caused IT infrastructure to be hosted in proximity • Preventing the utility computing reality of taking place on modern computer systems • New technologies for enabling sharing of computing power over great distances have appeared • The potential of delivering computing services with the high speed and reliability to offer computing services with a fraction of costs for a company to generate its own computing power
SOA, Web Services, Web 2.0, and Mashups • Web services can glue together applications running on different messaging product platforms • Enabling information from one application to be made available to others • Enabling internal applications to be made available over the Internet • A rich WS software stack has been specified and standardized • Describe, compose, and orchestrate services • Package and transport messages between services
SOA, Web Services, Web 2.0, and Mashups(cont.) • Publish and discover services • Represent quality of service (QoS) parameters • Ensure security in service access • WS standards have been created on top of HTTP and XML • Providing a common mechanism for delivering services • Making them ideal for implementing a service-oriented architecture (SOA) • SOA addresses requirements of loosely coupled, standards-based, and protocol-independent distributed computing
SOA, Web Services, Web 2.0, and Mashups(cont.) • Software resources are packaged as “services” • Provide standard business functionality • Independent of the state or context of other services • Described in a standard definition language • Have a published interface • WS enables the creation of powerful services that can be accessed on-demand, in a uniform way • Their true power resides in its interface being accessible by other services • An enterprise application following the SOA paradigm is a collection of services to perform complex business logic together
SOA, Web Services, Web 2.0, and Mashups(cont.) • In the consumer Web, information and services may be programmatically aggregated • Acting as building blocks of complex compositions, called service mashups • Many service providers make their service APIs publicly accessible using standard protocols like SOAP and REST • Amazon, del.icio.us, Facebook, and Google • One can realize a fully functional Web application into practice just by gluing pieces with few lines of code
SOA, Web Services, Web 2.0, and Mashups(cont.) • SaaS cloud applications can be built as compositions of other services from the same or different providers • Services like user authentication, e-mail, payroll management, and calendars are examples • Can be reused and combined in a business solution • Many building blocks and solutions are now available in public marketplaces • Popular APIs are combined to produce a variety of interesting solutions • Google Maps, Flickr, youtube, Amazon ecommerce, and Twitter • From finding video game retailers to weather maps
Grid Computing • Most production grids share compute and storage resources distributed across different administrative domains • e.g., teragrid and EGEE • Focus on being speeding up a broad range of scientific applications • Build standard Web services-based protocols • Allow distributed resources to be discovered, accessed, allocated, monitored, accounted for, and billed for, etc. • In general managed as a single virtual system
Grid Computing(cont.) • Open Grid Services Architecture (OGSA) defines a set of core capabilities and behaviors that address key concerns in grid systems • Globus Toolkit is a middleware • Implements several standard Grid services • Aided the deployment of several service-oriented Grid infrastructures and applications • Tools are available to interact with service grids, including grid brokers • Facilitate user interaction with multiple middleware • Implement policies to meet QoS needs
Grid Computing(cont.) • The development of standardized protocols for several grid computing activities has contributed • Allow delivery of on-demand computing services over the Internet • Ensuring QoS in grids has been perceived as a difficult endeavor • Lack of performance isolation has prevented grids adoption in a variety of scenarios • Resources are oversubscribed • Users are uncooperative
Grid Computing(cont.) • Activities associated with one user or virtual organization (VO) can influence the performance perceived by other users using the same platform • The impossibility of enforcing QoS and guaranteeing execution time • Especially for time-critical applications • Another issue is the availability of resources with diverse software configurations • Including disparate operating systems, libraries, compilers, runtime environments, etc.
Grid Computing(cont.) • User applications would often run only on specially customized environments • A portability barrier has often been present on most grid infrastructures • Inhibiting users of adopting grids as utility computing environments • Virtualization technology has been identified as the perfect fit to issues • Hosting many dissimilar software applications on a single physical platform • Evolving grids to support an additional layer to virtualize computation, storage, and network resources
Utility Computing • Large grid installations have faced new problems • Excessive spikes in demand for resources coupled with strategic and adversarial behavior by users • Grid resource management techniques did not ensure fair and equitable access to resources in many systems • In utility computing environments, users assign a “utility” value to their jobs • Utility is a fixed or time-varying valuation that captures various QoS constraints • Deadline, importance, satisfaction
Utility Computing (cont.) • The valuation is the amount users are willing to pay a service provider to satisfy their demands • The service providers attempt to maximize their own utility • Directly correlate with their profit • Choose to prioritize high yield • i.e., profit per unit of resource) user jobs • Shared systems are viewed as a marketplace • Users compete for resources based on the perceived utility or value of their jobs
Hardware Virtualization • Cloud computing services are usually backed by large-scale data centers • Composed of thousands of computers • Serve many users • Host many disparate applications • Hardware virtualization overcome most operational issues of data center building and maintenance • Virtualizing a computer system’s resources • Including processors, memory, and I/O devices • Aiming at improving sharing and utilization of computer systems
Hardware Virtualization (cont.) • Allows running multiple operating systems and software stacks on a single physical platform • A software layer mediates access to the physical hardware presenting to each guest operating system a virtual machine (VM) • The virtual machine monitor (VMM) • Also called a hypervisor, • VM is a set of virtual platform interfaces • Several technologies have contributed to an increasing adoption of virtualization • Multi-core chips, para-virtualization, hardware-assisted virtualization, and live migration of VMs
Hardware Virtualization (cont.) • Traditionally, perceived benefits were improvements on sharing and utilization, better manageability, and higher reliability • Recently emphasizing three basic capabilities regarding management of workload in a virtualized system • Isolation, consolidation, and migration • Workload isolation is achieved • All program instructions are fully confined inside a VM • Leads to improvements in security • Better reliability is also achieved • Software failures inside one VM do not affect others
Hardware Virtualization (cont.) • Better performance control is attained • Execution of one VM should not affect the performance of another VM • The consolidation of several individual and heterogeneous workloads onto a single physical platform • Leads to better system utilization • Also overcomes potential software and hardware incompatibilities in case of upgrades • Run legacy and new operation systems concurrently • Workload migration targets at facilitating hardware maintenance, load balancing, and disaster recovery
Hardware Virtualization (cont.) • Also referred to application mobility • Encapsulating a guest OS state within a VM • Allowing it to be suspended, fully serialized, migrated to a different platform, resumed immediately or preserved to be restored at a later date • A VM’s state includes a full disk or partition image, configuration files, and an image of its RAM • VMM platforms are the basis of many utility or cloud computing environments
Hardware Virtualization (cont.) • VMWare Esxi • A VMM from vmware • A bare-metal hypervisor • Installs directly on the physical server • Others may require a host operating system • Through memory ballooning and page sharing, it can overcommit memory • Increasing the density of VMs inside a physical server • Xen • Pioneered the para-virtualization concept • The guest operating system, by means of a specialized kernel, can interact with the hypervisor • Significantly improving performance
Hardware Virtualization (cont.) • Currently forms the base of commercial hypervisors of a number of vendors • Most notably Citrix XenServer and Oracle VM • KVM • A Linux virtualization subsystem • Memory management and scheduling are carried out by existing kernel features • Making KVM simpler and smaller than hypervisors that take control of the entire machine • Leverages hardware-assisted virtualization • Improves performance • Supports unmodified guest operating systems • Supports some versions of Windows, Linux, and UNIX
Virtual Appliances and the Open Virtualization Format • An application combined with the environment needed to run it is referred to as a virtual appliance • Operating system, libraries, compilers, databases, application containers, etc. • Eases software customization, configuration, patching and improves portability • Shaped as a VM disk image associated with hardware requirement • Can be readily deployed in a hypervisor • Ready-made ones contain popular operating systems and useful software combinations • Both commercial and open-source
Virtual Appliances and the Open Virtualization Format(cont.) • Each hypervisor supports a different VM image format • The formats are incompatible with one another • Interoperability issues arises • The Open Virtualization Format (OVF) facilitates packing and distribution of software to be run on VMs • Open, secure, portable, efficient and extensible • An OVF package consists of a file or set of files describing:
Virtual Appliances and the Open Virtualization Format(cont.) • The VM hardware characteristics • e.g., memory, network cards, and disks • Operating system details, startup, and shutdown actions, the virtual disks themselves • Other metadata containing product and licensing information • OVF also supports complex packages composed of multiple VMs • e.g., multi-tier applications • OVF’s extensibility has encouraged additions relevant to management of data centers and clouds
Virtual Appliances and the Open Virtualization Format(cont.) • Virtual machine contracts (VMC) aids in communicating and managing the complex expectations that VMs have of their runtime environment and vice versa • A cloud consumer could specify minimum and maximum amounts of a resource that a VM needs to function • A cloud provider could express resource limits as a way to bound resource consumption and costs
Autonomic Computing • Autonomic computing improves systems by decreasing human involvement in their operation • Systems should manage themselves with high-level guidance from humans • Autonomic, or self-managing, systems rely on monitoring probes and gauges (sensors) • On an adaptation engine (autonomic manager) for computing optimizations based on monitoring data • On effectors to carry out changes on the system
Autonomic Computing (cont.) • The four properties of autonomic systems • Self-configuration, self-optimization, self-healing, and self-protection • Data center automation may perform tasks • Management of service levels of running applications • Management of data center capacity • Proactive disaster recovery • Automation of VM provisioning
Layers And Types Of Clouds • Cloud computing services are divided into three classes • Infrastructure as a Service, Platform as a Service, and Software as a Service • According to the abstraction level of the capability provided and the service model of providers • The layered organization of the cloud stack from physical infrastructure to applications • Services of a higher layer can be composed from services of the underlying layer
Layers And Types Of Clouds (cont.) • A core middleware manages physical resources and the VMs deployed on top of them • Provides the required features to offer multi-tenant pay-as-you-go services • e.g., accounting and billing • Cloud development environments are built on top of infrastructure services • Offer application development and deployment capabilities • Various programming models, libraries, APIs, and mashup editors enable the creation of a range of business, Web, and scientific applications
Infrastructure as a Service • Infrastructure as a Service (IaaS) offers virtualized resources on demand • Computation, storage, and communication • A cloud infrastructure provisions servers running several choices of operating systems and a customized software stack • The bottom layer of cloud computing systems • Amazon Web Services mainly offers IaaS • The EC2 service offers VMs with a software stack • Can be customized similar to how an ordinary physical server would be customized
Infrastructure as a Service (cont.) • Users are given privileges to perform numerous activities to the server • Starting and stopping it • customizing it by installing software packages • Attaching virtual disks to it • Configuring access permissions • Firewalls rules
Platform as a Service • Platform as a Service (PaaS) offers a higher level of abstraction to make a cloud easily programmable • A cloud platform offers an environment • Developers create and deploy applications • Not necessarily need to know how many processors or how much memory that applications will be using • Multiple programming models and specialized services are offered as building blocks to new applications • e.g., data access, authentication, and payments • Google AppEngine is an example of PaaS
Platform as a Service (cont.) • Offers a scalable environment for developing and hosting Web applications • Written in specific programming languages such as Python or Java • Use the services’ own proprietary structured object data store • Building blocks: • An in-memory object cache (memcache) • Mail service, instant messaging service (XMPP) • An image manipulation service • Integration with Google Accounts authentication service
Software as a Service • Software as a Service (SaaS) delivers applications • Applications reside on the top of the cloud stack • Services provided by this layer can be accessed by end users through Web portals • Consumers are increasingly shifting from locally installed computer programs to on-line software services that offer the same functionally • Traditional desktop applications can now be accessed as a service in the Web • Alleviates the burden of software maintenance for customers
Software as a Service (cont.) • Simplifies development and testing for providers • Salesforce.com relies on the SaaS model • Offers business productivity applications (CRM) • Reside completely on their servers • Allowing costumers to customize and access applications on demand
Deployment Models • Cloud computing has emerged mainly from the appearance of public computing utilities • Other deployment models with variations in physical location and distribution have also been adopted • A cloud can be classified as: • Public, private, community, or hybrid based on model of deployment • Regardless of its service class • A public cloud • Made available in a pay-as-you-go manner to the general public
Deployment Models (cont.) • A private cloud • Internal data center of a business or other organization • Not made available to the general public • Restructuring an existing infrastructure by adding virtualization and cloud-like interfaces • Allows users to interact with the local data center while experiencing the same advantages of public clouds • Self-service interface, privileged access to virtual servers, and per-usage metering and billing