Ad

Introduction to Cloud Computing


Cloud Computing Introduction
Cloud Computing Definition
       Cloud is a parallel and distributed computing system consisting of a collection of inter-connected and virtualised computers that are dynamically provisioned and presented as one or more unified computing resources based on service-level agreements (SLA) established through negotiation between the service provider and consumers. -  Raj Kumar Buyya
       Clouds are a large pool of easily usable and accessible virtualized resources (such as hardware, development platforms and/or services). These resources can be dynamically reconfigured to adjust to a variable load (scale), allowing also for an optimum resource utilization. This pool of resources is typically exploited by a pay-per-use model in which guarantees are offered by the Infrastructure Provider by means of customized Service Level Agreements - Vaquero
       “... a pay-per-use model for enabling available, convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, servers, storage, applications, services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.” - National Institute of Standards and Technology (NIST)
       Common characteristics between the most notable definitions, which a cloud should have:
       pay-per-use (no ongoing commitment, utility prices);
       elastic capacity and the illusion of infinite resources;
       self-service interface; and
       Resources that are abstracted or virtualised.
ROOTS OF CLOUD COMPUTING
       We can track the roots of clouds computing by observing the advancement of several technologies, especially in
       hardware (virtualization, multi-core chips),
       Internet technologies (Web services, service-oriented architectures, Web 2.0),
       Distributed computing (clusters, grids), and
       Systems management (autonomic computing, data center automation).
       From Mainframes to Clouds
       switch in the IT world
       From in-house generated computing power
       into
       Utility-supplied computing resources delivered over the Internet as Web services
       century ago
       when factories, which used to generate their own electric power, realized that it is was cheaper just plugging their machines into the newly formed electric power grid
       Computing delivered as a utility can be defined as
       “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 by choosing to obtain cheaper services from external providers as opposed to heavily investing on IT infrastructure and personnel hiring.
       In 1970s,
        companies who offered common data processing tasks ( payroll automation) operated time-shared mainframes as utilities,
       It could serve dozens of applications and often operated close to 100% of their capacity.
       In fact, mainframes had to operate at very high utilization rates simply because they were very expensive.
       The mainframe era collapsed
       with the advent of fast and inexpensive microprocessors
       isolation of workload into dedicated servers
       Incompatibilities between software stacks and operating systems
       the unavailability of efficient computer network
       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, and enabling internal applications to be made available over the Internet.
       Describe, compose, and orchestrate services, package and transport messages between services, publish and discover services, represent quality of service (QoS) parameters, and ensure security in service access.
       Created on HTTP and XML - providing a common mechanism for delivering services, making them ideal for implementing a service-oriented architecture (SOA).
       The purpose of a SOA is to address requirements of loosely coupled, standards-based, and protocol-independent distributed computing.
       In a SOA, software resources are packaged as “services,” which are well-defined, selfcontained modules that provide standard business functionality and are independent of the state or context of other services.
       , information and services may be programmatically aggregated, acting as building blocks of complex compositions, called service mashups.
       Grid Computing
       enables aggregation of distributed resources and transparently access to them
       share compute and storage resources distributed across different administrative domains, with their main focus being speeding up a broad range of scientific applications
      
       Building standard Web services-based protocols that allow distributed resources to be “discovered, accessed, allocated, monitored, accounted for, and billed for, etc., and in general managed as a single virtual system.”
       Open Grid Services Architecture (OGSA)
       defining a set of core capabilities and behaviors that address key concerns in grid systems
       Globus Toolkit is a middleware that implements several standard Grid services
       Grid brokers, which facilitate user interaction with multiple middleware and implement policies to meet QoS needs.
       Problems in Grid Computing
       ensuring QoS in grids is difficult
       Activities associated with one user or virtual organization (VO) can influence, in an uncontrollable way, the performance perceived by other users using the same platform.
       availability of resources with diverse software configurations, including disparate operating systems, libraries, compilers, runtime environments but user applications would often run only on specially customized environments
       Utility Computing
       grid resource management techniques failed to provide fair and equitable access to resources
       Traditional metrics (throughput, waiting time, and slowdown) failed to capture the more subtle requirements of users.
       No flexibility for Users about resource requirements or job deadlines, nor provisions to accommodate users with urgent work.
       In Utility Computing
       users assign a “utility” value to their jobs,
       Where utility is a fixed or time-varying valuation based on QoS constraints (deadline, importance, satisfaction).
       The valuation is the amount they are willing to pay a service provider to satisfy their demands
       service providers then attempt to maximize their own utility to get more profit
       Providers can choose to prioritize high yield user jobs.
       Hardware Virtualization
       Hardware virtualization allows running multiple operating systems and software stacks on a single physical platform
       a software layer, the virtual machine monitor (VMM), also called a hypervisor, mediates access to the physical hardware presenting to each guest operating system a virtual machine (VM), which is a set of virtual platform interfaces
      
       Following technologies increased adoption of virtualization        
       multi-core chips,
       paravirtualization,
       hardware-assisted virtualization, and
       live migration of VMs
       Traditionally, perceived benefits were
       improvements on sharing and utilization,
       better manageability, and
       Higher reliability.
       3 basic capabilities regarding management of workload in a virtualized system
       isolation, consolidation, and migration
       Work load Isolation
       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.
       Workload migration
       It is done by encapsulating a guest OS state within a VM and allowing it to be suspended, fully serialized, migrated to a different platform, and resumed immediately or preserved to be restored at a later date

VMM platforms
       VMWare ESXi
       Provides from server and desktop virtualization to high-level management tools
       It is a bare-metal hypervisor,
       Means -  it installs directly on the physical server
       others may require a host operating system
       provides advanced virtualization techniques of processor, memory, and I/O
       Xen
       open-source project and has served as a base to other virtualization products
       pioneered the para-virtualization concept
       Guest operating system, by means of a specialized kernel, can interact with the hypervisor
       forms the base of commercial hypervisors like
       Citrix XenServer and
       Oracle VM
       KVM
       The kernel-based virtual machine (KVM) is a Linux virtualization subsystem
       part of the mainline Linux kernel
       memory management and scheduling are carried out by existing kernel thus making KVM simpler and smaller than hypervisors
Virtual Appliances and the Open Virtualization Format
       virtual appliance
       An application combined with the environment needed to run it
       Environment - operating system, libraries, compilers, databases, application containers, and so forth.
       It eases software customization, configuration, and patching and improves portability.
       An appliance is shaped as a VM disk image associated with hardware requirements, and it can be readily deployed in a hypervisor.
       Each Hypervisor supports a different VM image format and the formats are incompatible with one another
       Example – AMI(Amazon Machine Image) format for Amazon EC2 public cloud
       OVF - Open Virtualization Format (OVF).
       To facilitate packing and distribution of software to be run on VMs several vendors (VMware, IBM, Citrix, Cisco, Microsoft, Dell, and HP).
       Aim is
        “Open, secure, portable, efficient and extensible”.
       An OVF package consists of a file, or set of files, describing
       the VM hardware characteristics (e.g., memory, network cards, and disks),
       operating system details,
       startup, and
       shutdown actions,
        the virtual disks themselves, and
       Other metadata containing product and licensing information.
       Extensions to OVF is allowed for management of datacenters and cloud.
       VMC – Virtual Machine Contract
       An extension to OVF.
       A simple example of a VMC is when a cloud consumer wants to specify minimum and maximum amounts of a resource that a VM needs to function; similarly the cloud provider could express resource limits as a way to bound resource consumption and costs.
       Autonomic Computing
       Systems should manage themselves, with high-level guidance from humans
       Autonomic (self-managing) systems rely on
       monitoring probes and gauges (sensors),
       on an adaptation engine (autonomic manager) for computing optimizations based on monitoring data, and
       On effectors to carry out changes on the system.
       4 properties of autonomic systems(by IBM):
       self-configuration,
       self-optimization,
       self-healing, and
       Self-protection.
       IBM has also suggested a reference model for autonomic control loops of autonomic managers, called MAPE-K (Monitor Analyze Plan Execute—Knowledge)
      the concepts of autonomic computing inspire software technologies for data center automation
      Its Tasks are
       management of service levels of running applications;
       management of data center capacity;
       proactive disaster recovery; and
       automation of VM provisioning


LAYERS AND TYPES OF CLOUDS


      Cloud computing services are divided into three classes ( based on abstraction level of the capability provided and the service model of providers)
       (1) Infrastructure as a Service,
       (2) Platform as a Service, and
       (3) Software as a Service
      Note:-
       These abstraction levels can also be viewed as a layered architecture where services of a higher layer can be composed from services of the underlying layer
      



       Public cloud
       “cloud made available in a pay-as-you-go manner to the general public”
       Private cloud
       “Internal data center of a business or other organization, not made available to the general public.”
       Community cloud
       “shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations)
       Hybrid cloud
       when a private cloud is supplemented with computing capacity from public clouds
       Note: - “cloud-bursting” - temporarily renting capacity to handle spikes in load.
        
DESIRED FEATURES OF A CLOUD

      These features are essential to
      enable services that truly represent the cloud computing model and
      Satisfy expectations of consumers.
      Self-Service
      Consumers expect on-demand - nearly instant access to resources.
      So clouds must allow self-service access
      customers can request, customize, pay, and use services without intervention of human operators
      Per-Usage Metering and Billing
      Services must be priced on a short term basis (e.g., by the hour), allowing users to release (and not pay for) resources as soon as they are not needed.
      Implement features to allow efficient trading
       pricing,
       accounting, and
       Billing
      Elasticity
      illusion of infinite computing resources available on demand
      it is expected that the additional resources can be
       (a) provisioned, possibly automatically, when an application load increases and
       (b) released when load decreases
     scale up and down
      Customization
       Multi-tenant cloud a great disparity between user needs
       Resources rented from the cloud must be highly customizable.
CLOUD INFRASTRUCTURE MANAGEMENT

      A key challenge IaaS providers face when building a cloud infrastructure is managing physical and virtual resources
      The orchestration of resources must be performed in a way to rapidly and dynamically provision resources to applications
      virtual infrastructure manager (VIM)
      The software toolkit responsible for this orchestration.
      VIM or cloud operating system or infrastructure sharing software or virtual infrastructure engine
     Features of VIM
1.      Virtualization Support.
2.      Self-Service, On-Demand Resource Provisioning.
3.      Multiple Backend Hypervisors.
1.      Some VI managers provide a uniform management layer regardless of the virtualization technology used.
2.      open-source VI managers provide pluggable drivers to interact with multiple hypervisors
4.      Storage Virtualization.
1.      Abstracting logical storage from physical storage.
2.      consolidates all available storage devices in a data center
3.      Allows to create virtual disks independent from device and location
4.      Organized in a storage area network (SAN) and attached to servers via protocols such as Fibre Channel, iSCSI, and NFS
5.   a storage controller provides the layer of abstraction between virtual and physical storage

5.    Interface to Public Clouds
1.      Hybrid cloud - institutions can make good use of their available resources and, in case of spikes in demand, extra load can be offloaded to rented resources
2.      A VI manager can be used in a hybrid cloud setup if it offers a driver to manage the life cycle of virtualized resources obtained from external cloud providers.
6.    Virtual Networking
1.      Virtual networks - isolated network on top of a physical infrastructure independently from physical topology and locations
2.      VLAN – Virtual LAN –
       isolates traffic that shares a switched network, allowing VMs to be grouped into the same broadcast domain
       VLAN can be configured to block traffic originated from VMs from other networks
3.      Similarly, the VPN - virtual private network
       private overlay network on top of a public network
4.     Support for creating and configuring virtual networks to group VMs placed throughout a data center is provided by most VI managers.
7.      Dynamic Resource Allocation
1.      For Less Energy consumption in data centers there should be dynamic consolidation of VMs in a fewer number of servers.
2.      Machines that are not assigned any VM can be turned off or put on a low power state.
3.      Overheating can be avoided by moving load away from hotspots
8.      Virtual Clusters.
1.       group of interconnected VMs for multi-tier Internet applications
9.     Reservation and Negotiation Mechanism.
1.      AR - Advance Reservations
      users request computational resources to available at a specific time
2.      Best-Effort Requests
      when users request resources whenever available
3.      In clouds on which resources are scarce, VM placement strategies are used which support queues, priorities, and advance reservations
4.      Leases may be negotiated and renegotiated, allowing provider and consumer to modify a lease or present counter proposals until an agreement is reached.
5.      OpenPEX – uses bilateral negotiation protocol
      allows users and providers to come to an alternative agreement by exchanging offers and counter offers
10.  High Availability and Data Recovery
1.      Aims at minimizing application downtime and preventing business disruption.
2.      Failover mechanism
      Detects failure of both physical and virtual servers and restarts VMs on healthy physical servers.
3.      Mission critical applications
      restarting VMs does not suffice
      redundant and synchronized VMs are kept in a secondary physical server
      ensures that a duplicate VM serves the application in case of failures
4.      some VI managers offer data protection mechanisms that perform incremental backups of VM images
5.     The backup workload is often assigned to proxies, thus offloading production server and reducing network overhead

Infrastructure as a Service Provider

      Iaas Provides
      virtual servers containing one or more CPUs,
      running several choices of operating systems and
      A customized software stack.
      In addition, storage space and communication facilities are often provided.
      Specialized features that influence the cost-benefit ratio to be experienced by user applications when moved to the cloud.
      geographic distribution of data centers;
      variety of user interfaces and APIs to access the system;
      specialized components and services that aid particular applications (e.g., loadbalancers, firewalls);
      choice of virtualization platform and operating systems; and
      Different billing methods and period (e.g., prepaid vs. post-paid, hourly vs. monthly).
      Geographic Presence
      To improve availability and responsiveness, a provider of worldwide services would typically build several data centers distributed around the world
      For example,
      Amazon Web Services uses
      Availability zones” and “regions” for its EC2 service.
      Availability zones are distinct locations that are engineered to be insulated from failures in other availability zones
      provide inexpensive, low-latency network connectivity to other availability zones in the same region
      Regions are geographically dispersed and will be in separate geographic areas or countries





      User Interfaces and Access to Servers
      Public IaaS provider must provide multiple access means to its cloud
      Different types of UI
      graphical user interfaces (GUI),
      command-line tools (CLI), and
      Web service (WS) APIs.
      GUIs
      to launch, customize, and monitor a few virtual servers and
      Do not necessary need to repeat the process several times.
      CLIs
      For automating repetitive tasks via scripts
      e.g:- start and shutdown a number of virtual servers at regular intervals
      WS APIs offer programmatic access to a cloud using standard HTTP requests, thus allowing complex services to be built on top of IaaS clouds.
      Advance Reservation of Capacity
      Advance reservations allow users to request for an IaaS provider to reserve resources for a specific time frame in the future.
      Most clouds only support best-effort requests (user’s requests server whenever resources are available).
      Example:-
      Amazon Reserved Instances - advance reservation of capacity
      It allows users to pay a fixed amount of money in advance to guarantee resource availability at any time during an agreed period and then paying a discounted hourly rate when resources are in use.
      Only long periods of 1 to 3 years are offered.
      Automatic Scaling and Load Balancing
      Applications often need to scale up and down (elasticity) to meet varying load conditions.
      It allow users to set conditions for when they want their applications to scale up and down
      based on application-specific metrics such as
      transactions per second,
      number of simultaneous users,
      Request latency, and so forth.
      Incoming traffic must be automatically distributed among the available servers - after Scale up through automatic scaling
      This activity enables applications
      to promptly respond to traffic increase
      Achieves greater fault tolerance.
      Service-Level Agreement
      Offered by IaaS providers to express their commitment to delivery of a certain QoS.
      To customers it serves as a warranty.
      An SLA usually include
      Availability and performance guarantees.
      Most IaaS providers focus their SLA terms on availability guarantees, specifying the minimum percentage of time the system will be available during a certain period.
      For instance, Amazon EC2 states that “if the annual uptime Percentage for a customer drops below 99.95% for the service year, that customer is eligible to receive a service credit equal to 10% of their bill.3 ”
      Hypervisor and Operating System Choice.
      Traditionally, IaaS offerings have been based on heavily customized open-source Xen deployments.
      IaaS providers needed expertise in
      Linux, networking, virtualization, metering, resource management, and many other low-level aspects to successfully deploy and maintain their cloud offerings.
      More recently,
      VMWare vCloud and Citrix Cloud Center (C3) which have lowered the barrier of entry for IaaS competitors, leading to a rapid expansion in the IaaS marketplace.


PLATFORM AS A SERVICE PROVIDERS

      Offer a development and deployment environment that allow users to create and run their applications with little or no concern to low-level details of the platform.
      specific programming languages and frameworks are made available
      other services such as
      persistent data storage and
      In-memory caches.
      Features
      Programming Models, Languages, and Frameworks.
      Each model aims at efficiently solving a particular problem.
      In the cloud computing domain, the most common activities that require specialized models are:
      processing of large dataset in clusters of computers (MapReduce model),
      development of request-based Web services and applications;
      definition and orchestration of business processes in the form of work- flows (Workflow model); and
      High-performance distributed execution of various computational tasks.
      For user convenience, PaaS providers usually support multiple programming languages.
      Most commonly used languages in platforms include
      Python and Java (e.g., Google AppEngine),
      .NET languages (e.g., Microsoft Azure), and
      Ruby (e.g., Heroku).
      Force.com has devised its own programming language (Apex) and an Excel-like query language, which provide higher levels of abstraction to key platform functionalities.
      Providers that focus on Web and enterprise application hosting offer popular frameworks such as Ruby on Rails, Spring, Java EE, and .NET.



      Persistence Options.
      A persistence layer is essential to allow applications to record their state and recover it in case of crashes, as well as to store user data.
      Traditionally - relational databases as the preferred persistence method.
      These databases offer fast and reliable structured data storage and transaction processing, but may lack scalability to handle several petabytes of data stored in commodity computers.
      Cloud computing domain - distributed storage technologies have emerged, which seek to be robust and highly scalable, at the expense of relational structure and convenient query languages.
      For example,
      Amazon SimpleDB and Google AppEngine datastore offer
      schema-less,
      Automatically indexed database services.
      Data queries can be performed only on individual tables; that is, join operations are unsupported for the sake of scalability.

CHALLENGES AND RISKS
      Security, Privacy, and Trust
      “Current cloud offerings are essentially public ... exposing the system to more attacks.”
      Challenge - to make cloud computing environments as secure as in-house IT systems.
      Data encryption, VLANs, and firewalls – can be used.
      Security and privacy affect -> massive use of third-party services and infrastructures. So, the trust toward providers is fundamental.
      Legal and regulatory issues –
      physical location of data centers determines the set of laws that can be applied to the management of data
      Specific cryptography techniques are not allowed in some countries.
      Data Lock-In and Standardization
      User data locked-in by a certain provider.
      Users may want to move data and applications out from a provider that does not meet their requirements.
      Currently, no standard methods of storing user data and applications.
      Consequently, they do not interoperate and user data are not portable.
      Answer àstandardization
      The Cloud Computing Interoperability Forum (CCIF)
      Unified Cloud Interface (UCI) - aims at creating a standard programmatic point of access to an entire cloud infrastructure
      Open Virtual Format (OVF) - virtual appliances can be made portable
      virtual appliances seamlessly run on hypervisor of different vendors
      Availability, Fault-Tolerance, and Disaster Recovery
      Users seek for a warranty (for Availability, Fault-Tolerance, and Disaster Recovery) before they can comfortably move their business to the cloud.
      SLAs with QoS requirements must be set up between customers and cloud computing providers to act as warranty.
      An SLA specifies the details of the service to be provided, including availability and performance guarantees.
      Additionally, metrics must be agreed upon by all parties, and penalties for violating the expectations must also be approved.
      Resource Management and Energy-Efficiency
      Challenge faced by providers - efficient management of virtualized resource pools.
      Challenge-1:
      finding a good mapping of VMs onto available physical hosts
      For mapping, multiple dimensions are to be considered. They are:-
      number of CPUs, amount of memory, size of virtual disks, and
      Network bandwidth.
      Dynamic VM mapping policies pre-empts low-priority allocations in favour of higher-priority ones by using
      Suspend, migrate, and resume VMs.
      Additional Challenge (regarding Migration of VMs)
      Detecting when to initiate a migration,
      which VM to migrate, and
      Where to migrate.
      Note: - Policies may take advantage of live migration of virtual machines to relocate data center load without significantly disrupting running services.
      Additional concern (regarding note)
      trade-off between
      the negative impact of a live migration on the performance and stability of a service
                                                And
      the benefits to be achieved with that migration
      Another challenge
      Outstanding (large) amount of data to be managed in various VM management activities
      Such amount of data is a result of particular abilities of virtual machines
      ability of traveling through space (i.e., migration) and time (i.e., checkpointing and rewinding),
      Operations that may be required in load balancing, backup, and recovery scenarios.
      In addition,
      Dynamic provisioning of new VMs and replicating existing VMs require efficient mechanisms to make VM block storage devices (e.g., image files) quickly available at selected hosts.
      Data centers consumes large amounts of electricity
      Example
      USD 2.6 million per year ( given by HP)
      1.3 MW of power for 100 server racks
      1.3 MW are required by the cooling system
      Risk
      data centers significantly impact the environment in terms of CO2 emissions from the cooling systems
      Note:-
      Dynamic resource management improves utilization and consequently minimize energy consumption in data centers.
      This can be done by consolidating workload onto smaller number of servers and turning off idle resources


Download links -   pdf        word

2 comments:

  1. I liked the way you put together everything, there is certainly no need to go any further to look for any additional information. You mentioned each and everything about Multi Cloud Observability.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete