Dr Markus Hagenbuchner markus@uow.edu.au CSCI319 Introduction to Cloud Computing CSCI319 Chapter 1 Page: 1 of 10
Content and Objectives 1. Introduce to cloud computing 2. Develop and understanding to how cloud computing and distributed systems are related. 3. Develop an understanding on the main advantages and main challenges of cloud computing. 4. Provide a direction for future studies. CSCI319 Chapter 1 Page: 2 of 10
Introduction to Cloud Computing Cloud computing is seen as a utility. Hence, it provides a set of services that meet the needs of most users. Real world utilities such as water, electricity, telephony provide users with services in a transparent fashion in which the source, storage, and processing of a utility item is not visible on the consumers end. Cloud computing provides the same type of service in the virtual world: Providing storage for data, access to software and processing resources. All Clouds are implemented as a DS. CSCI319 Chapter 1 Page: 3 of 10
Definition of a Distributed System A cloud computing system is: A set of Internet-based application, storage and computing services that support most users needs. CSCI319 Chapter 1 Page: 4 of 10
Service layers in Cloud Computing Services provided with cloud computing can be categorized into three categories: Infrastructure as a Service -- IaaS - Dynamic infrastructure platform Platform as a Service -- PaaS - Computing platform as a service Software as a Service -- SaaS - Software delivery service Metal as a Service -- MaaS - A platform for IaaS, PaaS, or SaaS CSCI319 Chapter 1 Page: 5 of 10
What is Software as a Service? (SaaS) SaaS is a software delivery methodology that provides licensed multi-tenant access to software and its functions remotely as a Web-based service. Can be billed based on usage Usually multi tenant environment Highly scalable architecture
SaaS Examples
Infrastructure as a Service (IaaS) IaaS is the delivery of technology infrastructure as an on demand scalable service Can billed based on usage Usually multi tenant virtualized environment Can be coupled with Managed Services for OS and application support
IaaS Examples
Platform as a Service (PaaS) PaaS provides all of the facilities required to support the complete life cycle of building and delivering Web applications and services entirely from the Internet. Typically applications must be developed with a particular platform in mind Multi tenant environments Highly scalable multi tier architecture
PaaS Examples
Introduction to Cloud Computing Cloud computing: Allows to totally disperse with local data storage, application software, and processing power. Promotes the view of everything as a service. Includes physical and virtual infrastructure through software. Reduces requirements on users devices. Are almost always implemented on cluster or grid computer systems (due to the scale and performance required by the cloud computing service) Can require the consolidation of several Distributed Systems. CSCI319 Chapter 1 Page: 12 of 10
The Cloud Computing System The concept of cloud computing CSCI319 Chapter 1 Page: 13 of 10
Cloud computing examples XenoServer project 2003 (the first cloud?) provides infrastructure for wide area distributed computing. Amazon Web services (aws.amazon.com) Dynamo (storage service by Amazon) Eucalyptus (open.eucalyptus.com) Google App Engine (code.google.com) Hadoop (hadoop.apache.org) Azure (Microsoft) OpenStreetMaps (www.openstreetmap.org) Sector/Sphere (sector.sourceforge.net) Dropbox (www.dropbox.com) and the list is rapidly growing CSCI319 Chapter 1 Page: 14 of 10
Cloud vs. Grid computing systems Cloud and Grid computing systems share a number of similarities: Scalability Load balancing of application instances running separately on a variety of operating systems and connected to web services. System storage capacity increases with the number of users, instances, and amount of data transferred at a given time. Multitenancy and Multitask Client can perform different tasks Access single / multiple application instances Sharing resources among large pool of users Assist in reduce infrastructure costs and peak load capacity Service Level Agreement (SLA) Guaranteed uptime availability of, eg. Greater than 99% CSCI319 Chapter 1 Page: 15 of 10
Cloud vs. Grid computing systems Key differences of computational Grid when compared to Clouds are: Grids are maintained by a set of different system administrators Requires the installation of client side software When software on a node fails, the software on the other nodes may also fail Dependent components Large system images and associated hardware Large capital and operating expenses for maintenance and operation CSCI319 Chapter 1 Page: 16 of 10
Cloud computing challenges Cloud computing can be seen as a distributed system on steroids. As such, cloud computing has increased demands on Transparency: Clouds provide several different distributed services. This too needs to be hidden from the users view. Scalability: Clouds are generally larger in size. Security: Administrative roles are harder to define and enforce. Synchronization: Services in a cloud are often distributed over a wider area. Reliability: Clouds consist of more components which can fail. CSCI319 Chapter 1 Page: 17 of 10
Deployment Models Public cloud: Resources are dynamically provisioned on-demand over the Internet from a third-party provider. Private cloud: Consolidating shared services on virtualized hardware deployed from a primary datacenter to serve local and remote users. Hybrid cloud: Consists of some portion of computing resources onsite (on premise) and off-site (public cloud). By integrating public cloud services, users can leverage cloud solutions for specific functions that are too costly to maintain on-premise such as virtual server disaster recovery, backups. Community cloud: Several organizations with similar requirements share common infrastructure.
Scalability and Transparency CSCI319 Chapter 1 Page: 19 of 10
Cloud computing system design Design principles for cloud computing systems are still a very active area of research. There are no established guidelines to cloud computing system design as of yet. Significant interest by governments and the corporate world will drive the development of cloud computing systems towards maturity. CSCI319 Chapter 1 Page: 20 of 10
Install your own cloud Various software solutions exist which allow anyone to create their own cloud services. For example: owncloud, seafile Free software which realized a Dropbox-like functionality on own servers. Supported for many platforms. Requires just one node as a server. Can be extended to multiservers. Ubuntu MAAS Free software which provides the Metal As A Service Can be configured to provide IAAS, SAAS, or PAAS. Requires a pool of servers (recommended minimum is 7 servers) Many other, mostly commercial solutions exist. CSCI319 Chapter 1 Page: 21 of 10
Traditional Infrastructure Model Capital Forecasted Infrastructure Demand Time
Traditional Infrastructure Model Capital Surplus Forecasted Infrastructure Demand Time
Traditional Infrastructure Model Capital Time Actual Infrastructure Demand
Traditional Infrastructure Model Capital Surplus Time
Traditional Infrastructure Model Deficit Capital Time
Utility Infrastructure Model Capital Time Actual Infrastructure Demand
Summary Clouds can combine several distributed systems into one transparent system in order to provide services that most users need. Any Cloud is a DS but not every DS is a Cloud. Most of the design principles of DS can be applied to designing cloud systems. Some design principles for clouds are yet to evolve. In particular in the areas of security, fault tolerance, and scalability. CSCI319 Chapter 1 Page: 28 of 10