Course Syllabus



CSCI E-90 Cloud Computing

Lecturer: Zoran B. Djordjević, PhD, Enterprise Architect, NTT Data, Inc.

Lectures: Fridays beginning Sept. 4th, 5:30-7:30PM, Rm 306, 1 Story St, Cambridge

Optional labs: Saturdays beginning Sept. 12th , 10:00-11:30AM online only

Course Description: Cloud Computing has transformed the IT industry by opening the possibility for infinite or at least highly elastic scalability in the delivery of enterprise applications and software as a service (SaaS). Amazon Elastic Cloud, Microsoft’s Azure, Google App Engine, and many other Cloud offerings give mature software vendors and new start-ups the option to deploy their applications to systems of infinite computational power with practically no initial capital investment and with modest operating costs proportional to the actual use. The course examines the most important APIs used in the Amazon and Microsoft Cloud, including the techniques for building, deploying, and maintaining machine images and applications. We will learn how to use Cloud as the infrastructure for existing and new services. We will use open source implementations of highly available clustering computational environments, as well as RESTFul Web services, to build very powerful and efficient applications. We also learn how to deal with not trivial issues in the Cloud, such as load balancing, caching, distributed transactions, and identity and authorization management. In the process we will also become very familiar with Linux operating system.

Prerequisites: Familiarity with Java, Python or C#.

Course Materials:  Detailed handouts with references to material on the Web will be handed every week. There is no required text book.

Grading:  Practically every class will be followed by a homework assignment. Grades on the solutions for class assignments constitute approximately 85% of the final grade. 15% of the grade will be earned through the final project. Final projects will be assigned/selected three weeks before the end of the class. You will produce a paper (10+ pages of MS Word text, 10+ PowerPoint Slides, a working demo, 15 minute YouTube Video of your presentation and a brief 2 minute YouTube video that might be presented to the class on the day of final presentations. Several students will be invited to present their final projects live to the entire class. 95% or higher gives you an A, 90-95% gives you an A-, 85-90% a B+, etc.


Tentative List of Class Topics






Cloud computing: General Benefits and Architecture, Business Drivers, Main players in the Field, Overview of Security Issues, XaaS Cloud Based Service Offerings



Key Amazon offerings: EC2, SimpleDB, S3, Simple Queue, Simple Relational Database, Elastic MapReduce, Virtual Amazon Cloud. S3 Command Line tool



Bundling Amazon instances: We will learn how to create and manipulate Amazon instances with command line tools, transfer application software to instances and bundle them into new AMI-s that could be offered to the public.



Amazon's Elastic Block Storage (EBS) provides persistence storage in the cloud. We will learn how to move application code and data from non-EBS instance into EBS volumes, and create our own EBS based AMI-s



Amazon's AWS Identity Management and Security in the Cloud



Amazon's Virtual Private Cloud (VPC) and Directory Service



Java AWS SDK, S3 API, Relational Database Service, SimlpeDB Service , NoSQL Databases



Amazon's Messaging in the Cloud We will review details of AWS Simple Notification and Simple Queuing Service



Amazon's RESTFul WebServices AWS APIs are sufficiently rich to allow you easy interaction with AWS service. However, in order to establish connectivity between your own modules in the Cloud you should use RESTFul Web Services



Elastic Load Balancing and Auto Scaling allow automation of  resource manipulation



Introduction to Microsoft Cloud Microsoft offers a set of resources and features that are of great utility to those who are restricted to programming in .Net Environment



MapReduce performs large distributed computation as a set of distributed operations on data sets composed of key-value pairs producing a reduced set of key-value pairs. We will learn the basics of Hadoop, an open source implementation of MapReduce, and its Java API. Hadoop Distributed File System (HDFS) features.



Thanksgiving Break



HIVE is a convenient SQL like language that allow us to write scripts that runs atop of HDFS.



OPSWorks is an application management service that provides an integrated experience for overseeing the complete application lifecycle. With AWS OpsWorks, we can provision AWS resources, supervise their configuration, deploy applications to those resources, and monitor their health.



Presentations of selected final projects


Course Summary:

Date Details Due