36
© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. Jfokus 2014 by Martin Elwin February 5th, 2014 NoSRV Architecture: Dynamic web applications without backend servers

Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.

Jfokus!2014

by Martin ElwinFebruary 5th, 2014

NoSRV Architecture:!! Dynamic web applications without backend servers

Page 2: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

JavaScript is everywhere.

Page 3: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

AWS SDK for JavaScript in Node.js

nodeJS

Page 4: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Traditional Application Architecture

Data ServicesServer Backend

nodeJS

Page 5: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Two-Tier Web Applications

Page 6: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Two-Tier Application Architecture

nodeJS

nodeJS

nodeJS

SDK on the Device

Page 7: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Benefits

Fewer moving parts Easy prototyping Deploying as simple as copying files to Amazon S3 Fully dynamic app for pennies a month

Page 8: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

App Ideas

Forum Software Blog Commenting Service Blogging Platform Firefox/Chrome Extensions WinRT (Metro Style) Apps Any Mobile App!

Page 9: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

AWS SDK for JavaScript in the Browser

Desktop or mobile devices

Page 10: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Developer PreviewLooking for Feedback

Page 11: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Open SourceApache License, Version 2.0

http://github.com/aws/aws-sdk-js

Page 12: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

language

Getting the SDK<script src=”https://sdk.amazonaws.com/js/aws-sdk-2.0.0-rc9.min.js” />

Page 13: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

5 Supported Services

Amazon S3 Amazon DynamoDB Amazon SQS Amazon SNS AWS STS

Page 14: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

All Modern Browsers

28.0+ 23.0+ 10+ 17.0+ 5.1+

Page 15: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Let’s Look at a Web Application

Using nothing but HTML, CSS, and JavaScript

Page 16: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

A Simple BlogContent stored in Amazon DynamoDB

Assets in Amazon S3

Page 17: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Key Differences Three-Tier to Two-Tier

Security Challenges CORS in the browser Credentials on device Fine grained policies

Page 18: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Cross-Origin Resource Sharing

Page 19: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

CORSBrowser sends pre-flight request to external host. Host acknowledges browser. Browser sends XHR request.

Page 20: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Configuring CORS on Amazon S3

Page 21: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Getting Credentials Onto Your Device

Page 22: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Getting Credentials

Onto Your Device

Never hardcode credentials!Use Web Identity Federation

Page 23: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Web Identity FederationUse Facebook, Google, or log in with

Amazon as third-party identity providers

Page 24: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

AWS.config.credentials = new AWS.WebIdentityCredentials({ RoleArn: ‘arn:aws:iam::<ACCOUNT_ID>:role/<ROLE_NAME>’, ProviderId: ‘graph.facebook.com’, WebIdentityToken: fbAccessToken});

JS

AWS.WebIdentityCredentials

Page 25: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

// 1. Load the FB JS SDK// 2. Call FB.login()FB.login(function (response) { if (response.authResponse) { fbAccessToken = response.authResponse.accessToken; AWS.config.credentials = new AWS.WebIdentityCredentials({...});});

JS

Get a Facebook Access Token

Page 26: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Same ConceptFor other identity providers

Page 27: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Fine Grained Policies

Page 28: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

JS

{ "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:DeleteItem" ], "Resource": [ "arn:aws:dynamodb:<reg>:<accnt>:table/<tbl>" ] }

Admin Role Policy

{ "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::<bucket>/<prefix>" ] }

Page 29: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

You Can Use it Too!(It’s not all or nothing)

Page 30: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

2.5 Tier Application Architecture

Data ServicesServer Backend

nodeJS

Page 31: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

http://getnarrative.com/

Page 32: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Our Community

Page 33: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

We ♥ Open Source

Page 34: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

https://github.com/ aws/aws-sdk-js

Page 35: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Contributing to the SDK

Improve Documentation Report Issues Submit Pull Requests Third-Party Plugins

Page 36: Jfokus 20142014 by Martin Elwin February 5th, 2014 NoSRV Architecture:!! Dynamic web applications without backend servers JavaScript is everywhere. AWS SDK for JavaScript in Node.js

Code More!