SlideShare a Scribd company logo
1 of 175
Download to read offline
THINGS ABOUT
SERVERLESS
WITH NODE.JS
THINGS ABOUT
SERVERLESS
WITH NODE.JS
#FDConf
@slobodan_
CTO AT CLOUD HORIZON AND
JS BELGRADE MEETUP ORGANIZER
github.com/stojanovic
twitter.com/slobodan_
SLOBODAN STOJANOVIĆ
#FDConf
@slobodan_
ANOTHER SERVERLESS TALK?
#FDConf
@slobodan_
SOME OF THE QUESTIONS I WILL TRY
TO ANSWER TODAY
#FDConf
@slobodan_
• WHAT IS SERVERLESS?
• IS SERVERLESS ONLY ABOUT THE FUNCTIONS
• HOW DOES IT WORK?
• WHAT ARE THE SERVERLESS PLATFORMS?
• HOW DOES IT WORK WITH NODE.JS?
• HOW TO DEBUG SERVERLESS FUNCTION?
• WHEN SHOULD YOU USE IT?
#FDConf
@slobodan_
#FDConf
@slobodan_
1. WHAT IS

SERVERLESS?
#FDConf
@slobodan_
PLATFORM-AS-A-SERVICE
(PaaS)
#FDConf
@slobodan_
FUNCTION-AS-A-SERVICE
(FaaS)
#FDConf
@slobodan_
LET’S TRY TO EXPLAIN IT WITH
SOMETHING AS SIMPLE AS
LEGO BRICKS
#FDConf
@slobodan_
#FDConf
@slobodan_
Imagine Lego 4x4 white piece
is a server
#FDConf
@slobodan_
Building and deploying

monolith app
#FDConf
@slobodan_
Building and deploying

monolith app
#FDConf
@slobodan_
Building and deploying

monolith app
#FDConf
@slobodan_
Building and deploying

monolith app
#FDConf
@slobodan_
Then people start
using it and you
need to scale
#FDConf
@slobodan_
You need to scale everything,
but only green and blue parts
are really used
#FDConf
@slobodan_
If one part of the app
fails whole system
will fail
#FDConf
@slobodan_
If one part of the app
fails whole system
will fail
#FDConf
@slobodan_
MICROSERVICES
TO THE RESCUE
#FDConf
@slobodan_
Hello, from your
server, again!
Now it can be in the cloud,
it doesn’t matter
#FDConf
@slobodan_
Now each service should be
independent, right?
#FDConf
@slobodan_
Now each service should be
independent, right?
#FDConf
@slobodan_
Now each service should be
independent, right?
#FDConf
@slobodan_
Scaling is easy
#FDConf
@slobodan_
Scaling is easy
#FDConf
@slobodan_
Scaling is easy
#FDConf
@slobodan_
And if no one is using some service
it’s simple to remove or replace it
#FDConf
@slobodan_
And if no one is using some service
it’s simple to remove or replace it
#FDConf
@slobodan_
And if some service fails,
it doesn’t affect the system
#FDConf
@slobodan_
And if some service fails,
it doesn’t affect the system
#FDConf
@slobodan_
But what if we didn’t
scale it before it fails?
#FDConf
@slobodan_
ALSO, ARE SERVERS THAT CHEAP?
#FDConf
@slobodan_
How do we make microservices
cheaper?
#FDConf
@slobodan_
By bundling them
together
#FDConf
@slobodan_
By bundling them
together
#FDConf
@slobodan_
By bundling them
together
#FDConf
@slobodan_
By bundling them
together
#FDConf
@slobodan_
But what if
this one fails?
#FDConf
@slobodan_
IMAGINE WE DON’T NEED
4X4 PIECE ANYMORE?
#FDConf
@slobodan_
Imagine our microservices without
4x4 white pieces!
#FDConf
@slobodan_
Than scaling is simply
adding more services
#FDConf
@slobodan_
And, if we don’t need some
service…
#FDConf
@slobodan_
And, if we don’t need some
service…
#FDConf
@slobodan_
NOW IMAGINE THAT
SCALING IS DONE AUTOMATICALLY
#FDConf
@slobodan_
If something fails it’s replaced
automatically
#FDConf
@slobodan_
ALSO IMAGINE THAT YOU PAY
ONLY FOR THE PARTS THAT YOU ARE
USING AT THE MOMENT
#FDConf
@slobodan_
#FDConf
@slobodan_
WELL, WE CALL THAT THING
SERVERLESS!
#FDConf
@slobodan_
#FDConf
@slobodan_
2. IS SERVERLESS ONLY ABOUT
THE FUNCTIONS?
#FDConf
@slobodan_
NO
#FDConf
@slobodan_
НЕТ
#FDConf
@slobodan_
SERVERLESS IS A TECHNOLOGY
THAT COST YOU NOTHING
IF NO-ONE IS USING IT
#FDConf
@slobodan_
FUNCTIONS ARE JUST
A SUBSET OF SERVERLESS
#FDConf
@slobodan_
#FDConf
@slobodan_
THIS TALK WILL FOCUS ON
SERVERLESS FUNCTIONS
#FDConf
@slobodan_
3. HOW DOES IT WORK?
#FDConf
@slobodan_
EVENT-DRIVEN
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
STATELESS
#FDConf
@slobodan_
SERVERLESS IS LIKE A GOLDEN FISH
#FDConf
@slobodan_
BUT WHAT ABOUT
REAL SYSTEMS?
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
SERVERLESS APP
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
IT’S LIKE A BLACK BOX
BUT HOW DOES THAT BLACK BOX WORK?
#FDConf
@slobodan_
exports.handler =
(event, context, cb) => {
cb(null, {
“Hello”: ”World”
})
}
#FDConf
@slobodan_
JSON event
{
“body”:”…”,
“headers”: “”,
…
}
exports.handler =
(event, context, cb) => {
cb(null, {
“Hello”: ”World”
})
}
#FDConf
@slobodan_
JSON
{
“body”: {
“Hello”:”World”
},
“status”: 200,
…
}
exports.handler =
(event, context, cb) => {
cb(null, {
“Hello”: ”World”
})
}
#FDConf
@slobodan_
#FDConf
@slobodan_
4. WHAT ARE THE MOST IMPORTANT
SERVERLESS PLATFORMS TODAY?
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
AWS LAMBDA
#FDConf
@slobodan_
• $0.20 PER 1 MILLION REQUESTS
• FIRST MILLION REQUESTS / MONTH ARE FREE
• $0.00001667 FOR EVERT GB-SECOND
• FIRST 400.000 GB-SECONDS / MONTH ARE FREE
#FDConf
@slobodan_
• TIMEOUT UP TO 300 SECONDS
• 128MB TO 1.5GB OF MEMORY
• 500MB OF NON-PERSISTENT STORAGE (/TMP)
• DEFAULT CONCURRENT EXECUTION LIMIT: 1000
#FDConf
@slobodan_
WHAT PROGRAMMING LANGUAGE
YOU NEED TO USE FOR SERVERLESS?
#FDConf
@slobodan_
• NODE.JS
• PYTHON
• JAVA
• C#
• SHELL SCRIPTS
• ANY EXECUTABLE
AWS LAMBDA
#FDConf
@slobodan_
• NODE.JS
• C#
• F#
• PYHON
• PHP
• SHELL SCRIPTS
• ANY EXECUTABLE
AZURE FUNCTIONS
#FDConf
@slobodan_
GOOGLE CODE FUNCTIONS
JUST NODE.JS AT THE MOMENT
#FDConf
@slobodan_
5. HOW DOES IT WORK
WITH NODE.JS?
#FDConf
@slobodan_
#FDConf
@slobodan_
• GOOD STARTUP PERFORMANCE
• SMALL MODULES
• PERFORMANCE WITH LOW CPU AND MEMORY
• SINGLE THREAD
• EASY TO LEARN
PROS
#FDConf
@slobodan_
• ASYNC
• MADE FOR SCALABILITY
• NODE_MODULES SIZE
• EASY TO FUCKUP
CONS
#FDConf
@slobodan_
‘use strict’
console.log(‘Loading event’)
exports.handler = (event, context, callback) => {
console.log(‘“Hello”: ”World”’)
callback(null, {“Hello”: ”World”})
}
hello-world.js
#FDConf
@slobodan_
‘use strict’
console.log(‘Loading event’)
exports.handler = (event, context, callback) => {
console.log(‘“Hello”: ”World”’)
callback(null, {“Hello”: ”World”})
}
hello-world.js
#FDConf
@slobodan_
• CREATE LAMBDA FUNCTION
• UPLOAD ZIP FILE
• CREATE API GATEWAY
• SET TRIGGER
• SET PERMISSIONS
• ~11 MINS READ: http://amzn.to/2kciIEt
HOW TO DEPLOY IT TO AWS
#FDConf
@slobodan_
IT’S LIKE FLYING FROM
MINSK TO HAWAII
WITH LOW-COST
DESTINATION IS AWESOME, BUT IT TAKES SOME TIME
AND IT’S NOT THAT PLEASANT
#FDConf
@slobodan_
• SERVERLESS FRAMEWORK
• CLAUDIA.JS
• AMAZON SAM
• APEX
FRAMEWORKS / LIBRARIES
#FDConf
@slobodan_
CLAUDIAJS.COM
> 110.000 DOWNLOADS
#FDConf
@slobodan_
CLAUDIA VS NATIVE UPLOAD
===
PRIVATE JET VS LOW-COST
WITH A FEW LAYOVERS
#FDConf
@slobodan_
#FDConf
@slobodan_
• DEPLOY AND UPDATE WITH SINGLE COMMAND
• USE STANDARD NPM MODULES
• NO BOILERPLATE, JUST FOCUS ON YOUR WORK
• MANAGE MULTIPLE VERSIONS EASILY
• GET STARTED QUICKLY, FLAT LEARNING CURVE
MAIN CHARACTERISTICS
#FDConf
@slobodan_
FLAT LEARNING CURVE
HOW FAST CAN WE START?
#FDConf
@slobodan_
#FDConf
@slobodan_
• npm i claudia -g
• SET UP AWS CREDENTIALS (ONE TIME)
• mkdir claudia-api && cd $_
• npm init -f
• npm i claudia-api-builder -S
prepare
#FDConf
@slobodan_
‘use strict’
const Api = require(‘claudia-api-builder‘)
const api = new Api()
const frameworks = require(‘./frameworks.json’)
api.get(‘/‘, () => frameworks)
module.exports = api
api.js
#FDConf
@slobodan_
claudia create 
--region eu-central-1 
--api-module api
DEPLOY
#FDConf
@slobodan_
{
"lambda": {
"role": “js-frameworks-executor",
"name": "js-frameworks",
"region": "eu-central-1"
},
"api": {
"id": "h2gcdkdys7",
"module": "api",
"url": "https://h2gcdkdys7.execute-api.eu-
central-1.amazonaws.com/latest"
}
} RESULT
#FDConf
@slobodan_
bit.ly/js-frameworks-api
#FDConf
@slobodan_
bit.ly/js-frameworks-api
#FDConf
@slobodan_
‘use strict’
const Api = require(‘claudia-api-builder‘)
const api = new Api()
const frameworks = require(‘./fun-facts.json’)
api.get(‘/‘, () => frameworks)
api.get(‘/{id}’, req => frameworks.filter(framework =>
framework.id === req.pathParams.id
))
api.get(‘/random‘, () => frameworks[
Math.floor(Math.random() * frameworks.length)
])
module.exports = api
api.js
#FDConf
@slobodan_
api.js
‘use strict’
const Api = require(‘claudia-api-builder‘)
const api = new Api()
const frameworks = require(‘./fun-facts.json’)
api.get(‘/‘, () => frameworks)
api.get(‘/{id}’, req => frameworks.filter(framework =>
framework.id === req.pathParams.id
))
api.get(‘/random‘, () => frameworks[
Math.floor(Math.random() * frameworks.length)
])
module.exports = api
#FDConf
@slobodan_
claudia update
UPDATE
#FDConf
@slobodan_
/random
bit.ly/js-frameworks-api
#FDConf
@slobodan_
/8
bit.ly/js-frameworks-api
#FDConf
@slobodan_
#FDConf
@slobodan_
6. HOW TO DEBUG
SERVERLESS FUNCTION
#FDConf
@slobodan_
WHERE CAN YOU SEE

CONSOLE.LOG?
#FDConf
@slobodan_
CLOUD WATCH
#FDConf
@slobodan_
MONITORING SERVICE FOR
AWS CLOUD RESOURCES AND
THE APPS YOU RUN ON AWS
#FDConf
@slobodan_
YOU CAN USE IT VIA
WEB CONSOLE, AWS CLI, ETC.
#FDConf
@slobodan_
api.get(‘/{id}’, req => {
const filtered = frameworks.filter(framework =>
framework.id === req.pathParams.id
)
console.log(‘Here >>’, filtered)
return filtered
})
api.js
#FDConf
@slobodan_
aws logs filter-log-events 
--filter='Log this' 
—log-group-name=/aws/lambda/js-frameworks 
--query='events[0].message' 
--output=text
LIST LOG COMMAND
#FDConf
@slobodan_
2017-09-16T07:25:12.652Z
2d4ea5c2-9ab0-11e7-96c6-7d019d1c743c
Log this []
OUTPUT
#FDConf
@slobodan_
DEBUGGING IS NOT FUN.
HOW CAN WE DO LESS DEBUGGING?
#FDConf
@slobodan_
BY WRITING TESTS
#FDConf
@slobodan_
BUT HOW DO YOU TEST
SERVERLESS FUNCTIONS?
#FDConf
@slobodan_
AS ANY OTHER NODE.JS LIBRARY !
#FDConf
@slobodan_
EXAMPLE?
CLAUDIA-BOT-BUILDER SPECS
#FDConf
@slobodan_
AWS X RAY
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
FUNNIEST WAY TO TRY SERVERLESS?
"
#FDConf
@slobodan_
SERVERLESS.CAMP
#FDConf
@slobodan_
EASIEST WAY TO LEARN SERVERLESS?
GO AND PLAY WITH IT!
#FDConf
@slobodan_
FOLLOW ME ON TWITTER
FOR MORE INFO - @SLOBODAN_
#FDConf
@slobodan_
• CREATE AN API
• CONNECT WITH DYNAMODB
• ADD AUTHORIZATION
• CONVERT IMAGES
• BUILD A CHATBOT
• LEARN HOW TO TEST AND DEBUG
• LEARN GOOD ARCHITECTURE PRACTICES
• MIGRATE EXPRESS APP TO SERVERLESS
#FDConf
@slobodan_
#FDConf
@slobodan_
7. WHY IS IT IMPORTANT?
#FDConf
@slobodan_
MINIMAL MAINTENANCE
#FDConf
@slobodan_
FINANCIAL INCENTIVE
https://gojko.net/2016/08/27/serverless.html
#FDConf
@slobodan_
TRUE MICROSERVICES
#FDConf
@slobodan_
AUTO SCALING AND FAILOVER
#FDConf
@slobodan_
FOCUS ON BUSINESS LOGIC,
NOT CONFIGURATION
#FDConf
@slobodan_
#FDConf
@slobodan_
8. WHEN SHOULD I USE SERVERLESS?
#FDConf
@slobodan_
LET’S START WITH
WHEN YOU SHOULD NOT USE
SERVERLESS?
#FDConf
@slobodan_
• REAL-TIME APPS WITH WEB SOCKETS
• LOW-LATENCY APPS
• WHEN YOU NEED CUSTOM SERVER CONFIG
• WHEN YOU NEED COMPLIANCE
• LONG RUNNING TASKS
• COMPEX COMPUTING
• WHEN YOU NEED TO PROVIDE SLA
#FDConf
@slobodan_
OK, BUT WHAT IS IT GOOD FOR?
#FDConf
@slobodan_
• WEB APIs
• BACKEND FOR THE SINGLE PAGE APP
• CHATBOTS
• QUICK PROTOTYPES THAT CAN EVOLVE TO 

A REAL SOLUTIONS
• PROCESSING FILES OR ANY KIND OF DATA
• IoT
• MICROSERVICES
• MANY, MANY OTHER THINGS
#FDConf
@slobodan_
8 1/2. WAIT, WHAT ABOUT
THE NAME?
#FDConf
@slobodan_
#FDConf
@slobodan_
LESS
IS
MORE
#FDConf
@slobodan_
LESS
IS
MORE
SERVER
#FDConf
@slobodan_
LESS
IS
MORE
SERVER
SERVERS
#FDConf
@slobodan_
“SERVERLESS” IS JUST A NAME.
WE COULD HAVE CALLED IT “JEFF”
PAUL JOHNSTON
#FDConf
@slobodan_
“IT IS SERVERLESS THE SAME WAY
WIFI IS WIRELESS”
GOJKO ADŽIĆ
#FDConf
@slobodan_
BONUS: IS THERE SERVERLESS FOR
FRONT-END?
#FDConf
@slobodan_
ДА!
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
#FDConf
@slobodan_
npm i scottyjs -g
#FDConf
@slobodan_
• SERVERLESS IS A TECHNOLOGY THAT COST YOU NOTHING
IF NO-ONE IS USING IT
• IT’S MORE THAN FUNCTIONS
• FULLY MANAGED
• FUNCTIONS ARE EVENT-DRIVEN - MANY TRIGGERS
• AUTO SCALING AND AUTO FAILOVER
• IT WORKS NICE WITH NODE.JS
• IT’S TRICKY TO DEBUG, SO WRITE TESTS
SUMMARY
#FDConf
@slobodan_
ALSO, SERVERS STILL EXIST
BUT THEY ARE NOT YOUR PROBLEM
#FDConf
@slobodan_
#FDConf
@slobodan_
FOLLOW ME ON TWITTER
FOR MORE INFO - @SLOBODAN_
#FDConf
@slobodan_
THAT'S IT.

THANKS!
#FDConf
@slobodan_
КОНЕЦ
#FDConf
@slobodan_
QUESTIONS?
@slobodan_
bit.ly/fdconf-serverless
#FDConf

More Related Content

What's hot

Building Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScriptBuilding Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScript
funkatron
 

What's hot (17)

441 oneview preso#1
441 oneview preso#1441 oneview preso#1
441 oneview preso#1
 
Managing the flow of asynchronous operations in Node.js - SFNode
Managing the flow of asynchronous operations in Node.js - SFNodeManaging the flow of asynchronous operations in Node.js - SFNode
Managing the flow of asynchronous operations in Node.js - SFNode
 
Current state of Adobe PhoneGap & Cordova (yes, iOS 8 too)
Current state of Adobe PhoneGap & Cordova (yes, iOS 8 too)Current state of Adobe PhoneGap & Cordova (yes, iOS 8 too)
Current state of Adobe PhoneGap & Cordova (yes, iOS 8 too)
 
From HTML5 to Hardware - Simonyi Conference Budapest April 15
From HTML5 to Hardware - Simonyi Conference Budapest April 15From HTML5 to Hardware - Simonyi Conference Budapest April 15
From HTML5 to Hardware - Simonyi Conference Budapest April 15
 
Building Your Own Development Tools With the Force.com Tooling API
Building Your Own Development Tools With the Force.com Tooling APIBuilding Your Own Development Tools With the Force.com Tooling API
Building Your Own Development Tools With the Force.com Tooling API
 
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
 
BIS07 Application Development - I
BIS07 Application Development - IBIS07 Application Development - I
BIS07 Application Development - I
 
A CQRS Journey
A CQRS JourneyA CQRS Journey
A CQRS Journey
 
The Ring programming language version 1.2 book - Part 4 of 84
The Ring programming language version 1.2 book - Part 4 of 84The Ring programming language version 1.2 book - Part 4 of 84
The Ring programming language version 1.2 book - Part 4 of 84
 
The Power of Refactoring
The Power of RefactoringThe Power of Refactoring
The Power of Refactoring
 
DEF CON 27 - JOSHUA MADDUX - api induced ssrf
DEF CON 27 - JOSHUA MADDUX - api induced ssrfDEF CON 27 - JOSHUA MADDUX - api induced ssrf
DEF CON 27 - JOSHUA MADDUX - api induced ssrf
 
Crossing Office Applications
Crossing Office ApplicationsCrossing Office Applications
Crossing Office Applications
 
Extract Method Refactoring Workshop (2016)
Extract Method Refactoring Workshop (2016)Extract Method Refactoring Workshop (2016)
Extract Method Refactoring Workshop (2016)
 
Building Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScriptBuilding Desktop RIAs With PHP And JavaScript
Building Desktop RIAs With PHP And JavaScript
 
Graalvm with Groovy and Kotlin - Greach 2019
Graalvm with Groovy and Kotlin - Greach 2019Graalvm with Groovy and Kotlin - Greach 2019
Graalvm with Groovy and Kotlin - Greach 2019
 
Api NodeJS con PureScript
Api NodeJS con PureScriptApi NodeJS con PureScript
Api NodeJS con PureScript
 
Testing with cucumber testing framework
Testing with cucumber testing frameworkTesting with cucumber testing framework
Testing with cucumber testing framework
 

Similar to Slobodan Stojanovic - 8 1/2 things about serverless

Rowdy Rabouw - Unleash your web skills on native
Rowdy Rabouw - Unleash your web skills on nativeRowdy Rabouw - Unleash your web skills on native
Rowdy Rabouw - Unleash your web skills on native
OdessaJS Conf
 
Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015
Christian Heilmann
 
Web, Native iOS and Native Android with One Ember.js App
Web, Native iOS and Native Android with One Ember.js AppWeb, Native iOS and Native Android with One Ember.js App
Web, Native iOS and Native Android with One Ember.js App
FITC
 
Alfresco Android - Summit 2013 Talk
Alfresco Android - Summit 2013 TalkAlfresco Android - Summit 2013 Talk
Alfresco Android - Summit 2013 Talk
PASCAL Jean Marie
 
Building a Bridge to a Legacy Application: How Hard Can That Be?
Building a Bridge to a Legacy Application: How Hard Can That Be?Building a Bridge to a Legacy Application: How Hard Can That Be?
Building a Bridge to a Legacy Application: How Hard Can That Be?
M. Scott Ford
 
E ubiera i pad real estate and you
E ubiera i pad real estate and youE ubiera i pad real estate and you
E ubiera i pad real estate and you
Eric Ubiera
 
KazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo ScalabilityKazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo Scalability
2600Hz
 

Similar to Slobodan Stojanovic - 8 1/2 things about serverless (20)

Building Reliable Applications Using React, .NET & Azure
Building Reliable Applications Using React, .NET & AzureBuilding Reliable Applications Using React, .NET & Azure
Building Reliable Applications Using React, .NET & Azure
 
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for goodDevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
DevOps & the Dark Side 10 ways to convince your team DevOps is a force for good
 
RapidDev - Develop Titanium apps at the speed of the web!
RapidDev - Develop Titanium apps  at the speed of the web!RapidDev - Develop Titanium apps  at the speed of the web!
RapidDev - Develop Titanium apps at the speed of the web!
 
Rowdy Rabouw - Unleash your web skills on native
Rowdy Rabouw - Unleash your web skills on nativeRowdy Rabouw - Unleash your web skills on native
Rowdy Rabouw - Unleash your web skills on native
 
Web Unleashed Toronto 2015: Hybrid Mobile Apps with Ember.js
Web Unleashed Toronto 2015: Hybrid Mobile Apps with Ember.jsWeb Unleashed Toronto 2015: Hybrid Mobile Apps with Ember.js
Web Unleashed Toronto 2015: Hybrid Mobile Apps with Ember.js
 
Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015
 
Web, Native iOS and Native Android with One Ember.js App
Web, Native iOS and Native Android with One Ember.js AppWeb, Native iOS and Native Android with One Ember.js App
Web, Native iOS and Native Android with One Ember.js App
 
GeeCON 2015 DevOps and the dark side
GeeCON 2015 DevOps and the dark side GeeCON 2015 DevOps and the dark side
GeeCON 2015 DevOps and the dark side
 
Alfresco Android - Summit 2013 Talk
Alfresco Android - Summit 2013 TalkAlfresco Android - Summit 2013 Talk
Alfresco Android - Summit 2013 Talk
 
Do you really want to go fully micro?
Do you really want to go fully micro?Do you really want to go fully micro?
Do you really want to go fully micro?
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasia
 
TDD That Was Easy!
TDD   That Was Easy!TDD   That Was Easy!
TDD That Was Easy!
 
Building a Bridge to a Legacy Application: How Hard Can That Be?
Building a Bridge to a Legacy Application: How Hard Can That Be?Building a Bridge to a Legacy Application: How Hard Can That Be?
Building a Bridge to a Legacy Application: How Hard Can That Be?
 
Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)
 
E ubiera i pad real estate and you
E ubiera i pad real estate and youE ubiera i pad real estate and you
E ubiera i pad real estate and you
 
Belgium jenkins-meetup-job-jungle-0.1
Belgium jenkins-meetup-job-jungle-0.1Belgium jenkins-meetup-job-jungle-0.1
Belgium jenkins-meetup-job-jungle-0.1
 
How to build websites FAST!!!
How to build websites FAST!!!How to build websites FAST!!!
How to build websites FAST!!!
 
KazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo ScalabilityKazooCon 2014 - Kazoo Scalability
KazooCon 2014 - Kazoo Scalability
 
Better and Faster: A Journey Toward Clean Code and Enjoyment
Better and Faster: A Journey Toward Clean Code and EnjoymentBetter and Faster: A Journey Toward Clean Code and Enjoyment
Better and Faster: A Journey Toward Clean Code and Enjoyment
 
A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...
 

More from FDConf

Антон Киршанов - «Квант изменения. Реактивные реакции на React.
Антон Киршанов - «Квант изменения. Реактивные реакции на React.Антон Киршанов - «Квант изменения. Реактивные реакции на React.
Антон Киршанов - «Квант изменения. Реактивные реакции на React.
FDConf
 
В погоне за производительностью
В погоне за производительностьюВ погоне за производительностью
В погоне за производительностью
FDConf
 
Redux. From twitter hype to production
Redux. From twitter hype to productionRedux. From twitter hype to production
Redux. From twitter hype to production
FDConf
 

More from FDConf (20)

Антон Киршанов - «Квант изменения. Реактивные реакции на React.
Антон Киршанов - «Квант изменения. Реактивные реакции на React.Антон Киршанов - «Квант изменения. Реактивные реакции на React.
Антон Киршанов - «Квант изменения. Реактивные реакции на React.
 
Игорь Еростенко - Создаем виртуальный тур
Игорь Еростенко - Создаем виртуальный турИгорь Еростенко - Создаем виртуальный тур
Игорь Еростенко - Создаем виртуальный тур
 
Илья Климов - Reason: маргиналы против хайпа
Илья Климов - Reason: маргиналы против хайпаИлья Климов - Reason: маргиналы против хайпа
Илья Климов - Reason: маргиналы против хайпа
 
Максим Щепелин - Доставляя веб-контент в игру
Максим Щепелин - Доставляя веб-контент в игруМаксим Щепелин - Доставляя веб-контент в игру
Максим Щепелин - Доставляя веб-контент в игру
 
Александр Черноокий - Как правило "победитель получает все" работает и не раб...
Александр Черноокий - Как правило "победитель получает все" работает и не раб...Александр Черноокий - Как правило "победитель получает все" работает и не раб...
Александр Черноокий - Как правило "победитель получает все" работает и не раб...
 
Михаил Волчек - Что такое Цифровая мастерская?
Михаил Волчек - Что такое Цифровая мастерская?Михаил Волчек - Что такое Цифровая мастерская?
Михаил Волчек - Что такое Цифровая мастерская?
 
Radoslav Stankov - Handling GraphQL with React and Apollo
Radoslav Stankov - Handling GraphQL with React and ApolloRadoslav Stankov - Handling GraphQL with React and Apollo
Radoslav Stankov - Handling GraphQL with React and Apollo
 
Виктор Русакович - Выборы, выборы, все фреймворки… приторны
Виктор Русакович - Выборы, выборы, все фреймворки… приторныВиктор Русакович - Выборы, выборы, все фреймворки… приторны
Виктор Русакович - Выборы, выборы, все фреймворки… приторны
 
Тимофей Лавренюк - Почему мне зашел PWA?
Тимофей Лавренюк - Почему мне зашел PWA?Тимофей Лавренюк - Почему мне зашел PWA?
Тимофей Лавренюк - Почему мне зашел PWA?
 
В погоне за производительностью
В погоне за производительностьюВ погоне за производительностью
В погоне за производительностью
 
Если у вас нету тестов...
Если у вас нету тестов...Если у вас нету тестов...
Если у вас нету тестов...
 
Migrate your React.js application from (m)Observable to Redux
Migrate your React.js application from (m)Observable to ReduxMigrate your React.js application from (m)Observable to Redux
Migrate your React.js application from (m)Observable to Redux
 
Dart: питание и сила для вашего проекта
Dart: питание и сила для вашего проектаDart: питание и сила для вашего проекта
Dart: питание и сила для вашего проекта
 
Scalable Angular 2 Application Architecture
Scalable Angular 2 Application ArchitectureScalable Angular 2 Application Architecture
Scalable Angular 2 Application Architecture
 
JavaScript: прошлое, настоящее и будущее.
JavaScript: прошлое, настоящее и будущее.JavaScript: прошлое, настоящее и будущее.
JavaScript: прошлое, настоящее и будущее.
 
CSSO — сжимаем CSS
CSSO — сжимаем CSSCSSO — сжимаем CSS
CSSO — сжимаем CSS
 
Redux. From twitter hype to production
Redux. From twitter hype to productionRedux. From twitter hype to production
Redux. From twitter hype to production
 
Будь первым
Будь первымБудь первым
Будь первым
 
"Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native ""Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native "
 
"Пиринговый веб на JavaScript"
"Пиринговый веб на JavaScript""Пиринговый веб на JavaScript"
"Пиринговый веб на JavaScript"
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Slobodan Stojanovic - 8 1/2 things about serverless