#let title = [ Unit 1: Introduction to cloud computing ] #set text(12pt) #set page( header: [ #box()[ Knowledge not shared, remains unknown. ] #h(1fr) #box()[#title] ], numbering: "1 of 1", ) #align(center, text(20pt)[ *#title* ]) #show table.cell.where(y: 0): strong #outline() #pagebreak() = What is cloud computing _A model for enabling ubiquitous, convenient and on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction._ It is a collection of network accessable IT resources. This model allows consumers to hire a provider's IT resources as a service. #figure( image("./images/cloud infra.png"), caption: [ Cloud infrastucture diagram ] ) = Essential cloud characteristics == 1. On Demand Self Service _A consumer can unilaterally provision computing capabilities as needed automatically without requiring human interaction with each service provider._ Consumers user a web-based self service portal to view a service catalog and request cloud services. This reduces the time needed to provision new or additional IT resources. == 2. Broad Network Access _Capabilities are available over the network and accessed through standard mechanisms that promote use by hetrogeneous thin or thick client platforms._ Consumers can access cloud services on any end point device all over the world. Standard mechanisms are *OSI and TCP/IP* and *SOAP and REST web services*. == 3. Resource Pooling _The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the constomer generally has no contol or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstaction._ Enables providers to improve resource utilization and to flexibly provision and reclaim resources. == 4. Rapid Elasticity _Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropricated in any quantity at any time._ == 5. Measured Service _Cloud systems automatically contol and optimize resource use by leaveraging a metering capability at some level of abstraction appropriate to the type of service. Resources usage can be monitored, contolled and reported, providing transparency or both the provider and consumer of the utilized service._ This enables billing of cloud services. = Cloud computing benefits #table( columns: (auto, auto), table.header( [Benefit], [Description] ), [Business Agility],[ - Enables quick resource provisioning - Facilitates innovation - Reduces time-to-market ], [Reduces IT Costs],[ - Reduces up-front capital expenditure (CAPEX) - Improves resources utilization - Reduces energy and space consumation ], [High Availability],[ - Ensures resource availability based on consumer's requirements - Enables fault tolerance ], [Business continuity],[ - Reduces impact of downtime ], [Flexible scaling],[ - Enables scaling of resources to meet demand - Unilateral and automatic resource scaling ], [Flexibility of access],[ - Enables access to services from anywhere - Eliminates dependency on a specific end-point device ], [Application development and testing],[ - Enables applicaion development and testing at a greater scale - Enables testing on multiple platforms ], [Simplified infrastucture management],[ - Consumers manage only those resources that are required to access cloud services. ], [Increased collboration],[ - Enables sharing and simultaneous access of resources and information ], [Masked complexity],[ - Intricacies of IT operations are hidden from end users ] ) = Cloud service models == Infrastructure as a service #figure( image("./images/IAAS.png"), caption: [ Infrastructure as a Service ] ) _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 systemc and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited contol of select networking components._ - Consumers hire IT resources from cloud providers. - Underlying cloud infrastructure deployed and managed by the provider. - Consumers can alter the OS, database, and applications. === Pros - The cloud provides the infrastucture. - Enhanced scalability - IaaS is flexible === Cons - Security Issues - Network and service delays. === Examples - Amazon EC2 - Rackspace - GoGrid == Platform as a service #figure( image("./images/PAAS.png"), caption: [ Platform as a Service ] ) _The capability provided to the connsumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment_ - Cloud service includes compute, storage, and network resources. - Also has software like OS, database, programming framework, middleware. - Tools to develop, test, deploy and manage applications. - Most PaaS services are polyglot ( supporting multiple OS, programming languages, frameworks etc. ). - PaaS prices are calculated based on: 1. Number of consumers 2. Type of consumers 3. Time in use 4. Storage, compute, network used === Pros - Cost effective and rapid scaling - Faster market for developers - Easy deployment of web applications - Private or public deployment is possible === Cons - Developers limited to provided languages and tools - Risk of vendor lock in === Examples - Amazon Elastic Beanstalk - Heroku - Google app engine - Salesforce == Software as a service #figure( image("./images/Saas.png"), caption: [ Software as a Service ] ) _The capablity provided to the consumer is to use the provider's application running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating system, storage or even individual application capabilities, with the possible exception of limited user-specific application configuration settings._ - Provider hosts application centrally in the cloud. - The consumers do not own or manage any aspect of the cloud infrastructure. - Everything executed on the cloud so no need for end-point devices. - Can be accessed from almost all devices. === Pros - On demand service - Pay per user of application to user - Independent platform. - No need for installations. - Runs a single instance of software. - Available for multiple end users. === Examples - Pixlr - Aviary - Jaycut - iCloud = Cloud services brokerage _Cloud services brokerage ( CSB ) is an IT role and business model in which a company or other entity adds value to one or more cloud services on behalf of one or more consumers of that service._ - Used by consumers to determine what cloud service to use. - Consumer may request services from a cloud service broker instead of contacting cloud provider directly. - Broker acts as an intermediary and helps consumers through the complexities of cloud service offerings. == Categories of cloud services brokerage === Service intermediation The cloud broker enhances the service by improving it in some specific way. For example, the improvement can be manageing access to cloud resources, performance reporting, enhanced security, etc. === Service aggregation The cloud broker combines multiple resources into one resource. This ensures that the data is modeled and integrated across all component cloud services. This also ensures data security. Once established, these services are fixed and do not change often. === Service arbitrage Similar to service aggregation but services may vary. For example, a single service provider may provide multiple email services through a common interface, wherein number and type of email services may vary. The gives the broker some flexibility and adaptibility when providing services to consumers. = Cloud deployment models A cloud deployment model sepcfies how a cloud infrastructure is built, managed and accessed. == Public cloud #figure( image("./images/public.png"), caption: [ Public Cloud ] ) The cloud infrastucture is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic or government organization, or some combination of them. It exists on the premises of the cloud provider. == Private cloud The cloud infrastucture is provisioned for exclusive use by a single organization comprising multiple consumers. It may be owned, managed, and operated by the organization, a third party, or some conbination of them, and it may exist on or off premises. There are two types of private cloud: === On-Premise #figure( image("./images/privateonprem.png"), caption: [ Private On-Premise Cloud ] ) - Cloud is deployed by an organization on it's own data centers. - Provides complete control over the infrastructure and data. - Enables standardization of IT resources, processes and services. - May reduce the amount of customization and integration required to implement automation. === Externally-Hosted #figure( image("./images/privateexternal.png"), caption: [ Private Externally-Hosted Cloud ] ) - Cloud implementation outsourced to external provider. - Cloud is hosted on the provider's premises and the consumers connect to it over a secure network. - Access policies isolate the cloud resources fron other tenants. - Reduces capital expenditure associated with IT resources. == Community cloud The cloud infrastructure is provisioned for exclusive use by a specific community of consumers from organizations that have shared concern. It may be owned, managed and operated by one or more of the organizations in the community, a third party or some combination of them, and it may exist on or off premises. _If various organizations operate under common guidelines and have similar requirements, they could all share the same cloud infrastructure and lower their individual investments._ - The participants typically share the cost of the cloud service. Possibly more expensive compared to public cloud. === On-Premise #figure( image("./images/communityonprem.png"), caption: [ Community On-Premise ] ) - One or more participants provide resources. - Particiapants may provide services, consumer services or do both. - The cloud infrastucture is deployed on the premises of participants. - Providers require IT personnel to manage resources. === Externally-Hosted #figure( image("./images/commexternal.png"), caption: [ Community Externally-Hosted ] ) - Implementation of cloud outsourced to external cloud provider. - Cloud hosted externally not within the premises of any participants. _The cloud infrastucture may not be shared by multiple tenants. However, the provider has a security perimeter around the community cloud resources and they are separated from other cloud tenants by access policies implemented by provider's software._ == Hybrid cloud #figure( image("./images/hybridcloud.png"), caption: [ Hybrid Cloud ] ) _The cloud infrastucture is a composition of two or more distinct cloud infrastuctures that remain unique entities, but are bound by standardized or proprietary technology that enables data and application portability._ === Hybrid Cloud Model Uses #table( columns: (auto, auto), table.header([ Use Case ], [ Description ]), [*Cloud Bursting*],[Provisioning resources for a limited time from a public cloud to handle peak workloads.], [*Web Application Hosting*],[Hosting less critical applications such as e-commerce applications on the public cloud.], [*Migrating packaged applications*],[Migrating standard packaged applications such as email to the public cloud.], [*Application development and testing*],[Developing and testing applications in the public cloud before launching them.] )