SlideShare a Scribd company logo
1 of 85
Download to read offline
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Developing Mobile and Web Apps
on AWS
M O B 2 0 2 - L
Amit Patel
GM, AWS Mobile
Tom Bray
Chief Architect
TicketMaster
Michael Paris
Engineer, AWS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Industry Trends
App downloads
forecast:
continued growth
258B
+45% by 2022
Source: AppAnnie
Enterprises expect
to invest in native
and web apps
80%+
Source: AWS
GraphQL
popularity
increasing
4X
Source: 2018.stateofjs.com
JavaScript
popularity
increasing
71.5%
Source: Stack Overflow
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Developer Asks
Tools for building,
testing, deploying,
and hosting the
entire app – frontend
and backend
Secure and scalable
apps
Offline data,
network-optimized
sync, and real-time
updates
Centralized config,
cloud provisioning,
and team workflow
Code generation to
eliminate boilerplate
Frontend support for
multiple platforms
and frameworks
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Delivering on Developer Asks
New product and feature launches in the last 12 months…
AWS Amplify
Launched
AWS Amplify
Open source
JavaScript library
Launched
AWS AppSync
Offline and real-time
data
Added support for
Ionic, Angular, and
Vue to Amplify
Added a CLI toolchain
& UI components to
Amplify
Added no-code,
GraphQL API builder,
HTTP data source,
GraphQL scalar types
to AWS AppSync
iOS & Android SDKs –
Simplified
programming model
for authentication
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
An Integrated Developer Experience
Developer Tools
Amplify Framework, an open source client
framework, includes libraries,
Cloud Services
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amplify Framework: Library, UI Components, & CLI
Libraries focused on
frontend developers
Support for native apps
with iOS and Android
SDKs
Support for JavaScript
incl. React, React Native,
Angular, Ionic, and Vue
Category-based
opinionated
implementations: Auth,
Analytics, API, Storage,
Interactions, XR, PubSub
‘Escape’ hatches for all
AWS services
UI components for React,
React Native, Angular,
and Ionic
Support for drop-in auth,
photo pickers, and
chatbots
CLI toolchain for rapidly
integrating AWS services
to projects
Iterative code & type
generation for GraphQL
APIs throughout the
development cycle
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
$amplify add api
type Post
@model
@auth(
rules: [
{allow: owner, ownerField: "owner",
mutations: [create, update, delete],
queries: [get, list]},
])
{
id: ID!
title: String!
content: String!
rating: Int
owner: String
}
appSyncClient?.fetch(query: ListPostsQuery()) {
(result, error) in
if error != nil {
print(error?.localizedDescription ?? "")
return
}
result?.data?.listTodos?.items!.forEach {
print(($0?.title)! + " " + ($0?.content)!)
}
}
Step 1 - Edit & push schema Step 2 – Write app code
GraphQL backend and client types auto-generated
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
NEW: Multi-Environments and Team Workflow (Beta)
- Git-style interaction & project switching
- Share backends between team members or clone for isolated development
User Users
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Breadth of Cloud Services for Mobile and Web Apps
Auth Analytics
Core
Experiences
API Storage Interactions AR & VR PubSub
API: Data
HTTP Data
Source
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS AppSync: Realtime and offline data with
GraphQL
Real-time
collaboration
Fine-grained access
control
Offline
programming model
with sync
Multiple data
sources
HTTP Data
Source
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Why GraphQL with AppSync?
Data
Aggregation
Bandwidth
Optimization
Rapid
Prototyping
Easily evolve
APIs
Client-defined
Data Selection
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
NEW: AppSync Features
Aurora Serverless
Data Source
(Beta)
Pipeline
Resolvers
Delta Sync
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Productivity with Serverless / IoT
Implement new features rapidly,
scalable without manual operation
No two “aibo” are the same
“aibo” identifies the owner, learns from environment and
creates relationships with people through AI
Be more attractive
Feature enhancement with AppSync,
Kinesis Video Streams and more
- 16:40 on 27th Nov (Tue)
- 11:40 on 29th Nov (Thu)
- 15:10 on 29th Nov (Thu)
AI-enabled companion robot
built using Serverless / IoT.
See more at Expo theater (at the Venetian)
How we made "aibo" smart:
A journey through Serverless and IoT on AWS
©️ 2018 Sony Corporation
“aibo” and
My aibo
Application
aibo
MQTT protocol
are trademarks of Sony Corporation.
Interactive live cooking service
• Live cooking with
professionals/TV stars
Internet TV broadcasting via
AWS Elemental MediaLive
• React interactively
Audience can react and/or comment
interactively with AWS AppSync
• All data centralized into AWS
Better for data analysis and
can utilize many AWS services
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Improving App Quality with AWS Device Farm
Automated
testing
Remote
access
Remote
debugging
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
NEW: AWS Amplify Console
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Tom Bray
Chief Architect
Ticketmaster
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Our GraphQL Journey
Why?
Where did we start?
How will we achieve our GraphQL
vision?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Time to Wow in 5 seconds or less
Name: Sara Connor
Occupation: Rockstar React
Developer
Hobbies: Avid musical theater
fan
Objectives: Buy Aladdin tickets
Get a great job using
Next.js & GraphQL
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Delivering just the data fans need in a single request
100,000
Live events per year
+
1,000,000,000
Fans
=
A massive amount of data
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Pushing seat availability in real-time
500,000,000
Tickets per year
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Our vision: a single, comprehensive schema, end to end
Find Events Shop for Seats Purchase Transfer/Sell Attend
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Time to productivity measured in minutes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The Opportunity Cost of Complexity
Every minute a developer spends wrestling with complexity
is a minute she could have spent creating something
awesome.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Over-fetching, under-fetching, and client-side complexity
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
You might use a BFF to transform your data
BFF REST API
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
And you might use a BFF to aggregate your data
BFF
REST API
REST API
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
We’re replacing our BFFs and REST APIs with AWS AppSync
Perform aggregation and transformation in one place.
Deliver just the data you need in a single request.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Understand the Technology Adoption Curve
Innovators Early
Adopters
Early Majority Late Majority Laggards
We’re marketing a disruptive technology to internal
customers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Crossing the Chasms
Innovators Early
Adopters
Early Majority Late Majority Laggards
What does it take to cross the two GraphQL chasms?
Small
Chasm
Big
Chasm
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Crossing the Chasms
Innovators Early
Adopters
Early Majority Late Majority Laggards
The innovators see the value of GraphQL immediately and start
creating APIs.
Big
Chasm
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Crossing the Chasms
Innovators Early
Adopters
Early Majority Late Majority Laggards
The early adopters are looking for a strategic leap forward.
Big
Chasm
Small
Chasm
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Crossing the Chasms
Innovators Early
Adopters
Early Majority Late Majority Laggards
To cross the first chasm, the Early Adopters need answers to their FAQs.
Big
Chasm
How do we solve the N+1 problem?
What about caching?
How do we support WebSockets at scale?
Small
Chasm
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Crossing the Chasms
Innovators Early
Adopters
Early Majority Late Majority Laggards
The early majority are pragmatists looking for an increase in productivity.
Big
Chasm
Does GraphQL make them more productive?
What are we really asking the Early Majority to do?
Small
Chasm
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Collaboration Models
Team
A
Team
B
Team
C
How will teams collaborate to deliver the comprehensive schema?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Collaboration Models
Monolithic API AWS AppSync + serverlessvs.
The AppSync + serverless model enables collaboration across
disparate teams.
(x)
Team
A
(x)
(x)
Team
B
Team
C
(x)
Team
A
(x)
(x)
Team
B
Team
C
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Adopting Event-Driven Serverless Architectures
Once you adopt the serverless mindset, AWS AppSync becomes the
obvious choice.
Subscription Mutation
Pro Tip: Use AWS AppSync Local Resolvers
and Lambda to push real-time data from any
source
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Michael Paris
Engineer, AWS
What do we need?
Development
User management & Authorization
Real-time APIs
Client SDKs and tooling
Deployment
Multiple environments
Hosting
CI / CD
Analytics
How do we get there?
User management & Authorization
Amazon Cognito User Pools
Real-time APIs
AWS AppSync
Client SDKs and tooling
Amplify Framework
Multiple environments
Amplify CLI
Hosting & CI / CD
AWS Amplify Console
Analytics
Amazon Pinpoint
Amplify CLI makes project setup easy
$ amplify init
$ amplify add auth
$ amplify add analytics
$ amplify add api
$ amplify push
Initialize a project and environment
Add an Amazon Cognito User Pool
Create an Amazon Pinpoint endpoint
Provision an API and data infrastructure
Deploy via AWS CloudFormation
Rapidly build scalable, data-driven applications
Declaratively define your app’s data model using GraphQL SDL and have it
transformed into a fully descriptive AWS CloudFormation stack
Powered by GraphQL directives
@model, @auth, @connection, @versioned, and @searchable
The GraphQL Transform
User Conversation
Message
ConvoLink
Our Data Model
What was just created
1 AWS AppSync API
4 AWS AppSync data sources
20 AWS AppSync resolvers
4 Amazon DynamoDB Table
6 scoped AWS Identity and Access
Management (IAM) roles
1 Amazon Pinpoint project
1 Amazon Cognito User Pool
1 Amazon Cognito Identity Pool
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
What can we do with it?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
List users
query ListUsers($limit: Int!, $nextToken: String!) {
listUsers(limit: $limit, nextToken: $nextToken) {
items {
id
username
}
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Get a user and their conversations
query GetUserConversations($username: String!) {
getUser(id: $username) {
id
username
conversations {
items {
id
conversation {
id
name
}
}
}
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Get a conversation and its messages
query GetConvo($id: ID!) {
getConvo(id: $id) {
id
name
members
messages {
items {
id
content
messageConversationId
createdAt
}
}
}
} © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Subscribe to new messages in conversations
subscription OnCreateMessage($conversationId: ID!) {
onCreateMessage(
messageConversationId: $conversationId
) {
id
content
messageConversationId
createdAt
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Create conversations
mutation CreateConversation($conversation: CreateMessageInput!) {
createConvo(input: $ conversation) {
id
name
members
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Create messages
mutation CreateMessages($message: CreateMessageInput!) {
createMessage(input: $message) {
id
content
messageConversationId
createdAt
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Add users to conversations
mutation CreateConvoLink($link: CreateConvoLinkInput!) {
createConvoLink(input: $link) {
id
convoLinkUserId
user {
username
}
convoLinkConversationId
conversation {
id
name
}
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Time to build our application
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Configure the Amplify library
import Amplify from 'aws-amplify';
import aws_exports from './aws-exports';
Amplify.configure(aws_exports);
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Add the <Authenticator /> component
import React, { Component } from 'react';
import { Authenticator } from 'aws-amplify-react';
class Home extends Component {
render() {
return (
<div className="container home">
...
<Authenticator
onStateChange={this.handleAuthStateChange}
amplifyConfig={awsExports}
errorMessage={authErrorMessageMapper}
/>
...
</div>
);
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Provide data with <Connect />
<Connect
query={gql(queries.GetConvo, { id: this.props.conversation.id })}
subscription={gql(subscriptions.OnCreateMessage, { conversationId: this.props.conversation.id})}
onSubscriptionMsg={(prev, { onCreateMessage }) => {
addToEnd(prev.getConvo.messages.items, onCreateMessage)
return prev;
}}
>
{({ data, loading, error }) => { // Uses render props to provide data to child components
if (error) return (<h3>Error: {error}</h3>);
if (loading) return (<h3>Loading...</h3>);
const messages = getIn(data, “getConvo.messages.items”);
return (
<div>
{
messages.map((message, i) => (
<ChatMessage key={i} message={message} isFromMe={message.authorId === me.username} />
))
}
</div>
)}}
</Connect>
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Call mutations with API
import * as mutations from './graphql/mutations';
import { graphqlOperation, Analytics, API } from 'aws-amplify’;
async function createMessage(message) {
const response = await API.graphql(
graphqlOperation(mutations.CreateMessage, { input: message })
);
return response.data.createMessage;
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Instrument analytics
import React, { Component } from 'react';
import { Analytics } from 'aws-amplify’;
class App extends Component {
componentDidMount() {
Analytics.startSession();
window.addEventListener('beforeunload', () => {
Analytics.stopSession();
})
}
...
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Now let’s make a few branches and push to GitHub
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
And finally, let’s deploy our app to the cloud
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
An Integrated Developer Experience
Thank you!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amit Patel
Tom Bray
Michael Paris
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

More Related Content

What's hot

Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...Amazon Web Services
 
Accelerate ML Training on Amazon SageMaker Using GPU-Based EC2 P3 Instances (...
Accelerate ML Training on Amazon SageMaker Using GPU-Based EC2 P3 Instances (...Accelerate ML Training on Amazon SageMaker Using GPU-Based EC2 P3 Instances (...
Accelerate ML Training on Amazon SageMaker Using GPU-Based EC2 P3 Instances (...Amazon Web Services
 
What's New in AR & VR: State of the World Report (ARV203) - AWS re:Invent 2018
What's New in AR & VR: State of the World Report (ARV203) - AWS re:Invent 2018What's New in AR & VR: State of the World Report (ARV203) - AWS re:Invent 2018
What's New in AR & VR: State of the World Report (ARV203) - AWS re:Invent 2018Amazon Web Services
 
M&E Leadership Session: The State of the Industry, What's New from AWS for M&...
M&E Leadership Session: The State of the Industry, What's New from AWS for M&...M&E Leadership Session: The State of the Industry, What's New from AWS for M&...
M&E Leadership Session: The State of the Industry, What's New from AWS for M&...Amazon Web Services
 
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...Amazon Web Services
 
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...Amazon Web Services
 
Analyze Amazon CloudFront and Lambda@Edge Logs to Improve Customer Experience...
Analyze Amazon CloudFront and Lambda@Edge Logs to Improve Customer Experience...Analyze Amazon CloudFront and Lambda@Edge Logs to Improve Customer Experience...
Analyze Amazon CloudFront and Lambda@Edge Logs to Improve Customer Experience...Amazon Web Services
 
Market Prediction Using ML: Experiment with Amazon SageMaker and the Deutsche...
Market Prediction Using ML: Experiment with Amazon SageMaker and the Deutsche...Market Prediction Using ML: Experiment with Amazon SageMaker and the Deutsche...
Market Prediction Using ML: Experiment with Amazon SageMaker and the Deutsche...Amazon Web Services
 
Globalizing Player Accounts at Riot Games While Maintaining Availability (ARC...
Globalizing Player Accounts at Riot Games While Maintaining Availability (ARC...Globalizing Player Accounts at Riot Games While Maintaining Availability (ARC...
Globalizing Player Accounts at Riot Games While Maintaining Availability (ARC...Amazon Web Services
 
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.Amazon Web Services
 
Deploying Your ONNX Deep Learning with Apache MXNet Model Server (AIM413) - A...
Deploying Your ONNX Deep Learning with Apache MXNet Model Server (AIM413) - A...Deploying Your ONNX Deep Learning with Apache MXNet Model Server (AIM413) - A...
Deploying Your ONNX Deep Learning with Apache MXNet Model Server (AIM413) - A...Amazon Web Services
 
Build a "Who's Who" App for Your Media Content (AIM409) - AWS re:Invent 2018
Build a "Who's Who" App for Your Media Content (AIM409) - AWS re:Invent 2018Build a "Who's Who" App for Your Media Content (AIM409) - AWS re:Invent 2018
Build a "Who's Who" App for Your Media Content (AIM409) - AWS re:Invent 2018Amazon Web Services
 
Deep Dive on Amazon S3 Storage Classes: Creating Cost Efficiencies across You...
Deep Dive on Amazon S3 Storage Classes: Creating Cost Efficiencies across You...Deep Dive on Amazon S3 Storage Classes: Creating Cost Efficiencies across You...
Deep Dive on Amazon S3 Storage Classes: Creating Cost Efficiencies across You...Amazon Web Services
 
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...Amazon Web Services
 
AWS Compute Leadership Session: What’s New in Amazon EC2, Containers, and Ser...
AWS Compute Leadership Session: What’s New in Amazon EC2, Containers, and Ser...AWS Compute Leadership Session: What’s New in Amazon EC2, Containers, and Ser...
AWS Compute Leadership Session: What’s New in Amazon EC2, Containers, and Ser...Amazon Web Services
 
Supercell – Scaling Mobile Games (GAM301) - AWS re:Invent 2018
Supercell – Scaling Mobile Games (GAM301) - AWS re:Invent 2018Supercell – Scaling Mobile Games (GAM301) - AWS re:Invent 2018
Supercell – Scaling Mobile Games (GAM301) - AWS re:Invent 2018Amazon Web Services
 
Provide Faster, Scalable Solutions to Support Research Use Cases with AWS (WP...
Provide Faster, Scalable Solutions to Support Research Use Cases with AWS (WP...Provide Faster, Scalable Solutions to Support Research Use Cases with AWS (WP...
Provide Faster, Scalable Solutions to Support Research Use Cases with AWS (WP...Amazon Web Services
 
Leadership Session: Digital Advertising - Customer Learning & the Road Ahead ...
Leadership Session: Digital Advertising - Customer Learning & the Road Ahead ...Leadership Session: Digital Advertising - Customer Learning & the Road Ahead ...
Leadership Session: Digital Advertising - Customer Learning & the Road Ahead ...Amazon Web Services
 
Three Lessons from “Escape the Room” That Apply to Making Money with Your Ale...
Three Lessons from “Escape the Room” That Apply to Making Money with Your Ale...Three Lessons from “Escape the Room” That Apply to Making Money with Your Ale...
Three Lessons from “Escape the Room” That Apply to Making Money with Your Ale...Amazon Web Services
 

What's hot (20)

Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
 
Accelerate ML Training on Amazon SageMaker Using GPU-Based EC2 P3 Instances (...
Accelerate ML Training on Amazon SageMaker Using GPU-Based EC2 P3 Instances (...Accelerate ML Training on Amazon SageMaker Using GPU-Based EC2 P3 Instances (...
Accelerate ML Training on Amazon SageMaker Using GPU-Based EC2 P3 Instances (...
 
What's New in AR & VR: State of the World Report (ARV203) - AWS re:Invent 2018
What's New in AR & VR: State of the World Report (ARV203) - AWS re:Invent 2018What's New in AR & VR: State of the World Report (ARV203) - AWS re:Invent 2018
What's New in AR & VR: State of the World Report (ARV203) - AWS re:Invent 2018
 
M&E Leadership Session: The State of the Industry, What's New from AWS for M&...
M&E Leadership Session: The State of the Industry, What's New from AWS for M&...M&E Leadership Session: The State of the Industry, What's New from AWS for M&...
M&E Leadership Session: The State of the Industry, What's New from AWS for M&...
 
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...
0x32 Shades of #7f7f7f: The Tension Between Absolutes and Ambiguity in Securi...
 
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
Serverless Architectural Patterns and Best Practices (ARC305-R2) - AWS re:Inv...
 
Migrating database to cloud
Migrating database to cloudMigrating database to cloud
Migrating database to cloud
 
Analyze Amazon CloudFront and Lambda@Edge Logs to Improve Customer Experience...
Analyze Amazon CloudFront and Lambda@Edge Logs to Improve Customer Experience...Analyze Amazon CloudFront and Lambda@Edge Logs to Improve Customer Experience...
Analyze Amazon CloudFront and Lambda@Edge Logs to Improve Customer Experience...
 
Market Prediction Using ML: Experiment with Amazon SageMaker and the Deutsche...
Market Prediction Using ML: Experiment with Amazon SageMaker and the Deutsche...Market Prediction Using ML: Experiment with Amazon SageMaker and the Deutsche...
Market Prediction Using ML: Experiment with Amazon SageMaker and the Deutsche...
 
Globalizing Player Accounts at Riot Games While Maintaining Availability (ARC...
Globalizing Player Accounts at Riot Games While Maintaining Availability (ARC...Globalizing Player Accounts at Riot Games While Maintaining Availability (ARC...
Globalizing Player Accounts at Riot Games While Maintaining Availability (ARC...
 
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.
AWS Startup Day Kyiv - Opening Keynote: Taking Your Startup From Zero to Hero.
 
Deploying Your ONNX Deep Learning with Apache MXNet Model Server (AIM413) - A...
Deploying Your ONNX Deep Learning with Apache MXNet Model Server (AIM413) - A...Deploying Your ONNX Deep Learning with Apache MXNet Model Server (AIM413) - A...
Deploying Your ONNX Deep Learning with Apache MXNet Model Server (AIM413) - A...
 
Build a "Who's Who" App for Your Media Content (AIM409) - AWS re:Invent 2018
Build a "Who's Who" App for Your Media Content (AIM409) - AWS re:Invent 2018Build a "Who's Who" App for Your Media Content (AIM409) - AWS re:Invent 2018
Build a "Who's Who" App for Your Media Content (AIM409) - AWS re:Invent 2018
 
Deep Dive on Amazon S3 Storage Classes: Creating Cost Efficiencies across You...
Deep Dive on Amazon S3 Storage Classes: Creating Cost Efficiencies across You...Deep Dive on Amazon S3 Storage Classes: Creating Cost Efficiencies across You...
Deep Dive on Amazon S3 Storage Classes: Creating Cost Efficiencies across You...
 
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...
 
AWS Compute Leadership Session: What’s New in Amazon EC2, Containers, and Ser...
AWS Compute Leadership Session: What’s New in Amazon EC2, Containers, and Ser...AWS Compute Leadership Session: What’s New in Amazon EC2, Containers, and Ser...
AWS Compute Leadership Session: What’s New in Amazon EC2, Containers, and Ser...
 
Supercell – Scaling Mobile Games (GAM301) - AWS re:Invent 2018
Supercell – Scaling Mobile Games (GAM301) - AWS re:Invent 2018Supercell – Scaling Mobile Games (GAM301) - AWS re:Invent 2018
Supercell – Scaling Mobile Games (GAM301) - AWS re:Invent 2018
 
Provide Faster, Scalable Solutions to Support Research Use Cases with AWS (WP...
Provide Faster, Scalable Solutions to Support Research Use Cases with AWS (WP...Provide Faster, Scalable Solutions to Support Research Use Cases with AWS (WP...
Provide Faster, Scalable Solutions to Support Research Use Cases with AWS (WP...
 
Leadership Session: Digital Advertising - Customer Learning & the Road Ahead ...
Leadership Session: Digital Advertising - Customer Learning & the Road Ahead ...Leadership Session: Digital Advertising - Customer Learning & the Road Ahead ...
Leadership Session: Digital Advertising - Customer Learning & the Road Ahead ...
 
Three Lessons from “Escape the Room” That Apply to Making Money with Your Ale...
Three Lessons from “Escape the Room” That Apply to Making Money with Your Ale...Three Lessons from “Escape the Room” That Apply to Making Money with Your Ale...
Three Lessons from “Escape the Room” That Apply to Making Money with Your Ale...
 

Similar to Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:Invent 2018

Build your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyBuild your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyAmazon Web Services
 
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Amazon Web Services
 
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)Amazon Web Services
 
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSyncTaking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSyncAmazon Web Services
 
Accelerating Mobile App Data Synchronization and Real-Time Data Development w...
Accelerating Mobile App Data Synchronization and Real-Time Data Development w...Accelerating Mobile App Data Synchronization and Real-Time Data Development w...
Accelerating Mobile App Data Synchronization and Real-Time Data Development w...Amazon Web Services
 
Build a Photo-Sharing App with AI-Powered Face and Object Detection (MOB306) ...
Build a Photo-Sharing App with AI-Powered Face and Object Detection (MOB306) ...Build a Photo-Sharing App with AI-Powered Face and Object Detection (MOB306) ...
Build a Photo-Sharing App with AI-Powered Face and Object Detection (MOB306) ...Amazon Web Services
 
Building mobile apps that can automatically scale globally to millions of use...
Building mobile apps that can automatically scale globally to millions of use...Building mobile apps that can automatically scale globally to millions of use...
Building mobile apps that can automatically scale globally to millions of use...AWS Germany
 
Developing Serverless Application on AWS
Developing Serverless Application on AWSDeveloping Serverless Application on AWS
Developing Serverless Application on AWSAmazon Web Services
 
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti..."Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti...Provectus
 
Simplify your Web & Mobile applications with cloud-based serverless backends
Simplify your Web & Mobile applicationswith cloud-based serverless backendsSimplify your Web & Mobile applicationswith cloud-based serverless backends
Simplify your Web & Mobile applications with cloud-based serverless backendsSébastien ☁ Stormacq
 
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdf
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdfMonetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdf
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdfAmazon Web Services
 
Build a Social News App with Android and AWS (MOB307) - AWS re:Invent 2018
Build a Social News App with Android and AWS (MOB307) - AWS re:Invent 2018Build a Social News App with Android and AWS (MOB307) - AWS re:Invent 2018
Build a Social News App with Android and AWS (MOB307) - AWS re:Invent 2018Amazon Web Services
 
Websites go Serverless | AWS Floor28
Websites go Serverless | AWS Floor28Websites go Serverless | AWS Floor28
Websites go Serverless | AWS Floor28Amazon Web Services
 
Websites go Serverless - Floor28
Websites go Serverless - Floor28Websites go Serverless - Floor28
Websites go Serverless - Floor28Boaz Ziniman
 
Building your first GraphQL API with AWS AppSync
Building your first GraphQL API with AWS AppSyncBuilding your first GraphQL API with AWS AppSync
Building your first GraphQL API with AWS AppSyncAmazon Web Services
 
Building your First GraphQL API with AWS AppSync
Building your First GraphQL API with AWS AppSyncBuilding your First GraphQL API with AWS AppSync
Building your First GraphQL API with AWS AppSyncAmazon Web Services
 
Nader Dabit - Intro to AWS AppSync.pdf
Nader Dabit - Intro to AWS AppSync.pdfNader Dabit - Intro to AWS AppSync.pdf
Nader Dabit - Intro to AWS AppSync.pdfAmazon Web Services
 
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Amazon Web Services
 
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...Amazon Web Services
 

Similar to Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:Invent 2018 (20)

Build your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyBuild your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS Amplify
 
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
 
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
 
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSyncTaking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
 
Accelerating Mobile App Data Synchronization and Real-Time Data Development w...
Accelerating Mobile App Data Synchronization and Real-Time Data Development w...Accelerating Mobile App Data Synchronization and Real-Time Data Development w...
Accelerating Mobile App Data Synchronization and Real-Time Data Development w...
 
Build a Photo-Sharing App with AI-Powered Face and Object Detection (MOB306) ...
Build a Photo-Sharing App with AI-Powered Face and Object Detection (MOB306) ...Build a Photo-Sharing App with AI-Powered Face and Object Detection (MOB306) ...
Build a Photo-Sharing App with AI-Powered Face and Object Detection (MOB306) ...
 
Microservices for Startups
Microservices for StartupsMicroservices for Startups
Microservices for Startups
 
Building mobile apps that can automatically scale globally to millions of use...
Building mobile apps that can automatically scale globally to millions of use...Building mobile apps that can automatically scale globally to millions of use...
Building mobile apps that can automatically scale globally to millions of use...
 
Developing Serverless Application on AWS
Developing Serverless Application on AWSDeveloping Serverless Application on AWS
Developing Serverless Application on AWS
 
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti..."Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
 
Simplify your Web & Mobile applications with cloud-based serverless backends
Simplify your Web & Mobile applicationswith cloud-based serverless backendsSimplify your Web & Mobile applicationswith cloud-based serverless backends
Simplify your Web & Mobile applications with cloud-based serverless backends
 
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdf
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdfMonetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdf
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdf
 
Build a Social News App with Android and AWS (MOB307) - AWS re:Invent 2018
Build a Social News App with Android and AWS (MOB307) - AWS re:Invent 2018Build a Social News App with Android and AWS (MOB307) - AWS re:Invent 2018
Build a Social News App with Android and AWS (MOB307) - AWS re:Invent 2018
 
Websites go Serverless | AWS Floor28
Websites go Serverless | AWS Floor28Websites go Serverless | AWS Floor28
Websites go Serverless | AWS Floor28
 
Websites go Serverless - Floor28
Websites go Serverless - Floor28Websites go Serverless - Floor28
Websites go Serverless - Floor28
 
Building your first GraphQL API with AWS AppSync
Building your first GraphQL API with AWS AppSyncBuilding your first GraphQL API with AWS AppSync
Building your first GraphQL API with AWS AppSync
 
Building your First GraphQL API with AWS AppSync
Building your First GraphQL API with AWS AppSyncBuilding your First GraphQL API with AWS AppSync
Building your First GraphQL API with AWS AppSync
 
Nader Dabit - Intro to AWS AppSync.pdf
Nader Dabit - Intro to AWS AppSync.pdfNader Dabit - Intro to AWS AppSync.pdf
Nader Dabit - Intro to AWS AppSync.pdf
 
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
 
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...
Making Hybrid Work for You: Getting into the Cloud Fast (GPSTEC308) - AWS re:...
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:Invent 2018

  • 1.
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Developing Mobile and Web Apps on AWS M O B 2 0 2 - L Amit Patel GM, AWS Mobile Tom Bray Chief Architect TicketMaster Michael Paris Engineer, AWS
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Industry Trends App downloads forecast: continued growth 258B +45% by 2022 Source: AppAnnie Enterprises expect to invest in native and web apps 80%+ Source: AWS GraphQL popularity increasing 4X Source: 2018.stateofjs.com JavaScript popularity increasing 71.5% Source: Stack Overflow
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Developer Asks Tools for building, testing, deploying, and hosting the entire app – frontend and backend Secure and scalable apps Offline data, network-optimized sync, and real-time updates Centralized config, cloud provisioning, and team workflow Code generation to eliminate boilerplate Frontend support for multiple platforms and frameworks
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Delivering on Developer Asks New product and feature launches in the last 12 months… AWS Amplify Launched AWS Amplify Open source JavaScript library Launched AWS AppSync Offline and real-time data Added support for Ionic, Angular, and Vue to Amplify Added a CLI toolchain & UI components to Amplify Added no-code, GraphQL API builder, HTTP data source, GraphQL scalar types to AWS AppSync iOS & Android SDKs – Simplified programming model for authentication
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. An Integrated Developer Experience Developer Tools Amplify Framework, an open source client framework, includes libraries, Cloud Services
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amplify Framework: Library, UI Components, & CLI Libraries focused on frontend developers Support for native apps with iOS and Android SDKs Support for JavaScript incl. React, React Native, Angular, Ionic, and Vue Category-based opinionated implementations: Auth, Analytics, API, Storage, Interactions, XR, PubSub ‘Escape’ hatches for all AWS services UI components for React, React Native, Angular, and Ionic Support for drop-in auth, photo pickers, and chatbots CLI toolchain for rapidly integrating AWS services to projects Iterative code & type generation for GraphQL APIs throughout the development cycle
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. $amplify add api type Post @model @auth( rules: [ {allow: owner, ownerField: "owner", mutations: [create, update, delete], queries: [get, list]}, ]) { id: ID! title: String! content: String! rating: Int owner: String } appSyncClient?.fetch(query: ListPostsQuery()) { (result, error) in if error != nil { print(error?.localizedDescription ?? "") return } result?.data?.listTodos?.items!.forEach { print(($0?.title)! + " " + ($0?.content)!) } } Step 1 - Edit & push schema Step 2 – Write app code GraphQL backend and client types auto-generated
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. NEW: Multi-Environments and Team Workflow (Beta) - Git-style interaction & project switching - Share backends between team members or clone for isolated development User Users
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Breadth of Cloud Services for Mobile and Web Apps Auth Analytics Core Experiences API Storage Interactions AR & VR PubSub API: Data HTTP Data Source
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS AppSync: Realtime and offline data with GraphQL Real-time collaboration Fine-grained access control Offline programming model with sync Multiple data sources HTTP Data Source
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Why GraphQL with AppSync? Data Aggregation Bandwidth Optimization Rapid Prototyping Easily evolve APIs Client-defined Data Selection
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. NEW: AppSync Features Aurora Serverless Data Source (Beta) Pipeline Resolvers Delta Sync
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 17. Productivity with Serverless / IoT Implement new features rapidly, scalable without manual operation No two “aibo” are the same “aibo” identifies the owner, learns from environment and creates relationships with people through AI Be more attractive Feature enhancement with AppSync, Kinesis Video Streams and more - 16:40 on 27th Nov (Tue) - 11:40 on 29th Nov (Thu) - 15:10 on 29th Nov (Thu) AI-enabled companion robot built using Serverless / IoT. See more at Expo theater (at the Venetian) How we made "aibo" smart: A journey through Serverless and IoT on AWS ©️ 2018 Sony Corporation “aibo” and My aibo Application aibo MQTT protocol are trademarks of Sony Corporation.
  • 18. Interactive live cooking service • Live cooking with professionals/TV stars Internet TV broadcasting via AWS Elemental MediaLive • React interactively Audience can react and/or comment interactively with AWS AppSync • All data centralized into AWS Better for data analysis and can utilize many AWS services
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 20. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Improving App Quality with AWS Device Farm Automated testing Remote access Remote debugging
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. NEW: AWS Amplify Console
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 23. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Tom Bray Chief Architect Ticketmaster
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Our GraphQL Journey Why? Where did we start? How will we achieve our GraphQL vision?
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Time to Wow in 5 seconds or less Name: Sara Connor Occupation: Rockstar React Developer Hobbies: Avid musical theater fan Objectives: Buy Aladdin tickets Get a great job using Next.js & GraphQL
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Delivering just the data fans need in a single request 100,000 Live events per year + 1,000,000,000 Fans = A massive amount of data
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Pushing seat availability in real-time 500,000,000 Tickets per year
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Our vision: a single, comprehensive schema, end to end Find Events Shop for Seats Purchase Transfer/Sell Attend
  • 30. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Time to productivity measured in minutes
  • 31. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The Opportunity Cost of Complexity Every minute a developer spends wrestling with complexity is a minute she could have spent creating something awesome.
  • 32. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 33. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Over-fetching, under-fetching, and client-side complexity
  • 34. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. You might use a BFF to transform your data BFF REST API
  • 35. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. And you might use a BFF to aggregate your data BFF REST API REST API
  • 36. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. We’re replacing our BFFs and REST APIs with AWS AppSync Perform aggregation and transformation in one place. Deliver just the data you need in a single request.
  • 37. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 38. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Understand the Technology Adoption Curve Innovators Early Adopters Early Majority Late Majority Laggards We’re marketing a disruptive technology to internal customers
  • 39. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Crossing the Chasms Innovators Early Adopters Early Majority Late Majority Laggards What does it take to cross the two GraphQL chasms? Small Chasm Big Chasm
  • 40. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Crossing the Chasms Innovators Early Adopters Early Majority Late Majority Laggards The innovators see the value of GraphQL immediately and start creating APIs. Big Chasm
  • 41. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Crossing the Chasms Innovators Early Adopters Early Majority Late Majority Laggards The early adopters are looking for a strategic leap forward. Big Chasm Small Chasm
  • 42. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Crossing the Chasms Innovators Early Adopters Early Majority Late Majority Laggards To cross the first chasm, the Early Adopters need answers to their FAQs. Big Chasm How do we solve the N+1 problem? What about caching? How do we support WebSockets at scale? Small Chasm
  • 43. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Crossing the Chasms Innovators Early Adopters Early Majority Late Majority Laggards The early majority are pragmatists looking for an increase in productivity. Big Chasm Does GraphQL make them more productive? What are we really asking the Early Majority to do? Small Chasm
  • 44. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Collaboration Models Team A Team B Team C How will teams collaborate to deliver the comprehensive schema?
  • 45. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Collaboration Models Monolithic API AWS AppSync + serverlessvs. The AppSync + serverless model enables collaboration across disparate teams. (x) Team A (x) (x) Team B Team C (x) Team A (x) (x) Team B Team C
  • 46. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Adopting Event-Driven Serverless Architectures Once you adopt the serverless mindset, AWS AppSync becomes the obvious choice. Subscription Mutation Pro Tip: Use AWS AppSync Local Resolvers and Lambda to push real-time data from any source
  • 47. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Michael Paris Engineer, AWS
  • 48.
  • 49. What do we need? Development User management & Authorization Real-time APIs Client SDKs and tooling Deployment Multiple environments Hosting CI / CD Analytics
  • 50. How do we get there? User management & Authorization Amazon Cognito User Pools Real-time APIs AWS AppSync Client SDKs and tooling Amplify Framework Multiple environments Amplify CLI Hosting & CI / CD AWS Amplify Console Analytics Amazon Pinpoint
  • 51. Amplify CLI makes project setup easy $ amplify init $ amplify add auth $ amplify add analytics $ amplify add api $ amplify push Initialize a project and environment Add an Amazon Cognito User Pool Create an Amazon Pinpoint endpoint Provision an API and data infrastructure Deploy via AWS CloudFormation
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57. Rapidly build scalable, data-driven applications Declaratively define your app’s data model using GraphQL SDL and have it transformed into a fully descriptive AWS CloudFormation stack Powered by GraphQL directives @model, @auth, @connection, @versioned, and @searchable The GraphQL Transform
  • 59.
  • 60.
  • 61. What was just created 1 AWS AppSync API 4 AWS AppSync data sources 20 AWS AppSync resolvers 4 Amazon DynamoDB Table 6 scoped AWS Identity and Access Management (IAM) roles 1 Amazon Pinpoint project 1 Amazon Cognito User Pool 1 Amazon Cognito Identity Pool © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 62. What can we do with it? © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 63. List users query ListUsers($limit: Int!, $nextToken: String!) { listUsers(limit: $limit, nextToken: $nextToken) { items { id username } } } © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 64. Get a user and their conversations query GetUserConversations($username: String!) { getUser(id: $username) { id username conversations { items { id conversation { id name } } } } } © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 65. Get a conversation and its messages query GetConvo($id: ID!) { getConvo(id: $id) { id name members messages { items { id content messageConversationId createdAt } } } } © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 66. Subscribe to new messages in conversations subscription OnCreateMessage($conversationId: ID!) { onCreateMessage( messageConversationId: $conversationId ) { id content messageConversationId createdAt } } © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 67. Create conversations mutation CreateConversation($conversation: CreateMessageInput!) { createConvo(input: $ conversation) { id name members } } © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 68. Create messages mutation CreateMessages($message: CreateMessageInput!) { createMessage(input: $message) { id content messageConversationId createdAt } } © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 69. Add users to conversations mutation CreateConvoLink($link: CreateConvoLinkInput!) { createConvoLink(input: $link) { id convoLinkUserId user { username } convoLinkConversationId conversation { id name } } } © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 70. Time to build our application © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 71. Configure the Amplify library import Amplify from 'aws-amplify'; import aws_exports from './aws-exports'; Amplify.configure(aws_exports); © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 72. Add the <Authenticator /> component import React, { Component } from 'react'; import { Authenticator } from 'aws-amplify-react'; class Home extends Component { render() { return ( <div className="container home"> ... <Authenticator onStateChange={this.handleAuthStateChange} amplifyConfig={awsExports} errorMessage={authErrorMessageMapper} /> ... </div> ); } } © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 73. Provide data with <Connect /> <Connect query={gql(queries.GetConvo, { id: this.props.conversation.id })} subscription={gql(subscriptions.OnCreateMessage, { conversationId: this.props.conversation.id})} onSubscriptionMsg={(prev, { onCreateMessage }) => { addToEnd(prev.getConvo.messages.items, onCreateMessage) return prev; }} > {({ data, loading, error }) => { // Uses render props to provide data to child components if (error) return (<h3>Error: {error}</h3>); if (loading) return (<h3>Loading...</h3>); const messages = getIn(data, “getConvo.messages.items”); return ( <div> { messages.map((message, i) => ( <ChatMessage key={i} message={message} isFromMe={message.authorId === me.username} /> )) } </div> )}} </Connect> © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 74. Call mutations with API import * as mutations from './graphql/mutations'; import { graphqlOperation, Analytics, API } from 'aws-amplify’; async function createMessage(message) { const response = await API.graphql( graphqlOperation(mutations.CreateMessage, { input: message }) ); return response.data.createMessage; } © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 75. Instrument analytics import React, { Component } from 'react'; import { Analytics } from 'aws-amplify’; class App extends Component { componentDidMount() { Analytics.startSession(); window.addEventListener('beforeunload', () => { Analytics.stopSession(); }) } ... } © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 76.
  • 77. Now let’s make a few branches and push to GitHub © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 78.
  • 79. And finally, let’s deploy our app to the cloud © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 80.
  • 81.
  • 82.
  • 83. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. An Integrated Developer Experience
  • 84. Thank you! © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amit Patel Tom Bray Michael Paris
  • 85. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.