|Part I: Basic Concepts and Models
|Module 1: Distributed Computing Concepts and Models
|Topic 1: 5/9, 8/9
||From Mainframes to the Cloud
- Be familiar with the requirements of the course.
- Understand the evolution of ICT evolution leading to the introduction of Cloud Computing.
- Review some basic techniques for reading, reviewing, and presenting scientific papers.
Reading, Reviewing and Presenting Scientific Papers
- Zotero for Maintaining your
- Overleaf for Paper Authoring.
|Topic 2: 8/9, 12/9
||Distributed Computing: Concepts, Models, Middleware
- Review and explain key concepts: Middleware, End-to-End Arguments in Systems Design.
- Understand and explain function decomposition concerns in the design of distributed
- Review, explain and apply distributed computing models, client-server computing, etc.
- Aiken, B., Strassner, J., Carpenter, B., Foster, I., Lynch, C., Mambretti, J., Moore, R.,
and Teitelbaum, B. “'Network Policy and Services: A Report of a Workshop on Middleware’, RFC
- Gazis, A., Katsiri, E., Middleware 101, Communications of the ACM, Volume 65, Issue 9, September 2022, pp. 38-42.
- J. H. Saltzer, D. P. Reed, and D. D. Clark, “End-to-end arguments in system design,”
ACM Trans. Comput. Syst., vol. 2, no. 4, pp. 277–288, Nov. 1984.
A. Carzaniga, G. Pietro Picco and G. Vigna, "Designing distributed applications with mobile
code paradigms." Proceeding ICSE '97 Proceedings of the 19th international conference on
|Module 2: Cloud Computing Definitions and Models
|Topic 3: 15/9, 19/9, 22/9
||Cloud Computing: Introduction, Definitions, Taxonomy.
- Understand, explain and apply Cloud Computing Definitions.
- Understand, explain and apply key concepts of Cloud economics.
- Understand and explain the key factors of the Cloud evolution.
- Understand, explain, and apply the concepts of Cloud, IAAS, PAAS, SAAS, Elasticity.
Additional Readings (Cloud Computing definitions):
- M. Armbrust et al., “A view of cloud computing,” Communications of the ACM, vol. 53, no. 4,
p. 50, 2010.
- R. Barga, D. Gannon, and D. Reed, “The client and the cloud: Democratizing research
computing,” IEEE Internet Comput., vol. 15, no. 1, pp. 72–75, 2011.
- Flexera. (2020). 2020 Flexera State of the Cloud Report. 1–19.
- Armbrust, A. Fox, and R. Griffith, M. (2009).
Above the clouds: A Berkeley view of cloud computing.
University of California, Berkeley, Technical Report No. UCB/EECS-2009-28.
- Fang Liu, Jin Tong, Jian Mao, Robert Bohn, John Messina, L. B. and D. L. (2011).
NIST Cloud Computing Reference Architecture: Recommendations of the National Institute of
Standards and Technology. 35. https://doi.org/500-299
The Cost of Cloud, a Trillion Dollar Paradox, by Sarah Wang and
Martin Casado, Andreessen \& Horowitz.
|Precept 1: week 2
||Introduction to AWS Academy
- Become familiar with and get an account for Amazon's AWS Academy.
- Review the online material for the following online courses of AWS Academy, which
prepare you to become an AWS Certified Cloud Practitioner:
- AWS Academy Cloud Foundations ACF course.
- AWS Academy Introduction to Cloud- Semester 1(AIC)
- Take the Pre-Course Survey of the AWS Academy Cloud Foundations.
|Precept 2: w2
||Cloud Concepts Overview
- Understand, describe, and explain what is Cloud Computing and the benefits it offers.
- Become familiar with terminology and concepts of the AWS Cloud.
- Define different types of cloud computing models.
- Describe six advantages of cloud computing.
- Recognize the main AWS service categories and core services.
- Review the AWS Cloud Adoption Framework (AWS CAF).
- Chapters 3, 5. Ian Foster and Dennis B. Gannon.
"Cloud Computing for Science and Engineering", MIT Press (2017).
|Lab 1: w2
||Induction to the AWS Academy Learning Environment.
- Become acquainted with the AWS Learning Web site.
- Setup and use AWS student account.
- Review the online material for AWS Academy Cloud Foundations (ACF) and
AWS Academy Introduction to Cloud (AIC) - Semester 1 courses.
- Pre-course survey of the AWS Introduction to Cloud: Semester 1 course.
Access requires registration.
How to Complete Lab Exercises for AIC (AWS Academy Introduction
to Cloud - Semester 1). Access requires registration.
Course Support for AIC (AWS Academy Introduction to Cloud -
Semester 1). Access requires registration.
|Precept 3: w3
||Cloud Economics and Billing
- Explain the AWS pricing philosophy.
- Recognize fundamental pricing characteristics.
- Indicate the elements of total cost of ownership.
- Discuss the results of the AWS Pricing Calculator
- Identify how to set up an organizational structure that simplifies billing and account
visibility to review cost data.
- Identify the functionality in the AWS Billing Dashboard.
- Describe how to use AWS Bills, AWS Cost Explorer, AWS Budgets, and AWS Cost and Usage
- Identify the various AWS technical support plans and features.
|Lab 2: w3
||AWS Services Overview.
- Experiment with the AWS console.
- Experiment with the Microsoft Azure.
- Review the main services of Google Cloud.
|Topic 4: 26/9, 29/9
||Modern Computing Landscape
- Discuss and understand trends in Cloud Computing development.
- Understand and explain the current computing landscape.
- Understand and explain concepts, key constraints and key challenges in Edge and Fog
- Memorize and use values of key properties of distributed systems' components and their
evolution: CPU speed, network latencies, power consumption.
Additional Readings (Modern Cloud Computing landscape):
Additional Readings (Computer Architecture and Computer Networking):
- M. Satyanarayanan, W. Gao, and B. Lucia, “The computing landscape of the 21st century,”
HotMobile 2019 - Proc. 20th Int. Work. Mob. Comput. Syst. Appl., pp. 45–50, 2019.
- S. Zeuch, A. Chaudhary, B. Del Monte, H. Gavriilidis, D. Giouroukis, P. M. Grulich,
S. Bress, J. Traub, V. Markl, "The NebulaStream Platform: Data and Application Management
for the Internet of Things," CIDR 2020.
- J. L. Hennessy and D. A. Patterson, “A new golden age for computer architecture,”
Commun. ACM, vol. 62, no. 2, pp. 48–60, 2019.
- Limoncelli, T. A. (2012). "OpenFlow: A radical new idea in networking: An open standard that
enables software-defined networking." Queue, 10(6), 40.
- A. Gupta and R. K. Jha, “A Survey of 5G Network: Architecture and Emerging Technologies,”
IEEE Access, vol. 3. Institute of Electrical and Electronics Engineers Inc., pp. 1206–1232,
- N. Feamster, J. Rexford, E. Z.-A. S. Computer, and U. 2014,
“The road to SDN: an intellectual history of programmable networks,” in Dl.Acm.Org.
- S. Sicari, A. Rizzardi, and A. Coen-Porisini, “5G In the internet of things era: An overview
on security and privacy challenges,” Comput. Networks, vol. 179, p. 107345, Oct. 2020.
|Precept 4: w4
||Public Cloud Global Infrastructure Overview
- Review and describe the AWS Global Infrastructure.
- Understand, identify and explain AWS services and their categories.
- Identify the difference between AWS Regions, Availability Zones, and edge locations.
|Lab 3: w4
||AWS Dashboard and Billing.
- Experiment with and use the AWS console.
- Understand and use the AWS Billing Dashboard.
- Explore and use AWS documentation and support.
- Student Guide for AIC-M3: AWS Console course (AWS Academy Introduction to Cloud,
Access requires registration.
|Part II: Building Blocks
|Module 3: Data centers and Warehouse-scale Computers
|Topic 5: 3/10, 6/10
||Warehouse Scale Computers
- Understand and explain the basic characteristics of Warehouse Scale Computers.
- Understand and explain the difference between Warehouse Scale Computers and data centers.
- Understand and describe the hardware building blocks of WSC, such as cluster nodes,
accelerators, TPUs and GPUs.
- Understand and describe the structure and components of data centers' networking fabric, and
its implications on application development.
- Understand and describe main characteristics of WSC buildings and their power provision.
- Understand and explain the basic power, cooling components of a modern data center.
- Understand and explain the concept of energy efficiency in data centers, and associated
- Understand, and explain the cost structure of running a modern data center, and the concept
of TCO (total cost of ownership).
|Precept 5: w5
||AWS Cloud Security
- Recognize the shared responsibility model.
- Identify the responsibility of the customer and AWS.
- Recognize IAM users, groups, and roles.
- Describe different types of security credentials in IAM.
- Identify the steps to securing a new AWS account.
- Explore IAM users and groups.
- Recognize how to secure AWS data.
- Recognize AWS compliance programs.
|Lab 4: w5
||AWS Global Infrastructure Overview Lab
- Become acquainted with the tools to browse and access AWS Global Infrastructure.
- Learn how to to create an Amazon Elastic Compute Cloud (Amazon EC2) instance and an Amazon
and use them to host a website.
- Learn the purpose of access keys, a Domain Name System (DNS), Amazon Route 53, and Virtual
|Topic 6: 10/10, 13/10, 17/10, 20/10
||Cloud Infrastructure Software, Workloads, and Metrics
- Understand and explain the software infrastructure building blocks of WSC.
- Understand and explain the characteristics of typical workloads running on WSC.
- Understand and explain the role of monitoring systems, and the concepts of blackbox
monitoring and instrumentation.
- Review, understand and explain common techniques for improving the performance and
availability of WSC.
- Understand and explain the concept of tail-latency.
- Become familiar and explain the challenges arising from deploying cloud computing
technologies in Warehouse Scale Computers, in particular for availability and resource
- Understand and explain the concept of "Cloud native" software.
- Understand and explain the concepts of availability, replication and partitioning.
- Understand, analyze and apply the concepts of MTBF, MTTR, Yield and Harvest.
- Understand and analyze the CAP theorem.
- Understand and explain the implications of CAP for Cloud system and application design.
- Chapters 2, 7, 8.
The data center as a Computer. An Introduction to the Design of
Warehouse-Scale Machines. Barroso, Holzle, Raganathan (2018).
- "Lessons from giant-scale services," E. Brewer, IEEE Internet Comput., vol. 5, no. 4, pp.
46–55, Jul. 2001.
- "Harvest, yield, and scalable tolerant systems," A. Fox and E. A. Brewer, Proc. Work. Hot
Top. Oper. Syst. - HOTOS, pp. 174–178, 1999.
- "The tail at scale," J. Dean and L. A. Barroso, Commun. ACM, vol. 56, no. 2, pp. 74–80, Feb.
- "CAP twelve years later: How the ‘rules’ have changed," E. Brewer,
Computer, vol. 45, no. 2, pp. 23–29, Jan. 2012.
- "Attack of the killer microseconds," L. Barroso, M. Marty, D. Patterson, and P. Ranganathan,
Commun. ACM, vol. 60, no. 4, pp. 48–54, Apr. 2017.
- "Failure management in Grids: The case of the EGEE infrastructure," Neocleous, Dikaiakos, Fragopoulou, & Markatos,
Parallel Processing Letters, 17(4), 2007, pp 391–410. https://doi.org/10.1142/S0129626407003113.
- CAP Theorem
|Precept 6: w6
||Networking and Content Delivery on AWS
- Recognize the basics of networking
- Describe virtual networking in the cloud with Amazon VPC
- Label a network diagram
- Design a basic VPC architecture
- Indicate the steps to build a VPC
- Identify security groups
- Create your own VPC and add additional components to it to produce a customized network
- Identify the fundamentals of Amazon Route 53
- Recognize the benefits of Amazon CloudFront, the AWS content delivery network (CDN).
|Lab 5: w5
||AWS Cloud Security Practice
- Learn how to access and use the IAS AWS Console.
- Experiment with and use AWS Identify and Access Management features.
- Learn how to use and explain IAM
- Recognize best practices for IAM
- Analyze the cultural and societal impacts of cloud security
- Differentiate among a role, user, and policy in cloud security
- Use a process to resolve vulnerabilities in a web server
- Compare the uses of Shield and AWS WAF
- Identify the best cloud security service for a given scenario
- Explain functions and features of Amazon Inspector and AWS Artifact
|Precept 7: w7
||AWS Compute Cloud I
- Provide an overview of different AWS compute services in the cloud
- Demonstrate why to use Amazon Elastic Compute Cloud (Amazon EC2)
- Identify the functionality in the EC2 console
- Perform basic functions in Amazon EC2 to build a virtual computing environment
- Identify Amazon EC2 cost optimization elements
|Lab 6: w7
||AWS Content Delivery Practice
- Learn how to design and setup an AWS Virtual Private Cloud.
- Experiment with and use AWS to setup and launch a Web Server.
- Learn how to use CloudFront, the AWS content delivery network (CDN).
|Module 4: Virtualization, Containers and Storage
|Topic 7: 24/10, 27/10, 31/10
- Review basic Operating Systems' concepts of relevance to virtualization: core abstractions,
layering, libraries, application binary interface, security and privilege management,
protection rings, running in kernel vs. user mode.
- Understand and explain different virtualization types.
- Examine, understand and assess the concepts of server virtualization, virtual machines, and
- Understand and explain techniques for implementing virtual machines: de-privileging,
primary and shadow structures, memory tracing.
- Become familiar with the VMWare virtualization platforms.
Readings: Overview, Introductory Concepts, History
Readings: Virtualization Techniques
- VMware, “Understanding Full Virtualization, ParaVirtualization, and Hardware Assist,” VMWare
White Paper, 2007.
- M. Pearce, S. Zeadally, and R. Hunt, “Virtualization: Issues,
Security Threats, and Solutions,” ACM Comput. Surv., vol. 45, no. 2, pp. 1–39, 2013.
- K. Adams and O. Agesen, “A comparison of software and hardware techniques for x86
virtualization,” in International Conference on Architectural Support for Programming
Languages and Operating
Systems - ASPLOS, 2006, pp. 2–13.
- RedHat, “What is Virtualization.”
- P. Barham et al., “Xen and the art of virtualization,” Proc. Nineteenth ACM Symp. Oper.
Syst. Princ. - SOSP ’03, p. 164, 2003.
|Precept 9: w8
||Elasticity and Monitoring
- Indicate how to distribute traffic across Amazon EC2 instances by using Elastic Load
- Identify how Amazon CloudWatch enables you to monitor AWS resources and applications
in real time
- Explain how Amazon EC2 Auto Scaling launches and releases servers in response to workload
- Perform scaling and load balancing tasks to improve an architecture
|Lab 7: w8
- Use basic OpenStack functionalities
- Explore OpenStack cluster installations
|Topic 8: 31/10, 3/11, 10/11, 1411
||Containers and Docker
- Examine, understand and assess the concept of containers.
- Understand and explain how is software installed on Docker containers?
- Understand and explain how Docker containers manage storage and networking.
- Understand and explain how Docker containers manage resource controls.
- Understand, explain and apply Dockerfile specification for building container images.
- Understand and explain the key differences and comparison between containers and VMs.
|Lab 8: w9
Learning Objectives: Review the topics covered so far and revisit key concepts; review project progress.
|Midterm: 7/11 (3-5pm)
|| Topics: Modules 1, 2, 3.
|Precept 10: w10
- Identify the different types of storage in AWS
- Explain Amazon S3, EBS, EFS, S3 Glacier, their differences and identify their
- Perform functions in Amazon EBS to build an Amazon EC2 storage solution
|Lab 9: w10
||Load Balancers, Caching, and Storage
- Describe the benefits of caching data
- Explain the purpose of Amazon ElastiCache
- Attach a load balancer to a webpage
- Evaluate the performance of a load balancer
- Describe features and benefits of load balancing
- Learn how to select and use the AWS storage service that fits the needs of an application.
- Explore and demonstrate the AWS S3, EFS, S3 Glacier consoles.
- Experiment with AWS Dynamo DB.
|Part III: Cloud Application Programming Paradigms
|Topic 9: 17/11, 21/11, 24/11
||MapReduce, Hadoop, GFS, HDFS: Big-Data Platforms
- Explore and understand the key concepts behind popular Big-data processing platforms.
- Become familiar with the MapReduce programming model.
- Understand the key concepts and design concerns in Cloud file systems like GFS and HDFS.
- J. Dean and S. Ghemawat, “MapReduce: Simplified data processing on large clusters,”
in OSDI 2004 - 6th Symposium on Operating Systems Design and Implementation, 2004, pp.
||Multi-container and multi-host environments
- Understand, explain, and apply Dockerfile specification for building container images.
- Understand, explain, and apply Docker Compose and Docker Swarm.
- Become familiar and describe the core functionalities of Docker Compose and Docker Swarm.
- J. Nickoloff and S. Kuenzli (2019), Ch. 8, 11, 12 "Docker in Action" 2nd Edition, Manning.
- The Docker Book (2017) James Turnbull.
- Use CloudWatch to set up a text alert event Cloud
- Compare CloudTrail and CloudWatch
|Topic 10: 28/11, 1/12
||Microservices and Serverless Computing
- Explore and become familiar with the serverless Cloud computing paradigm.
- Understand and explain the main drivers and key concepts behind serverless computing and the
- Understand the key characteristics of FaaS and its differences from PaaS, SaaS and IaaS.
- Understand the main limitations of current FaaS offerings.
- Explore and describe examples of structuring Cloud applications following the serverless
- Understand and describe limitations that current Cloud services pose to serverless
- Understand and explain the concepts of stateless vs. stateful functions; explain how
can be implemented on top of stateless functions.
Optional Additional Readings:
- P. Castro, V. Ishakian, V. Muthusamy, and A. Slominski, “The rise of serverless computing,”
Commun. ACM, vol. 62, no. 12, pp. 44–54, Nov. 2019.
- E. Jonas et al., “Cloud Programming Simplified: A Berkeley View on Serverless Computing,”
- J. M. Hellerstein et al., “Serverless Computing: One Step Forward, Two Steps Back,” in
Conference on Innovative Data Systems Research (CIDR), 2019.
- I. E. Akkus et al., “SAND: Towards High-performance Serverless
Computing,” in Proceedings of the 2018 USENIX Conference on Usenix Annual
Technical Conference, 2018, pp. 923–935.
- Oakes, E., Yang, L., Zhou, D., Houck, K., Harter, T., Arpaci-Dusseau, A. C., &
Arpaci-Dusseau, R. H.
SOCK: Rapid task provisioning with serverless-optimized containers. Proceedings of the
2018 USENIX Annual Technical Conference, USENIX ATC 2018, 57–69,
- A. Agache et al., “Firecracker: Lightweight virtualization for serverless applications,”
in Proceedings of the 17th USENIX Symposium on Networked Systems Design and Implementation,
NSDI 2020, 2020, pp. 419–434.
- Wang, L., Li, M., Zhang, Y., Ristenpart, T., & Swift, M. (2018). Peeking Behind the
Curtains of Serverless Platforms. 2018 USENIX Annual Technical Conference (USENIX ATC 18),
- Y. Gan et al. (2019). “An Open-Source Benchmark Suite for Microservices and Their
Implications for Cloud & Edge Systems,” in Proceedings of the Twenty-Fourth International
Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS
2019, pp. 3–18.
- D. Ardelean, A. Diwan, C. Erdman (2018).
“Performance Analysis of Cloud Applications,” in Proceedings of the 15th USENIX Symposium
on Networked Systems Design and Implementation (NSDI ’18), pp. 405–417.