Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

@slobodan_

Slide 6

Slide 6 text

@slobodan_

Slide 7

Slide 7 text

@slobodan_ I am a CSS expert!

Slide 8

Slide 8 text

@slobodan_ I am a CSS ex pert!

Slide 9

Slide 9 text

@slobodan_ I am a CSS expe

Slide 10

Slide 10 text

@slobodan_ I am a CSS expert !important

Slide 11

Slide 11 text

@slobodan_

Slide 12

Slide 12 text

@slobodan_

Slide 13

Slide 13 text

@slobodan_

Slide 14

Slide 14 text

@slobodan_

Slide 15

Slide 15 text

@slobodan_

Slide 16

Slide 16 text

@slobodan_

Slide 17

Slide 17 text

@slobodan_

Slide 18

Slide 18 text

@slobodan_

Slide 19

Slide 19 text

@slobodan_ How simple static website hosting should work?

Slide 20

Slide 20 text

@slobodan_ You should focus on your app only! And deployment should be simple.

Slide 21

Slide 21 text

@slobodan_ • Fast one command deployment • Cheap • Free if (almost) no one is using it • Caching + Auto-scaling

Slide 22

Slide 22 text

@slobodan_ That feature list sounds familiar!

Slide 23

Slide 23 text

@slobodan_

Slide 24

Slide 24 text

@slobodan_ Серверлесс

Slide 25

Slide 25 text

@slobodan_ Serverless

Slide 26

Slide 26 text

@slobodan_ Serverless a backend thing that gives superpowers to frontend developers

Slide 27

Slide 27 text

@slobodan_ Before we continue…

Slide 28

Slide 28 text

Slobodan Stojanović CTO @ Cloud Horizon & CTO @ Vacation Tracker co-author of Serverless Applications with Node.js book AWS Serverless Hero @slobodan_

Slide 29

Slide 29 text

@slobodan_ So, serverless…

Slide 30

Slide 30 text

@slobodan_ So, serverless… Less servers?

Slide 31

Slide 31 text

@slobodan_ So, serverless… Less servers? No servers?

Slide 32

Slide 32 text

@slobodan_ So, serverless… Less servers? No servers? Or even more servers?

Slide 33

Slide 33 text

@slobodan_ So, serverless… No one cares about servers anymore! (except providers, hopefully)

Slide 34

Slide 34 text

@slobodan_ To, understand serverless, let's go a step back… What do you need to do to make your app function properly?

Slide 35

Slide 35 text

@slobodan_ • Buy or rent a server • Install Operating System • Setup the server (libs, framework, etc.) • Write your code (business logic, etc.) • Make your app available (deploy it) • Make sure your app works (monitoring) • Manage server and software updates • Manage your app code

Slide 36

Slide 36 text

@slobodan_ What's important for your business? And people that are using your app or website

Slide 37

Slide 37 text

@slobodan_ • Buy or rent a server • Install Operating System • Setup the server (libs, framework, etc.) • Write your code (business logic, etc.) • Deploy your code to the server • Make sure your app works (monitoring) • Manage server and software updates • Manage your app code

Slide 38

Slide 38 text

@slobodan_ • Buy or rent a server • Install Operating System • Setup the server (libs, framework, etc.) • Write your code (business logic, etc.) • Deploy your code to the server • Make sure your app works (monitoring) • Manage server and software updates • Manage your app code Isn't cloud helping?

Slide 39

Slide 39 text

@slobodan_ • Buy or rent a server • Install Operating System • Setup the server (libs, framework, etc.) • Write your code (business logic, etc.) • Deploy your code to the server • Make sure your app works (monitoring) • Manage server and software updates • Manage your app code ✔ ✔ Isn't cloud helping?

Slide 40

Slide 40 text

@slobodan_ • Buy or rent a server • Install Operating System • Setup the server (libs, framework, etc.) • Write your code (business logic, etc.) • Deploy your code to the server • Make sure your app works (monitoring) • Manage server and software updates • Manage your app code

Slide 41

Slide 41 text

@slobodan_ • Buy or rent a server • Install Operating System • Setup the server (libs, framework, etc.) • Write your code (business logic, etc.) • Deploy your code to the server • Make sure your app works (monitoring) • Manage server and software updates • Manage your app code Serverless is a next step!

Slide 42

Slide 42 text

@slobodan_ • Buy or rent a server • Install Operating System • Setup the server (libs, framework, etc.) • Write your code (business logic, etc.) • Deploy your code to the server • Make sure your app works (monitoring) • Manage server and software updates • Manage your app code Serverless is a next step! ✔ ✔

Slide 43

Slide 43 text

@slobodan_ • Buy or rent a server • Install Operating System • Setup the server (libs, framework, etc.) • Write your code (business logic, etc.) • Deploy your code to the server • Make sure your app works (monitoring) • Manage server and software updates • Manage your app code Serverless is a next step! ✔ ✔ ✔ ✔

Slide 44

Slide 44 text

@slobodan_ Again, what's important for your business?

Slide 45

Slide 45 text

@slobodan_ • Buy or rent a server • Install Operating System • Setup the server (libs, framework, etc.) • Write your code (business logic, etc.) • Deploy your code to the server • Make sure your app works (monitoring) • Manage server and software updates • Manage your app code

Slide 46

Slide 46 text

@slobodan_ And, what do you need to take care about with serverless?

Slide 47

Slide 47 text

@slobodan_ • Buy or rent a server • Install Operating System • Setup the server (libs, framework, etc.) • Write your code (business logic, etc.) • Deploy your code to the server • Make sure your app works (monitoring) • Manage server and software updates • Manage your app code

Slide 48

Slide 48 text

@slobodan_

Slide 49

Slide 49 text

@slobodan_ "Serverless is an abstraction level over a company’s IT infrastructure, enabling product and engineering to focus significantly more on delivering software business value." Aleksandar Simovic
 AWS Serverless Hero

Slide 50

Slide 50 text

@slobodan_ But, you need servers to serve the app!

Slide 51

Slide 51 text

@slobodan_ "It is serverless the same way WIFI is wireless" Gojko Adzic
 AWS Serverless Hero

Slide 52

Slide 52 text

@slobodan_ What are the benefits of serverless?

Slide 53

Slide 53 text

@slobodan_ • Managed infrastructure, so you can focus on the code • Cheap • Auto-scaling and auto-failover • Per function isolation • Easy to start with (beginner friendly)

Slide 54

Slide 54 text

@slobodan_ But the most important one is…

Slide 55

Slide 55 text

@slobodan_ Pricing model of serverless

Slide 56

Slide 56 text

@slobodan_ • You are paying for used, not reserved capacity • Pay-per-execution model • If no one is using your app, it costs you $0 + there are generous free tiers

Slide 57

Slide 57 text

@slobodan_

Slide 58

Slide 58 text

@slobodan_ But pricing model doesn't give superpowers at least not to frontend developers

Slide 59

Slide 59 text

@slobodan_ But pricing model doesn't give superpowers at least not to frontend developers

Slide 60

Slide 60 text

@slobodan_ What does?

Slide 61

Slide 61 text

@slobodan_ mythical full stack developer

Slide 62

Slide 62 text

@slobodan_ But how does serverless help in practice? Is anyone using that at all?

Slide 63

Slide 63 text

@slobodan_ Story time!

Slide 64

Slide 64 text

@slobodan_ CodePen

Slide 65

Slide 65 text

@slobodan_

Slide 66

Slide 66 text

@slobodan_ How many DevOps team members you n!d to be able to handle 250 million preprocessor API requests per month? in your team (or to pay directly)

Slide 67

Slide 67 text

@slobodan_ 0

Slide 68

Slide 68 text

@slobodan_ • Team of mostly frontend devs + one DevOps • Ruby on Rails backend • Many preprocessors that needs full isolation • > 200k requests/hour in peak • Unexpected peaks (you never know when some pen will become popular)

Slide 69

Slide 69 text

@slobodan_

Slide 70

Slide 70 text

@slobodan_

Slide 71

Slide 71 text

@slobodan_

Slide 72

Slide 72 text

@slobodan_

Slide 73

Slide 73 text

@slobodan_ • Lack of resources • DevOps engineer recommended serverless • Frontend dev wrote a SASS converter • Everything worked, so frontend team migrates other preprocessors

Slide 74

Slide 74 text

@slobodan_

Slide 75

Slide 75 text

@slobodan_ Results?

Slide 76

Slide 76 text

@slobodan_ • Full isolation between services • Auto-scaling (up to 5000 parallel requests) • Decreased infrastructure cost (250 million requests costs $1180/month) • More DevOps time for RoR part of the app • Frontend developers with superpowers

Slide 77

Slide 77 text

@slobodan_

Slide 78

Slide 78 text

@slobodan_ Vacation Tracker

Slide 79

Slide 79 text

@slobodan_ VacationTracker.io

Slide 80

Slide 80 text

@slobodan_ • In-company hackathon idea • Small startup with one full time developer (+ small help) • One mostly frontend developer • Slack chatbot + API + Angular dashboard

Slide 81

Slide 81 text

@slobodan_ To minimize initial cost and to speed up development, we used serverless from the beginning

Slide 82

Slide 82 text

@slobodan_ Current state of the system

Slide 83

Slide 83 text

@slobodan_

Slide 84

Slide 84 text

@slobodan_ Ok, it's more like this:

Slide 85

Slide 85 text

@slobodan_

Slide 86

Slide 86 text

@slobodan_

Slide 87

Slide 87 text

@slobodan_ Results?

Slide 88

Slide 88 text

@slobodan_ • More than 250 paying teams using the product • More than 6 million Lambda executions per month • Current infrastructure cost is less than $30 per month • Fast development cycles • Easy refactoring, because of microservices • Reusable parts/services for our next products

Slide 89

Slide 89 text

@slobodan_ Btw, do you know the cost of your bugs?

Slide 90

Slide 90 text

@slobodan_ We know the exact cost of some of our bugs!

Slide 91

Slide 91 text

@slobodan_ $2.37

Slide 92

Slide 92 text

@slobodan_ $2.37 Fr! tier got us covered :)

Slide 93

Slide 93 text

@slobodan_

Slide 94

Slide 94 text

@slobodan_ Where to start?

Slide 95

Slide 95 text

@slobodan_

Slide 96

Slide 96 text

@slobodan_ A Single Page App or a static website

Slide 97

Slide 97 text

@slobodan_ A Single Page App or a static website

Slide 98

Slide 98 text

@slobodan_ https://console.aws.amazon.com/amplify

Slide 99

Slide 99 text

@slobodan_ An Express.js application or API

Slide 100

Slide 100 text

@slobodan_ An Express.js application or API

Slide 101

Slide 101 text

@slobodan_ What's the benefit? Beside being easy to deploy it

Slide 102

Slide 102 text

@slobodan_

Slide 103

Slide 103 text

@slobodan_ bit.ly/serverless-expressjs

Slide 104

Slide 104 text

@slobodan_ Not the best solution, because…

Slide 105

Slide 105 text

@slobodan_ A better API

Slide 106

Slide 106 text

@slobodan_ A better API

Slide 107

Slide 107 text

@slobodan_ Claudia.js + Claudia API Builder claudiajs.com

Slide 108

Slide 108 text

@slobodan_ Looks the same, but it's not!

Slide 109

Slide 109 text

@slobodan_ Faster means cheaper! You pay per execution time, mi"iseconds matter

Slide 110

Slide 110 text

@slobodan_ APIs are boring, GraphQL FTW!

Slide 111

Slide 111 text

@slobodan_ AWS AppSync aws.amazon.com/appsync

Slide 112

Slide 112 text

@slobodan_ • Serverless GraphQL • Preconfigured access to AWS data sources
 (DynamoDB, Lambda or Elastic Search) • Real-time data access and updates • Offline data synchronization • Authorizers • Minimize backend development

Slide 113

Slide 113 text

@slobodan_ "Oh, and I only hire front-end developers at this point. I have been the sole DevOps/backend/ middle-tier developer in the last two companies I started, and it’s been fine." Joe Emison @JoeEmison

Slide 114

Slide 114 text

@slobodan_ "With AppSync I could continue to be the CTO, do all the backend and middle-tier code, and support up to probably about a hundred front-end developers before I would need a dedicated backend developer." Joe Emison @JoeEmison

Slide 115

Slide 115 text

@slobodan_ A file converter

Slide 116

Slide 116 text

@slobodan_ A file converter

Slide 117

Slide 117 text

@slobodan_ Claudia.js or AWS Serverless Application Repository serverlessrepo.aws.amazon.com/applications

Slide 118

Slide 118 text

@slobodan_

Slide 119

Slide 119 text

@slobodan_ ERR_TOO_MANY_TOOLS

Slide 120

Slide 120 text

@slobodan_ One tool to rule them all

Slide 121

Slide 121 text

@slobodan_ AWS Amplify aws-amplify.github.io

Slide 122

Slide 122 text

@slobodan_ • Deployment (with and without CDN and HTTPS) • Auth using Amazon Cognito (+ social signins) • GraphQL backend using AppSync + real-time • Media storage using S3 • Nice client-side libraries for React and others • And much more…

Slide 123

Slide 123 text

@slobodan_

Slide 124

Slide 124 text

@slobodan_ Do we have time (and internet) for a short live demo?

Slide 125

Slide 125 text

@slobodan_

Slide 126

Slide 126 text

@slobodan_ Links to mentioned things

Slide 127

Slide 127 text

@slobodan_ • Claudia.js - https://claudiajs.com • AWS Amplify - aws-amplify.github.io • Vacation Tracker - https://vacationtracker.io

Slide 128

Slide 128 text

@slobodan_ Quick Summary

Slide 129

Slide 129 text

@slobodan_ • Serverless is easy to start with (beginner friendly) • No server maintenance and other boring things • Pay-per-usage model + it's cheap • You can deploy SPAs, APIs or GraphQL in minutes • It gives you superpowers!

Slide 130

Slide 130 text

@slobodan_ One more thing!

Slide 131

Slide 131 text

@slobodan_

Slide 132

Slide 132 text

@slobodan_ Serverless Applications with Node.js Use claudia40 promo code for 40% off serverless.pub/book @slobodan_