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/)
- Tom White, Hadoop: The Definitive Guide, O'Reilly Media, Third Edition, 2012.
- Chuck Lam, Hadoop in Action, Manning Publications, Nov 2010.
- Jimmy Lin and Chris Dyer, Data-Intensive Text Processing with MapReduce, Morgan and Claypool Publishers, April 2010.
- Kai Hwang, Jack Dongarra, and Geoffrey C. Fox, Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, Morgan-Kaufmann, 2012.