|
|
Cloud Computing
Academic year 2015-16, Semester S2 |
|
|
Syllabus |
Lectures |
Readings |
Labs |
|
|
This class is supported by an AWS in Education grant.
|
Identifier
Available to
Responsible
Student workload |
CLD
IE, IL, TR, TS
Marcel Graf
90 hours, corresponding to 3 ECTS credits |
Objectives |
By the end of this teaching unit the student will be able
to:
- evaluate if a commercial service has the essential
cloud computing characteristics;
- analyze if an IT component can be realized in the cloud
and choose the appropriate service and deployment
model;
- design an efficient application deployment in an IaaS
service using system images;
- explain the advantages and limitations of a PaaS
service to create scalable web applications;
- explain the differences between NoSQL databases and
transactional databases;
- analyze if a given data processing task is suited for
the MapReduce paradigm and design the appropriate
algorithm.
By the end of the practical exercises the student will
be able to:
- implement a multi-tier application in an IaaS
service;
- develop a web application on a PaaS service;
- use a NoSQL database;
- perform MapReduce-based data processing.
|
|
Prerequisites |
The student must be familiar with and master the
following concepts:
- Java programming
- Access to services via REST
The teaching units POO (Object-Oriented Programming) and
PDA (Application Protocols) allow to acquire the necessary
knowledge. |
|
Content |
Lectures |
|
periods |
1) Cloud Computing concepts:
- Service models: Software, Platform and
Infrastructure as a Service
- Essential characteristics: self-service, broad
network access, resource pooling, rapid elasticity,
measured service
- Deployment models: private, public, community,
hybrid clouds
- Economic forces and main players in the
market
|
4 |
2) Anatomy of an Infrastructure-as-a-Service
cloud, private clouds:
- Architecture and components: compute fabric,
object storage, block storage, image service,
virtual networking, identity management, web
interface
- Example of an open source implementation:
OpenStack
- Management and configuration of virtual
machines, system images
|
4 |
3) Development of applications on a
Platform-as-a-Service cloud:
- Containers for application logic, APIs
- Stateless and stateful processing
- Scalability mechanisms provided by the
platform
- Data persistence services
|
8 |
4) NoSQL databases in the cloud:
- Characteristics of NoSQL databases
- Load distribution, sharding and coherent
caching
- Concurrent access and consistency
|
8 |
5) MapReduce paradigm and processing of large
data volumes:
- MapReduce principles
- Examples of application well-suited to the
paradigm
- Implementation as a cloud service
|
8 |
|
|
|
Labs |
|
periods |
Implementation of a multi-tier application from
scratch in a IaaS service (using Amazon Web
Services) |
8 |
Configuration of virtual machine instances and
repackaging in reusable images |
4 |
Creation of a highly scalable web application in
a PaaS service (Google App Engine) |
4 |
Robust and scalable persistence of data in a
NoSQL data store (Google DataStore) |
4 |
Massively parallel data processing on a MapReduce
cluster (Amazon Elastic MapReduce) |
8 |
|
|