2019独角兽企业重金招聘Python工程师标准>>>

微服务之后什么最火?毫无疑问ServiceMesh。 目前各个大厂都在Mesh化,Mesh的前身是Side Car模式,随着互联网时代/移动互联网时代以及未来IOT时代发展,互联网架构在数据量,高并发,高可用场景会面临几何倍数的增长,同时对于我们的系统也是几何倍数的挑战,我们需要在这个时间点到来之前将我们的系统提前进化,于是CNNF,Service Mesh成为了服务化的未来。

系统服务化之后,服务间通信需要关注什么:

  • 服务发现
  • 负载均衡
  • 路由
  • 流控
  • 通信可靠性
  • 弹性
  • 安全
  • 监控,日志

API 网关

API网关可以集中式的管理这些功能,但是会出现单点故障,并且实现起来网关会变得越来越臃肿。 并且网关是一个集中式的处理,Service Mesh是网络通信基础设施,可以将网络功能从代码中剥离出来。 通过Service Mesh不用在服务代码中实现用于可靠性通信的模式或断路,超时等控制。

Service Mesh是一个专门的软件基础设施层,和主进程独立,通过(HTTP,GRPC)进行代理通信,用于控制和监控微服务应用程序中服务到服务的内部通信,让服务到服务通信变得快速,安全,可靠。

通常分为:数据层和控制层。

服务开发者不会意识到Service Mesh的存在,平台工程师则通过这套新的工具,以确保可靠性,安全性和可见性。

我们可以将Service Mesh看成路由器和交换机互联的设备组成的(第七层)网络。

通常我们采用代理方式,拦截所有出入的流量来进行请求的安全,可靠,及时的处理。

Service Mesh架构中代理使用的是边车模式实现的。

边车模式:是附属在主应用程序,提供平台功能用以补充该主应用程序功能,比如路由,负载均衡,弹性,深度探测和访问控制。

Service Mesh不仅扩展了主应用的能力,还要监控和保护应用程序,是插在微服务和网络之间的一个透明的基础设施层,以便对服务进行插入,收集检测数据,而无需修改应用程序。

以Linkerd为例

当一个请求经过Linkerd时,会发生以下事件。

Linkerd根据动态路由规则确定请求是发送给哪个服务的,比如是发送给生产环境的还是staging环境的服务? 是发给本地数据中心的还是云端数据中心的服务? 是发送给新版的还是旧版的服务?这些路由规则是可以动态配置的,可以应用在全局的流量上,也可以应用在部分流量上。

在确定了请求的目标服务后,Linkerd从服务发现端点获取相应的服务实例。如果服务实例信息出现了偏差,Linkerd需要决定从哪个信息的来源更值得信任。

Linkerd根据某些因子,比如最近处理请求的延迟情况,选择更优秀的实例。

Linkerd向选中的实例发送请求,并把延迟情况和响应信息记录下来。

如果选中的实例发生宕机,无法响应请求,Linkerd会把请求转发给其他实例,当然服务实例需要做成幂等的。

如果一个实例持续返回错误,Linkerd就会将其从负载均衡池移除,并在稍后定时重试,重试成功重新放入负载均衡池。

如果请求超时,则不进行重试,进行记录,最终一致性。

Linkerd以度量指标和分布式日志的方式记录上述行为,然后将度量指标发送中心度量指标系统。

Service Mesh

大规模分布式系统又一个共性:局部故障累积到一定程度会造成系统层面的灾难。

Service Mesh作用是在底层系统的负载达到上限之前,通过流量分散和快速实效来防止这些故障破坏整个系统。

云原生应用的前身:应用层被拆分成多个服务,也就是微服务,这样的系统需要一个通信层,以客户端SDK的方式存在。

云原生应用在之前微服务模型中加入了两个额外的元素:容器和服务编排层。容器提供了资源隔离和依赖管理,服务编排层对底层的硬件进行抽象池化。

边车SDK,容器,服务编排框架让应用程序在云环境中具备了伸缩能力和处理故障的能力。但随着服务实例的数量增长,服务编排需要无时无刻的调度实例,请求在服务拓扑之间穿梭的轨迹变得越来越复杂,再加上不用语言开发的服务实例很多,之前的“胖客户端”方式行不通了。

于是催生了服务间通信层的出现,这个层不会与应用程序的代码耦合,又能捕获底层环境的高度动态的特点,就是Service Mesh。

转载于:https://my.oschina.net/u/1000241/blog/1845931

服务化的未来--ServiceMesh?相关推荐

  1. 快手大数据平台服务化实践

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 本文是围绕着快手的数据服务化中台进行介绍. 第一部分是背景介绍,包括数据开发的痛点. 第二部分是介 ...

  2. 快手数据中台建设实践

    导读:本文主要围绕快手数据中台大数据服务化进行了介绍.第一部分是背景介绍,包括数据开发的痛点,第二部分是介绍大数据服务化平台,包括平台架构以及关键细节详解,第三部分是经验总结和未来思考. 背景 快手是 ...

  3. 千万QPS毫秒响应:快手数据中台建设实践

    " 本文整理自快手数据平台部,数据服务化中台负责人倪顺发表的<快手数据中台建设-大数据服务化之路>的演讲. 围绕数据资产服务化,服务于业务产生商业价值进行了分享: 第一部分是背景 ...

  4. 阿里中间件性能挑战赛启动,“开源”赛题独家剖析!

    4月26日,在2018云栖大会南京峰会上,阿里巴巴研究员林昊正式发布了第四届阿里中间件性能挑战赛.挑战赛以开源项目为背景,核心技术为Dubbo和RocketMQ,目的是通过大赛向技术爱好者们传达开源精 ...

  5. 西华大学计算机学院陈鹏,中国计算机学会CCF服务计算专委会走进西华大学

    近日,"中国计算机学会CCFF服务计算专委走进高校活动"来到西华大学.此次活动邀请到CCF服务计算专委会副主任.天津大学冯志勇教授,南京大学马晓星教授,CCF服务计算专委会副秘书长 ...

  6. 【物联网】思科扔下数颗物联网重磅炸弹,中国IoT圈却选择集体视而不见!

    来源: 物联网智库 原创 作者:物女王 就在前几天,一年一度的Cisco Live 2017用户大会上,思科发布了其10年来最具颠覆性的创新,说是开启了IoT的新时代都不为过,但国内物联网圈却选择集体 ...

  7. 用友优普孙永军:制造业的三座“大山”

    本文讲的是用友优普孙永军:制造业的三座"大山",结合中国制造2025.工业4.0以及互联网+的推出,这为中国制造业转型升级带来了巨大的机遇,但中国制造业想要抓住这些机遇,实现转型升 ...

  8. 快手短视频如何支撑 10 亿月活,揭秘快手大数据中台架构!

    导读:本文主要围绕快手数据中台大数据服务化进行了介绍.第一部分是背景介绍,包括数据开发的痛点,第二部分是介绍大数据服务化平台,包括平台架构以及关键细节详解,第三部分是经验总结和未来思考. 背景 快手是 ...

  9. 博时基金云原生架构下的统一云管平台

    博时基金管理有限公司(以下简称为"博时基金")成立于1998年,是中国内地首批成立的五家基金管理公司之一.博时基金总部位于深圳,在北京.上海等地设有分公司,同时拥有博时基金(国际) ...

最新文章

  1. Bloomberg开源面向OCaml的JavaScript后端BuckleScript
  2. java实现排序二叉树
  3. virtualbox虚拟机ubuntu和宿主机xp文件件共享方法
  4. C语言 | 基于卡尔曼滤波器的角度测量仪(MPU6050)
  5. nsfocus 十周年了 时间过得好快啊... 恭喜下...
  6. 【数字逻辑设计】Logisim构建锁存器/触发器
  7. 网络:Server returned HTTP response code: 400(url中文)
  8. (篇七)输入任意个数字,输出最大值最小值,且进行排序排序
  9. bzoj 1710: [Usaco2007 Open]Cheappal 廉价回文【区间dp】
  10. Polylink 智能话机之—— e-talk 2200
  11. php类似indexof的方法[转]
  12. Python使用打码平台进行识别验证码
  13. web2.0是个异数?
  14. 哪些人需要发表期刊论文
  15. SARS-CoV-2的近端起源
  16. 牛逼!这个网站可以帮助程序员命名变量和函数!
  17. 两种依赖注入的类型是什么?
  18. 清微智能CTO欧阳鹏:架构创新是通往高性能计算芯片必由之路|量子位·视点分享回顾...
  19. adb 判断imei_adb 获取imei
  20. 电脑桌面下方的任务栏卡死解决方案:

热门文章

  1. Windows 10 周年更新后TPM的一个bug?
  2. linux 下使用crontab 定时打包日志并删除已被打包的日志
  3. 拼接多个 wchar_t *
  4. magento 为用户注册增加一个字段(转)
  5. 遇到一个由于事务控制不当造成错误的Bug
  6. win10 rabbitMQ的安装与测试
  7. 短视频+直播——直播系统开发新模式
  8. 给定二叉树先序、中序遍历序列,求后序遍历
  9. PLSQL_性能优化系列04_Oracle Optimizer优化器
  10. 用例设计大全(整理)