CloudComputing
• Cloud Computing is a general term used to describe a new class of network based computing that takes place over the Internet,
– basically a step on from Utility Computing
– a collection/group of integrated and networked hardware, software and Internet infrastructure (called a platform).
– Using the Internet for communication and transport provides hardware, software and networking services to clients
• These platforms hide the complexity and details of the underlying infrastructure from users and applications by providing very simple graphical interface or API (Applications Programming Interface).
• In addition, the platform provides on demand services, that are always on, anywhere, anytime and any place.
• Pay for use and as needed, elastic
– scale up and down in capacity and functionalities
• The hardware and software services are available to
– general public, enterprises, corporations and businesses markets
• Cloud computing is an umbrella term used to refer to Internet based development and services
• A number of characteristics define cloud data, applications services and infrastructure:
– Remotely hosted: Services or data are hosted on remote infrastructure.
– Ubiquitous: Services or data are available from anywhere.
– Commodified: The result is a utility computing model similar to traditional that of traditional utilities, like gas and electricity - you pay for what you would want!
Basic Cloud Characteristics
• The “no-need-to-know” in terms of the underlying details of infrastructure, applications interface with the infrastructure via the APIs.
• The “flexibility and elasticity” allows these systems to scale up and down at will
– utilising the resources of all kinds
|
|
• CPU, storage, server capacity, load balancing, and databases
• The “pay as much as used and needed” type of utility computing and the “always on!, anywhere and any place” type of network-based computing.
• Cloud are transparent to users and applications, they can be built in multiple ways
– branded products, proprietary open source, hardware or software, or just off-the-shelf PCs.
• In general, they are built on clusters of PC servers and off-the-shelf components plus Open Source software combined with in-house applications and/or system software.
Software as a Service (SaaS)
• SaaS is a model of software deployment where an application is hosted as a service provided to customers across the Internet.
• Saas alleviates the burden of software maintenance/support
– but users relinquish control over software versions and requirements.
• Terms that are used in this sphere include
– Platform as a Service (PaaS) and
– Infrastructure as a Service (IaaS)
Virtualization
• Virtual workspaces:
– An abstraction of an execution environment that can be made dynamically available to authorized clients by using well-defined protocols,
– Resource quota (e.g. CPU, memory share),
– Software configuration (e.g. O/S, provided services).
• Implement on Virtual Machines (VMs):
– Abstraction of a physical host machine,
– Hypervisor intercepts and emulates instructions from VMs, and allows management of VMs,
– VMWare, Xen, etc.
• Provide infrastructure API:
– Plug-ins to hardware/support structures
Virtualization in General
• Advantages of virtual machines: