Week 9 – Cloud Computing 1
CLOUD COMPUTING (1)
Dr Bailin Deng
Introduction to Cloud Computing
• “Cloud computing is a model for enabling ubiquitous,
convenient, on-demand network access to a shared pool
of configurable computing resources (e.g., networks,
servers, storage, applications, and services) that can be
rapidly provisioned and released with minimal
management effort or service provider interaction. ”
Mell, P. and Grance, T., 2011. The NIST definition of cloud computing.
Introduction to Cloud Computing
• Five main principles
• Pooled resources
• Virtualization
• Elasticity
• Automation
• Metered Billing
• J Rosenberg & A Mateos, The Cloud at Your Service, Manning
Publications, 2010
Pooled Resources
• Pooled computing resources that are available to any
subscribers
• A shift from host-hosted IT to outsourced IT
• Lower financial barrier to initiate a new project
• Reduction in expenses associated with operating and infrastructure
Virtualization
• Each physical server is partitioned into many virtual
servers
• Each virtual server acts like a real server that can independently
run an operating system and applications
• Virtualized servers are the primary units that can be consumed as
needed in the cloud
Elasticity
• Ability to dynamically change how much resource is
consumed in response to how much is needed
• Typical applications require a base level of resources
under normal conditions, but need more resources under
peak load conditions
• In the non-cloud world, need to build sufficient capacity to
handle peak load scenarios – over-provisioning
Automation
• Ability to automatically (via API) provision and deploy a new
virtual instance of a machine, and to free (de-provision) an
instance
• Provision new instance
on an as-needed basis
Metered Billing
• A pay-as-you-go model
• No annual contract and no commitment to a specific level of
consumption
• Charges only for what you use (e.g. on an hourly basis)
Private/Public/Hybrid Clouds
• Private Cloud: pooled resources that belong to a
particular organization or an enterprise, not available to
the general public
• Public Cloud: pooled resources are available to any
subscribing user
• Hybrid Cloud : combines both private and public clouds
Potential Benefits
• Initial capital barrier to starting a project is drastically
reduced
• Improves an organization’s agility – reduced planning,
purchasing, provisioning and maintenance
• Security might be stronger and better in the Cloud
• Big vendors probably know how to do security
Potential Disadvantages
• Location of data
• Latency
• Cost
• Not all applications suit cloud environments
• Vendor/tool lock-in
• Dependence on vendor’s continued support and billing
arrangements (e.g. Google API)
• Security and privacy
• http://www.edweek.org/ew/articles/2014/03/13/26google.h33.html
Infrastructure as a Service (IaaS)
• An IaaS provider supplies virtual machine images of
different operating systems
• The images can be tailored by the developer to run any custom or
packaged application
• Users responsible for the setup and maintenance of services
running on the virtual machines (e.g. Apache)
• Use of the images is typically metered and charged on an hourly
basis
• Storage and bandwidth are also consumable commodities
• Storage is typically charged per GB per month
• Bandwidth is typically charged for transmission in and out of the
system
Infrastructure as a Service (IaaS)
• Example: Amazon Elastic Compute Cloud (EC2)
Platform as a Service (PaaS)
• A user develops/deploys applications using languages,
libraries, services, and tools supported by the provider
• Facilitates deployment of applications without the complexity of
managing the underlying virtual OSs
• Limitation: Less flexibility
• A particular PaaS provider only supports some specific language(s)
Platform as a Service (PaaS)
• Examples:
• Google AppEngine
• Microsoft Azure
• Heroku
• OpenShift (Red Hat)
Software as a Service (SaaS)
• SaaS refers to services and applications that are available
on an on-demand basis
Software as a Service (SaaS)
• SaaS refers to services and applications that are available
on an on-demand basis
• Example: Google
• Cloud applications accessed via browser
• Google Docs, etc.
• Or via Google apps, using predefined APIs
• Gmail, Calendar, … [also available via browser]
• APIs available to third parties (e.g. as HTTP requests)
• Translate API
• Custom search API
• …
Comparison
Hosted
applications
Development tools,
DB management, etc.
OS Servers &
Storage
Networking
firewalls/security
Data center
physical facility
Technical Underpinnings
• Data centers
• Virtualization
• Cloud API for controlling remote servers
• …
Data Centers
• A data center is a facility (usually secure) to house a large
collection of computers, networking and communications
equipment
• Mega data centers: Amazon, Google, Facebook, etc.
Data Centers
• Space: from a room up to entire building/multiple buildings
• Servers mounted in rows of rack cabinets
• Mainframe computers and storage devices may be placed
alongside them
• Clean, unwavering power – computers have to be running
at all times
• Backup batteries and diesel generators to keep power flowing
Data Centers
• Cooling system – air-conditioning
• Water-cooling is an option (some new data centers built along
rivers)
• Network connectivity and ample bandwidth are vital
• Physical and logical security:
• Guards, state-of-the-art authentication technology to keep
unauthorized users from physically entering
• Firewalls, VPN gateways, intrusion-detection software, and so on,
to keep unauthorized users from entering over the network
• Underpinned by a disaster recovery plan
Data Centers – Example
Virtualization
• Virtualization is accomplished by inserting a thin layer of
software directly on the computer hardware
• This layer contains a virtual machine monitor (VMM) – also called
hypervisor
• VMM accesses the hardware and presents the guest OS with a
virtual set of hardware resources
• VMM allocates hardware resources dynamically and transparently
• New instances can be generated and run on demand
• Multiple guest operating systems run concurrently on a
single physical computer and share resources with each
other through the VMM
Virtualization
Desktop Virtualization
• Virtualization isn’t just for servers
• Allows multiple OSs to run concurrently on a desktop
• Examples
• VirtualBox
• VMWare
• Parallels Desktop for Mac …
Benefits of Virtualization
• Security: virtualization gives the cloud provider more
control over what the client OS can do.
• Cost: multiple clients can use the same physical machine
instead of having to rent full machines.
• Scheduling flexibility: virtualization allows the cloud
provider to make better scheduling decisions by making it
easier to migrate client operating systems from one
physical machine to another.
• Resilience: if hardware fails, it is much easier to
reallocate virtual resources to other hosts than it would be
to completely replace physical machines.
Cloud API
• Each type of cloud must provide some kind of API that
can be used to:
• Provision resources
• Configure and control resources
• Release resources when they are no longer needed
• Many different kinds of APIs – no accepted standard yet
• SaaS – normally browser-based web interface
• IaaS
• Amazon EC2 API: SOAP-based and HTTP Query-based APIs
Example: Amazon EC2 API
• “Amazon Elastic Compute Cloud (Amazon EC2) is a web
service that provides resizable compute capacity in the
cloud.”
• AMI: an Amazon Machine Image is an encrypted and
signed machine image suitable for running in a virtual
server environment
• For example, it may contain Linux, Apache, MySQL or
PHP as well as applications of the AMI’s owner
Example: Amazon EC2 API
• AMI can be
• Public (provided by Amazon)
• Private (custom designed by its creator)
• Paid (purchased by a third party)
• Shared (created by the community for free)
• AMI can be stored in Amazon’s Simple Storage Service
(S3)
• Instance: The result of launching an AMI is a running
system is called instance
• When an instance terminates, all the data on that instance
vanishes