BT

您是否属于早期采用者或者创新人士?InfoQ正在努力为您设计更多新功能。了解更多

Istio:用于微服务的服务啮合层

| 作者 Abel Avram 关注 4 他的粉丝 ,译者 Rays 关注 1 他的粉丝 发布于 2017年5月31日. 估计阅读时间: 不到一分钟 | 硅谷人工智能、机器学习、互联网金融、未来移动技术架构 ,尽在QCon上海2017

Google、IBM和Lyft开源了微服务管理、保护和监控框架Istio。Istio为希腊语,意思是“启航”。

微服务简化了开发,它将创建复杂系统的任务切分为数十乃至上百个小服务,这些小服务易于被小型的软件工程师团队所理解和修改。但是微服务并未真正地消除复杂性,而是将复杂性迁移到对大量服务的连接、管理和监控上。其中涉及对上百个服务的管理、处理部署问题、版本控制、安全、故障转移、策略执行、遥测和监控等,实现它们并非易事。Istio力图去解决这些问题。

按Google的提法,Istio是“架构的一层,处于服务和网络间”,它“通常连同服务部署一起,统称为服务啮合层(Service Mesh)”。在Istio网站上,详细解释了“服务啮合层”这一概念:

如果我们可以在架构中的服务和网络间透明地注入一层,那么该层将赋予操作人员对所需功能的控制,同时将开发人员从编码实现分布式系统问题中解放出来。通常将该统一的架构层与服务部署一起,统称为一个“服务啮合层”。由于微服务有助于分离各个特性团队(Feature Team),因此服务啮合层有助于将操作人员从应用特性开发和发布过程中分离出来。通过系统地注入代理到微服务间的网络路径中,Istio将迥异的微服务转变成一个集成的服务啮合层。

Istio可在任何云上或私有的环境中运行。虽然首个测试版(即0.1版)是运行于Kubernetes上的,但并非必须如此。Istio的主要特性包括:

  • HTTP、gRPC和TCP网络流量的自动负载均衡;
  • 提供了丰富的路由规则,实现细粒度的网络流量行为控制;
  • 流量加密、服务间认证,以及强身份声明;
  • 全范围(Fleet-wide)策略执行;
  • 深度遥测和报告。

Istio的底层使用了Envoy。Envoy是Lyft于去年九月份开源的一种服务代理和通信总线,已用于生产系统中,“管理了上万台虚拟机间的一百多个服务,每秒可处理近两百万次请求”。在近期的GlueCon 2017大会上,来自IBM的Shriram Rajagopalan和来自Google的Louis Ryan介绍了Istio的技术细节(PDF)。下图给出了系统的高层图解:

Envoy实现了过滤和路由、服务发现、健康检查,提供了具有弹性的负载均衡。它在安全上支持TLS,在通信方面支持gRPC,支持MongoDB和DynamoDB分析器对数据库访问统计信息的采集,以及更多功能。Envoy用C++ 11编写实现,并测试了使用C++、Go、Java、PHP和Python编写的微服务,也支持使用其它的语言。Istio还实现了应用和网络的监控,可在PrometheusGrafana中查看。Istio还可以集成Zipkin,对延迟问题进行诊断。

Istio支持团队计划将其与Google Cloud EndpointsApigee集成。此外,Red Hat、Pivotal、Weaveworks、Tigera和Datawire也有兴趣将自身的产品与Istio集成。在Istio的路线图中,给出了未来将提供功能的更多细节。Istio 1.0版计划于今年下半年发布。

查看英文原文:Istio: A Service Mesh for Microservices

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

关于Service Mesh的中文译法 by Rays InfoQ

我是本文的译者,在此就Service Mesh的翻译提出自己的看法。

很多中文文档将Service Mesh翻译为“服务网格”。个人认为,这种译法与Service Grid无法区分,也没有明确表明原意。

官方文档对Service Mesh的解释为:
A service mesh is a dedicated infrastructure layer for making service-to-service communication safe, fast, and reliable.
一般用于云原生(Cloud Native)应用中。

这里可以看出:
1、Service Mesh是是一个专用的云架构层;
2、其是用于服务间的通信。

由此,个人采用了“服务啮合层”这一译法。因为尚未有人如此理解,所以供讨论。

Re: 关于Service Mesh的中文译法 by li zhouyang

这个“服务啮合层”文绉绉的,适合生物学的起名字,改叫“服务聚合层”行不行?

Re: 关于Service Mesh的中文译法 by Rays InfoQ

感谢你的建议。

个人理解Mesh主要是表明各个微服务间的密切聚合,从此意义上讲“聚合”无疑是十分达意的,确实比“啮合”要好。

唯一的问题是,“服务聚合”也是被使用的术语,已经用以表示MeshUp。

不过今后的翻译中,我会借用你的译法,谢谢!

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT