HEIG-VD
Formations » Bachelor » Formation à plein temps » Cloud Computing (CLD)
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