Experience and Lessons from Building and Teaching a Serverless Solution Second International Workshop on Serverless Computing (WoSC) 2017, ACM/IFIP/USENIX.

Slides:



Advertisements
Similar presentations
Samsung Smart TV is a web-based application running on an application engine installed on digital TVs connected to the Internet.
Advertisements

W3C Web & TV Workshop 2014 UPnP, W3C and TV W3C Web & TV Workshop March 2014.
4.01 How Web Pages Work.
TAC Vista Security. Target  TAC Vista & Security Integration  Key customer groups –Existing TAC Vista users Provide features and hardware for security.
IBM WebSphere Portal © 2008 IBM Corporation 1 Deliver an Irresistible User Experience  Provides an interactive user experience  No programming needed,
Topics in this presentation: The Web and how it works Difference between Web pages and web sites Web browsers and Web servers HTML purpose and structure.
Tutorial 7 Working with Multimedia. XP Objectives Explore various multimedia applications on the Web Learn about sound file formats and properties Embed.
1 Enabling Secure Internet Access with ISA Server.
Sitefinity Performance and Architecture
UNIT-V The MVC architecture and Struts Framework.
Managing Client Access
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Christopher Chapman | MCT Content PM, Microsoft Learning, PDG Planning, Microsoft.
Making You Explore the Potential of Online Business CMS Based - Web Development Solutions.
HTML+JavaScript M2M Applications Viewbiquity Public hybrid cloud platform for automating and visualizing everything.
MCTS Guide to Microsoft Windows Server 2008 Applications Infrastructure Configuration (Exam # ) Chapter Four Windows Server 2008 Remote Desktop Services,
Active Server Pages  In this chapter, you will learn:  How browsers and servers interacted on the Internet when the Internet first became popular 
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
GO-ESSP Workshop, LLNL, Livermore, CA, Jun 19-21, 2006, Center for ATmosphere sciences and Earthquake Researches Construction of e-science Environment.
Multimedia Design consists of a bunch of different areas of design including graphics, video, web, flash etc. Basically it's pretty much everything to.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
Outline Server side Dependencies Installing it Configuring it Client side coding Browser setup.
A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Applications software. Systems.
Secure Mobile Development with NetIQ Access Manager
A Developer’s Introduction to SharePoint 2013 Apps Ryan McIntyre, MCITP, MCPD National
IBM Software Group © 2008 IBM Corporation IBM Tivoli Provisioning Manager 7.1 Server Management/Task Management/Workflow.
Portlet Development Konrad Rokicki (SAIC) Manav Kher (SemanticBits) Joshua Phillips (SemanticBits) Arch/VCDE F2F November 28, 2008.
4.01 How Web Pages Work.
Lesson 11: Web Services and API's
CLOUDENTIFY.
4.01 How Web Pages Work.
Export Services Deep Dive
1/27/2018 5:13 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
TV Broadcasting What to look for Architecture TV Broadcasting Solution
Going Serverless with AWS Lambda
4.01 How Web Pages Work.
Fan Engagement Solution
Javascript and Dynamic Web Pages: Client Side Processing
Why Sytel?.
Application area Events Conferences Exhibitions
A SEMINAR ON ROVER TECHNOLOGY
Scalable Web Apps Target this solution to brand leaders responsible for customer engagement and roll-out of global marketing campaigns. Implement scenarios.
Live Global Sports Events
Jason Bury Dylan Drake Rush Corey Watt
API (Application Program Interface)
OpenLegacy Training Day Four Introduction to Microservices
Tulika Chaudharie / Harikharan Krishnaraju
Introduction Web Environments
Introduction to Microservices Prepared for
Scalable Web Apps Target this solution to brand leaders responsible for customer engagement and roll-out of global marketing campaigns. Implement scenarios.
Solving ETL Bottlenecks with SSIS Scale Out
IIS.
Continuous Automated Chatbot Testing
Synthesizing knowledge During Project
intro to notifications in iOS 10
IOS SDK v1.0 with NAM 4.2.
Cloud Web Filtering Platform
Analysis models and design models
SharePoint Online Authentication Patterns
Web Application Architectures
Edge Recorder Client
Building Serverless Enterprise Applications
敦群數位科技有限公司(vanGene Digital Inc.) 游家德(Jade Yu.)
4.01 How Web Pages Work.
Web Application Architectures
4.01 How Web Pages Work.
Microservices Kubernetes Diagram Template
ONAP Architecture Principle Review
API Security: OAuth, OpenID Connect & ABAC
Presentation transcript:

Experience and Lessons from Building and Teaching a Serverless Solution Second International Workshop on Serverless Computing (WoSC) 2017, ACM/IFIP/USENIX Middleware 2017 Donald F. Ferguson Adjunct Professor, Dept. of Computer Science, Columbia University Co-founder and CTO, Sparq TV dff@cs.columbia.edu, donald.ferguson@seeka.tv

Profile Viewing History Comments etc. Viewing Catalog 101 Individual Viewing Watch Parties Comments etc Crowd Funding Watch Lists etc.

Create and manage content View comments/shares on content Analyze views, comments, SM, … Generate pluggable player placements etc.

Seeka TV Architecture Note We have a couple of servers Not all connections shown Probably forgot stuff We have a couple of servers XMPP Neo4J (Graphene) RDS

Seeka TV Architecture Single DNS endpoint for multiple services SSL Certificate Tenant DNS redirection Integrated URL/API name space Note Not all connections shown Probably forgot stuff We have a couple of servers XMPP Neo4J (Graphene) RDS XMPP Chat for watch parties and player controls.

Seeka TV Architecture VPC->Outbound Calls Web content Background tasks on change Content change promotion Note Not all connections shown Probably forgot stuff We have a couple of servers XMPP Neo4J (Graphene) RDS Verify potentially failed OPs Basic catalog and user info

Seeka TV Architecture Lambda implementing microservices for Registration, authentication User and profile management Catalog and digital asset management Watch parties Commenting, tagging, … Social media integration Placement (business videos) Tipping, crowd funding Multi-tenant management Other stuff I forgot Note Not all connections shown Probably forgot stuff We have a couple of servers XMPP Neo4J (Graphene) RDS

E6998 – Microservice and Cloud Applications Microservices Model We only accomplished a fraction Address Person OAuth2 Some composite microservice functions

E6998 – Microservice and Cloud Applications Component Model

Design Pattern – Generic Lambda Function Options In zip file Separate Lambda Config info Added to Lambda Env Variable From S3

Lessons Learned Serverless is much more than Lambda functions/function. Think of the environment the way I drew it. A bunch of icons. If you can configure and program with a web browser, and you do not manage hardware, SW, upgrade, etc.  It is serverless. The environment is like a massive programmable wiki of /URLs Productivity There is significant productivity, especially initially, by eliminating all HW and SW server configuration and management. The stateless model becomes incredibly productive but requires evolving from a more traditional microservice/service/application model to a event-function-event model. There are a lot of subtle configuration settings and interactions between elements, and this is within a single environment. Azure-IBM-Google-AWS-… terrifies me.

Research Opportunities Service composition, even with SWF and Step Functions, is too tedious. There are three, inherently graphical approaches to composition Structure Data/event flow Control flow These are scattered all over the place in code, service configs, … Serverless/functional systems are evolving to a pattern (“URI”, “Verb”, data)  function. The function can be Lambda function CloudFront “executing” based on configuration information API Gateway running integrations etc. But, there is no way to think about the environment this way. Bunch of point editors. Limited support for dynamic binding based on properties End-to-end correlation of request flows. Performance/availability root causes