DSC516: Cloud Computing

Course Schedule

DSC516: Cloud Computing
Course Outline

Course Schedule and Learning Objectives »

Part I: Basic Concepts and Models
Module 1: Distributed Computing Concepts and Models
Lecture 1: 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.
Precept 1: 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.
Lab 1: 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.
Lecture 2: 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.
Precept 2: 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).
  • Student Guide for ACF Module 1: Cloud Concepts Overview. (requires registration).
  • Chapters 3, 5. Ian Foster and Dennis B. Gannon. "Cloud Computing for Science and Engineering", MIT Press (2017).
Lab 2: 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.
Module 2: Cloud Computing Definitions and Models
Lecture 3: 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):
  • Armbrust, A. Fox, and R. Griffith, M. (2009). Above the clouds: A Berkeley view of cloud computing. In University of California, Berkeley, Tech. Rep. UCB. https://doi.org/10.1145/1721654.1721672
  • 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 3: 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 3: 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.
  • Student Guide for the AWS Academy Cloud Foundations (to access may require registration first).
Lecture 4: 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: Public Cloud Global Infrastructure Overview AWS Infrastructure Cloud Structures
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 4: 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.
Part II: Building Blocks
Module 3: Data centers and Warehouse-scale Computers
Lecture 5: Warehouse Scale Computers
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: 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 5: 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
Lecture 6: 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.
  • 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.
  • "CAP twelve years later: How the ‘rules’ have changed," E. Brewer, Computer, vol. 45, no. 2, pp. 23–29, Jan. 2012.
  • "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.
Additional Readings:
  • "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: 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 6: 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 Resource Management
Lecture 7: Virtualization
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 7: 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 7: Load Balancers and Caching AIC-M9 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
Lecture 8: Introduction to Containers
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: Openstack
Learning Objectives:
  • Use basic OpenStack functionalities
  • Explore OpenStack cluster installations
Lecture 9: 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 9: Docker and Kubernetes Lab
Learning Objectives:
  • Configure and use Docker containers
  • Be familiar with Docker Swarm and Docker Compose
  • Configure and use Kubernetes orchestrator
Lecture 10: Elasticity and Cloud Management Frameworks
Learning Objectives:
  • Examine, understand and assess techniques for using and managing virtual machines in IaaS clouds.
  • Understand and describe the problem of VM allocation to physical machines.
  • Understand and discuss the role and functionality of Cloud Application Management Frameworks.
  • Explore and explain the TOSCA standard and its usefulness.
  • Study, explore, and explain the architecture, functionality and benefits of CAMF and CELAR.
  • Understand and explain the support of elasticity actions by Cloud Application Management Frameworks.
  • Review and explain the key requirements and properties of Container Management Systems.
  • Become familiar and explain the main properties, techniques and characteristics of Cloud resource management systems, like Mesos and Borg.
  • Become familiar and describe the Kubernetes technology.
  • Z. A. Mann and Z. Adam, “Allocation of Virtual Machines in Cloud Data Centers—A Survey of Problem Models and Optimization Algorithms,” ACM Comput. Surv., vol. 48, no. 1, pp. 1–34, Aug. 2015.
  • I. Pietri and R. Sakellariou, “Mapping Virtual Machines onto Physical Machines in Cloud Computing,” ACM Comput. Surv., vol. 49, no. 3, pp. 1–30, 2016.
  • Loulloudes, N., Sofokleous, C., Trihinas, D., Dikaiakos, M. D., & Pallis, G. (2015). Enabling Interoperable Cloud Application Management through an Open Source Ecosystem. IEEE Internet Computing, 19(3), 54–59. https://doi.org/10.1109/MIC.2015.60.
  • Binz, T., Breitenbücher, U., Kopp, O., & Leymann, F. (2014). TOSCA: Portable automated deployment and management of cloud applications. Advanced Web Services, 9781461475, 527–549. https://doi.org/10.1007/978-1-4614-7535-4_22
  • Bellendorf, J., & Mann, Z. Á. (2020). Specification of cloud topologies and orchestration using TOSCA: a survey. Computing, 102(8), 1793–1815. https://doi.org/10.1007/s00607-019-00750-3.
  • B. Burns, B. Grant, D. Oppenheimer, E. Brewer, and J. Wilkes, “Borg, Omega, and Kubernetes - Lessons Learned from Three Container-Management Systems over a Decade,” ACM Queue, vol. 14, no. February, pp. 70–93, 2016.
  • B . Hindman et al., “Mesos: A platform for fine-grained resource sharing in the data center,” in Proceedings of NSDI 2011: 8th USENIX Symposium on Networked Systems Design and Implementation, 2011, pp. 295–308.
  • A. Verma, L. Pedrosa, M. R. Korupolu, D. Oppenheimer, E. Tune, and J. Wilkes, “Large-scale cluster management at Google with Borg,” in Proceedings of the European Conference on Computer Systems (EuroSys), 2015.
Additional Readings
  • Sofokleous, C., Loulloudes, N., Trihinas, D., Pallis, G., & Dikaiakos, M. D. (2014). C-Eclipse: An open-source management framework for cloud applications. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 8632 LNCS, 38–49. https://doi.org/10.1007/978-3-319-09873-9_4.
  • Soldani, J., Binz, T., Breitenbücher, U., Leymann, F., & Brogi, A. (2016). ToscaMart: A method for adapting and reusing cloud applications. Journal of Systems and Software, 113, 395–406. https://doi.org/10.1016/j.jss.2015.12.025
  • Marko Lukša, "Kubernetes in Action," Manning, 2018.
  • Containerizing ZooKeeper with Twine: Powering container orchestration from within (2020) Christopher Bunn, Facebook.
  • J. Nickoloff and S. Kuenzli (2019), Ch. 11-13, "Docker in Action" 2nd Edition, Manning.
  • R. Peinl, F. Holzschuher, and F. Pfitzer, “Docker Cluster Management for the Cloud - Survey Results and Own Solution,” J. Grid Comput., vol. 14, no. 2, pp. 265–282, 2016.
Precept 10: 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 10: Monitoring the Cloud AIC-M9 Knowledge Check
Learning Objectives:
  • Use CloudWatch to set up a text alert event Cloud
  • Compare CloudTrail and CloudWatch
Module 5: Cloud Storage
Lecture 11: Cloud Storage
Learning Objectives:
  • Understand and explain concepts and challenges related to storage in Cloud computing systems.
  • Understand, explain and apply the concepts of availability, consistency and replication in storage systems.
  • Review the challenges and capabilities of Cloud storage services.
  • Understand and explain concepts and challenges related to storage in Cloud computing systems.
  • Understand, explain and apply the concepts of availability, consistency and replication in storage systems.
  • Review the challenges and capabilities of Cloud storage services.
  • Ghemawat, S., Gobioff, H., & Leung, S.-T. (2003). "The Google file system." Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles - SOSP ’03, 29. https://doi.org/10.1145/945445.945450
  • A. Lakshman and P. Malik, “Cassandra - A decentralized structured storage system,” in Operating Systems Review (ACM), 2010, vol. 44, no. 2, pp. 35–40.
  • K. Shvachko, H. Kuang, S. Radia, and R. Chansler, “The Hadoop distributed file system,” in 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies, MSST2010, 2010.
Additional Readings:
  • Bresnahan, J., Keahey, K., LaBissoniere, D., & Freeman, T. (2011). "Cumulus: An open source storage cloud for science." ScienceCloud’11 - Proceedings of the 2nd International Workshop on Scientific Cloud Computing, 25–31. https://doi.org/10.1145/1996109.1996115
  • Calder, B.et al. (2011). "Windows azure storage: A highly available cloud storage service with strong consistency." SOSP’11 - Proceedings of the 23rd ACM Symposium on Operating Systems Principles, 143–157. https://doi.org/10.1145/2043556.2043571
  • Cecchet, E., Candea, G., & Ailamaki, A. (2008). "Middleware-based database replication: The gaps between theory and practice." Proceedings of the ACM SIGMOD International Conference on Management of Data, 739–752. https://doi.org/10.1145/1376616.1376691
  • Brantner, M., Florescu, D., Graf, D., Kossmann, D., & Kraska, T. (2008). "Building a database on S3." Proceedings of the ACM SIGMOD International Conference on Management of Data, 3, 251–263. https://doi.org/10.1145/1376616.1376645
  • Kurra, H., Al-Nashif, Y., & Hariri, S. (2013). Resilient cloud data storage services. Proceedings of the 2013 ACM Cloud and Autonomic Computing Conference. https://doi.org/10.1145/2494621.2494634
  • Han, J., Haihong, E., Le, G., & Du, J. (2011). "Survey on NoSQL database." Proceedings - 2011 6th International Conference on Pervasive Computing and Applications, ICPCA 2011, 363–366. https://doi.org/10.1109/ICPCA.2011.6106531
Precept 11: 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 11: Practice with AWS Storage AIC-M6 Knowledge Check
Learning Objectives:
  • 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
Module 6: Serverless Computing
Lecture 12: 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.
Precept 12: AWS Compute Cloud II ACF-M6 Knowledge Check
Learning Objectives:
  • Demonstrate when to use AWS Elastic Beanstalk
  • Demonstrate when to use AWS Lambda
  • Identify how to run containerized applications in a cluster of managed servers
Lab 12: Elastic Beanstalk AIC-M12 Knowledge Check
Learning Objectives:
  • Learn how to use Amazon CloudTrail, CloudWatch and Config to monitor cloud operations.
Module 7: Microservices and DevOps
Lecture 13: Microservices
Learning Objectives:
  • Review, understand, and explain the Microservices paradigm for Cloud application development.
  • Explore and understand the challenges of building and deploying Cloud applications as Microservices.
  • Microservices (2014) M. Fowler and J. Lewis.
  • Microservices: Decomposing Applications for Deployability and Scalability (2014) C. Richardson, Infoq.
  • M.G. Kakivaya et al., “Service Fabric: A Distributed Platform for Building Microservices in the Cloud,” Proc. 13th EuroSys Conf. EuroSys 2018, vol. 2018.
  • Y. Gan and C. Delimitrou, “The Architectural Implications of Cloud Microservices,” IEEE Comput. Archit. Lett., vol. 17, no. 2, pp. 155–158, Jul. 2018.
  • E. Fadda, P. Plebani, M. Vitali. "Monitoring-aware Optimal Deployment for Applications based on Microservices," IEEE Transactions on Services Computing, 2019. https://doi.org/10.1109/tsc.2019.2910069
  • L. Leite, C. Rocha, F. Kon, D. Milojicic, and P. Meirelles, “A survey of DevOps concepts and challenges,” ACM Comput. Surv., vol. 52, no. 6, 2019.
  • A. Wiedemann, H. Gewald, H. Krcmar, and M. Wiesche, “The DevOps Phenomenon - An executive crash course,” ACM Queue, 2019.
  • D. Trihinas, A. Tryfonos, M. D. Dikaiakos, and G. Pallis, “DevOps as a Service: Pushing the Boundaries of Microservice Adoption,” IEEE Internet Comput., vol. 22, no. 3, pp. 65–71, May 2018.
Optional Readings:
  • Microservices vs. SOA (2017) Ima Miri, DZone.
  • J. Thönes, “Microservices,” IEEE Software, vol. 32, no. 1. IEEE Computer Society, 01-Jan-2015.
  • N. Dragoni et al., “Microservices: Yesterday, today, and tomorrow,” in Present and Ulterior Software Engineering, Springer International Publishing, 2017, pp. 195–216.
  • O. Zimmermann, “Microservices tenets: Agile approach to service development and deployment,” Comput. Sci. - Res. Dev., vol. 32, no. 3–4, pp. 301–310, Jul. 2017.
Precept 13: Cloud Architecture ACF-M9 Knowledge Check
Learning Objectives:
  • Describe the five pillars of the AWS Well-Architected Framework
  • Identify the design principles of the AWS Well-Architected Framework
  • Explain the importance of reliability and high availability
  • Identify how AWS Trusted Advisor helps customers
  • Interpret AWS Trusted Advisor recommendations
Module 8: Big Data Processing Platforms
Lecture 14: Big-Data Processing Platforms
Learning Objectives:
  • Explore and understand the key concepts behind popular Big-data processing platforms.
  • Become familiar with Hadoop's programming model.
  • Explore and familiarize with Apache SPARK's ecosystem.
  • 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.
  • S. Tang, B. He, C. Yu, Y. Li, and K. Li, “A Survey on Spark Ecosystem for Big Data Processing,” arXiv:1811.08834, 2018.
  • M. Zaharia, M. Chowdhury, M. J. Franklin, S. Shenker, and I. Stoica, “Spark: Cluster computing with working sets,” 2nd USENIX Work. Hot Top. Cloud Comput. HotCloud 2010, 2010.
Other Readings
Precept 14: AWS Databases
Learning Objectives:
  • Explain and use Amazon Relational Database Service (Amazon RDS), DynamoDB and their functionalities
  • Explain Amazon Redshift and Aurora
  • Perform tasks in an RDS database, such as launching, configuring, and interacting
Lab 14: Practice with AWS Databases AIC-M10 Knowledge Check
Learning Objectives:
  • 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.