DSC516/EPL602: Cloud Computing

Course Schedule

DSC516/EPL602: Cloud Computing

Course Schedule and Learning Objectives »

Part I: Basic Concepts and Models
Module 1: Distributed Computing Concepts and Models
Topic 1: 5/9, 8/9 From Mainframes to the Cloud Notes
Learning Objectives:
  • 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.
Course Requirements: Reading, Reviewing and Presenting Scientific Papers Tools
  • Zotero for Maintaining your Bibliography.
  • Overleaf for Paper Authoring.
Topic 2: 8/9, 12/9 Distributed Computing: Concepts, Models, Middleware Notes
Learning Objectives:
  • Review and explain key concepts: Middleware, End-to-End Arguments in Systems Design.
  • Understand and explain function decomposition concerns in the design of distributed systems.
  • 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 2768.,” 2000.
  • 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 Software engineering, 1997.
Module 2: Cloud Computing Definitions and Models
Topic 3: 15/9, 19/9, 22/9 Cloud Computing: Introduction, Definitions, Taxonomy. Notes
Learning Objectives:
  • 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.
  • 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.
Additional Readings (Cloud Computing definitions):
Precept 1: week 2 Introduction to AWS Academy AIC Pre-Course Survey
Learning Objectives:
  • 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 Knowledge Check ACF-M1
Learning Objectives:
  • 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.
Learning Objectives:
  • 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 ACF-M2
Learning Objectives:
  • 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 Reports.
  • Identify the various AWS technical support plans and features.
Lab 2: w3 AWS Services Overview. AIC-M1 AIC-M2
Learning Objectives:
  • 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 Notes
Learning Objectives:
  • 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 computing.
  • Memorize and use values of key properties of distributed systems' components and their evolution: CPU speed, network latencies, power consumption.
  • 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.
Additional Readings (Modern Cloud Computing landscape): Additional Readings (Computer Architecture and Computer Networking):
  • 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. https://doi.org/10.1145/2246036.2305856
  • 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, 2015.
  • 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 ACF-M3
Learning Objectives:
  • 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. AIC-M3
Learning Objectives:
  • 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, Semester 1). Access requires registration.
Part II: Building Blocks
Module 3: Data centers and Warehouse-scale Computers
Topic 5: 3/10, 6/10 Warehouse Scale Computers Notes
Learning Objectives:
  • 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 mechanisms.
  • Understand, and explain the cost structure of running a modern data center, and the concept of TCO (total cost of ownership).
Readings: Additional Reading:
Precept 5: w5 AWS Cloud Security ACF-M4 Knowledge Check
Learning Objectives:
  • 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 AIC-M3 AIC-M4
Learning Objectives:
  • 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 S3 bucket, and use them to host a website.
  • Learn the purpose of access keys, a Domain Name System (DNS), Amazon Route 53, and Virtual Private Clouds.
  • Videos and Student Guide for AIC-M4: Virtual Servers of the AWS Academy Introduction to Cloud - Semester 1 course.
Topic 6: 10/10, 13/10, 17/10, 20/10 Cloud Infrastructure Software, Workloads, and Metrics Notes
Learning Objectives:
  • 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 isolation.
  • 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. 2013.
Optional Readings:
  • "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 (Wikipedia).
Precept 6: w6 Networking and Content Delivery on AWS
Learning Objectives:
  • 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 AIC-M7 AIC-M8
Learning Objectives:
  • 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
Learning Objectives:
  • 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 CloudFront Knowledge Check
Learning Objectives:
  • 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 Virtualization Notes
Learning Objectives:
  • 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 hypervisors.
  • 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.”
Additional Readings
  • P. Barham et al., “Xen and the art of virtualization,” Proc. Nineteenth ACM Symp. Oper. Syst. Princ. - SOSP ’03, p. 164, 2003.
  • Virtualization, VMWare.
Precept 9: w8 Elasticity and Monitoring ACF-M10 Knowledge Check
Learning Objectives:
  • Indicate how to distribute traffic across Amazon EC2 instances by using Elastic Load Balancing
  • 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 changes
  • Perform scaling and load balancing tasks to improve an architecture
Lab 7: w8 Openstack I
Learning Objectives:
  • Use basic OpenStack functionalities
  • Explore OpenStack cluster installations
Topic 8: 31/10, 3/11, 10/11, 1411 Containers and Docker Notes
Learning Objectives:
  • 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.
Readings: Additional Readings
Lab 8: w9 Midterm Review
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 AWS Storage
Learning Objectives:
  • Identify the different types of storage in AWS
  • Explain Amazon S3, EBS, EFS, S3 Glacier, their differences and identify their functionalities
  • Perform functions in Amazon EBS to build an Amazon EC2 storage solution
Lab 9: w10 Load Balancers, Caching, and Storage AIC-M9 Knowledge Check AIC-M6 Knowledge Check
Learning Objectives:
  • 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 Notes
Learning Objectives:
  • 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. 137–149.
Other Readings
  • Apache Spark and Hadoop: Working Together (2016) Ion Stoica, DataBrics blog.
  • M. Zaharia et al., “Apache Spark: a unified engine for big data processing,” Commun. ACM, vol. 59, no. 11, pp. 56–65, 2016.
Precept 11 Multi-container and multi-host environments
Learning Objectives:
  • 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.
Additional Readings
Lab 12 AWS Monitoring AIC-M9 Knowledge Check
Learning Objectives:
  • Use CloudWatch to set up a text alert event Cloud
  • Compare CloudTrail and CloudWatch
Topic 10: 28/11, 1/12 Microservices and Serverless Computing
Learning Objectives:
  • Explore and become familiar with the serverless Cloud computing paradigm.
  • Understand and explain the main drivers and key concepts behind serverless computing and the Function-as-a-Service model.
  • 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 paradigm.
  • Understand and describe limitations that current Cloud services pose to serverless applications.
  • Understand and explain the concepts of stateless vs. stateful functions; explain how stateful applications can be implemented on top of stateless functions.
  • 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,” Feb. 2019.
  • J. M. Hellerstein et al., “Serverless Computing: One Step Forward, Two Steps Back,” in Conference on Innovative Data Systems Research (CIDR), 2019.
Optional Additional Readings:
  • 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. (2020). SOCK: Rapid task provisioning with serverless-optimized containers. Proceedings of the 2018 USENIX Annual Technical Conference, USENIX ATC 2018, 57–69, https://www.usenix.org/conference/atc18/presentation/oakes.
  • 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), 133–146. (slides).
  • Y. Gan et al. (2019). “An Open-Source Benchmark Suite for Microservices and Their Hardware-Software Implications for Cloud & Edge Systems,” in Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS ’19, 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.