SlideShare una empresa de Scribd logo
1 de 62
API moderne real-time per
applicazioni mobili e web
Stefano Sandrini, AWS Sr. EMEA Mobile Specialist SA
Daniel De Gaspari, Solution Architect – Sky Italia
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Agenda
GraphQL
AWS AppSync
Use Cases
Customer Use Case: Sky Italia
Offline
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
GraphQL is a query language for APIs and
a runtime for fulfilling those queries
with your existing data.
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Queries MutationsTypes
Subscriptions
GraphQL schema and operations
A query language for APIs . . . and a runtime!
type User {
id: ID!
username: String!
firstName: String
lastName: String
daysActive: Int
}
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Queries
A query language for APIs . . .
Mutations Subscriptions
query GetPost {
getPost(id: ”1”) {
id
title
author
date
}
}
mutation CreatePost {
createPost(input: {…}) {
id
title
author
date
}
}
subscription OnCreatePost {
onCreatePost {
id
title
author
date
}
}
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
AWS AppSync
Build scalable applications
on a range of data sources,
including those requiring
real-time updates and
offline data access
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
AWS AppSync
Managed serverless
GraphQL service
Connect to data
sources in your account
Add data sync, real-time, and
offline capabilities for any data
source or API
GraphQL facade for any
AWS service
Conflict detection and
resolution in the cloud
Enterprise security features:
IAM, Amazon Cognito, OIDC,
API keys
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
How does AWS AppSync work?
,
,
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
,
,
How does AWS AppSync work?
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
,
,
How does AWS AppSync work?
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
,
,
How does AWS AppSync work?
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
,
,
How does AWS AppSync work?
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
AppSync &
Amplify
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Amplify Framework
Amplify Framework (open source)
Command-line interface (CLI)
Client libraries (iOS, Android, JavaScript)
Platform-specific UI components
Managed developer services
AWS Amplify Console: Hosting/Continuous
deployment
AWS Device Farm: Testing on real iOS/Android
devices and desktop browser testing
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
$ amplify add api
Amplify CLI: GraphQL Transform – @model transformer
# schema.graphql
type Post @model {
id: ID!
title: String!
}
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Amplify CLI: GraphQL Transform
Quickly create backends for your
web and mobile applications on
AWS
Define application’s data model
using the GraphQL Schema
Convert your definition into
descriptive AWS CloudFormation
templates that implement your data
model
@model - Top-level entity; creates DynamoDB table, and
resolvers for base type
@connection - Adds relationships between @model
types
@auth - Enables set of authorization rules
@searchable - Handles streaming the data of an @model
object type to Amazon Elasticsearch Service and configures
search resolvers
@versioned - Enables versioning
@function – Adds a Lambda function as a data source
@key – Configures custom indexes for @model types
@predictions - Access an orchestration of AI/ML services
such as Amazon Rekognition, Amazon Translate, and/or
Amazon Polly
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
GraphQL Transform: Mix and match data sources
type Post {
id: ID!
content: String
description: String
ups: Int
downs: Int
}
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
GraphQL Transform: Mix and match data sources
searchPosts
Mutations
Queries
type Post
@model
@auth(rules: [{allow: owner}])
@searchable{
id: ID!
content: String
description: String
ups: Int
downs: Int
}
createPost
readPost
updatePost
deletePost
listPost
Amazon
Cognito
AWS AppSync
Amazon
DynamoDB
Amazon Elasticsearch
Service
Lambda
function
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
$ amplify add codegen [--apiId <api-id>]
// Will generate GraphQL statements
// (queries, mutations, subscriptions)
CLI: GraphQL codegen
import { API } from 'aws-amplify';
import * as queries from './graphql/queries';
const todos = await API.graphql({
query: queries.listTodos,
authMode: 'AWS_IAM'
});
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Use cases
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Real-time GraphQL subscriptions
subscription onCreateMessage {
createMessage {…}
}
Secure WebSocket connection (wss://)
AppSync Data Sources
AWS AppSync
Amazon
DynamoDB
Amazon Elasticsearch
Service
AWS Lambda
Amazon Aurora
Local (Pub/Sub)
HTTP
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Real-time data broadcasting
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
AWS AppSync Real-Time Reference Architecture
https://github.com/aws-samples/appsync-refarch-realtime
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
AWS AppSync Real-Time Reference Architecture
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
AWS AppSync Real-Time Reference Architecture
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
AWS AppSync Real-Time Reference Architecture
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Real-time GraphQL subscriptions
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
• Media & Entertainment
• E-commerce
• Retail
• Healthcare
• Airlines
• Transport
• Security
• Payment Services
• Education
And more…
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Use Case
Sky Italia
LIVE DATA ARCHITECTURE
DANIEL DE GASPARI - SOLUTION ARCHITECT
DIGITAL SOLUTION ARCHITECTURE TEAM
38
Scope & High Level Requirements
Logical View: Engine and Plugin
Logical View: Capabilities
System Engineering View: component by component
Monitoring
AWS AppSync & GraphQL
Amplify Framework
Next Planned Evolution
39
• Real time and near real time data available
• High Horizontal Scalability
• Source and consumer agnostic Data ingestion, Data
feeding and rendering engine
• SEO optimization with SSR
• Data rendering using microfrontend and
webcomponent approach
• Full monitoring
• Easy onboarding for developers with same language
FE and BE
• Query language(AppSync for GraphQL) instead of
REST in order to optimize data transfer between BE
and Webcomponent.
• Pushing intstead of Polling to get data update
• Different level of caching to reduce db interaction
40
Data Feeding and Data rendering (Engine) Data Ingestion (Engine)
Data sources (plugin components) Consumers for Web Components or Data (plugin components)
41
• Receives data from data sources
• Stores data into Sports Data Repository
• Notifies HTML Component Generator
• Retrieves sports data
• Sends updates to clients
• Generates widgets’ HTML
• Stores generated widget
• Notifies HTML Page Generator
• Generates web pages
• Stores generated widget into
HTML Component Repository
A
B C D E
A
B
C
D
E
42
Data Ingestion Queue
• receives message from data providers
• triggers Data Ingestion Lambda
Data Ingestion Lambda
• parses received messages
• updates DB tables
• inserts messages on SNS’s topics
• 1:1 topics-tables mapping
43
AWS System Manager
• parameter store
• contains parameters necessary to the lambda
execution
Database
• entity-relationship model
44
Data Ingestion Notifier
• entry point for data feeding
• receives requests by the Ingestion Lambda
• 1 topic for each DB table
Web Component Generator Queue
• receives messages from Data Ingestion Notifier
• triggers the associated lambda dedicated to the
generation of a specific web component
45
Web Component Generator Lambda (for each web component)
• reads messages received by SQS
• contains all information necessary in order to identify
the specific widget of that type
• retrieves widget’s configurations from S3 bucket
• performs a GraphQL interaction (query-mutation)
• generates the web component and notify creation
(notifier)
• stores web component in an S3 bucket
46
Web Component Notifier
• one topic for each BE system
AppSync (managed graphQL)
• Query: retrieves data in a data source
• Mutation: modifies data in a data source
• Subscription: pushes data to clients via websocket
• invokes the Lambda Data API
• solves the “fake mutation”, sending updates to all
clients subscribed
47
Data API Lambda
• implements queries to extract data from the
database
• each data API Lambda represents a microservice
Secrets Manager
• contains credentials used to access and reads data
from Sports Data Database
48
Widget Writer Queue
• receives messages from the Web Component Notifier
• triggers Widget Writer Lambda
Widget Writer Lambda
• acts as an adapter for our CMS
• reads messages received by SQS
• makes a request to the API Gateway, obtaining the
HTML of the new widget
• store widget into EFS
49
EFS
• repository for web components generated
• used by Adobe Experience Manager for pages'
generation that include the these web components
Configuration Writer Queue
• receives message from AEM’s Author instance
• triggers the associated lambda dedicated to
propagates the widget configurations to Sports Data
infrastructure
50
Configuration Writer Lambda
• reads messages received by SQS
• updates the new rules relating to the configuration
of the web components on the S3 bucket
51
• Infrastructure level
– evaluate services’ health
• Application level
– custom metrics based on logs in our applications
• Involved services
– instances with CloudWatch Agent
– CloudWatch Logs
– metric filters based on logs’ patterns
– thresholds based on our metrics and associated alarms
– email notifications
52
• Managed service with GraphQL
– Serverless
• Hierarchical data structure
– MatchCompetition > MatchSeason > MatchDay > …
• Queries structured with a channel logic
– getTeamCalendarDesktop()
– getTeamCalendarMobile()
• Resolver
– Apache Velocity for a simple/remapping logic
– lambda for complex logic
53
• Resolvers’ reuse & pipeline resolvers
• Local Resolver
– Invoke mutation with data as request payload
– Avoid useless invocation for already calculated fields
– Push data passed as mutation’s payload via
subscription
getMatchDay(params: InputGetMatchDay): [MatchDay]
#@function(name:"getCurrentCompetitionStatus-${env}")
#@function(name: "getMatchDay-${env}")
type BaseFields{
field1: Int
field2: String
calculatedField: Int @function….
}
type BaseFields{
field1: Int
field2: String
}
type UsedByQuery{
baseFields: BaseFields
calculated: Int @function…..
}
Type UsedByMutation{
baseFields: BaseFields
calculated: Int
}
54
• Shared IAM Role between lambda functions
– custom resolvers for each lambda function
• Custom languages for lambda functions
– Custom tasks (run tests, compile, etc…)
• GraphQL schema splitting
• Multiple environments
55
• Multiple clients
• RDS Proxy
• AppSync Cache
• AWS EventBridge
– serverless event bus
– replace SNS & SQS
• DynamoDB
– replace MySQL with NoSQL
– streams
- push events directly from our data source
• Custom protection in AppSync
– AWS Amplify: open source framework
– AWS Cognito
– custom rules for GraphQL operations
56
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Caching
Managed server-side caching
Full API Caching
Per Resolver Caching
Encryption
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Log insights
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
X-Ray
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Offline
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Amplify DataStore
Multi-platform (iOS/Android/React Native/Web) on-device
persistent storage engine that automatically synchronizes data
between mobile/web apps and the cloud using GraphQL.
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
AWS Cloud
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
ds_pk ds_sk Name Title … _lastChangedAt _TTL
Post-xxx2019 02:12:07.123:1 Nadia Hello World 1541884315162 1541884320
Post-yyy2019 24:11:07.2:1 Pancho I’m Sleepy 1541884359527 1541884364
Post-zzz2019 24:11:07.3:3 Shaggy Running in the
park
1541884404015 1541884409
ID Name Title …
123 Nadia Hello World
2 Pancho I’m Sleepy
3 Shaggy Running in
the park
Sync-enabled resolver createPost(input: CreatePostInput!): Post
GraphQL Schema
DataStore.save(
new Post(Name:”Nadia” Title:“Hello World” )
);
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
Amplify DataStore
Before After
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
• Start effortlessly
• Scale with your business
• Real-Time & Offline
• Unify and secure access to your distributed
data and services
• Amplify integrations: DataStore, GraphQL
Transform, Local Mocking and CodeGen
https://aws.amazon.com/appsync/resources/#Videos
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
AWS Europe (Milan) Region
On April, 28th AWS expanded its global footprint with the opening of the AWS Infrastructure Region in Italy. The new
Region AWS Europe (Milano) brings advanced cloud technologies that enable opportunities for innovation,
entrepreneurship, and digital transformation. For additional information about services and characteristics of an AWS
Region, you can check the website: aws.amazon.com/local/italy/milan/
67
AWS Training & Certification
https://www.aws.training: Free on-demand courses to help you build new cloud skills
Introduction to Amazon API Gateway
https://www.aws.training/Details/Video?id=16452
e-Learning: Amazon API Gateway for Serverless Applications
https://www.aws.training/Details/eLearning?id=27199
e-Learning: Architecting Serverless Solutions
https://www.aws.training/Details/eLearning?id=42594
For more info on AWS T&C visit: https://aws.amazon.com/it/training/
Thanks!
Stefano Sandrini, AWS Sr. EMEA Mobile Specialist SA
Daniel De Gaspari, Solution Architect – Sky Italia

Más contenido relacionado

La actualidad más candente

Protect your applications from DDoS/BOT & Advanced Attacks
Protect your applications from DDoS/BOT & Advanced AttacksProtect your applications from DDoS/BOT & Advanced Attacks
Protect your applications from DDoS/BOT & Advanced AttacksAmazon 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
 
AWSome Day Online 2020_โมดูล 4: การรักษาความปลอดภัยแอปพลิเคชันบนระบบคลาวด์ของคุณ
AWSome Day Online 2020_โมดูล 4: การรักษาความปลอดภัยแอปพลิเคชันบนระบบคลาวด์ของคุณAWSome Day Online 2020_โมดูล 4: การรักษาความปลอดภัยแอปพลิเคชันบนระบบคลาวด์ของคุณ
AWSome Day Online 2020_โมดูล 4: การรักษาความปลอดภัยแอปพลิเคชันบนระบบคลาวด์ของคุณAmazon 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
 
Best Practices to Mitigate from the Emerging Vectors of Network Attack
Best Practices to Mitigate from the Emerging Vectors of Network AttackBest Practices to Mitigate from the Emerging Vectors of Network Attack
Best Practices to Mitigate from the Emerging Vectors of Network AttackAmazon Web Services
 
Come costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWSCome costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWSAmazon Web Services
 
Come costruire un'architettura Serverless nel Cloud AWS
Come costruire un'architettura Serverless nel Cloud AWSCome costruire un'architettura Serverless nel Cloud AWS
Come costruire un'architettura Serverless nel Cloud AWSAmazon Web Services
 
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life Amazon Web Services
 
Security Innovations in the Cloud
Security Innovations in the CloudSecurity Innovations in the Cloud
Security Innovations in the CloudAmazon Web Services
 
La tua organizzazione è pronta per adottare una strategia di cloud ibrido?
La tua organizzazione è pronta per adottare una strategia di cloud ibrido?La tua organizzazione è pronta per adottare una strategia di cloud ibrido?
La tua organizzazione è pronta per adottare una strategia di cloud ibrido?Amazon Web Services
 
Evolve Your Incident Response Process and Powers for AWS
Evolve Your Incident Response Process and Powers for AWS Evolve Your Incident Response Process and Powers for AWS
Evolve Your Incident Response Process and Powers for AWS Amazon Web Services
 
Track 5 Session 6_ BLC01 透過 Amazon Managed Blockchain 與 Amazon QLDB 打造區塊鍊應用.pptx
Track 5 Session 6_ BLC01 透過 Amazon Managed Blockchain 與 Amazon QLDB 打造區塊鍊應用.pptxTrack 5 Session 6_ BLC01 透過 Amazon Managed Blockchain 與 Amazon QLDB 打造區塊鍊應用.pptx
Track 5 Session 6_ BLC01 透過 Amazon Managed Blockchain 與 Amazon QLDB 打造區塊鍊應用.pptxAmazon Web Services
 
What’s new in serverless - re:Invent 2020
What’s new in serverless - re:Invent 2020What’s new in serverless - re:Invent 2020
What’s new in serverless - re:Invent 2020AWS Chicago
 
Track 6 Session 6_ 透過 AWS AI 服務模擬、部署機器人於產業之應用
Track 6 Session 6_ 透過 AWS AI 服務模擬、部署機器人於產業之應用Track 6 Session 6_ 透過 AWS AI 服務模擬、部署機器人於產業之應用
Track 6 Session 6_ 透過 AWS AI 服務模擬、部署機器人於產業之應用Amazon Web Services
 
Identity Round Robin Workshop - Serverless Round: Security Week at the SF Loft
Identity Round Robin Workshop - Serverless Round: Security Week at the SF LoftIdentity Round Robin Workshop - Serverless Round: Security Week at the SF Loft
Identity Round Robin Workshop - Serverless Round: Security Week at the SF LoftAmazon Web Services
 

La actualidad más candente (20)

Protect your applications from DDoS/BOT & Advanced Attacks
Protect your applications from DDoS/BOT & Advanced AttacksProtect your applications from DDoS/BOT & Advanced Attacks
Protect your applications from DDoS/BOT & Advanced Attacks
 
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...
 
AWSome Day Online 2020_โมดูล 4: การรักษาความปลอดภัยแอปพลิเคชันบนระบบคลาวด์ของคุณ
AWSome Day Online 2020_โมดูล 4: การรักษาความปลอดภัยแอปพลิเคชันบนระบบคลาวด์ของคุณAWSome Day Online 2020_โมดูล 4: การรักษาความปลอดภัยแอปพลิเคชันบนระบบคลาวด์ของคุณ
AWSome Day Online 2020_โมดูล 4: การรักษาความปลอดภัยแอปพลิเคชันบนระบบคลาวด์ของคุณ
 
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
 
Best Practices to Mitigate from the Emerging Vectors of Network Attack
Best Practices to Mitigate from the Emerging Vectors of Network AttackBest Practices to Mitigate from the Emerging Vectors of Network Attack
Best Practices to Mitigate from the Emerging Vectors of Network Attack
 
Come costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWSCome costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWS
 
Come costruire un'architettura Serverless nel Cloud AWS
Come costruire un'architettura Serverless nel Cloud AWSCome costruire un'architettura Serverless nel Cloud AWS
Come costruire un'architettura Serverless nel Cloud AWS
 
AWS Security Hub
AWS Security HubAWS Security Hub
AWS Security Hub
 
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life
AWS Webinar Series | Using Virtual Reality to bring your ChatBot to life
 
Security Innovations in the Cloud
Security Innovations in the CloudSecurity Innovations in the Cloud
Security Innovations in the Cloud
 
La tua organizzazione è pronta per adottare una strategia di cloud ibrido?
La tua organizzazione è pronta per adottare una strategia di cloud ibrido?La tua organizzazione è pronta per adottare una strategia di cloud ibrido?
La tua organizzazione è pronta per adottare una strategia di cloud ibrido?
 
AWS 資料數據與 IoT
AWS 資料數據與 IoTAWS 資料數據與 IoT
AWS 資料數據與 IoT
 
Lambda Function Security
Lambda Function SecurityLambda Function Security
Lambda Function Security
 
Evolve Your Incident Response Process and Powers for AWS
Evolve Your Incident Response Process and Powers for AWS Evolve Your Incident Response Process and Powers for AWS
Evolve Your Incident Response Process and Powers for AWS
 
Track 5 Session 6_ BLC01 透過 Amazon Managed Blockchain 與 Amazon QLDB 打造區塊鍊應用.pptx
Track 5 Session 6_ BLC01 透過 Amazon Managed Blockchain 與 Amazon QLDB 打造區塊鍊應用.pptxTrack 5 Session 6_ BLC01 透過 Amazon Managed Blockchain 與 Amazon QLDB 打造區塊鍊應用.pptx
Track 5 Session 6_ BLC01 透過 Amazon Managed Blockchain 與 Amazon QLDB 打造區塊鍊應用.pptx
 
What’s new in serverless - re:Invent 2020
What’s new in serverless - re:Invent 2020What’s new in serverless - re:Invent 2020
What’s new in serverless - re:Invent 2020
 
AWS Technical Essentials Day
AWS Technical Essentials DayAWS Technical Essentials Day
AWS Technical Essentials Day
 
Track 6 Session 6_ 透過 AWS AI 服務模擬、部署機器人於產業之應用
Track 6 Session 6_ 透過 AWS AI 服務模擬、部署機器人於產業之應用Track 6 Session 6_ 透過 AWS AI 服務模擬、部署機器人於產業之應用
Track 6 Session 6_ 透過 AWS AI 服務模擬、部署機器人於產業之應用
 
Public Cloud Security Blueprint
Public Cloud Security BlueprintPublic Cloud Security Blueprint
Public Cloud Security Blueprint
 
Identity Round Robin Workshop - Serverless Round: Security Week at the SF Loft
Identity Round Robin Workshop - Serverless Round: Security Week at the SF LoftIdentity Round Robin Workshop - Serverless Round: Security Week at the SF Loft
Identity Round Robin Workshop - Serverless Round: Security Week at the SF Loft
 

Similar a API moderne real-time per applicazioni mobili e web

Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...Amazon Web Services
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesRohini Gaonkar
 
20200513 Getting started with AWS Amplify
20200513   Getting started with AWS Amplify20200513   Getting started with AWS Amplify
20200513 Getting started with AWS AmplifyMarcia Villalba
 
Serverless APIs and you
Serverless APIs and youServerless APIs and you
Serverless APIs and youJames Beswick
 
20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless 20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless Marcia Villalba
 
GraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS LambdaGraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS LambdaAleksandr Maklakov
 
Building API-Driven Microservices with Amazon API Gateway - AWS Online Tech T...
Building API-Driven Microservices with Amazon API Gateway - AWS Online Tech T...Building API-Driven Microservices with Amazon API Gateway - AWS Online Tech T...
Building API-Driven Microservices with Amazon API Gateway - AWS Online Tech T...Amazon 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
 
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...Amazon Web Services
 
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS SummitBuild Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS SummitAmazon Web Services
 
Developing Serverless Application on AWS
Developing Serverless Application on AWSDeveloping Serverless Application on AWS
Developing Serverless Application on AWSAmazon Web Services
 
Serverless Development Deep Dive
Serverless Development Deep DiveServerless Development Deep Dive
Serverless Development Deep DiveAmazon Web Services
 
Building serverless enterprise applications - SRV315 - Toronto AWS Summit
Building serverless enterprise applications - SRV315 - Toronto AWS SummitBuilding serverless enterprise applications - SRV315 - Toronto AWS Summit
Building serverless enterprise applications - SRV315 - Toronto AWS SummitAmazon Web Services
 
20200803 - Serverless with AWS @ HELTECH
20200803 - Serverless with AWS @ HELTECH20200803 - Serverless with AWS @ HELTECH
20200803 - Serverless with AWS @ HELTECHMarcia Villalba
 
AWS Serverless per startup: come innovare senza preoccuparsi dei server
AWS Serverless per startup: come innovare senza preoccuparsi dei serverAWS Serverless per startup: come innovare senza preoccuparsi dei server
AWS Serverless per startup: come innovare senza preoccuparsi dei serverAmazon Web Services
 
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...Amazon Web Services
 
Building API Driven Microservices
Building API Driven MicroservicesBuilding API Driven Microservices
Building API Driven MicroservicesChris Munns
 
AWS Webinar Series - Developing and Implementing APIs at Scale
AWS Webinar Series - Developing and Implementing APIs at ScaleAWS Webinar Series - Developing and Implementing APIs at Scale
AWS Webinar Series - Developing and Implementing APIs at ScaleAmazon Web Services
 

Similar a API moderne real-time per applicazioni mobili e web (20)

Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
Developing and Implementing APIs at Scale, the Servless Way - Ed Lima - AWS T...
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
20200513 Getting started with AWS Amplify
20200513   Getting started with AWS Amplify20200513   Getting started with AWS Amplify
20200513 Getting started with AWS Amplify
 
Serverless APIs and you
Serverless APIs and youServerless APIs and you
Serverless APIs and you
 
20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless 20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless
 
GraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS LambdaGraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS Lambda
 
Building API-Driven Microservices with Amazon API Gateway - AWS Online Tech T...
Building API-Driven Microservices with Amazon API Gateway - AWS Online Tech T...Building API-Driven Microservices with Amazon API Gateway - AWS Online Tech T...
Building API-Driven Microservices with Amazon API Gateway - AWS Online Tech T...
 
善用 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)
 
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
 
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS SummitBuild Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
Build Enterprise-Grade Serverless Apps - SRV315 - Chicago AWS Summit
 
Developing Serverless Application on AWS
Developing Serverless Application on AWSDeveloping Serverless Application on AWS
Developing Serverless Application on AWS
 
Serverless Development Deep Dive
Serverless Development Deep DiveServerless Development Deep Dive
Serverless Development Deep Dive
 
Introduzione a GraphQL
Introduzione a GraphQLIntroduzione a GraphQL
Introduzione a GraphQL
 
Building serverless enterprise applications - SRV315 - Toronto AWS Summit
Building serverless enterprise applications - SRV315 - Toronto AWS SummitBuilding serverless enterprise applications - SRV315 - Toronto AWS Summit
Building serverless enterprise applications - SRV315 - Toronto AWS Summit
 
20200803 - Serverless with AWS @ HELTECH
20200803 - Serverless with AWS @ HELTECH20200803 - Serverless with AWS @ HELTECH
20200803 - Serverless with AWS @ HELTECH
 
AWS Serverless per startup: come innovare senza preoccuparsi dei server
AWS Serverless per startup: come innovare senza preoccuparsi dei serverAWS Serverless per startup: come innovare senza preoccuparsi dei server
AWS Serverless per startup: come innovare senza preoccuparsi dei server
 
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...
Scaling and Automating DevOps with CloudBees and Spot Instances (GPSTEC310) -...
 
The serverless LAMP stack
The serverless LAMP stackThe serverless LAMP stack
The serverless LAMP stack
 
Building API Driven Microservices
Building API Driven MicroservicesBuilding API Driven Microservices
Building API Driven Microservices
 
AWS Webinar Series - Developing and Implementing APIs at Scale
AWS Webinar Series - Developing and Implementing APIs at ScaleAWS Webinar Series - Developing and Implementing APIs at Scale
AWS Webinar Series - Developing and Implementing APIs at Scale
 

Más de 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
 
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
 
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
 
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
 
Costruisci modelli di Machine Learning con Amazon SageMaker Autopilot
Costruisci modelli di Machine Learning con Amazon SageMaker AutopilotCostruisci modelli di Machine Learning con Amazon SageMaker Autopilot
Costruisci modelli di Machine Learning con Amazon SageMaker AutopilotAmazon Web Services
 
Migra le tue file shares in cloud con FSx for Windows
Migra le tue file shares in cloud con FSx for Windows Migra le tue file shares in cloud con FSx for Windows
Migra le tue file shares in cloud con FSx for Windows Amazon Web Services
 
Track 6 Session 5_ 如何藉由物聯網 (IoT) 與機器學習提高預測性維修與產品良率.pptx
Track 6 Session 5_ 如何藉由物聯網 (IoT) 與機器學習提高預測性維修與產品良率.pptxTrack 6 Session 5_ 如何藉由物聯網 (IoT) 與機器學習提高預測性維修與產品良率.pptx
Track 6 Session 5_ 如何藉由物聯網 (IoT) 與機器學習提高預測性維修與產品良率.pptxAmazon Web Services
 
Track 6 Session 3_如何藉由 AWS AI 和機器學習平台搭建多功能的 AI 解決方案.pptx
Track 6 Session 3_如何藉由 AWS AI 和機器學習平台搭建多功能的 AI 解決方案.pptxTrack 6 Session 3_如何藉由 AWS AI 和機器學習平台搭建多功能的 AI 解決方案.pptx
Track 6 Session 3_如何藉由 AWS AI 和機器學習平台搭建多功能的 AI 解決方案.pptxAmazon Web Services
 

Más de 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...
 
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...
 
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
 
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
 
Costruisci modelli di Machine Learning con Amazon SageMaker Autopilot
Costruisci modelli di Machine Learning con Amazon SageMaker AutopilotCostruisci modelli di Machine Learning con Amazon SageMaker Autopilot
Costruisci modelli di Machine Learning con Amazon SageMaker Autopilot
 
Migra le tue file shares in cloud con FSx for Windows
Migra le tue file shares in cloud con FSx for Windows Migra le tue file shares in cloud con FSx for Windows
Migra le tue file shares in cloud con FSx for Windows
 
Track 6 Session 5_ 如何藉由物聯網 (IoT) 與機器學習提高預測性維修與產品良率.pptx
Track 6 Session 5_ 如何藉由物聯網 (IoT) 與機器學習提高預測性維修與產品良率.pptxTrack 6 Session 5_ 如何藉由物聯網 (IoT) 與機器學習提高預測性維修與產品良率.pptx
Track 6 Session 5_ 如何藉由物聯網 (IoT) 與機器學習提高預測性維修與產品良率.pptx
 
Track 6 Session 3_如何藉由 AWS AI 和機器學習平台搭建多功能的 AI 解決方案.pptx
Track 6 Session 3_如何藉由 AWS AI 和機器學習平台搭建多功能的 AI 解決方案.pptxTrack 6 Session 3_如何藉由 AWS AI 和機器學習平台搭建多功能的 AI 解決方案.pptx
Track 6 Session 3_如何藉由 AWS AI 和機器學習平台搭建多功能的 AI 解決方案.pptx
 

API moderne real-time per applicazioni mobili e web

  • 1. API moderne real-time per applicazioni mobili e web Stefano Sandrini, AWS Sr. EMEA Mobile Specialist SA Daniel De Gaspari, Solution Architect – Sky Italia
  • 2. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Agenda GraphQL AWS AppSync Use Cases Customer Use Case: Sky Italia Offline
  • 3. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential
  • 4. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.
  • 5. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Queries MutationsTypes Subscriptions GraphQL schema and operations A query language for APIs . . . and a runtime! type User { id: ID! username: String! firstName: String lastName: String daysActive: Int }
  • 6. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Queries A query language for APIs . . . Mutations Subscriptions query GetPost { getPost(id: ”1”) { id title author date } } mutation CreatePost { createPost(input: {…}) { id title author date } } subscription OnCreatePost { onCreatePost { id title author date } }
  • 7. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential AWS AppSync Build scalable applications on a range of data sources, including those requiring real-time updates and offline data access
  • 8. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential AWS AppSync Managed serverless GraphQL service Connect to data sources in your account Add data sync, real-time, and offline capabilities for any data source or API GraphQL facade for any AWS service Conflict detection and resolution in the cloud Enterprise security features: IAM, Amazon Cognito, OIDC, API keys
  • 9. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential How does AWS AppSync work? , ,
  • 10. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential , , How does AWS AppSync work?
  • 11. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential , , How does AWS AppSync work?
  • 12. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential , , How does AWS AppSync work?
  • 13. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential , , How does AWS AppSync work?
  • 14. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential AppSync & Amplify
  • 15. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Amplify Framework Amplify Framework (open source) Command-line interface (CLI) Client libraries (iOS, Android, JavaScript) Platform-specific UI components Managed developer services AWS Amplify Console: Hosting/Continuous deployment AWS Device Farm: Testing on real iOS/Android devices and desktop browser testing
  • 16. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential $ amplify add api Amplify CLI: GraphQL Transform – @model transformer # schema.graphql type Post @model { id: ID! title: String! }
  • 17. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Amplify CLI: GraphQL Transform Quickly create backends for your web and mobile applications on AWS Define application’s data model using the GraphQL Schema Convert your definition into descriptive AWS CloudFormation templates that implement your data model @model - Top-level entity; creates DynamoDB table, and resolvers for base type @connection - Adds relationships between @model types @auth - Enables set of authorization rules @searchable - Handles streaming the data of an @model object type to Amazon Elasticsearch Service and configures search resolvers @versioned - Enables versioning @function – Adds a Lambda function as a data source @key – Configures custom indexes for @model types @predictions - Access an orchestration of AI/ML services such as Amazon Rekognition, Amazon Translate, and/or Amazon Polly
  • 18. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential GraphQL Transform: Mix and match data sources type Post { id: ID! content: String description: String ups: Int downs: Int }
  • 19. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential GraphQL Transform: Mix and match data sources searchPosts Mutations Queries type Post @model @auth(rules: [{allow: owner}]) @searchable{ id: ID! content: String description: String ups: Int downs: Int } createPost readPost updatePost deletePost listPost Amazon Cognito AWS AppSync Amazon DynamoDB Amazon Elasticsearch Service Lambda function
  • 20. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential $ amplify add codegen [--apiId <api-id>] // Will generate GraphQL statements // (queries, mutations, subscriptions) CLI: GraphQL codegen import { API } from 'aws-amplify'; import * as queries from './graphql/queries'; const todos = await API.graphql({ query: queries.listTodos, authMode: 'AWS_IAM' });
  • 21. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Use cases
  • 22. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Real-time GraphQL subscriptions subscription onCreateMessage { createMessage {…} } Secure WebSocket connection (wss://) AppSync Data Sources AWS AppSync Amazon DynamoDB Amazon Elasticsearch Service AWS Lambda Amazon Aurora Local (Pub/Sub) HTTP
  • 23. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Real-time data broadcasting
  • 24. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential AWS AppSync Real-Time Reference Architecture https://github.com/aws-samples/appsync-refarch-realtime
  • 25. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential AWS AppSync Real-Time Reference Architecture
  • 26. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential AWS AppSync Real-Time Reference Architecture
  • 27. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential AWS AppSync Real-Time Reference Architecture
  • 28. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Real-time GraphQL subscriptions
  • 29. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential • Media & Entertainment • E-commerce • Retail • Healthcare • Airlines • Transport • Security • Payment Services • Education And more…
  • 30. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Use Case Sky Italia
  • 31. LIVE DATA ARCHITECTURE DANIEL DE GASPARI - SOLUTION ARCHITECT DIGITAL SOLUTION ARCHITECTURE TEAM
  • 32. 38 Scope & High Level Requirements Logical View: Engine and Plugin Logical View: Capabilities System Engineering View: component by component Monitoring AWS AppSync & GraphQL Amplify Framework Next Planned Evolution
  • 33. 39 • Real time and near real time data available • High Horizontal Scalability • Source and consumer agnostic Data ingestion, Data feeding and rendering engine • SEO optimization with SSR • Data rendering using microfrontend and webcomponent approach • Full monitoring • Easy onboarding for developers with same language FE and BE • Query language(AppSync for GraphQL) instead of REST in order to optimize data transfer between BE and Webcomponent. • Pushing intstead of Polling to get data update • Different level of caching to reduce db interaction
  • 34. 40 Data Feeding and Data rendering (Engine) Data Ingestion (Engine) Data sources (plugin components) Consumers for Web Components or Data (plugin components)
  • 35. 41 • Receives data from data sources • Stores data into Sports Data Repository • Notifies HTML Component Generator • Retrieves sports data • Sends updates to clients • Generates widgets’ HTML • Stores generated widget • Notifies HTML Page Generator • Generates web pages • Stores generated widget into HTML Component Repository A B C D E A B C D E
  • 36. 42 Data Ingestion Queue • receives message from data providers • triggers Data Ingestion Lambda Data Ingestion Lambda • parses received messages • updates DB tables • inserts messages on SNS’s topics • 1:1 topics-tables mapping
  • 37. 43 AWS System Manager • parameter store • contains parameters necessary to the lambda execution Database • entity-relationship model
  • 38. 44 Data Ingestion Notifier • entry point for data feeding • receives requests by the Ingestion Lambda • 1 topic for each DB table Web Component Generator Queue • receives messages from Data Ingestion Notifier • triggers the associated lambda dedicated to the generation of a specific web component
  • 39. 45 Web Component Generator Lambda (for each web component) • reads messages received by SQS • contains all information necessary in order to identify the specific widget of that type • retrieves widget’s configurations from S3 bucket • performs a GraphQL interaction (query-mutation) • generates the web component and notify creation (notifier) • stores web component in an S3 bucket
  • 40. 46 Web Component Notifier • one topic for each BE system AppSync (managed graphQL) • Query: retrieves data in a data source • Mutation: modifies data in a data source • Subscription: pushes data to clients via websocket • invokes the Lambda Data API • solves the “fake mutation”, sending updates to all clients subscribed
  • 41. 47 Data API Lambda • implements queries to extract data from the database • each data API Lambda represents a microservice Secrets Manager • contains credentials used to access and reads data from Sports Data Database
  • 42. 48 Widget Writer Queue • receives messages from the Web Component Notifier • triggers Widget Writer Lambda Widget Writer Lambda • acts as an adapter for our CMS • reads messages received by SQS • makes a request to the API Gateway, obtaining the HTML of the new widget • store widget into EFS
  • 43. 49 EFS • repository for web components generated • used by Adobe Experience Manager for pages' generation that include the these web components Configuration Writer Queue • receives message from AEM’s Author instance • triggers the associated lambda dedicated to propagates the widget configurations to Sports Data infrastructure
  • 44. 50 Configuration Writer Lambda • reads messages received by SQS • updates the new rules relating to the configuration of the web components on the S3 bucket
  • 45. 51 • Infrastructure level – evaluate services’ health • Application level – custom metrics based on logs in our applications • Involved services – instances with CloudWatch Agent – CloudWatch Logs – metric filters based on logs’ patterns – thresholds based on our metrics and associated alarms – email notifications
  • 46. 52 • Managed service with GraphQL – Serverless • Hierarchical data structure – MatchCompetition > MatchSeason > MatchDay > … • Queries structured with a channel logic – getTeamCalendarDesktop() – getTeamCalendarMobile() • Resolver – Apache Velocity for a simple/remapping logic – lambda for complex logic
  • 47. 53 • Resolvers’ reuse & pipeline resolvers • Local Resolver – Invoke mutation with data as request payload – Avoid useless invocation for already calculated fields – Push data passed as mutation’s payload via subscription getMatchDay(params: InputGetMatchDay): [MatchDay] #@function(name:"getCurrentCompetitionStatus-${env}") #@function(name: "getMatchDay-${env}") type BaseFields{ field1: Int field2: String calculatedField: Int @function…. } type BaseFields{ field1: Int field2: String } type UsedByQuery{ baseFields: BaseFields calculated: Int @function….. } Type UsedByMutation{ baseFields: BaseFields calculated: Int }
  • 48. 54 • Shared IAM Role between lambda functions – custom resolvers for each lambda function • Custom languages for lambda functions – Custom tasks (run tests, compile, etc…) • GraphQL schema splitting • Multiple environments
  • 49. 55 • Multiple clients • RDS Proxy • AppSync Cache • AWS EventBridge – serverless event bus – replace SNS & SQS • DynamoDB – replace MySQL with NoSQL – streams - push events directly from our data source • Custom protection in AppSync – AWS Amplify: open source framework – AWS Cognito – custom rules for GraphQL operations
  • 50. 56
  • 51. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Caching Managed server-side caching Full API Caching Per Resolver Caching Encryption
  • 52. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Log insights
  • 53. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential X-Ray
  • 54. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Offline
  • 55. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Amplify DataStore Multi-platform (iOS/Android/React Native/Web) on-device persistent storage engine that automatically synchronizes data between mobile/web apps and the cloud using GraphQL.
  • 56. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential AWS Cloud
  • 57. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential ds_pk ds_sk Name Title … _lastChangedAt _TTL Post-xxx2019 02:12:07.123:1 Nadia Hello World 1541884315162 1541884320 Post-yyy2019 24:11:07.2:1 Pancho I’m Sleepy 1541884359527 1541884364 Post-zzz2019 24:11:07.3:3 Shaggy Running in the park 1541884404015 1541884409 ID Name Title … 123 Nadia Hello World 2 Pancho I’m Sleepy 3 Shaggy Running in the park Sync-enabled resolver createPost(input: CreatePostInput!): Post GraphQL Schema DataStore.save( new Post(Name:”Nadia” Title:“Hello World” ) );
  • 58. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential Amplify DataStore Before After
  • 59. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential • Start effortlessly • Scale with your business • Real-Time & Offline • Unify and secure access to your distributed data and services • Amplify integrations: DataStore, GraphQL Transform, Local Mocking and CodeGen https://aws.amazon.com/appsync/resources/#Videos
  • 60. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Confidential AWS Europe (Milan) Region On April, 28th AWS expanded its global footprint with the opening of the AWS Infrastructure Region in Italy. The new Region AWS Europe (Milano) brings advanced cloud technologies that enable opportunities for innovation, entrepreneurship, and digital transformation. For additional information about services and characteristics of an AWS Region, you can check the website: aws.amazon.com/local/italy/milan/
  • 61. 67 AWS Training & Certification https://www.aws.training: Free on-demand courses to help you build new cloud skills Introduction to Amazon API Gateway https://www.aws.training/Details/Video?id=16452 e-Learning: Amazon API Gateway for Serverless Applications https://www.aws.training/Details/eLearning?id=27199 e-Learning: Architecting Serverless Solutions https://www.aws.training/Details/eLearning?id=42594 For more info on AWS T&C visit: https://aws.amazon.com/it/training/
  • 62. Thanks! Stefano Sandrini, AWS Sr. EMEA Mobile Specialist SA Daniel De Gaspari, Solution Architect – Sky Italia