ECE 592 High Performance Cloud Service
 

This course provides an introduction on how to leverage cloud computing technologies to deploy high performance applications. It consists of a number of teaching modules, and independent hands on labs that can be performed with minimal use of physical backend hardware. Topics covered in this course focus on the characteristics of cloud computing, cloud delivery models and deployment models, anatomy, security, performance of cloud services, micro-services, virtualized resources and case studies. The course will emphasize on the architecture and the development of web services that can scale on a cloud infrastructure. 3 credit hours.

 
   

• Prerequisite
 

Strong proven networking (like CSC/ECE 570 Computer Networks, professional certificate etc.) and Unix background. For more information talk to Dr. Papapanagiotou.

 
• Course Objectives
 

Under the guidance of the instructor and in an interactive and participatory manner, students will learn about the following concepts:

  • Introduction to Cloud Computing (standardization and automation, rapid elasticity, flexibility and pricing)

  • Architecture (Service and Delivery Models, Virtualization, Hypervisors)

  • Hands on PaaS: Amazon Web Services (AWS) and IBM Bluemix

  • Anatomy of the Cloud (Cloud tiers, Sharding, CAP Theorem, ACID/Base, Web Services)

  • Replication, Consistency, 2 and 3 Phase Commits (Logical and Vector Clocks, Chandy/Lamport)

  • Paxos (Byzantine Failure, Quorums)

  • Case Study: The Amazon Dynamo and Cassandra (Eventual Consistency)

  • IaaS Cloud Storage (Ephemeral, Block and Object storage)

  • PaaS Cloud Storage (BLOB, NoSQL, Queueing Services)

  • Micro Services and Containers (Control Groups, Namespaces, Docker, App management with Fig, Mesos Scheduling)

  • Network Virtualization (OpenStack Neutron, Software Defined Networks, OpenFlow)

  • Security (security integration model, threads, Economic Denial of Sustainability, threat mitigation, Google Case Study)


Hands on projects will include:

  • OpenStack Deployment

  • Docker and Linux Containers

  • Hands on Cloud service deployment on Amazon AWS (or other PaaS)

  • Developing cloud services.


Since this class is about Cloud Computing, all labs will be performed on VMs. This will allow access to all students, local and DE transparently.


• Course Requirements
 
  • In class quizzes: 10%

  • Hands on Lab: 30%

  • Midterm Exams: 30%

  • Final Project: 30%

  • (no final exam)


• Textbook
 

The instructors will provide the appropriate notes from the course. Additional articles and papers to read will be posted. The following is a list for optional material:

  • Architecting the Cloud: Design Decisions for Cloud Computing Service Models (SaaS, PaaS, and IaaS), By Kavis et.al , ISBN-13: 978-1118617618.

  • Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, By K. Hwang et al., Elsevier 2012, ISBN-13: 978-0123858801

  • Docker Up and Running, By Matthias et al., ISBN-13: 978-1491917572


• Computer and Internet Requirements
 

NCSU and Engineering Online have recommended minimum specifications for computers. For details, click here.

As the course puts strong emphasis on hands-on experiences and practical training in deploying cloud services, your assignments require you to use virtual resources. Hence, in addition to the above requirements, students are expected to have full access to a computer that meets or exceeds the following capabilities to accomplish the projects of this course:

  • Reasonably powerful x86 hardware. Any recent Intel or AMD processor should do.
  • 4GB RAM
  • 64GB free hard disk space
  • OS that is supported by VirtualBox or VMware Client (Windows, Linux, Mac OS X, Solaris and OpenSolaris)


We recommend that you install a hypervisor, such as VirtualBox. The above hardware requirements are for a smooth experience with the virtual machines. For more information on VirutalBox, refer to http://www.virtualbox.org/


• Instructor
 

Dr. Michael Devetsikiotis, Professor
Director of Graduate Programs
Electrical & Computer Engineering
Engineering Building II (EB2) 3060, Box 7911
NCSU Campus
Raleigh, NC 27695

Phone: 919-513-0501
Fax: 919-515-5523
Email: mdevets@ncsu.edu
Web Site: http://www4.ncsu.edu/~mdevets


  Dr. Ioannis Papapanagiotou, Adjunct Professor
Electrical & Computer Engineering
Engineering Building II (EB2) 3060, Box 7911
NCSU Campus
Raleigh, NC 27695
Phone: 919-513-0501
Fax: 919-515-5523
Email: ipapapa@ncsu.edu
Web Site: http://people.engr.ncsu.edu/ipapapa/