Introduction to Cloud Computing and Infrastructure and Services
Lecture Overview and Objectives
- Course and Module Context: This documentation covers Module 1: "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 IAAS, PAAS, and SAAS.
- 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 API (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 APIs.
- "Flexibility and elasticity": Systems can scale up and down at will, utilizing resources of all kinds including CPU, 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 PCs. Generally, they are built on clusters of PC 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 (PAAS & SAAS) such as SalesForce.
- Infrastructure Focused Layers:
- Storage: Data storage or cloud-based NAS such as CTERA, iDisk, and CloudNAS.
- Platform: Cloud-based platforms, typically provided using virtualization, such as Amazon ECC and Sun Grid.
- Hosting: Physical data centers such as those run by IBM, HP, and NaviSite.
- Layered Provider Examples:
- Application Service (SaaS): MS Live/ExchangeLabs, IBM, Google Apps, Salesforce.com, Quicken Online, Zoho, Cisco.
- Application Platform (PaaS): Google App Engine, Mosso, Force.com, Engine Yard, Facebook, Heroku, AWS.
- Server Platform (IaaS): 3Tera, EC2, SliceHost, GoGrid, RightScale, Linode.
- Storage Platform (IaaS): Amazon S3, 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., CPU, memory share).
- Software configuration (e.g., O/S, provided services).
- Virtual Machines (VMs): An abstraction of a physical host machine where a Hypervisor intercepts and emulates instructions from VMs and allows management of VMs.
- 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 OS → Application.
- Performance: Para-virtualization (e.g., Xen) is noted to be very close to raw physical performance.
- Multiple Instances: VM technology allows multiple virtual machines (Linux, NetBSD, Windows) to run on a single physical machine via a Virtual Machine Monitor (VMM) or Hypervisor such as Xen, VMWare, UML, 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: CAAS, PAAS, IAAS, SAAS.
- Additional Resources:
- DigitalOcean: A General Introduction to Cloud Computing.
- Google Cloud: What is Cloud Computing?.
- AWS: Overview of Deployment Options on AWS.
- freecodecamp.org: What is Cloud Computing? Introduction to the Cloud for Beginners.