暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【深度】可能是最全的AWS产品介绍

达摩院首座 2021-05-23
845

        作为一个架构师,我个人其实很少关注云生态的发展趋势,毕竟技术上讲我更关注解决方案实现了哪些功能,而非这个方案是由云厂商还是软件开发商来提供,前后无非是运维和财务模式的差异。当然随着云原生技术的日趋火热,在蚕食本地市场的同时,吸收本地市场开发人才,服务更庞大群体,应对更快版本迭代要求,由此吸引更多客户,扩大营收又招徕更多开发人员,进入产品与市场的良性循环。

        但实际上云产品并没有并没有创造出太多的新功能和服务,这也可以理解,抛开那些金融云、医药云、物流云等有明显的行业属性的,通用云还是以满足应用间交互、资源优化、安全监控等基础设施和技术架构需求为主,这部分需求往往先有大厂(国外FAANG,国内BATJ)设计,开源社区跟上,云厂商借鉴模仿的形式为主。

        我们以FAANG的Facebook为例,它的技术架构大致如下:

  1. 首先需要为企业内部的服务器规划私有网络a,并且对a的边界以及a内所有对象(服务器、存储、数据库等)定义访问规则;

  2. 网络内最主要的对象就是服务器了,一般一个应用按照入站顺序会分为web服务器(用作服务发布和用户参数配置)、应用服务器(设计业务逻辑)以及数据库服务器(存放用户数据)。其中Web和应用服务器一般是独享的服务器,甚至需要考虑部署多节点以满足高可用要求,这部分自2000年后通常通过部署虚拟机b并挂载虚拟磁盘c来完成。高可用部分通过前端的负载均衡器g来保证入站请求的平均分配和在任意单节点故障时保证服务正常运行;

  3. 负载均衡器的外部是DNS服务h,毕竟谁也不想让用户通过IP来访问自家网站;

  4. 说回应用,他们的后端数据库可以是共享的,包括关系型数据库d用来存放结构化数据(例如用户名、昵称、关注等)和非关系型数据库e用来存放非结构化数据(例如Po文、日志、标签等)。

  5. 一般来讲,关系型数据库在碰到高并发访问时会遇到读写瓶颈,因此有必要配置数据缓冲层f以减少直接从数据库取数的频次。

  6. 在Web和应用服务器侧,尽管挂载了本地磁盘,但本地存储毕竟是有限的,一些媒体文件需要同步到更大的文件存储做持久化存放,这个存储区域i可以是内部的存储区域也可以是外部的网盘, 在转移过程中需要内容过滤器j对涉黄涉暴进行过滤;

  7. 互联网公司一定会采集用户的行为数据,然后加以分析得出用户画像,拿淘宝网为例,任何一张图片都会抓取用户的鼠标进入/离开/放大/点击等操作事件。

    当然脸书也不例外,因此在web服务器后需要部署事件流分析工具l,这些数据也会进入数据存储区域i。总体来讲我们不会关注单次点击事件,而会将这些原子数据分类成几个维度,比如单个商品点击总量,某类目点击总量,某时段点击总量做聚合录入,这需要依赖spark等MR计算工具mm不仅服务于数据流分析,数据库的ETL流程n也会输出到计算工具m,统一聚合后的数据进入到数据仓库o,最后形成分类报表通过BI工具p对外输出供业务做决策分析。

  8. Facebook的用户有Web端也有手机端,那内容上就需要做相应的格式转换,转换工作需要即时触发的程序k,在一有媒体数据入库时就同步到面向手机端的存储空间i上,或者反向转换。

  9. 和数据库需要缓存f一样,对于大容量的媒体文件也需要铺设内容发布网络q以减少调用源数据的频率。

  10. 当然这套系统之外还有通用组件服务短信服务r,邮件服务s和消息队列服务t,通过这些服务可以实现异步调用其他服务的功用。

  11. 所有这些系统在监控面板u的全局管理下运行,保证系统的安全性和可用性。

        这些组件映射到AWS的产品就是如下的交互图:

  1. a:VPC专网;

  2. b:EC2弹性计算资源;c:EBS弹性块存储;g:ELB弹性负载均衡器

  3. h:Route53全局DNS服务

  4. d:RDS关系型数据库服务;e:DynamoDB非结构化数据库

  5. f:ElastiCache弹性缓存

  6. i:S3对象存储;j:Rekognition图像与视频分析服务

  7. l:Kinesis流数据处理与分析;m:EMR大数据平台;n:Glue受控ETL服务;o:RedShift云数据仓库;p:AthenaWeb服务与Quicksight商业智能服务

  8. k:Lambda无服务器计算服务

  9. q:Edge Location边缘服务及CloudFront内容分发网络(CDN)服务

  10. r:SNS简单通知服务;s:SES简单邮件服务;t:SQS消息队列服务

  11. u:CloudWatch运维监控服务

    除此之外,在服务发布层所有内部API可以通过AWS的API网关发布,最上面的用户无论是浏览器用户还是移动端用户都可以通过AWS的Cognito做统一的用户管理。

        就像别的公有云一样,AWS的安全控制也是有一整套产品体系的,包括身份与访问管理IAM用来对所有入站的账号身份进行验证、识别及审计;秘钥管理系统KMS对系统间访问的令牌做有效性安全性管理;Web证书管理器ACM为对外发布的服务申请公网证书并统一保管;WAF应用防火墙对应用层的攻击进行有效监控和隔离;Inspector通过代理监控所有VPC内的服务器对已知漏洞进行及时提醒和修复建议。

        最后是Devops的框架,这部分内容本座在先前的持续集成与持续交付(一)(二)(三)(四)(五)已经做了详细介绍,这边不再做赘述。

达摩院首座∣关注开源技术



长按,识别二维码,加关注


文章转载自达摩院首座,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论