从单体到微服务:使用服务网格迁移 Snap 的架构
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
经过两年的架构演进,Snap 从单体迁移到了云托管的微服务,这使得计算成本降低了 65%,同时减少了冗余并提升了客户的可靠性,所有的这些迁移都满足了安全性和隐私合规性的需求。
面向服务架构为工程师提供了可扩展性和所有权。开源的边缘(edge)代理 Envoy 是核心的构建块,能够为服务间通信创建一致的层。内部的 Web 应用 Switchboard 构成了 Snap服务网格的控制平面,它为服务的所有者提供了一个地方来管理他们的服务依赖。
在过去的两年间,云基础设施不断演化,Snap 已经从 Google App Engine 中的单体应用转变成了 Kubernetes 中的微服务,其中 Kubernetes 可以跨 Amazon Web Services 和 Google Cloud。
从零开始实现基于微服务的系统时,会面临一些挑战,包括对现有底层基础设施的考虑,如网络拓扑、认证、云资源供应、部署、日志和监控、流量路由、限速以及 staging 与生产环境。
正如 Snap 的工程博客中所描述的,为了找到一个可行的方案,他们也考虑了 Snapchatters 当前的经验。文中也指出,他们没有一个专门的团队,因此没有时间实现这项计划。
Snap 没有从头开始,而是决定使用开源的边缘代理服务 Envoy,实现其服务网格设计模式。
Envoy 提供了很多特性,比如支持 gRPC 和 HTTP/2、客户端负载均衡、可插拔的过滤器、借助一组动态管理 API(如 xDS)所实现的数据平面和控制平面的清晰分离。随着 AWS 和 Google Cloud 都提供了可用的 Envoy,于是 Envoy 就成为了 Snap 中服务与服务间的通信层。在 Snap,每个 Envoy 代理都连接一个自定义的控制平面,通过 xDS API 接收服务发现和详细的流量管理配置。
在使用服务网格的过程中,很重要的一点就是解决 Envoy 中关于移动客户端通信的问题。除此之外,当在 AWS 和 Google Cloud 上同时运行时,工程师要站在安全的角度管理他们的 Envoy 配置。
由此,形成了 Snap 服务网格。Snap 有一个名为 Switchboard 的内部 Web 应用,它担任 Snap 服务唯一的控制平面,这样服务的所有者就可以管理他们的服务依赖了。
Switchboard 配置的核心是它的服务。每个服务都有一个协议和基本的元数据,如所有者、email 列表和描述。这些服务所组成的集群可以位于任意的云供应商、可用区或环境中。Switchboard 服务有它们的依赖和消费者,也就是其他的 Switchboard 服务。如果 Snap 当时把整个系统的 API 接口全部暴露给工程团队的话,那么将会有大量配置,从而导致管理上的困难。
Switchboard 的配置变更是存储在 DynamoDB 中的。服务网格上的 Envoy 代理通过一个双向的 gRPC 流连接至 xDS 控制平面。当某个服务的 Envoy 配置生成时,控制平面会发送更新后的配置给一小部分 Envoy 代理,并且在测定它们的健康状况之后,才将变更提交至整个网格。
与此同时,服务的所有者可以直接通过 Switchboard 供应和管理 Kubernetes 集群,还可以通过金丝雀发布、健康检查端点和分区滚动更新生成 spinnaker 管道。
为了将暴露给互联网的服务数量降至最低,Snap 为其微服务设计了一个共享的、内部的、分区的网络。将会有一个 API 网关暴露到互联网上,这样的话,没有外部流量可以直接与内部网络进行通信。
这个 API 网关上运行的 Envoy 镜像和微服务上运行的 Envoy 镜像是一样的,连接到相同的控制面板。除此之外,还有自定义的 Envoy 过滤器,用来处理 Snapchat 的认证模式以及限速和负载 shedding 功能。
统一的 Snap 服务网格架构图如下所示:
Snap 的服务网格目前运行在 AWS 和 Google Cloud 的七个可用区上,网格上有 300 多个生产环境的服务。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-05-07
本文作者:A Kulkrani
本文来自:“InfoQ”,了解相关信息可以关注“InfoQ”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
“零信任无接触社会”降临:个人隐私消亡还是进化?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 新冠疫情加速了人类在线化生活的到来,但却难以迅速提升人类和技术之间的信任关系。关于数据隐私的担忧在接触者追踪等“抗疫技术”面前依然普遍存在。 其核心问题是,在数字化治理时代,如何重新解读信任、隐私、社会治理等关键概念? 一个月前,苹果与谷歌宣布共同开发接触者追踪系统,以应对新冠疫情挑战。 这一系统将运用现有蓝牙技术追踪不同手机间的距离——如果有用户的新冠肺炎病毒检验呈阳性反应,那么其他用户的手机将搜寻过去一段时间的资料,判断是否有密切且长时间接触感染者的风险。 该计划可能覆盖全世界约三分之一的人口。虽然两家公司强调,这一系统可以保护用户隐私,但许多人仍然保持谨慎态度。 数据也证明了这一点。皮尤实验室最新的调查显示,当被问及如何看待利用智能手机来了解个人的社交隔离情况的时候,62%的人表示了不可接受。 流行病学专家指出,除非接触者追踪App的下载率达到特定区域人口的60%以上,追踪病毒的速度才能超过病毒传播的速度。 也就是说,如果没有信任,无论接触者追踪技术多么先进,它的“魔法”都无法施展...
- 下一篇
新基建的内涵、意义和隐忧 ,基于互联网大脑模型的分析
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 2020年4月20日上午,国家发改委召开4月份例行新闻发布会,首次就“新基建”概念和内涵作出正式的解释。“新型基础设施是以新发展理念为引领,以技术创新为驱动,以信息网络为基础,面向高质量发展需要,提供数字转型、智能升级、融合创新等服务的基础设施体系“”,这是发改委给出的“新基建”定义。 一.新基建提出背后的21世纪科技生态 对于如何理解新基建,不同的企业和研究机构已经给与很多专业解读。如果从21世纪科技生态的变化特点看,新基建的提出可以看做是过去20年来,中国进一步推动前沿科技生态协同发展的又一次努力。我们在之前的探讨中提出,过去50年,特别是过去20年,互联网的整体架构从网状向类脑模型变化是21世纪诸多前沿科技产生和爆发的主要原因。 互联网在经过1969年互联网的诞生、1974年TCP/IP协议、1989年万维网等基础的奠定后,开始加速向从网状结构向与类脑模型方向进化。2004年社交网络为代表的类脑神经元网络,2005年云计算为代表的类中枢神经系统,2009年物联网为代表的类感觉神经系...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,CentOS8安装Elasticsearch6.8.6