COMP 436/536 - Secure and Cloud Computing

Instructor: Ang Chen
Lectures: 1:30-2:50pm, T+Th
Office hour: See Piazza


Course description

What is "cloud computing"? How do we build cloud-scale systems and components that are secure against malicious attacks, and scale to millions of users? Many of today's services run inside the cloud -- a set of geographically distributed data centers running heterogeneous software stacks. Cloud systems must scale across tens of thousands of machines, support millions of concurrent requests, and they must do so with high security guarantees. This course will start with the fundamentals of cloud computing, introduce key techniques in building scalable and secure systems, and expose students to state-of-the-art research advances as well as emerging security threats and defenses in today's cloud systems.

Prerequisites

COMP 321 (Introduction to Computer Systems)

Format

We will have two lectures per week. There will also be regular homework assignments and a course project that requires a significant amount of hands-on implementation, experimental validation, as well as a report.

Grading

Homework 35%, quizzes 25%, project 30%, project report 10%, innovative components 5% (extra).

Homework assignments

The homework assignments will be available at Piazza. You can submit the solutions via Email. Please email your solutions to myself and all TAs.

Accomodations

Students with a documented disability needing academic adjustments or accommodations in this course are encouraged to contact me and Disability Support Services in the Allen Center, Room 111.

Tentative schedule

Date Topic Details Reading Remarks
August 25 1. Introduction Principles of building systems
Project management
Course overview
Lampson: Hints for computer systems design
August 27 2. The Cloud Cloud applications
Datacenters
Web vs. cloud vs. cluster
Armbrust et al.:A view of cloud computing
September 1 3. Networking basics Datacenter networks HW1 online
September 3 4. Software-defined networks SDNs Feamster et al.: The road to SDN
September 8 5/6. Programmable switches + P4 Protocol-independent packet processing Bosshart et al: P4
September 10 7. Load balancing ECMP, Load-sensitive routing Katta et al: Hula HW1 due
September 15 8. P4 lab P4 hands-on exercises HW2 online
September 17 Course project session Project intro + discussion Project description online
September 22 Industry talk from Venkat Pullela NPL
Broadcom Trident 4
Network Programming Language
September 24 9. Cloud storage Key value stores
Concurrency control
DynamoDB
September 29 10. Storage at Facebook Case study: Facebook
October 1 11. Concurrency Consistency models
Synchronization
Deadlocks
Vogels: Eventually consistent
October 6 12. Faults and Failures I Internet basics
Byzantine faults
Tseitlin: The antifragile organization HW2 due
October 8 13. Faults and Failures II Handling failures
Correlated failures
Corbató: On building systems that will fail MS1
October 13 14. Diagnosis Declarative Networking
Provenance and Diagnosis
Loo et al.: Declarative networking
October 15 15. MapReduce Programming model
Hadoop
October 20 16. Cloud services Quiz 1
October 22 17. Peer-to-Peer P2P networks
October 27 18. Security basics Crypto basics
Attacks
October 29 19. Denial of service Smurf sttacks
DDoS
Botnets
The Mirai botnet MS2
November 3 20. Anonymity DCNet
Tor
November 5 21. Routing security BGP
Prefix hijacking
November 10 22. Differential Privacy Data privacy
Attacks
Dwork et al.:Differential Privacy
November 12 23. Accountability Fault detection
Timing fault
November 17 24. Bitcoin Bitcoin
Hash chains
Quiz 2; MS3
November 19 Advanced Topics Project due