SlideShare a Scribd company logo
1 of 35
Download to read offline
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
A Web Widget Platform
Enrique Paz
Senior Backend Developer
13/06/2013
1/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
About Me
• Passionate Erlang developer
• Testing enthusiast
• Love beautiful code!
2/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Spilgames
• Gaming Platform
• Serving data to 190+ countries world-wide
• 180+ million unique users per month
• Multiple Platforms: Desktop, Mobile Native & Web
• 300+ employees
• Offices in The Netherlands & China
• Revenue: Advertising & EUM
3/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Old Portals Landscape
4/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Brands and Sites
• 5 Brands/Channels for target audiences
• 1-15 Sites for different geographical regions
• Strong domains
www.spel.se for teens in Sweden
www.ojogos.pt for families in Portugal and Brazil
. . .
5/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Gaming Portals
6/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Architectural Overview
• Monolithic portals per
brand
• Static pages with lots of
AJAX calls
• Architectural layers
developed independently
7/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
The Good
• Ability to develop per brand and site
• Acceptable performance
• Clear layer separation
• Fast growth
8/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
The Bad
• Inability to share features between brand codebases
• Aggressive multi-level caching needed to perform decently
• Lots of logic on the client
• Developers can’t switch brands easily
• Long time to market
9/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Wish List
10/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Isolation & Performance
• Isolated requests, features and crashes
• Feature toggling on runtime
• Decent number of requests/s with linear
scalability
• Technology aligned application and storage
layers
11/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Increase Development Speed
• Only one modular codebase
• Small features, easy to deploy and rollback
• Changes testable in isolation
12/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
What’s out there
• MVC Frameworks (Chicago Boss, Zotonic. . . )
(+) Nice layer separation
(+) Mature solutions
(+) Easy to use
13/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
What’s out there
• MVC Frameworks (Chicago Boss, Zotonic. . . )
(+) Nice layer separation
(+) Mature solutions
(+) Easy to use
• But. . .
(-) Feature isolation not key in their design
(-) A VC framework fits better (abstracted model)
13/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
A Widget Platform
14/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
A Widget Platform
15/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Widgets
• Isolated
• Independent Erlang
applications
• Use ErlyDTL for the view
• Specification in the .app.src
• Can only use what they
specify
16/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Widgets: declaring everything
• Children
• Public properties
• Private properties
• Themes
• JS decoration
• CSS decoration
{ env , [
{ children , [ wdg_game_list_breadcrumb ] } ,
{ interface , [
{ page , "1" } ,
{ pageSize , " 20 " }
] } ,
{ private_interface , [
{ template , wdg_game_list } ,
{ css , [ " wdg_game_list " ] } ,
{ js , [ " i n i t . j s " ] } ,
{games , [ ] } ,
{ pagination_bar , [ ] }
] } ,
{ themes , [
{ " teens " , [
{ template , wdg_game_list_teens } ,
{ css , [ " teens / wdg_game_list_teens " ] } ,
{ js , [ " teens / i n i t . j s " ] }
] }
] } ,
{ js_modules , [ ] } ,
{ js_event_config , [
{ l i s t e n , [ ’ system . user . search . request ’ ] } ,
{ emit , [ ] }
] }
] }
17/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Widget Libraries
• Widget type definitions
• Widget behaviour
• Wrappers for common actions
• Connection to the application
layer
• ErlyDTL custom tags
18/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Widget Platform
• Widget dependencies
• Path to widget mapping
• Erlang web server
• Request Flow
• Global error pages
19/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
NGINX Virtual Host declaration
• Domain mapping
• Widget static files
• Static error pages
• URL rewriting
20/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Request Flow
21/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Sets Of Widgets In One Platform
• Allows the cration of small deltas
• Different prearranged sets can be requested
• Different sets can be built per request
22/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Master & Slaves In 1 VM
• The platform master node runs:
A web server
A management interface
A specific set of widgets
23/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Master & Slaves In 1 VM
• The platform master node runs:
A web server
A management interface
A specific set of widgets
• Each slave node runs:
Its own specific set of widgets
23/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
wdg1/?origins=w1,preview;w5,preview
• Widgets can be called in any
node
• Widgets can fail
• Widgets can be disabled
24/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Managing Widgets
25/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
The Need For A Widget Manager
• To manage widgets and versions in the platform nodes
• To keep the clustered platforms in sync
• To make changes in the cluster in an easy way
26/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
How does it work
• SWIFT as a central widget
repository
• HTTP interface with simple
GUI
• Uses the platform
management interface:
List nodes
List widgets in a node
Enable/disable widget in a
node
Change widget version in a
node
• Enforces configuration to new
cluster members
27/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
What’s in the Future?
28/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Lessons Learned
• Reinforce the concepts adoption often
• Review, review, review
• Measure performance from early
stages
29/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Coming in H2
• Native widget to backend connectivity
• Per widget render timeout
• In req caching of the BE calls
• Performance analysis and improvements
• Router to be open sourced
30/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
What We’ve Used
• ErlyDTL
• Cowboy
• Lager
• Rebar
(*) semantic versioning, i.e. [">=1.3.1", "<2.0.0"]
(*) shared dependencies
(*) xref fixes
• Lhttpc
• Estatsd
31/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
Questions?
32/33
Introduction
Spilgames & Me
Old Portals
Landscape
Overview
Evaluation
Wish List
Tech Wishes
Taskforce Wishes
Available
Frameworks
A Widget
Platform
Components
The Flow
Testing &
Deploying
Managing
Widgets
Holding Control
Next Steps
Summary
Contributions
See You Around!
Thanks!
33/33

More Related Content

Similar to A Web Widget Platform

Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...Theo Jungeblut
 
Node.js BFFs - our way to the better/micro frontends
Node.js BFFs - our way to the better/micro frontendsNode.js BFFs - our way to the better/micro frontends
Node.js BFFs - our way to the better/micro frontendsEugene Fidelin
 
2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and DirectionsCollabNet
 
Zibrasoft | Software QA Testing Company Inida
Zibrasoft | Software QA Testing Company InidaZibrasoft | Software QA Testing Company Inida
Zibrasoft | Software QA Testing Company InidaZibraSoft Technologies
 
Sitecore upgrade best practices
Sitecore upgrade best practicesSitecore upgrade best practices
Sitecore upgrade best practicesedynamic
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Srini Penchikala
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009guest2b8cd
 
Continuous Performance Testing and Monitoring in Agile Development
Continuous Performance Testing and Monitoring in Agile DevelopmentContinuous Performance Testing and Monitoring in Agile Development
Continuous Performance Testing and Monitoring in Agile DevelopmentDynatrace
 
Kubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster SystemKubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster SystemTomoya Fujita
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Lucas Jellema
 
Accelerating Time To Market with Sitecore & Helix
Accelerating Time To Market with Sitecore & HelixAccelerating Time To Market with Sitecore & Helix
Accelerating Time To Market with Sitecore & HelixVarunNehra
 
ATAGTR2017 Unified APM: The new age performance monitoring for production sys...
ATAGTR2017 Unified APM: The new age performance monitoring for production sys...ATAGTR2017 Unified APM: The new age performance monitoring for production sys...
ATAGTR2017 Unified APM: The new age performance monitoring for production sys...Agile Testing Alliance
 
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...Jean Vanderdonckt
 
college website project report
college website project reportcollege website project report
college website project reportMahendra Choudhary
 
Micro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETMicro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETVijay Nair
 
APEX Office Hours Interactive Grid Deep Dive
APEX Office Hours Interactive Grid Deep DiveAPEX Office Hours Interactive Grid Deep Dive
APEX Office Hours Interactive Grid Deep DiveJohnSnyders
 

Similar to A Web Widget Platform (20)

Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications a...
 
AngularJS Basics
AngularJS BasicsAngularJS Basics
AngularJS Basics
 
Node.js BFFs - our way to the better/micro frontends
Node.js BFFs - our way to the better/micro frontendsNode.js BFFs - our way to the better/micro frontends
Node.js BFFs - our way to the better/micro frontends
 
Ionic vancouver 201604
Ionic vancouver 201604Ionic vancouver 201604
Ionic vancouver 201604
 
2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions2016 Federal User Group Conference - TeamForge Capabilities and Directions
2016 Federal User Group Conference - TeamForge Capabilities and Directions
 
Zibrasoft | Software QA Testing Company Inida
Zibrasoft | Software QA Testing Company InidaZibrasoft | Software QA Testing Company Inida
Zibrasoft | Software QA Testing Company Inida
 
Sitecore upgrade best practices
Sitecore upgrade best practicesSitecore upgrade best practices
Sitecore upgrade best practices
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009
 
Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009Architecture Enforcement Aspects Itarc2009
Architecture Enforcement Aspects Itarc2009
 
Continuous Performance Testing and Monitoring in Agile Development
Continuous Performance Testing and Monitoring in Agile DevelopmentContinuous Performance Testing and Monitoring in Agile Development
Continuous Performance Testing and Monitoring in Agile Development
 
Kubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster SystemKubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster System
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
 
Accelerating Time To Market with Sitecore & Helix
Accelerating Time To Market with Sitecore & HelixAccelerating Time To Market with Sitecore & Helix
Accelerating Time To Market with Sitecore & Helix
 
GenericFrame Technology
GenericFrame TechnologyGenericFrame Technology
GenericFrame Technology
 
ATAGTR2017 Unified APM: The new age performance monitoring for production sys...
ATAGTR2017 Unified APM: The new age performance monitoring for production sys...ATAGTR2017 Unified APM: The new age performance monitoring for production sys...
ATAGTR2017 Unified APM: The new age performance monitoring for production sys...
 
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
 
college website project report
college website project reportcollege website project report
college website project report
 
Profile summary
Profile summaryProfile summary
Profile summary
 
Micro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETMicro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JET
 
APEX Office Hours Interactive Grid Deep Dive
APEX Office Hours Interactive Grid Deep DiveAPEX Office Hours Interactive Grid Deep Dive
APEX Office Hours Interactive Grid Deep Dive
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 

A Web Widget Platform

  • 1. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions A Web Widget Platform Enrique Paz Senior Backend Developer 13/06/2013 1/33
  • 2. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions About Me • Passionate Erlang developer • Testing enthusiast • Love beautiful code! 2/33
  • 3. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Spilgames • Gaming Platform • Serving data to 190+ countries world-wide • 180+ million unique users per month • Multiple Platforms: Desktop, Mobile Native & Web • 300+ employees • Offices in The Netherlands & China • Revenue: Advertising & EUM 3/33
  • 4. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Old Portals Landscape 4/33
  • 5. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Brands and Sites • 5 Brands/Channels for target audiences • 1-15 Sites for different geographical regions • Strong domains www.spel.se for teens in Sweden www.ojogos.pt for families in Portugal and Brazil . . . 5/33
  • 6. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Gaming Portals 6/33
  • 7. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Architectural Overview • Monolithic portals per brand • Static pages with lots of AJAX calls • Architectural layers developed independently 7/33
  • 8. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions The Good • Ability to develop per brand and site • Acceptable performance • Clear layer separation • Fast growth 8/33
  • 9. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions The Bad • Inability to share features between brand codebases • Aggressive multi-level caching needed to perform decently • Lots of logic on the client • Developers can’t switch brands easily • Long time to market 9/33
  • 10. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Wish List 10/33
  • 11. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Isolation & Performance • Isolated requests, features and crashes • Feature toggling on runtime • Decent number of requests/s with linear scalability • Technology aligned application and storage layers 11/33
  • 12. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Increase Development Speed • Only one modular codebase • Small features, easy to deploy and rollback • Changes testable in isolation 12/33
  • 13. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions What’s out there • MVC Frameworks (Chicago Boss, Zotonic. . . ) (+) Nice layer separation (+) Mature solutions (+) Easy to use 13/33
  • 14. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions What’s out there • MVC Frameworks (Chicago Boss, Zotonic. . . ) (+) Nice layer separation (+) Mature solutions (+) Easy to use • But. . . (-) Feature isolation not key in their design (-) A VC framework fits better (abstracted model) 13/33
  • 15. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions A Widget Platform 14/33
  • 16. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions A Widget Platform 15/33
  • 17. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Widgets • Isolated • Independent Erlang applications • Use ErlyDTL for the view • Specification in the .app.src • Can only use what they specify 16/33
  • 18. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Widgets: declaring everything • Children • Public properties • Private properties • Themes • JS decoration • CSS decoration { env , [ { children , [ wdg_game_list_breadcrumb ] } , { interface , [ { page , "1" } , { pageSize , " 20 " } ] } , { private_interface , [ { template , wdg_game_list } , { css , [ " wdg_game_list " ] } , { js , [ " i n i t . j s " ] } , {games , [ ] } , { pagination_bar , [ ] } ] } , { themes , [ { " teens " , [ { template , wdg_game_list_teens } , { css , [ " teens / wdg_game_list_teens " ] } , { js , [ " teens / i n i t . j s " ] } ] } ] } , { js_modules , [ ] } , { js_event_config , [ { l i s t e n , [ ’ system . user . search . request ’ ] } , { emit , [ ] } ] } ] } 17/33
  • 19. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Widget Libraries • Widget type definitions • Widget behaviour • Wrappers for common actions • Connection to the application layer • ErlyDTL custom tags 18/33
  • 20. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Widget Platform • Widget dependencies • Path to widget mapping • Erlang web server • Request Flow • Global error pages 19/33
  • 21. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions NGINX Virtual Host declaration • Domain mapping • Widget static files • Static error pages • URL rewriting 20/33
  • 22. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Request Flow 21/33
  • 23. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Sets Of Widgets In One Platform • Allows the cration of small deltas • Different prearranged sets can be requested • Different sets can be built per request 22/33
  • 24. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Master & Slaves In 1 VM • The platform master node runs: A web server A management interface A specific set of widgets 23/33
  • 25. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Master & Slaves In 1 VM • The platform master node runs: A web server A management interface A specific set of widgets • Each slave node runs: Its own specific set of widgets 23/33
  • 26. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions wdg1/?origins=w1,preview;w5,preview • Widgets can be called in any node • Widgets can fail • Widgets can be disabled 24/33
  • 27. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Managing Widgets 25/33
  • 28. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions The Need For A Widget Manager • To manage widgets and versions in the platform nodes • To keep the clustered platforms in sync • To make changes in the cluster in an easy way 26/33
  • 29. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions How does it work • SWIFT as a central widget repository • HTTP interface with simple GUI • Uses the platform management interface: List nodes List widgets in a node Enable/disable widget in a node Change widget version in a node • Enforces configuration to new cluster members 27/33
  • 30. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions What’s in the Future? 28/33
  • 31. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Lessons Learned • Reinforce the concepts adoption often • Review, review, review • Measure performance from early stages 29/33
  • 32. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Coming in H2 • Native widget to backend connectivity • Per widget render timeout • In req caching of the BE calls • Performance analysis and improvements • Router to be open sourced 30/33
  • 33. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions What We’ve Used • ErlyDTL • Cowboy • Lager • Rebar (*) semantic versioning, i.e. [">=1.3.1", "<2.0.0"] (*) shared dependencies (*) xref fixes • Lhttpc • Estatsd 31/33
  • 34. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions Questions? 32/33
  • 35. Introduction Spilgames & Me Old Portals Landscape Overview Evaluation Wish List Tech Wishes Taskforce Wishes Available Frameworks A Widget Platform Components The Flow Testing & Deploying Managing Widgets Holding Control Next Steps Summary Contributions See You Around! Thanks! 33/33