搭建无服务器架构的移动应用_第1页
搭建无服务器架构的移动应用_第2页
搭建无服务器架构的移动应用_第3页
搭建无服务器架构的移动应用_第4页
搭建无服务器架构的移动应用_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、搭建无服务器架构的移动应用技术创新 变革未来议程什么是无服务器 快速搭建移动后台利用 GraphQL 优化架构 移动应用开发工具什么是无服务器应用怎么处理硬件故障?怎么控制服务器的访问权限?When should I decide toscale out my servers?什么时候应该扩容服务器?预算有限我要选择哪种服务器?服务器还剩下多大的容量 还能处理多大的流量?“服务器”有没更好的架构?无服务器架构无需维护 服务器灵活自动扩展高可用没有闲置的资源快速搭建无服务器应用无服务器移动后台架构 动静分离InternetMobile appsAWSAmazon API GatewayAWS L

2、ambdaOther AWS services动态请求静态资源Amazon S3无需维护基础架构,只需要上传代码即可搭建无服务器Web应用上传图片 想自动压缩?无服务器移动后台架构 自动触发InternetMobile appsAWS LambdaAWSAmazon API GatewayOther AWS servicesAmazon S3动态请求静态资源上传图片到 Amazon S3,自动触发 AWS Lambda 完成图片压缩AWS Lambda消息队列的消费?处理消息队列的方式 传统模式Amazon SQSDelete Message读取Message应用集群任务触发监控堆积的消息数量

3、 增减应用服务器数量无服务器移动后台架构 消息队列消费AWSLambda自动触发 并自动完成: 读取 MessageLambda函数只需 负责处理所收到 的 MessageLambda函数 正常结束自动删除SQS MessageAmazon SQSAWS Lambda 并发?AWS Lambda 并发AWS Lambda 根据增加的流量动态扩展容量突增流量,Lambda 将立即根据预定量增加您的并发执行函数。500增加并发函数直到达到账户 的Soft LimitTHINK 并发, NOT TPSAWS Lambda 并发控制设置针对单个 AWS Lambda 函数预留封顶停用AWS Lambd

4、a 原理AWS Lambda 的启动引导runtime启动你的codeWarm start下载你的code启动新的containerAWS 优化的部分你 优化的部分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、生成的时候执行在容器重用,即Lambda Function第 二次调用时不再执行Lambda Function 函数被调 用时执行P99情况不会遇到冷启动如果经测试,冷启动时间较长,影响用户体验,可以进行定时预热,特别是Java 和 C# 的应用可以利用CloudWatch 定时触发预热的Lambda,利用诸如Node.js 的非阻塞机制进行并发预热容器优化架构设定一个简单场景一个活动 Event 发布和评论 Comment 的应用可发布新活动通知用户可以进行评论用户可关注某个活动,实时收到更新的评论当前基于 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 规范于 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实时, 协作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 企业级安全性和精细访问控制AWS AppSync 认证方式API KeyAWS IAM (Identity and Access Management) 使用角色来控制Amazon Cognito 用户池,集成了多种社交服务提供商 (Face

15、book、Google+ 和 Login with Amazon),并支持使用 SAML 联合身份。OpenID ConnectAWS AppSync 企业级安全性和精细访问控制 (续)读数据鉴权的示例数据Owner可读多用户可读用户组可读过滤结果子集只允许特定访问基于GraphQL Resolver 实现数据访问控制(例子:Owner可读)参考文档: /appsync/latest/devguide/security-authorization-use-cases.htmlAWS AppSync 可以构建的 APP 示例协作类APP仪表盘排行榜白板-社交、聊天和 约会APP复杂的数据结构和

16、类型的APP基于地理位置的APPAWS AppSync 示例代码与文档资源 /appsync/resources/开发工具AWS Amplify 开发包针对前端和移动端开发的 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 开发包与 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. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论