版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、搭建無服務(wù)器架構(gòu)的移動(dòng)應(yīng)用技術(shù)創(chuàng)新 變革未來議程什么是無服務(wù)器 快速搭建移動(dòng)后臺(tái)利用 GraphQL 優(yōu)化架構(gòu) 移動(dòng)應(yīng)用開發(fā)工具什么是無服務(wù)器應(yīng)用怎么處理硬件故障?怎么控制服務(wù)器的訪問權(quán)限?When should I decide toscale out my servers?什么時(shí)候應(yīng)該擴(kuò)容服務(wù)器?預(yù)算有限我要選擇哪種服務(wù)器?服務(wù)器還剩下多大的容量 還能處理多大的流量?“服務(wù)器”有沒更好的架構(gòu)?無服務(wù)器架構(gòu)無需維護(hù) 服務(wù)器靈活自動(dòng)擴(kuò)展高可用沒有閑置的資源快速搭建無服務(wù)器應(yīng)用無服務(wù)器移動(dòng)后臺(tái)架構(gòu) 動(dòng)靜分離InternetMobile appsAWSAmazon API GatewayAWS L
2、ambdaOther AWS services動(dòng)態(tài)請求靜態(tài)資源Amazon S3無需維護(hù)基礎(chǔ)架構(gòu),只需要上傳代碼即可搭建無服務(wù)器Web應(yīng)用上傳圖片 想自動(dòng)壓縮?無服務(wù)器移動(dòng)后臺(tái)架構(gòu) 自動(dòng)觸發(fā)InternetMobile appsAWS LambdaAWSAmazon API GatewayOther AWS servicesAmazon S3動(dòng)態(tài)請求靜態(tài)資源上傳圖片到 Amazon S3,自動(dòng)觸發(fā) AWS Lambda 完成圖片壓縮AWS Lambda消息隊(duì)列的消費(fèi)?處理消息隊(duì)列的方式 傳統(tǒng)模式Amazon SQSDelete Message讀取Message應(yīng)用集群任務(wù)觸發(fā)監(jiān)控堆積的消息數(shù)量
3、 增減應(yīng)用服務(wù)器數(shù)量無服務(wù)器移動(dòng)后臺(tái)架構(gòu) 消息隊(duì)列消費(fèi)AWSLambda自動(dòng)觸發(fā) 并自動(dòng)完成: 讀取 MessageLambda函數(shù)只需 負(fù)責(zé)處理所收到 的 MessageLambda函數(shù) 正常結(jié)束自動(dòng)刪除SQS MessageAmazon SQSAWS Lambda 并發(fā)?AWS Lambda 并發(fā)AWS Lambda 根據(jù)增加的流量動(dòng)態(tài)擴(kuò)展容量突增流量,Lambda 將立即根據(jù)預(yù)定量增加您的并發(fā)執(zhí)行函數(shù)。500增加并發(fā)函數(shù)直到達(dá)到賬戶 的Soft LimitTHINK 并發(fā), NOT TPSAWS Lambda 并發(fā)控制設(shè)置針對單個(gè) AWS Lambda 函數(shù)預(yù)留封頂停用AWS Lambd
4、a 原理AWS Lambda 的啟動(dòng)引導(dǎo)runtime啟動(dòng)你的codeWarm start下載你的code啟動(dòng)新的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、生成的時(shí)候執(zhí)行在容器重用,即Lambda Function第 二次調(diào)用時(shí)不再執(zhí)行Lambda Function 函數(shù)被調(diào) 用時(shí)執(zhí)行P99情況不會(huì)遇到冷啟動(dòng)如果經(jīng)測試,冷啟動(dòng)時(shí)間較長,影響用戶體驗(yàn),可以進(jìn)行定時(shí)預(yù)熱,特別是Java 和 C# 的應(yīng)用可以利用CloudWatch 定時(shí)觸發(fā)預(yù)熱的Lambda,利用諸如Node.js 的非阻塞機(jī)制進(jìn)行并發(fā)預(yù)熱容器優(yōu)化架構(gòu)設(shè)定一個(gè)簡單場景一個(gè)活動(dòng) Event 發(fā)布和評論 Comment 的應(yīng)用可發(fā)布新活動(dòng)通知用戶可以進(jìn)行評論用戶可關(guān)注某個(gè)活動(dòng),實(shí)時(shí)收到更新的評論當(dāng)前基于 REST API 的應(yīng)用設(shè)計(jì)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ù)源支持排序和分頁訂閱實(shí)時(shí)通知 /commentListREST API 應(yīng)用架構(gòu)示例ElasticsearchDynamoDBPC 瀏覽器Web servers/event /eventList /commentAWS Lambda第三方服務(wù)stream移動(dòng)端PubSub serversWebSocket servers訂閱 /com
7、mentListREST API 應(yīng)用架構(gòu)示例ElasticsearchDynamoDBPC 瀏覽器AmazonAPI Gateway/event /eventList /commentAWS Lambda第三方服務(wù)stream移動(dòng)端PubSub serversWebSocket servers訂閱 /commentListREST API 應(yīng)用架構(gòu)示例ElasticsearchDynamoDBPC 瀏覽器移動(dòng)端AmazonAPI GatewayAWS IoT訂閱/event /eventList /commentAWS Lambda第三方服務(wù)streamREST API 應(yīng)用架構(gòu)示例Elas
8、ticsearchDynamoDBPC 瀏覽器移動(dòng)端訂閱/event /eventList /commentAWS Lambda第三方服務(wù) /commentListstream?一個(gè)接口?只讀取想要的數(shù)據(jù)?GraphQL為 API 而生的查詢語言非常適合客戶端 App 操作數(shù)據(jù)誰在使用 GraphQL 語言Facebook 的移動(dòng)應(yīng)用從 2012 年就開始使用 GraphQL。GraphQL 規(guī)范于 2015 年開源,被各種體量的團(tuán)隊(duì)所使用。GraphQL-數(shù)據(jù)操作語言Query 讀數(shù)據(jù)Mutation 寫數(shù)據(jù)然后讀數(shù)據(jù)Subscription 訂閱實(shí)時(shí)推送的數(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一個(gè) GraphQL 請求就能準(zhǔn)確獲得你想要的數(shù)據(jù),不多不少。一個(gè)請求獲取多個(gè)資源,輕松應(yīng)對比較慢的移動(dòng)網(wǎng)絡(luò)API 演進(jìn)無需劃分版本使用 GraphQL
10、的架構(gòu)示例Alexa skillElasticsearch/graphql托管的 GraphQL AWS AppSyncPC 瀏覽器移動(dòng)端訂閱AWS Lambda其他服務(wù)第三方服務(wù) HTTP endpointstreamDynamoDBAWS AppSync 構(gòu)建強(qiáng)大的數(shù)據(jù)驅(qū)動(dòng)的APPS實(shí)時(shí), 協(xié)作Apps離線編程模型 同步機(jī)制只收取你需要的 數(shù)據(jù)訪問多個(gè)數(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 實(shí)現(xiàn)數(shù)據(jù)訪問控制(例子:Owner可讀)參考文檔: /appsync/latest/devguide/security-authorization-use-cases.htmlAWS AppSync 可以構(gòu)建的 APP 示例協(xié)作類APP儀表盤排行榜白板-社交、聊天和 約會(huì)APP復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和
16、類型的APP基于地理位置的APPAWS AppSync 示例代碼與文檔資源 /appsync/resources/開發(fā)工具AWS Amplify 開發(fā)包針對前端和移動(dòng)端開發(fā)的 JavaScript LibraryJavaScript (frameworks)React + React Native功能AuthenticationAnalytics,APP用戶行為分析API, 支持 AWS Signature Version 4GraphQL ClientStorage,管理 Amazon S3 存儲(chǔ)數(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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- CCAA - 2015年03月建筑施工領(lǐng)域?qū)I(yè)答案及解析 - 詳解版(70題)
- 河北省保定市六校聯(lián)考2025-2026學(xué)年高一上學(xué)期1月期末考試語文試題(含答案)
- 2025-2026學(xué)年學(xué)年度第一學(xué)期期末質(zhì)量監(jiān)測高二英語科試題(含答案)
- 養(yǎng)老院消防演練制度
- 養(yǎng)老院定期體檢制度
- 智能垃圾桶生產(chǎn)建設(shè)項(xiàng)目環(huán)評報(bào)告
- 老年終末期跌倒預(yù)防的多靶點(diǎn)干預(yù)策略
- 冷空氣影響期間交通安全管理規(guī)定
- 2025年阜陽潁上縣城鄉(xiāng)水務(wù)有限公司招聘考試真題
- 海鹽采收工安全宣傳水平考核試卷含答案
- 北京通州產(chǎn)業(yè)服務(wù)有限公司招聘備考題庫必考題
- 國家中醫(yī)藥管理局《中醫(yī)藥事業(yè)發(fā)展“十五五”規(guī)劃》全文
- 眼科學(xué)-眼科常用檢查法
- GB 25199-2015生物柴油調(diào)合燃料(B5)
- DB32/T+4396-2022《勘察設(shè)計(jì)企業(yè)質(zhì)量管理標(biāo)準(zhǔn)》-(高清正版)
- 甩項(xiàng)竣工協(xié)議書27761
- 臺(tái)州市街頭鎮(zhèn)張家桐村調(diào)研報(bào)告
- 壓力排水管道安裝技術(shù)交底
- 電梯檢驗(yàn)安全導(dǎo)則
- 糖代謝紊亂生物化學(xué)檢驗(yàn)
- 科技基礎(chǔ)性工作專項(xiàng)項(xiàng)目科學(xué)數(shù)據(jù)匯交方案編制
評論
0/150
提交評論