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.
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. (2020). 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
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.
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.
Readings:
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.
"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.