Skip to content

Latest commit

 

History

History
208 lines (156 loc) · 8.51 KB

index.md

File metadata and controls

208 lines (156 loc) · 8.51 KB
layout
default

Scalable Internet Services Syllabus

Course Description

This course explores advanced topics in highly scalable Internet services and their underlying systems' architecture. Software today is primarily delivered as a service: accessible globally via web browsers and mobile applications, and backed by millions of servers. Modern web frameworks (e.g., Ruby on Rails, Django, and Express), and continuous improvements to cloud providers (e.g., Amazon Web Services, Google Cloud Platform, and Microsoft Azure) make it increasingly easier to build and deploy these systems.

Despite these advances, building scalable Internet services today still requires an understanding of topics like caching, load balancing, security, and monitoring. In this course we will examine these topics and more: the state of the art in building scalable Internet services.

Learning Outcomes

By the end of this course students will be able to:

  • write and deploy highly scalable web functions using AWS Lambda

  • write a modern front end client application using React

  • create a Ruby on Rails web service and deploy it via AWS Elastic Beanstalk

  • measure the performance of various components of a web service

  • discover and resolve bottlenecks in a web service

Class Content and Interactions

Synchronous Classes

All core course topics, covering the essentials of building large scale Internet services, will be presented via in-person lectures.

Class will meet twice a week during the scheduled class time unless otherwise mentioned. Students are encouraged to attend in order to ask and answer questions, and explore the material in more depth.

Piazza

All students are expected to join the class on Piazza as class announcements will be made there. Additionally Piazza is used for offline questions about the class content and its projects. Students are able to submit anonymously, though anonymous content will not be counted toward participation. Students are strongly encouraged to answer each other's questions by improving upon the "student answer".

Please create a new post for each distinct question, rather than asking new questions as a follow up to an existing post. Follow-ups are useful to obtain more information necessary to answer a question, or to work through possible solutions to a question.

All one-on-one offline communication with the instructors for content pertaining to this class should be conducted via Piazza. Please do not reach out to the instructor via email for class related communications.