Introduction to Cloud Computing and Infrastructure and Services

Lecture Overview and Objectives

  • Course and Module Context: This documentation covers Module 11: "Introduction to Cloud Computing" for the course CT 097-3-3 - CSVC: Cloud Infrastructure and Services, part of the AWS Academy Cloud Architecting curriculum.
  • Lecture Sections:
    • Intro to Cloud Computing.
    • Cloud Architecture.
    • Cloud Computing Characteristic.
    • Cloud Computing Model.
    • Cloud Computing Services Layer.
    • Virtualization.
    • Virtual Machine Demonstration.
    • Analyzing Cloud Computing Model and Services Layer.
  • Labs and Media Requirements:
    • Watch video about Introduction to AWS Cloud.
    • Watch video about the Caf Scenario.
    • Knowledge check completion.
  • Learning Outcomes: By the end of this lecture, students should be able to:
    • Recognize what cloud computing is and the rationale behind its use.
    • Identify different types of cloud computing models, specifically IAASIAAS, PAASPAAS, and SAASSAAS.
    • Provide examples of cloud computing models existing from cloud providers.
    • Indicate how cloud computing models are utilized for infrastructure and deployment.
    • Indicate how to use cloud computing models with simple applications.

Defining Cloud Computing

  • General Definition: Cloud Computing is a general term used to describe a new class of network-based computing that takes place over the Internet. It is considered a step onward from Utility Computing.
  • Technical Composition: It consists of a collection or group of integrated and networked hardware, software, and Internet infrastructure referred to as a platform.
  • Communication and Transport: The Internet is used for communication and transport to provide hardware, software, and networking services to clients.
  • Abstraction of Complexity: These platforms hide the complexity and details of the underlying infrastructure from users and applications by providing a very simple graphical interface or APIAPI (Applications Programming Interface).
  • Structural Components: According to Peter Mell and Tim Grance, cloud computing represents a shared pool of configurable computing resources that provides on-demand network access and is provisioned by the Service Provider. Key components include:
    • Computer.
    • Network.
    • Storage (Database).
    • Servers.
    • Services.
    • Applications.

Cloud Computing Characteristics

  • Essential Characteristics (NIST-based):
    • Resource Pooling: Computing resources are pooled to serve multiple consumers.
    • Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms.
    • Rapid Elasticity: Capabilities can be elastically provisioned and released to scale rapidly outward and inward commensurate with demand.
    • Measured Service: Cloud systems automatically control and optimize resource use by leveraging a metering capability (e.g., storage, processing, bandwidth, and active user accounts).
    • On Demand Self-Service: A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.
  • Common Characteristics:
    • Low Cost.
    • Software Virtualization.
    • Service Orientation.
    • Advanced Security.
    • Homogeneity.
    • Massive Scale.
    • Resilient Computing.
    • Geographic Distribution.
  • Operational Philosophies:
    • The "no-need-to-know": Users do not need to know the underlying details of infrastructure; applications interface with the infrastructure via APIsAPIs.
    • "Flexibility and elasticity": Systems can scale up and down at will, utilizing resources of all kinds including CPUCPU, storage, server capacity, load balancing, and databases.
    • "Pay as much as used and needed": A hallmark of utility computing.
    • "Always on!, anywhere and any place": A hallmark of network-based computing.
  • Infrastructure Transparency: Clouds are transparent to users and applications and can be built in multiple ways using branded products, proprietary open source, hardware, software, or off-the-shelf PCsPCs. Generally, they are built on clusters of PCPC servers and off-the-shelf components combined with Open Source software and in-house applications or system software.

Cloud Computing Service Models and Layers

  • Primary Service Models:
    • Software as a Service (SaaS): A model of software deployment where an application is hosted as a service provided to customers across the Internet. It alleviates the burden of software maintenance/support, but users relinquish control over software versions and requirements.
    • Platform as a Service (PaaS).
    • Infrastructure as a Service (IaaS).
  • Service Layer Categories:
    • Application Focused Layers:
      • Services: Complete business services such as PayPal, OpenID, OAuth, Google Maps, and Alexa.
      • Application: Cloud-based software that eliminates the need for local installation, such as Google Apps and Microsoft Online.
      • Development: Software development platforms used to build custom cloud-based applications (PAASPAAS & SAASSAAS) such as SalesForce.
    • Infrastructure Focused Layers:
      • Storage: Data storage or cloud-based NASNAS such as CTERACTERA, iDisk, and CloudNAS.
      • Platform: Cloud-based platforms, typically provided using virtualization, such as Amazon ECCECC and Sun Grid.
      • Hosting: Physical data centers such as those run by IBMIBM, HPHP, and NaviSite.
  • Layered Provider Examples:
    • Application Service (SaaS): MS Live/ExchangeLabs, IBMIBM, Google Apps, Salesforce.com, Quicken Online, Zoho, Cisco.
    • Application Platform (PaaS): Google App Engine, Mosso, Force.com, Engine Yard, Facebook, Heroku, AWSAWS.
    • Server Platform (IaaS): 3Tera, EC2EC2, SliceHost, GoGrid, RightScale, Linode.
    • Storage Platform (IaaS): Amazon S3S3, Dell, Apple.

SaaS Maturity Model

  • Level 1: Ad-Hoc/Custom: One Instance per customer.
  • Level 2: Configurable per customer.
  • Level 3: Configurable & Multi-Tenant-Efficient.
  • Level 4: Scalable, Configurable & Multi-Tenant-Efficient.

Virtualization and Virtual Machines

  • Virtual Workspaces: An abstraction of an execution environment that can be made dynamically available to authorized clients. These use well-defined protocols and include:
    • Resource quota (e.g., CPUCPU, memory share).
    • Software configuration (e.g., O/SO/S, provided services).
  • Virtual Machines (VMs): An abstraction of a physical host machine where a Hypervisor intercepts and emulates instructions from VMsVMs and allows management of VMsVMs.
    • Examples: VMWare, Xen.
    • Infrastructure API: Provided via plug-ins to hardware/support structures.
  • The Virtualized Stack: The architecture follows an order of Hardware → Hypervisor → Guest OSOS → Application.
  • Performance: Para-virtualization (e.g., Xen) is noted to be very close to raw physical performance.
  • Multiple Instances: VMVM technology allows multiple virtual machines (LinuxLinux, NetBSDNetBSD, WindowsWindows) to run on a single physical machine via a Virtual Machine Monitor (VMMVMM) or Hypervisor such as Xen, VMWare, UMLUML, or Denali.

Questions & Discussion

  • Sample Exam Question: "Consider a situation where you want to create a single server to host web site and database in a production environment? Which optional section below is suitable to describe the cloud computing model for the above scenario?"
    • Options: CAASCAAS, PAASPAAS, IAASIAAS, SAASSAAS.
  • Additional Resources:
    • DigitalOcean: A General Introduction to Cloud Computing.
    • Google Cloud: What is Cloud Computing?.
    • AWSAWS: Overview of Deployment Options on AWSAWS.
    • freecodecamp.org: What is Cloud Computing? Introduction to the Cloud for Beginners.