Welcome to Distributed System Programming: Scale Out with Cloud Computing and Map-Reduce homepageModern Web-scale applications (e.g., Facebook, Twitter, Google Docs) must face technical challenges that derive from their scale:
- Scalability: the possibility to grow as the user-base and data-size handled by the application grows to hundreds of millions of users and petabytes of data.
- High-Availability: the capacity to provide service to users even when part of the infrastructure (CPUs, Networks, Disks) become unaccessible in an intermittent or permanent manner.
The way to address these requirements is to develop loosely distributed applications that can operate in a "cloud-like" runtime environment. This course introduces basic theory behind such massively distributed applications and modern programming tools that constitute an emerging infrastructure for distributed applications.
The course infrastructure will be based on Amazon Web Services (http://aws.amazon.com/)