CO3040 Cloud Computing Systems
Course Code
CO3040
Course Title
Cloud Computing Systems
Credits
3
Course Type
Core
Prerequisites
Textbooks and References
- ● Designing Data-Intensive Applications -- Martin Kleppman. ISBN: 9781449373320 (1449373321) ● Distributed systems for fun and profit -- Mikito Takada. ● Course notes from Columbia University Course COMS 4113 ● Building Secure and Reliable Systems -- Heather Adkins, Betsy Beyer, Paul Blankinship, Ana Oprea, Piotr Lewandowski, Adam Stubblefield.
Course Modules:
Cloud Computing Systems
Course Content: (Only main topics & subtopics)
Networked application preliminaries
Client-server vs peer-to-peer architecture, datagram vs. stream oriented sockets, data
serialization: binary vs. text., synchronous (request-response) vs. asynchronous
(message-oriented) application protocols, Deutsch’s fallacies of distributed computing.
Request-response protocols
HTTP request structure and response structure, metadata and status codes, text serialization
formats: JSON.
Concurrency
Concurrency model: processes, threads, coroutines (event driven I/O.), data races and mutual
exclusion, race conditions and transactions, statelessness and idempotence, modeling stateful
services with finite automata
Remote procedure calls
RPC abstraction and interface definition languages.
RPC failure modes.
Binary serialization formats: Protocol buffers.
Asynchronous coordination
Publish-subscribe protocols: MQTT, message brokers (topics and message routing), message
delivery semantics (MQTT QoS): at least once, at most once, exactly once.
Distributed data storage
Streaming datastores: distributed commit logs, BLOB storage: distributed hash tables
(key-value stores.), replicas and partitions (shards.), consistency models, Brewer’s CAP
theorem.
Application security
Threat models (STRIDE), abuse cases and common application vulnerabilities, protocols for
web application access control (Oauth) and authentication (Webauthn.), security
considerations for “IoT” devices (mutual authentication, root of trust.)
Provisioning and deployment
Cloud platforms: infrastructure as a service vs. platform as a service, infrastructure as code:
declarative vs imperative provisioning tools, application packaging: dependency management
and containers.
Operability and observability
Defining service level objectives, application logging, metrics and alerting, container
orchestration: declarative deployment, rollback and self-healing, incident postmortem and root
cause analysis.
Marks allocation:
Practicals
30%
Quizzes
30%
End_exam
40%
Last Update:
| Edit this page