CENG 433

Scalable Software Development for Internet

Logical / physical arhitecture design and server components, performance measurement, advanced caching strategies, horizontal scaling with MySQL and handling peak load.

Course Objectives

The goal of this course is to dive into advanced software development, architecture design topics for Internet projects. At the end of the term, expected outcome is to establish the basis of a background with which students can design and implement sites that can scale up to thousands of concurrent users.

Recommended or Required Reading

http://www.infoq.com/ ,http://aws.amazon.com/ ,http://www.slideshare.net/Blaine/scaling-twitter ,Cal Henderson, Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications, O Reilly Media, 2006 ,John Allspaw, The Art of Capacity Planning: Scaling Web Resources, O Reilly Media, 2008 ,Theo Schlossnagle, Scalable Internet Architectures, Sams, 2006 ,Martin L. Abbott and Michael T. Fisher, The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, Addison-Wesly, 2009 ,http://highscalability.com/ ,http://www.ahmetalpbalkan.com/blog/put-io-nun-altyapisi-ve-olceklenebilirligi-uzerine-roportaj/

Learning Outcomes

1. To be able implement sites that can scale up to thousands of concurrent users.

2. To develop a project on Play Framework.

3. To be able implement various cache mechanisms

4. To be able to perform horizontal scaling with MySQL and handling peak load

Topics
Introduction to Play Framework
Base project
Introduction to Internet logical architecture designs .
Load Performance testing
Caching Strategies
Distributed data fetching and queuing Distrubed DNS structures.
Performance logging on the server and browser
Developing for scalable databases .
Scaling MySQL
Map Reduce with Hadoop
Handling unpredictable peak-time load and failures
Online deployment strategies
Handling unpredictable / peak-time load and failures (static fallbacks, failover mechanisms, etc.)
Online deployment strategies

Grading

Midterm 15%

Research Presentation 60%

Final 25%