Slide 1

Slide 1 text

Serverless & Restless On Lee CTO of GDP Venture, GDP Labs and COO & CTO of KASKUS linkedin.com/in/onlee

Slide 2

Slide 2 text

MARTIN HARTONO CEO ON LEE CTO Product Manager User Experience Program Manager Developer Infrastructure ABOUT GDP LABS Background: Teaching assistant Research Assistant Competitive programmers MAJORITY ARE MILLENIALS 150 PEOPLE AND GROWING

Slide 3

Slide 3 text

ABOUT GDP LABS The war for talent ("shortage") refers to an increasingly competitive landscape for recruiting and retaining talented employees in software and internet industry globally including Indonesia Location: Jakarta, Bandung, Yogya Founded: June 2012 INTERNATIONAL & NATIONAL PROGRAMMING COMPETITIONS WINNINGS 99 COMPETITIONS COMPETITIONS 252 252 Well-rounded DIFFERENTIATORS Engineering Centric

Slide 4

Slide 4 text

ABOUT GDP LABS Core Value Continuous Learning Sharing What We Do • Help sister companies • Incubate startups • Keep learning new technologies

Slide 5

Slide 5 text

ABOUT GDP LABS Products • Chatting Platform • HR & Payroll Platform • Programming Assistant Platform • Social Media Platform Technologies Mobile Internet Cloud Machine Learning Social Media

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Software Development Evolution

Slide 9

Slide 9 text

Software Development Tool Text Editor Integrated Development Environment (IDE)

Slide 10

Slide 10 text

API Simple Object Access Protocol (SOAP) GraphQL Local Representational State Transfer (REST)

Slide 11

Slide 11 text

Application CLI GUI IoT Mobile Internet cmd>_

Slide 12

Slide 12 text

SECURITY TOOLS APPLICATIONS WIDGET LANGUAGE BINDING REST API SERVICES INFRASTRUCTURE Block Diagram

Slide 13

Slide 13 text

Front-End Technologies Front-End Technologies Google's Polymer Dojo Toolkit jQuery midori MooTools Prototype JavaScript Framework AnyChart Highcharts D3.js JavaScript InfoVis Toolkit Pixi.js CreateJS Fabric.js Raphaël p5.js Processing.js Plotly Three.js SWFObject ZingChart Ext JS Bootstrap Dojo Widgets jQuery UI DHTMLX Kendo UI WinJS Handlebars Socket.IO Cascade Framework Rico Modernizr Joose AngularJS FancyGrid jQWidgets Google Closure Library Microsoft's Ajax library jQuery Mobile Velocity.js Underscore.js Mustache ZURB Foundation YUI Library Wijmo 5 MochiKit PDF.js Spry framework Rialto Toolkit Mojito SproutCore CanvasJS Backbone.js Chaplin.js Cappuccino Mocha Jasmine QUnit JavaScriptMVC Google Web Toolkit Meteor Knockout Ember.js Echo Ext JS Enyo Wakanda Framework WhitestormJS SmartClient Webix qooxdoo Ignite UI Unit.js React.js Express

Slide 14

Slide 14 text

Back-End Technologies Java PHP Python Apache Shale Apache Struts 2 Apache Eclipse RAP FormEngine Google Web Toolkit Hamlets JBoss Seam OpenLaszlo Oracle ADF Jspx-bay OpenXava Oracle ADF RIFE Spark Spring Stripes Takes VRaptor Apache Tapestry Brutos Framework Apache Wicket AppFuse Grails Wavemaker WebObjects WebWork WebJ framework Apache Click Jspx-bay JVx OpenXava ThinWire Vaadin JavaServer Faces (Mojarra) Apache Sling OpenLaszlo Play Apache OFBiz ItsNat Ze Framework ztemplates Spring Frameworks Laravel Agavi Banshee CakePHP Fat-Free FuelPHP Gyroscope Hazaar MVC Kajona Kohana Lithium Nette Framework Nova Framework PRADO Silex SilverStripe Smart.Framework Symfony TYPO3 Flow Yii Zend Framework Zikula CodeIgniter Bottle BlueBream CubicWeb Django Nagare pyck Pyjs Pylons CherryPy Pyramid Tornado Grok TACTIC TurboGears web2py Webware Zope 2 Flask

Slide 15

Slide 15 text

Microservice Architecture While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data. Source:James Lewis, Martin Fowler. http://martinfowler.com/articles/microservices.html

Slide 16

Slide 16 text

Serverless Architecture It refer to applications that significantly depend on third-party services (knows as Backend as a Service or "BaaS") or on custom code that's run in ephemeral containers (Function as a Service or "FaaS"), the best known vendor host of which currently is AWS Lambda. By using these ideas, and by moving much behavior to the front end, such architectures remove the need for the traditional 'always on' server system sitting behind an application. Depending on the circumstances, such systems can significantly reduce operational cost and complexity at a cost of vendor dependencies and (at the moment) immaturity of supporting services. Source: Mike Roberts. http://martinfowler.com/articles/serverless.html

Slide 17

Slide 17 text

X as a Service FaaS Functions as a Service SaaS Software as a Service PaaS Platform as a Service IaaS Infrastructure as a Service

Slide 18

Slide 18 text

APPS Private Cloud

Slide 19

Slide 19 text

Serverless Challenges Unknown New Programming Model 0001 1001 0100 0111 Stateless Vendor Specific Lost of Server Control Testing

Slide 20

Slide 20 text

Serverless Benefits Quick Turnaround Save Cost • Pay per user by 100 ms granularity • No capital expense • Operational • Development • Scaling (peak traffics) Deployment $

Slide 21

Slide 21 text

Sample Implementation Serverless wiki (internal GDP Labs) AWS S3 AWS Lambda HTML 5 HTML 5 Javascript Typescript Angular 2 HTML 5 Java Spring GraphQL

Slide 22

Slide 22 text

• (page 12)
 Amazon S3 Pushes Events and Invokes a Lambda Function
 • (page 63)
 Programming Model for Authoring Lambda Functions in Java • (page 65, 66)
 Java HelloWorld code
 • (Java, page 74)
 The Context Object

Slide 23

Slide 23 text

Source: https://code.facebook.com/posts/1691455094417024 A GraphQL query is a string that is sent to a server to be interpreted and fulfilled, which then returns JSON back to the client.

Slide 24

Slide 24 text

• GraphQL vs REST API
 • Getting Started • JavaScript version • Java version • Star War API - GraphiQL Tool • Wrapping a REST API in GraphQL

Slide 25

Slide 25 text

Summary Serverless (Functions as a Service) GraphQL (Beyond REST API)

Slide 26

Slide 26 text

WE ARE HIRING! [email protected]

Slide 27

Slide 27 text

THANK YOU Q&A