搭建無服務(wù)器架構(gòu)的移動應(yīng)用_第1頁
搭建無服務(wù)器架構(gòu)的移動應(yīng)用_第2頁
搭建無服務(wù)器架構(gòu)的移動應(yīng)用_第3頁
搭建無服務(wù)器架構(gòu)的移動應(yīng)用_第4頁
搭建無服務(wù)器架構(gòu)的移動應(yīng)用_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、搭建無服務(wù)器架構(gòu)的移動應(yīng)用技術(shù)創(chuàng)新 變革未來議程什么是無服務(wù)器 快速搭建移動后臺利用 GraphQL 優(yōu)化架構(gòu) 移動應(yīng)用開發(fā)工具什么是無服務(wù)器應(yīng)用怎么處理硬件故障?怎么控制服務(wù)器的訪問權(quán)限?When should I decide toscale out my servers?什么時候應(yīng)該擴(kuò)容服務(wù)器?預(yù)算有限我要選擇哪種服務(wù)器?服務(wù)器還剩下多大的容量 還能處理多大的流量?“服務(wù)器”有沒更好的架構(gòu)?無服務(wù)器架構(gòu)無需維護(hù) 服務(wù)器靈活自動擴(kuò)展高可用沒有閑置的資源快速搭建無服務(wù)器應(yīng)用無服務(wù)器移動后臺架構(gòu) 動靜分離InternetMobile appsAWSAmazon API GatewayAWS L

2、ambdaOther AWS services動態(tài)請求靜態(tài)資源Amazon S3無需維護(hù)基礎(chǔ)架構(gòu),只需要上傳代碼即可搭建無服務(wù)器Web應(yīng)用上傳圖片 想自動壓縮?無服務(wù)器移動后臺架構(gòu) 自動觸發(fā)InternetMobile appsAWS LambdaAWSAmazon API GatewayOther AWS servicesAmazon S3動態(tài)請求靜態(tài)資源上傳圖片到 Amazon S3,自動觸發(fā) AWS Lambda 完成圖片壓縮AWS Lambda消息隊列的消費?處理消息隊列的方式 傳統(tǒng)模式Amazon SQSDelete Message讀取Message應(yīng)用集群任務(wù)觸發(fā)監(jiān)控堆積的消息數(shù)量

3、 增減應(yīng)用服務(wù)器數(shù)量無服務(wù)器移動后臺架構(gòu) 消息隊列消費AWSLambda自動觸發(fā) 并自動完成: 讀取 MessageLambda函數(shù)只需 負(fù)責(zé)處理所收到 的 MessageLambda函數(shù) 正常結(jié)束自動刪除SQS MessageAmazon SQSAWS Lambda 并發(fā)?AWS Lambda 并發(fā)AWS Lambda 根據(jù)增加的流量動態(tài)擴(kuò)展容量突增流量,Lambda 將立即根據(jù)預(yù)定量增加您的并發(fā)執(zhí)行函數(shù)。500增加并發(fā)函數(shù)直到達(dá)到賬戶 的Soft LimitTHINK 并發(fā), NOT TPSAWS Lambda 并發(fā)控制設(shè)置針對單個 AWS Lambda 函數(shù)預(yù)留封頂停用AWS Lambd

4、a 原理AWS Lambda 的啟動引導(dǎo)runtime啟動你的codeWarm start下載你的code啟動新的containerAWS 優(yōu)化的部分你 優(yōu)化的部分Cold start利用 AWS Lambda 容器重用機(jī)制var AWS = require(aws-sdk); var uuid = require(node-uuid); var db;exports.myHandler = function(event, context, callback) if (!db | db.isConnected() db = setupConnection();/ Rest of logic容器

5、生成的時候執(zhí)行在容器重用,即Lambda Function第 二次調(diào)用時不再執(zhí)行Lambda Function 函數(shù)被調(diào) 用時執(zhí)行P99情況不會遇到冷啟動如果經(jīng)測試,冷啟動時間較長,影響用戶體驗,可以進(jìn)行定時預(yù)熱,特別是Java 和 C# 的應(yīng)用可以利用CloudWatch 定時觸發(fā)預(yù)熱的Lambda,利用諸如Node.js 的非阻塞機(jī)制進(jìn)行并發(fā)預(yù)熱容器優(yōu)化架構(gòu)設(shè)定一個簡單場景一個活動 Event 發(fā)布和評論 Comment 的應(yīng)用可發(fā)布新活動通知用戶可以進(jìn)行評論用戶可關(guān)注某個活動,實時收到更新的評論當(dāng)前基于 REST API 的應(yīng)用設(shè)計DataREST EndpointsPOST /even

6、t POST /comment GET /eventList GET /eventDetail GET /commentList GET /commentPOST /eventDelete碎片化的建鏈標(biāo)準(zhǔn) HTTP CallsAPI 關(guān)聯(lián)關(guān)系返回結(jié)果冗余信息多數(shù)據(jù)源支持排序和分頁訂閱實時通知 /commentListREST API 應(yīng)用架構(gòu)示例ElasticsearchDynamoDBPC 瀏覽器Web servers/event /eventList /commentAWS Lambda第三方服務(wù)stream移動端PubSub serversWebSocket servers訂閱 /com

7、mentListREST API 應(yīng)用架構(gòu)示例ElasticsearchDynamoDBPC 瀏覽器AmazonAPI Gateway/event /eventList /commentAWS Lambda第三方服務(wù)stream移動端PubSub serversWebSocket servers訂閱 /commentListREST API 應(yīng)用架構(gòu)示例ElasticsearchDynamoDBPC 瀏覽器移動端AmazonAPI GatewayAWS IoT訂閱/event /eventList /commentAWS Lambda第三方服務(wù)streamREST API 應(yīng)用架構(gòu)示例Elas

8、ticsearchDynamoDBPC 瀏覽器移動端訂閱/event /eventList /commentAWS Lambda第三方服務(wù) /commentListstream?一個接口?只讀取想要的數(shù)據(jù)?GraphQL為 API 而生的查詢語言非常適合客戶端 App 操作數(shù)據(jù)誰在使用 GraphQL 語言Facebook 的移動應(yīng)用從 2012 年就開始使用 GraphQL。GraphQL 規(guī)范于 2015 年開源,被各種體量的團(tuán)隊所使用。GraphQL-數(shù)據(jù)操作語言Query 讀數(shù)據(jù)Mutation 寫數(shù)據(jù)然后讀數(shù)據(jù)Subscription 訂閱實時推送的數(shù)據(jù)GraphQL-工作方式id:

9、 1,name: Get Milk,priority: 1,id: 2,name: Go to gym,priority: 5,type Query getTodos: Todoquery getTodos id nameprioritytype Todo id: ID! name: Stringdescription: String priority: Int duedate: String定義數(shù)據(jù)schema查詢query獲得數(shù)據(jù)data一個 GraphQL 請求就能準(zhǔn)確獲得你想要的數(shù)據(jù),不多不少。一個請求獲取多個資源,輕松應(yīng)對比較慢的移動網(wǎng)絡(luò)API 演進(jìn)無需劃分版本使用 GraphQL

10、的架構(gòu)示例Alexa skillElasticsearch/graphql托管的 GraphQL AWS AppSyncPC 瀏覽器移動端訂閱AWS Lambda其他服務(wù)第三方服務(wù) HTTP endpointstreamDynamoDBAWS AppSync 構(gòu)建強(qiáng)大的數(shù)據(jù)驅(qū)動的APPS實時, 協(xié)作Apps離線編程模型 同步機(jī)制只收取你需要的 數(shù)據(jù)訪問多個數(shù)據(jù)源精細(xì)的權(quán)限控制AWS AppSync 演示AWS AppSyncx。APlsEvent Demo App SchemaQuer iesData Sour cesSett ingsCreate ResourcesUndo Editssav

11、e SchemaAWS AppSyncEvent Demo AppSchemaSchemaD邸, ign your sch ema using GrapliQL SDL, at ta cli r esolvers, an d quick ly d eploy AWS r esources., InfoSchema Export schema ,.1 . type Comment 23456Resolve1rs1 Filter types.Comment7 8 9 01# The i.d of the cOOlllents parent event. event i d: ID !# A uni

12、.que i.denti.fi.er for the cornnent.co 忭 譏 1entr d: Stri.ng!# The cOOlllents content . cont ent : S 七 r i. ngl# The clllllllent ti.mestamp. This field is i.ndexed to enabl cr eat edAt : St r i.ng!1112 type CommentConnection 13i.t erns: Comment Fieldeventld: ID!commentld: String!Resolver三三AWS AppSync

13、Event Demo AppQueries。QueriesWrite, valida te, an d test GraphQL que,rie.s. Infoi.t ems i.d name141516171819 20 I. 21-.- query ql 如 t a : getEvent : name : hell oevent , when : f r t day , wher e : offtce22-.-getEv 侖 nt ( t d : 0a79f950-e807-45f9-a6d0-8namewhenwhe尸e2627 Document ation Expl o:rerXQ,

14、Search Sch ema.A GraphQL schema provides a root type for each kind of operation.ROOT TYPESquery: Querymutation: Mutationsubscription: SubscrlptklnQUERY VAR I ABLESLOGSAWS AppSync 企業(yè)級安全性和精細(xì)訪問控制AWS AppSync 認(rèn)證方式API KeyAWS IAM (Identity and Access Management) 使用角色來控制Amazon Cognito 用戶池,集成了多種社交服務(wù)提供商 (Face

15、book、Google+ 和 Login with Amazon),并支持使用 SAML 聯(lián)合身份。OpenID ConnectAWS AppSync 企業(yè)級安全性和精細(xì)訪問控制 (續(xù))讀數(shù)據(jù)鑒權(quán)的示例數(shù)據(jù)Owner可讀多用戶可讀用戶組可讀過濾結(jié)果子集只允許特定訪問基于GraphQL Resolver 實現(xiàn)數(shù)據(jù)訪問控制(例子:Owner可讀)參考文檔: /appsync/latest/devguide/security-authorization-use-cases.htmlAWS AppSync 可以構(gòu)建的 APP 示例協(xié)作類APP儀表盤排行榜白板-社交、聊天和 約會APP復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和

16、類型的APP基于地理位置的APPAWS AppSync 示例代碼與文檔資源 /appsync/resources/開發(fā)工具AWS Amplify 開發(fā)包針對前端和移動端開發(fā)的 JavaScript LibraryJavaScript (frameworks)React + React Native功能AuthenticationAnalytics,APP用戶行為分析API, 支持 AWS Signature Version 4GraphQL ClientStorage,管理 Amazon S3 存儲數(shù)據(jù)Push Notifications,Amazon PinpointInteractions

17、,Amazon LEXPubSubInternationalization,語言國際化方案Cache, LRU(Least Recently Used) CacheAWS Amplify 開發(fā)包與 Apollo GraphQL Client 集成離線緩存 (/apollographql)https:/aws-amplify.github.io/AWS Amplify 前端訪問 GraphQL 示例代碼 from aws-amplify;import Amplify, API, graphqlOperation import aws_config from ./aws-exports; Amplify.configure(aws_config);const ListEvents = query ListEvents listEvents items id name;con

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論