Academics / Courses / DescriptionsCOMP_SCI 310: Scalable Software Architectures
Academics
/ Courses
/ Descriptions
VIEW ALL COURSE TIMES AND SESSIONS
Prerequisites
Prerequisites: CS-213 Intro to Computer Systems, CS-214 Data Structures or Graduate StudentsDescription
We'll study the architecture of high-scale Internet services, using well-known case studies like Google Search, Netflix, and Uber. System at these scales have many custom-built components, but they also contain many common building blocks that can be reused in other systems. Students will apply lessons learned from case studies to build software systems in the cloud capable of scaling to millions of users, and they will do so with surprisingly little code.
- Formerly COMP_SCI 396.
- This course satisfies the Software Development breadth requirement.
Students will write code that:
• Runs continuously in the cloud
• Handles many simultaneous users
• Interacts with other software components using network APIs
• Can crash and restart without interrupting user activities
The course will cover:
• Traditional 3-tiered software service design (frontend, backend, and database).
• High-scale software building blocks like:
• SQL and NoSQL databases
• distributed file systems
• message queues
• caches
• content delivery networks
• load balancers
• serverless functions
• Software deployment and operations (DevOps) technologies and practices like:
• build and deployment automation (continuous integration)
• release staging
• virtual machines
• containers
• centralized logging
• performance monitoring
COURSE INSTRUCTOR: Prof. Joe Hummel (Fall)