| CS290I - Scalable Internet Services and Systems | |
|
Thorsten von Eicken - UCSB - Winter 2002 |
|
The growth of the Internet has been exponential and puts a tremendous strain on many web sites. In this course we will study how to architect scalable and fault tolerant web sites and Internet services. To achieve scalability and fault tolerance many techniques well known from massively parallel and distributed systems are applied. We will review the technology underlying existing Internet services and study open research issues.
The course gives an introduction to basic web technologies, related scalable
computing techniques, and distributed fault tolerance techniques. The emphasis
will be on building actual Internet services. Students will use Sun
multiprocessors as their main experimental platform to develop their own
Internet service.
Course format
The course will have a strong practical component. Students are expected to do significant reading, independent learning, designing, programming, and testing. This is an "advanced topics" course intended to illustrate the "state of the art" and provide food for thought. The hands-on part of the course will consist of 4 major programming assignments that will offer room for substantial creativity, but will be constrained such that we can provide a reasonable experimental infrastructure.
Prerequisites
Students should have had a graduate level operating system course and must have basic familiarity with computer architecture, networking, distributed computing, C/C++, Java, and Unix.
This course will require significant breadth of knowledge. Not everyone is expected to know everything, but everyone is expected to pick-up a lot of new knowledge independently. The first project is done alone and the other two will be done in groups. You are expected to catch-up on the topics you feel less comfortable with and I will adapt the lectures to the average knowledge. The bottom line is that if you are determined to learn (and have the time!), you are welcome to the course.
Grading
The final grade will roughly be composed of: 20% ea. projects 1-3, 30% project 4, 10% class participation.
Administrative
Tentative Syllabus
Basic web technologies (4wks):
TCP, HTTP, measuring performance
Apache, CGI, Perl, SQL
Servlets, JSP, app servers
SNMP, MRTG, monitoring
Advanced web servers (3 wks)
SSL, certificates
Firewalls, intrusion detection
Fast web servers
Routing
Parallelism, replication, advanced (3wks)
Clusters, load-balancing, fail-over
Parallelism, cache-coherence, virtual synchrony
Caching