L1 to L5 Flashcards
L1: Intro Cloud Computing L2: IaaS, Virtualization, and Containers L3: PaaS L4: FaaS L5: Non-Relational Databases & Cloud Datastore Services (23 cards)
Cloud Computing
Cloud computing is a utility-like service where users pay based on usage, providing scalable IT capabilities over the Internet, with no up-front cost and an illusion of infinite resources.
Infrastructure as a Service (IaaS)
IaaS is a cloud model renting virtualized computing resources (VMs), where users don’t directly control hardware. Examples include Amazon EC2, Google Cloud, and Microsoft Azure.
Platform as a Service (PaaS)
PaaS offers a fully managed platform and solution stack for hosting applications, with the cloud provider managing infrastructure and software, allowing users to deploy web apps on-demand. Examples include Google App Engine and Heroku.
Software as a Service (SaaS)
SaaS provides application software as a service over the Internet, typically via a web browser, requiring no software installation. Examples are GMail and Office 365.
Virtualization
Virtualization, the foundation of cloud computing, partitions physical hardware into multiple virtual machines (VMs), enabling flexible, scalable, and isolated computing environments. Benefits include better resource utilization, simplified management, and enhanced security.
Cloud Characteristics (NIST Definition)
The NIST defines five essential cloud characteristics: On-demand self-service (immediate resource provisioning via web interfaces), Broad network access (resources accessible via internet standards from any device), Resource pooling (provider’s hardware pooled for multiple customers, allowing VM/data movement/replication), Rapid elasticity (quick scaling up/down to match demand, seemingly infinite resources), and Measured service (precise billing for consumed resources like vCores, storage, and bandwidth).
Hypervisor (Virtual Machine Monitor - VMM)
A hypervisor creates and runs virtual machines (VMs). Type I (bare metal) runs directly on hardware (e.g., Xen, VMware ESXi). Type II (hosted) runs as a program on an operating system (e.g., VirtualBox, VMware Workstation).
Containers
Containers are isolated, discrete environments within an OS/VM for applications, using only necessary resources. They are a Linux operating system-level virtualization method for running multiple isolated Linux systems on a single host. Benefits include being lightweight, quick setup, high performance, and portability.
Docker
Docker, released in 2013, is a platform for building, shipping, and running applications in containers. Key components include Dockerfile (defines container creation), Docker Image (read-only container template built in layers), Docker Container (running image instance), and Docker Daemon (manages containers on the server).
Docker Compose
Docker Compose is a tool for defining and running multi-container Docker applications using a single YAML file, automating container dependency management.
OpenStack
OpenStack is an open-source cloud computing platform founded by NASA and Rackspace, providing cloud storage, compute, and networking with automation and control.
Amazon EC2 Instance Types
provides scalable compute capacity, offering instance types like General Purpose, CPU Optimized, Memory Optimized, and Accelerated Computing, each with varying vCPUs, memory, storage, and network performance.
EC2 Purchasing Options
- On-Demand (pay-per-second, no commitment),
- Reserved Instances (significant savings for committed capacity),
- Dedicated Hosts (physical server for a single customer),
- Spot Instances (up to 90% discount for flexible/fault-tolerant applications).
PaaS Characteristics
PaaS offers a multi-tenant architecture, built-in scalability, integration with cloud services/databases, simplified prototyping, and a fine-grained cost model (paying only for used services). It may lead to vendor lock-in.
Vendor Lock-in (in Cloud)
Vendor lock-in occurs when an application becomes highly dependent on a specific cloud vendor, making switching providers costly due to non-standard APIs, proprietary services, or expensive data migration.
PaaS Types
PaaS types include fully managed web application platforms (e.g., Google App Engine), open-platform PaaS (e.g., Cloud Foundry), Data Processing as a Service (e.g., AWS Elastic MapReduce), and Function as a Service (FaaS).
Google App Engine
Google App Engine is a PaaS for web applications, managing infrastructure (“Upload & Go”) and supporting Python, Java, PHP, Go, and custom runtimes (Docker). Early versions sandboxed applications, preventing filesystem writes and imposing time limits.
Heroku PaaS
Heroku PaaS provides fully managed application containers called Dynos (based on Linux/Ubuntu). Dynos now incur costs (formerly free) and can experience “cold starts” after inactivity. Scaling is manual or automatic based on response time.
Cloud Foundry
Cloud Foundry is an open-source PaaS designed to prevent vendor lock-in, deployable on various IaaS platforms (AWS, Azure, GCP, OpenStack). Components include Cloud Controller (app management), BOSH (deployment/lifecycle), Diego (container management), and Gorouter (traffic routing).
Data Processing as a Service
Data Processing as a Service (PaaS) provides managed clusters for data processing applications (e.g., Hadoop). Users upload applications and specify resources; the provider manages the cluster. AWS Elastic MapReduce (EMR) is an example, offering Hadoop clusters with MapReduce, Spark, Hive, etc.
Serverless Computing / Function as a Service (FaaS)
Serverless Computing (FaaS) is a cloud-native platform for short-running, stateless, event-driven computations that scales instantly and automatically, charging only for actual usage at millisecond granularity. It eliminates managing underlying servers.
FaaS Characteristics
FaaS characteristics include running code on-demand, event-driven execution, stateless computation, short duration, auto-scaling, and billing based on actual usage.
FaaS Providers
Major FaaS providers include AWS Lambda, IBM Cloud Function (OpenWhisk-based), Google Cloud Function, Azure Functions, and Cloudflare Workers.