Introduction to Cloud Computing
1a. Define Cloud Computing
Cloud computing is the on-demand delivery of compute power, database, storage, applications, and other IT resources via the internet with pay-as-you-go pricing.
The NIST 5 Essential Characteristics
- On-demand self-service: Automatic resource provisioning without human interaction.
- Broad network access: Access from any device (laptop, mobile, tablet).
- Resource pooling: Multi-tenant model serving multiple customers.
- Rapid elasticity: Instant scaling up or down based on demand.
- Measured service: Resource usage is monitored and billed accordingly.
1.2 Roots of Cloud Computing
1.2.1 Mainframes to Cloud
The journey began with monolithic mainframes in the 1950s where multiple users shared access via 'dumb terminals'. This evolved through client-server models to the modern distributed cloud architecture.
1.2.2 Grid & Utility
Grid Computing: Connecting heterogeneous resources across locations for
a single goal.
Utility Computing: Providing computing resources as a
metered service (like water or electricity).
1.2.3 HW Virtualization
The foundational technology that allows a single physical server to run multiple virtual machines, maximizing hardware utilization.
1.3 Cloud Service Models (SPI)
1.3.1 Architecture & Platforms
Cloud architecture refers to the components and subcomponents required for cloud computing (Front-end, Back-end, Network). Platforms (PaaS) offer environments for developers to build apps without managing infrastructure.
| Model | Full Form | Real-world Example |
|---|---|---|
| IaaS | Infrastructure as a Service | AWS EC2, Google Compute Engine |
| PaaS | Platform as a Service | Heroku, Google App Engine |
| SaaS | Software as a Service | Gmail, Office 365, Dropbox |
1.4 Layers and Types of Clouds
Public Cloud
Owned and operated by a third-party provider over the public internet (Shared infrastructure).
Private Cloud
Used exclusively by one organization. Can be physically located at the onsite data center.
Hybrid Cloud
Combines public and private clouds, allowing data and apps to be shared between them.
1.5 - 1.7 Cloud Features, Pros & Apps
- High Availability & Fault Tolerance
- Scalability & Multi-tenancy
- Self-healing & Disaster Recovery
Pros: Cost efficiency (OpEx over CapEx), speed, global scale,
productivity.
Cons: Downtime risk, security concerns, limited control, vendor
lock-in.
1.7 Applications
Storage/Backup, Big Data Analytics, Software Testing/Dev, E-commerce, Streamlining Business Processes (ERP/CRM).
Virtualization & Hypervisors
2.1 Introduction to Cloud Virtualization
Virtualization is the process of creating a virtual version of something, such as server, storage, or network. It uses software to simulate hardware functionality and create a virtual system.
2.2 Characteristics
- Partitioning: Supporting multiple applications and OS in a single physical system.
- Isolation: VMs are isolated from each other and the host system.
- Encapsulation: Entire VM state can be saved as a single file.
- Hardware Independence: VMs can be migrated to any physical node.
2.3 Cloud Virtualization Basics
2.3.1 Hardware Virtualization
Installation of virtualization software onto the hardware system (Bare metal).
2.3.2 Software Virtualization
Virtualizing the environment to run multiple applications on a single host OS.
| Method | Technical Mechanism |
|---|---|
| Full Virt (2.3.3) | Uses Binary Translation. Guest OS is unmodified. |
| Para Virt (2.3.4) | Uses Hypercalls. Guest OS is modified (Enlightened). |
| Partial Virt (2.3.5) | Simulates only some hardware; lacks full isolation. |
| OS-Level (2.3.6) | Containers sharing the same Host Kernel (e.g., Docker). |
2.4 Types of Virtualization
2.4.1 Programming Level
JVM (Java Virtual Machine) or .NET CLR creating a platform-independent runtime.
2.4.2 Application Level
Encapsulating applications from the underlying OS (e.g., App-V).
2.4.3 Storage Virtualization
Pooling physical storage from multiple network storage devices into a single logical unit.
2.4.4 Network Virtualization
Combining available resources in a network by splitting up the bandwidth into channels (VLANs/SDN).
2.4.5 Desktop Virtualization
Separating the desktop environment and associated software from the physical client device.
2.5 Hypervisors & Virtual Machines
2.5.1 Introduction to Hypervisors
2.5.2 Creating & Managing VMs
Involves: 1. Provisioning Resources, 2. OS Installation, 3. Config Management, 4. Lifecycle Management (Snapshot, Migration, Deletion).
2.6 Virtualization of Clusters & DC Automation
Virtualizing an entire cluster allows for high availability and workload balancing across physical nodes.
Clustering
Connecting multiple physical servers to act as a single system. If one fails, the VMs migrate to another (HA).
DC Automation
Using scripts and tools to automate standard DC operations like resource allocation and monitoring.
Data Center Architecture
3.1.1 Historical Perspective & Evolution
Data centers evolved from early server rooms to massive hyper-scale facilities. Key milestones include the shift from mainframe to client-server, then cluster computing, and finally to virtualized/cloud-integrated data centers.
3.1.2 Key Components
- Facility: The physical building (space, power, cooling).
- Infrastructure: Racks, UPS, cabling, and cooling units.
- IT Equipment: Servers, Storage systems, Networking gear.
| Tier | Uptime % | Requirement |
|---|---|---|
| Tier 1 | 99.67% | Single non-redundant path. |
| Tier 2 | 99.74% | Partial redundancy. |
| Tier 3 | 99.98% | Concurrent maintenance (N+1). |
| Tier 4 | 99.99% | Fault Tolerant (2N+1). |
3.2 Data Center Networking
3.2.1 DC Network Topologies
Three-Tier: Access, Aggregation, and Core
layers.
Leaf-Spine: Two layers (Leafs connect to servers, Spines
connect all Leafs). Optimized for East-West traffic.
3.2.2 SDN in Data Center
Software-Defined Networking allows administrators to manage network services through abstraction of lower-level functionality. Focuses on centralizing control (Control Plane).
3.3 Automation and Scaling
3.3.1 Automation in Data Centers
Automating repetitive tasks like VM provisioning, configuration updates, and resource monitoring using tools like Ansible, Puppet, or Chef.
3.3.2 Infrastructure as Code (IaC)
IaC involves managing and provisioning infrastructure through machine-readable definition files (e.g., Terraform). This ensures consistency and version control.
3.3.3 Scalability vs Elasticity
Scalability: The ability to handle growing workloads by adding resources
(Vertical/Horizontal).
Elasticity: The ability to scale resources up
AND down automatically in real-time based on demand.
Cloud Storage Solutions
Object Storage
Stored as objects with metadata and a unique identifier. Highly scalable. (e.g., Amazon S3).
Block Storage
Data is broken into blocks. High performance, used for databases/OS. (e.g., Amazon EBS).
File Storage
Stored as files in a folder hierarchy. Shared access. (e.g., Azure Files).
4.1.2 Consistency & Durability
Durability: Data remains intact over long periods (99.999999999%
goal).
Consistency: All users see the same data at the same time
(Strong vs Eventual consistency).
4.2 Cloud Databases
SQL (Relational)
Structured data, predefined schema. Supports ACID transactions. (e.g., AWS RDS).
NoSQL (Non-relational)
Unstructured data, flexible schema. High scaling for big data. (e.g., MongoDB, DynamoDB).
Scaling & Replication
Replication: Copying data across multiple nodes for high
availability.
Scaling: Adding more nodes (Sharding) to distribute the
database load.
Cloud Security and Compliance
- Data Breaches & Data Loss
- Insecure APIs & Interfaces
- Insufficient due diligence
- Shared technology vulnerabilities
5.1.2 Identity and Access Management (IAM)
Ensures that only authorized individuals can access specific resources. Uses Roles, Policies, and Groups.
5.1.3 Access Control & Auth
Authentication: Verifying who you are
(MFA).
Authorization: Verifying what you can do (RBAC).
5.2 Data Security in Cloud
Technologies for Data Security
- Encryption at Rest: Protecting data on disks/storage.
- Encryption in Transit: Protecting data moving over networks (SSL/TLS).
- Data Masking & Tokenization: Obscuring sensitive data.
5.3 Securing Architectures
5.3.1 Service Level Agreements (SLAs)
Official contracts between provider and user defining uptime, performance metrics, and penalties for failure.
5.3.2 DevSecOps
Integrating security practices early and throughout the software development lifecycle (Shift-Left Security).
Emerging Technologies
6.1 Serverless Computing
Developers write code (Functions) without managing servers. Scaled automatically. (e.g., AWS Lambda).
6.2 Edge & Fog Computing
Processing data closer to the source (IoT devices) to reduce latency, rather than sending everything to a central cloud.
6.3 - 6.4 AI, ML & DLT
AI & ML with Cloud
Cloud provides the massive compute power (GPUs/TPUs) needed to train complex AI models and host them for inference.
Distributed Ledger (DLT)
Using cloud to host blockchain nodes and decentralized databases for transparency and security.
6.5 - 6.6 5G & Containers
5G & Cloud-Native
5G enables ultra-low latency and high bandwidth, allowing cloud-native applications to run seamlessly on mobile networks.
Kubernetes & Containers
Containers: Bundle code with its dependencies.
Kubernetes
(K8s): The orchestrator that manages thousands of containers across
clusters.
CDCT Practical Projects
Static Website Hosting
Host a personal portfolio or static site using AWS S3 + CloudFront or Google Cloud Storage. Focus on setting up custom domains and HTTPS.
Cloud-Native Application
Create a web or mobile app using Serverless architecture (AWS Lambda / Firebase). Implement real-time data sync and user authentication.
Case Study Report
Prepare a detailed analysis of Amazon Cloud Services (AWS) or Google Cloud (GCP). Covering infrastructure, business models, and service availability.