COMP_SCI 396: Scalable Software Architectures

Quarter Offered

Fall : 3:30-4:50 MW ; Tarzia


Prerequisites: CS-213 Intro to Computer Systems, CS-214 Data Structures or Graduate Students


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.

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