




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、搭建無服務器架構的移動應用技術創(chuàng)新 變革未來議程什么是無服務器 快速搭建移動后臺利用 GraphQL 優(yōu)化架構 移動應用開發(fā)工具什么是無服務器應用怎么處理硬件故障?怎么控制服務器的訪問權限?When should I decide toscale out my servers?什么時候應該擴容服務器?預算有限我要選擇哪種服務器?服務器還剩下多大的容量 還能處理多大的流量?“服務器”有沒更好的架構?無服務器架構無需維護 服務器靈活自動擴展高可用沒有閑置的資源快速搭建無服務器應用無服務器移動后臺架構 動靜分離InternetMobile appsAWSAmazon API GatewayAWS L
2、ambdaOther AWS services動態(tài)請求靜態(tài)資源Amazon S3無需維護基礎架構,只需要上傳代碼即可搭建無服務器Web應用上傳圖片 想自動壓縮?無服務器移動后臺架構 自動觸發(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應用集群任務觸發(fā)監(jiān)控堆積的消息數量
3、 增減應用服務器數量無服務器移動后臺架構 消息隊列消費AWSLambda自動觸發(fā) 并自動完成: 讀取 MessageLambda函數只需 負責處理所收到 的 MessageLambda函數 正常結束自動刪除SQS MessageAmazon SQSAWS Lambda 并發(fā)?AWS Lambda 并發(fā)AWS Lambda 根據增加的流量動態(tài)擴展容量突增流量,Lambda 將立即根據預定量增加您的并發(fā)執(zhí)行函數。500增加并發(fā)函數直到達到賬戶 的Soft LimitTHINK 并發(fā), NOT TPSAWS Lambda 并發(fā)控制設置針對單個 AWS Lambda 函數預留封頂停用AWS Lambd
4、a 原理AWS Lambda 的啟動引導runtime啟動你的codeWarm start下載你的code啟動新的containerAWS 優(yōu)化的部分你 優(yōu)化的部分Cold start利用 AWS Lambda 容器重用機制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第 二次調用時不再執(zhí)行Lambda Function 函數被調 用時執(zhí)行P99情況不會遇到冷啟動如果經測試,冷啟動時間較長,影響用戶體驗,可以進行定時預熱,特別是Java 和 C# 的應用可以利用CloudWatch 定時觸發(fā)預熱的Lambda,利用諸如Node.js 的非阻塞機制進行并發(fā)預熱容器優(yōu)化架構設定一個簡單場景一個活動 Event 發(fā)布和評論 Comment 的應用可發(fā)布新活動通知用戶可以進行評論用戶可關注某個活動,實時收到更新的評論當前基于 REST API 的應用設計DataREST EndpointsPOST /even
6、t POST /comment GET /eventList GET /eventDetail GET /commentList GET /commentPOST /eventDelete碎片化的建鏈標準 HTTP CallsAPI 關聯關系返回結果冗余信息多數據源支持排序和分頁訂閱實時通知 /commentListREST API 應用架構示例ElasticsearchDynamoDBPC 瀏覽器Web servers/event /eventList /commentAWS Lambda第三方服務stream移動端PubSub serversWebSocket servers訂閱 /com
7、mentListREST API 應用架構示例ElasticsearchDynamoDBPC 瀏覽器AmazonAPI Gateway/event /eventList /commentAWS Lambda第三方服務stream移動端PubSub serversWebSocket servers訂閱 /commentListREST API 應用架構示例ElasticsearchDynamoDBPC 瀏覽器移動端AmazonAPI GatewayAWS IoT訂閱/event /eventList /commentAWS Lambda第三方服務streamREST API 應用架構示例Elas
8、ticsearchDynamoDBPC 瀏覽器移動端訂閱/event /eventList /commentAWS Lambda第三方服務 /commentListstream?一個接口?只讀取想要的數據?GraphQL為 API 而生的查詢語言非常適合客戶端 App 操作數據誰在使用 GraphQL 語言Facebook 的移動應用從 2012 年就開始使用 GraphQL。GraphQL 規(guī)范于 2015 年開源,被各種體量的團隊所使用。GraphQL-數據操作語言Query 讀數據Mutation 寫數據然后讀數據Subscription 訂閱實時推送的數據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定義數據schema查詢query獲得數據data一個 GraphQL 請求就能準確獲得你想要的數據,不多不少。一個請求獲取多個資源,輕松應對比較慢的移動網絡API 演進無需劃分版本使用 GraphQL
10、的架構示例Alexa skillElasticsearch/graphql托管的 GraphQL AWS AppSyncPC 瀏覽器移動端訂閱AWS Lambda其他服務第三方服務 HTTP endpointstreamDynamoDBAWS AppSync 構建強大的數據驅動的APPS實時, 協(xié)作Apps離線編程模型 同步機制只收取你需要的 數據訪問多個數據源精細的權限控制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è)級安全性和精細訪問控制AWS AppSync 認證方式API KeyAWS IAM (Identity and Access Management) 使用角色來控制Amazon Cognito 用戶池,集成了多種社交服務提供商 (Face
15、book、Google+ 和 Login with Amazon),并支持使用 SAML 聯合身份。OpenID ConnectAWS AppSync 企業(yè)級安全性和精細訪問控制 (續(xù))讀數據鑒權的示例數據Owner可讀多用戶可讀用戶組可讀過濾結果子集只允許特定訪問基于GraphQL Resolver 實現數據訪問控制(例子:Owner可讀)參考文檔: /appsync/latest/devguide/security-authorization-use-cases.htmlAWS AppSync 可以構建的 APP 示例協(xié)作類APP儀表盤排行榜白板-社交、聊天和 約會APP復雜的數據結構和
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 存儲數據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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六年級上冊數學教案- 1.6圓的面積(一) 北師大版
- 合同制消防員報名表(2025年版)
- 一年級上冊數學教案-小雞吃食 10的加減法-北師大版
- 統(tǒng)編版語文一年級下冊第一單元1春夏秋冬 公開課一等獎創(chuàng)新教案(2課時)
- 2025年??诮洕鷮W院單招職業(yè)技能測試題庫及參考答案
- 2024年液位傳感器項目資金籌措計劃書代可行性研究報告
- 2025年湖南省株洲市單招職業(yè)適應性測試題庫帶答案
- 2025年度學校代課教師教學資源共享平臺建設合同
- 2025年度客戶信息保密外包服務合同
- 2025年度電信服務合同單方違約解除賠償倍數計算標準合同
- 現金調撥系統(tǒng)操作手冊教學課件
- 學校物業(yè)管理宿舍管理方案995
- PFMEA-失效模式分析案例
- 荔枝依舊年年紅
- SMT貼片線項目可行性研究報告
- 新加坡公司法-英文版
- 第五版-FMEA-新版FMEA【第五版】
- 口腔修復學第三章牙體缺損的修復
- 建設部環(huán)衛(wèi)勞動定額
- 2023年棗莊科技職業(yè)學院單招綜合素質模擬試題及答案解析
- 美容心理學概述(美容心理學課件)
評論
0/150
提交評論