Columbia University Fall 2016 “Serverless Cloud Applications” (Draft)

(Update — Lecture slides posted on this blog).

Serverless Cloud Applications

Abstract

This course will cover core topics in designing, developing, deploying and delivering serverless cloud applications. Serverless is the natural, and perhaps inevitable, endpoint of cloud computing’s evolution from IaaS, SaaS and PaaS. The core class material will come from Serverless Architectures on AWS, by Peter Sbarski with Sam Kroonenburg. Other web resources provide technical material on serverless applications, for example:, “Serverlessconf – The future will be serverless,” “Serverless” by Martin Fowler and “Serverless: The Future of Software Architecture? — A Cloud Guru.” Figure 1: Serverless Concepts from “Serverless: The Future of Software Architecture?” depicts an overview of the concepts. The figure appears to be a standard depiction of multi-tier web applications. The core transformation of serverless is the invisibility of physical, virtual of software middleware servers. This lack of explicit servers profoundly changes and improves all aspects of application design, development, deployment and optimization.

(Click Image for better resolution)

serverless3

Figure 1: Serverless Concept

The course will cover key serverless concepts and technologies in the context of a concrete, real application that a startup is developing and delivering (Figure 2: Solution Overview). The solution provides interactive and collaborative video streaming. Other features the solution provides and the course will cover include content management, integration with social media (e.g. FaceBook, Twitter), OAuth2 federated security, data analytics and insight into customer usage and behavior, programmable web, and integration-platform-as-a-service, mobile-backend-as-a-service (MBaaS).

(Click image for better resolution)

solution

Figure 2: Solution Overview

Coursework will be a small number of design and implementation projects, each of which builds on previous projects. The design documents, code reviews and demos will determine project grading.

An initial outline of lectures is below, although rate and pace in class and emergence of new information will determine the actual schedule.

Lecture Agenda:

  1. Core Concepts: services, micro-services, serverless and serverless technology (AWS Lambda, Google Cloud Functions and Microsoft Azure Functions.
  2. APIs: Design patterns for REST APIs, API Management, implementation design patterns and frameworks.
  3. Data-as-a-Service: AWS Aurora, DynamoDB, Google Bigtable, Google Firebase, …
  4. Security and Authentication: OAuth2, Amazon Cognito, Auth0, …
  5. Social Media Integration and APIs
  6. Service Integration: AWS SNS, AWS SQS, Google Pub/Sub, Microsoft Azure Queue Service, …
  7. Cloud Based Integration and Integration-Platform-as-a-Service: SnapLogic, Azure App Services, …
  8. Content Management and Delivery: content management systems, digital media delivery, content distribution networks.
  9. Real-Time Collaboration Services: XMPP, OpenFire, Jabber, …
  10. Cloud Data Insight: Google Analytics, data models, Apache Spark, Presto, …

Application design, design patterns, continuous delivery and application testing/assurance will be a comment topic woven through all lectures and projects. A centerpiece will be cloud-based testing using Load Impact.

Leave a Reply

Your email address will not be published. Required fields are marked *