Introduction to Cloud Computing
Most things you are using on a daily basis - social media, online file storage (Google Drive), multi-player video games - are powered by the cloud.
Therefore, it is important to know what the cloud is, how it works, and how to work with cloud technologies.
This course is designed to provide you with the foundational knowledge to understand, design, and evaluate the complex systems that we depend on every day.
Course Overview
This course provides a comprehensive introduction to the fundamental principles of cloud computing and the various networking paradigms that enable it and the technologies that power the cloud.
We will begin by defining cloud computing and establishing its significance then move on the networking paradigms of the cloud.
The objective is to build a strong conceptual framework that allows you students to understand how these technologies work in isolation and in concert to deliver the scalable, on-demand services characteristic of the cloud.
This unit is aligned with the Microsoft Azure Fundamentals Certification.
Course Learning Outcomes
Learning Outcome | Description |
|---|---|
LO1 | Demonstrate an understanding of the fundamentals of cloud computing and its architectures. |
LO2 | Evaluate the deployment models, service models and technological drivers of cloud computing and validate their use. |
LO3 | Develop cloud computing solutions using service provider frameworks and open source tools. |
LO4 | Analyse the technical challenges for cloud applications and assess their risks. |
Course Structure and Assessment
Fundamentals and Architectures (LO1): Covers evolution of networking paradigms, cloud fundamentals, virtualisation, and migration strategies.
Deployment, Service Models, and Drivers (LO2): Explores deployment models (Public, Private, Hybrid), service models (IaaS, PaaS, SaaS), and drivers like SOA.
Practical Development with Frameworks and Tools (LO3): Focuses on hands-on development using CSP frameworks (AWS, Azure) and open-source tools.
Technical Challenges and Risk Analysis (LO4): Addresses security, privacy, compliance, and data protection.
Recommended Resources: Books
Erl, T., Mahmood, Z., & Puttini, R. (2013). Cloud Computing: Concepts, Technology & Architecture. Prentice Hall.
Tanenbaum, A. S., & Van Steen, M. (2017). Distributed Systems: Principles and Paradigms (3rd ed.). Pearson.
Kleppmann, M. (2017). Designing Data-Intensive Applications. O'Reilly Media.
Kurose, J. F., & Ross, K. W. (2021). Computer Networking: A Top-Down Approach (8th ed.). Pearson.
Weise, T. (2009). Grid Computing: A Practical Guide to Technology and Applications. Chapman and Hall/CRC.
Recommended Resources: Online
Microsoft Azure Documentation: Essential for certification alignment. (docs.microsoft.com/en-us/azure/)
Amazon Web Services (AWS) Documentation: Comprehensive docs for the leading cloud provider. (docs.aws.amazon.com/)
Google Cloud Documentation: Official docs for Google's cloud services. (cloud.google.com/docs)
The NIST Cloud Computing Program: Provides official definitions and standards. (nist.gov/programs-projects/cloud-computing)
Open-Source Tools: Hadoop, Cassandra, MongoDB.
What is Cloud Computing?
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
In simple terms
Cloud computing is the on-demand delivery of IT resources over the Internet with pay-as-you-go pricing.
Traditional IT (On-Premises)
You own, manage, and maintain all your hardware and software on your premises.
Requires a large upfront investment.
Capital Expenditure (CapEx)
Cloud Computing
You rent resources from a cloud service provider (e.g., Amazon, Microsoft, Google).
You pay as you go, and the technical details are hidden.
Operational Expenditure (OpEx)
Why Make the Switch? Key Benefits
Cost Savings: Trade capital expense (CapEx) for variable expense (OpEx) and only pay for what you use.
Agility & Speed: Provision massive resources in minutes, not weeks.
Global Scale: Deliver your applications closer to users around the world, with low latency.
Productivity: Shift focus from managing hardware to building innovative applications.
Performance: Benefit from massive, state-of-the-art data centers.
Reliability & Security: Leverage the expertise and scale of providers for robust backup, disaster recovery, and security.
Essential Characteristics of Cloud
Loading diagram...
The 5 Essential Characteristics of Cloud
On-Demand Self-Service: Provision resources on-demand.
Broad Network Access: Access services from any device.
Resource Pooling: Shared resources serve multiple customers (multi-tenancy).
Rapid Elasticity: Scale resources up or down quickly.
Measured Service: Pay only for what you use (metering).
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.
Examples
A developer using a web portal to spin up a new virtual machine (like an AWS EC2 instance or Azure VM) without needing to call or email a system administrator.
A user signing up for a cloud storage service (like Dropbox or Google Drive) and getting immediate access to storage space.
Launching a database instance from a cloud provider's console.
Broad Network Access
Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).
Examples
Accessing your email (like Gmail or Outlook 365) from your phone, laptop, or a public library computer.
Using a web application (like Salesforce) through a standard web browser on any device.
An IoT sensor sending data to a cloud service over the internet.
Resource Pooling
The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. The customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).
Examples
A single physical server in a data center hosting virtual machines for several different companies.
Shared web hosting, where multiple websites are hosted on the same server.
Cloud storage systems where your data is stored on a large pool of physical drives, but you don't know which specific drive holds your files.
Rapid Elasticity
Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
Examples
A streaming service (like Netflix) automatically adding more server capacity to handle peak viewing hours in the evening and then releasing it during off-peak hours.
An e-commerce website scaling up its web servers to handle the surge in traffic during a Black Friday sale, and then scaling back down afterwards.
A data processing job provisioning a large number of compute instances to run a complex analysis and then terminating them once the job is complete.
Measured Service
Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
Examples
Cloud providers billing you for the amount of compute time (per hour/second), storage (per GB), or data transfer (per GB) you consume.
A SaaS provider charging based on the number of active users per month.
A cloud function (serverless) service billing based on the number of executions and the execution time in milliseconds.
Importance of Networking in the Cloud
Networking is indispensable in cloud computing. Without reliable, high-speed, and secure networking, the entire cloud model collapses. All defining characteristics—on-demand access, resource pooling, elasticity—depend on it.
Key Considerations
Bandwidth: The data transfer rate. Crucial for big data and streaming.
Latency: The delay in data transmission. Critical for real-time applications.
Reliability & Redundancy: Fault-tolerant design to prevent outages.
Networking & Computing Paradigms
A networking or computing paradigm is a model that describes how computers in a network are organized, how they communicate, and how tasks are distributed among them. We will explore several key paradigms that have shaped modern computing.
Networking & Computation Paradigms
Client-Server
P2P (Peer to Peer)
Distributed Computing
Grid Computing
Parallel Computing
Cluster Computing
High Performance Computing
Paradigm 1: Peer-to-Peer (P2P) Computing
Definition
P2P computing is a decentralized application architecture where individual nodes, known as "peers," act as both suppliers and consumers of resources. Unlike the traditional client-server model, there is no central server managing the network. Each peer has equivalent capabilities and responsibilities.
Examples
BitTorrent: File sharing among multiple peers.
Cryptocurrencies (e.g., Bitcoin): Ledger maintained by a network of nodes.
Loading diagram...
Real-Life Examples
File Sharing: BitTorrent for large file distribution (e.g., game updates, Linux ISOs).
Cryptocurrencies: Bitcoin and Ethereum networks where nodes maintain a distributed ledger.[^1]
Communication: Early versions of Skype
Content Delivery Networks (CDNs): Some CDNs use P2P to offload traffic by allowing users to fetch content from nearby peers.
Technical Details
Unstructured P2P: Ad-hoc connections (e.g., Gnutella). Robust but inefficient search.
Structured P2P: Specific topology like a Distributed Hash Table (DHT) for efficient discovery (e.g., Kademlia in BitTorrent).
Protocols & Tools
Protocols: BitTorrent, Gnutella, WebRTC.
Tools: qBittorrent, libp2p, Bitcoin Core.
Paradigm 2: Client-Server Computing
Definition
A centralized model where 'client' computers request services from a powerful, central 'server' computer. Roles are clearly defined.
Examples
World Wide Web: Browser (client) requests a page from a web server.
Email: Outlook (client) connects to a mail server.
Databases: Application (client) queries a database server.
Loading diagram...
Real-Life Examples
World Wide Web: Your browser (client) requests a webpage from a web server.
Email: Email clients (e.g., Outlook) connect to mail servers (e.g., Gmail) to send/receive mail.
Online Gaming: Game clients connect to a central server that manages the game world.
Database Management: Applications query a central database server (e.g., MySQL, PostgreSQL).
Cloud Storage: Services like Google Drive and Dropbox sync files between clients and servers.
Protocols
HTTP/HTTPS: For web communication.
FTP/SFTP: For file transfers.
SMTP, POP3, IMAP: For email.
TCP/IP: The fundamental protocol suite.
DNS: For translating domain names to IP addresses.
Technologies
Server Hardware: Rack servers, Cloud Instances (AWS EC2, Azure VMs).
Server OS: Linux (Ubuntu Server), Windows Server.
Web Server Software: Apache, Nginx.
Databases: MySQL, PostgreSQL, MongoDB.
Paradigm 3: Distributed Computing
Definition
A system whose components are on different networked computers, which communicate to achieve a common goal. To the user, it appears as a single, coherent system. [^1]
Examples
Domain Name System (DNS): A globally distributed database.
Microservices Architectures: Large apps broken into independent services.
Learn more at:aws.amazon.com/what-is/distributed-computing
Loading diagram...
Real-Life Examples
Content Delivery Networks (CDNs): Services like Cloudflare and Akamai distribute content globally for faster access.
Large-Scale Data Processing: Google's Search Engine, Apache Hadoop, and Apache Spark process petabytes of data across many machines.[^2]
Blockchain & DLT: Inherently distributed systems where a database is replicated and shared.
Telecommunication Networks: The global telephone and cellular networks.
Key Concepts & Protocols
Key Concepts: Concurrency, no global clock, independent failures.
Protocols: Remote Procedure Calls (gRPC), Message Queues (RabbitMQ, Kafka).
Consensus Algorithms: Paxos, Raft for achieving agreement.
Frameworks & Platforms
Frameworks: Apache Hadoop, Apache Spark.
Container Orchestration: Kubernetes, Docker Swarm.
Databases: Cassandra, CockroachDB, Google Spanner.
Paradigm 4: Cluster Computing
Definition
A group of coupled computers (nodes) that work together as a single system. Components are typically homogeneous and connected by a fast, dedicated Local Area Network (LAN).
Examples
Web Server Farms: Load balancing traffic across multiple servers.
High-Availability (HA) Clusters: For failover and uninterrupted service.
Loading diagram...
Cluster Computing Examples
Web Server Farms: High-traffic sites like Google and Facebook use server clusters with load balancers.
High-Availability Databases: Oracle RAC or MySQL Cluster ensure service continuity if a server fails.
Scientific Research: Clusters run complex simulations in physics, chemistry, and climatology.
Render Farms: The visual effects industry uses clusters to render 3D graphics for movies.
Interconnects & Protocols
Interconnects: High-speed Ethernet, InfiniBand for low latency.
Message Passing Interface (MPI): The standard programming model for communication between nodes.
Software & Tools
Management: Beowulf, OpenStack.
Job Schedulers: Slurm, PBS/Torque to manage resource allocation.
Parallel File Systems: Lustre, GlusterFS for high-performance shared storage.
Paradigm 5: High-Performance Computing (HPC)
Definition
Aggregating computing power to deliver much higher performance than typical computers. Used for solving large-scale, complex problems. The focus is on raw computational speed.
Examples
Scientific Simulation: Weather forecasting, protein folding.
Financial Modeling: Risk analysis, high-frequency trading.
Learn more at: cloud.google.com/discover/what-is-high-performance-computing
Loading diagram...
Real-Life Examples
Weather Forecasting & Climate Modeling: Running complex atmospheric and oceanic simulations.
Genomics & Drug Discovery: Analyzing DNA sequences and simulating protein folding.
Aerospace Engineering: Computational Fluid Dynamics (CFD) for aircraft design.
Financial Modeling: High-frequency trading and complex risk analysis.
Artificial Intelligence: Training large-scale AI and deep learning models.
Architecture & Programming
Architecture: Massively Parallel Processing (MPP) with thousands of processors.
Accelerators: GPUs (NVIDIA, AMD) and TPUs for specific calculations.
Programming: MPI, OpenMP, CUDA, OpenCL.
Tools & Technologies
Hardware: Supercomputers (see TOP500 list), InfiniBand interconnects.[^3]
Software: Optimized C/C++/Fortran compilers, performance profilers (Intel VTune).
Libraries: BLAS, LAPACK for scientific computing.
Paradigm 6: Grid Computing
Definition
A 'virtual supercomputer' composed of a large number of networked, loosely coupled computers from different geographical locations and domains. Key characteristics are heterogeneous nodes connected over a Wide Area Network (WAN). [^1]
Examples
SETI@home: Using donated idle computer time for scientific research.
LHC Computing Grid: A global network to analyze physics data.
Loading diagram...
Real-Life Examples
LHC Computing Grid (WLCG): The world's largest grid, used to analyze data from the Large Hadron Collider at CERN.
SETI@home: A famous volunteer computing project that used idle home computers to search for extraterrestrial intelligence.
Financial Services: Risk modeling and other intensive tasks are distributed across global computing resources.
Engineering and Design: Distributing complex simulations across different design centers.
Middleware & Protocols
Middleware: The key software layer that manages the grid. It handles resource discovery, job scheduling, security, and data management.
Protocols: Standards from the Open Grid Forum (OGF), often built on Web Services (SOAP, WSDL).
Tools & Technologies
Middleware Software: Globus Toolkit (the de facto standard), UNICORE, HTCondor.[^4]
Hardware: Leverages a wide variety of heterogeneous hardware connected by a network (WAN).
Summary of Computing/Networking Paradigms
Paradigm | Key Characteristic | Coupling | Typical Network |
|---|---|---|---|
P2P | Decentralized, equal peers | Loose | Internet (Ad-hoc) |
Client-Server | Centralized server, many clients | Loose | Internet/LAN |
Distributed | Appears as one system, independent nodes | Loose | WAN/Internet |
Cluster | Viewed as one system, homogeneous nodes | Tight | LAN (High-speed) |
HPC | Maximum raw computational speed | Very Tight | Custom Interconnect |
Grid | Virtual supercomputer from diverse resources | Very Loose | WAN/Internet |
Next Topic
Cloud Fundamentals
Definition and history of cloud computing, principles of cloud computing, cloud ecosystem, cloud architecture and infrastructure, virtualisation, network connectivity, managing the cloud, application migration to the cloud.
Questions?