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.
Readings:
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.
Precept 1: w1
Introduction to AWS Academy
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.
Lab 1: w1
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.
Readings:
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.
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.
Readings:
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. (2024). 2020 Flexera State of the Cloud Report. 1–19.
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
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).
Knowledge Check ACF-M1.
Readings:
Chapters 3, 5. Ian Foster and Dennis B. Gannon.
"Cloud Computing for Science and Engineering", MIT Press (2017).
Videos:
Watch the videos of ACF Module 1: Cloud Concepts Overview.
Lab 2: w3
AWS Services Overview.
Learning Objectives:
Experiment with the AWS console.
Experiment with the Microsoft Azure.
Review the main services of Google Cloud.
Readings:
Student Guide, AIC-M1: Global Infrastructure
(AWS Academy Introduction to Cloud - Semester 1). Access requires registration.
Student Guide, AIC-M2: Structures of the Cloud
AWS Academy Introduction to Cloud - Semester 1. Access requires registration.
Topic 4: w4, w5
Modern Computing Landscape
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.
Readings:
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.
M. Satyanarayanan, “A Brief History of Cloud Offload: A Personal Journey from Odyssey
Through Cyber Foraging to Cloudlets,”
ACM SIGMOBILE Mob. Comput. Commun. Rev., vol. 18, no. 4, pp. 19–23, 2015.
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.
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.
Readings:
Student Guide for ACF-M4: AWS Cloud Security.
Videos:
Watch the videos of ACF-Module 4: AWS Cloud Security.
Lab 5: w7
AWS Cloud Security Practice
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
Readings:
Student Guide for the ACF-M4: Cloud Security.
Student Guide for the AIC-M7: Security 1.
Student Guide for the AIC-M8: Security 2.
Videos:
Watch the videos of
ACF-Module 4: AWS Cloud Security Lab.
Topic 6: w7
Cloud Infrastructure Software, Workloads, and Metrics
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.
"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.
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
E. Kotsovinos, “Virtualization: Blessing or Curse?,” Commun. ACM, vol. 54, no. 1, p. 61,
Jan. 2011.
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.
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.
Readings:
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.
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.
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,”
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.