企业如何选择合适的技术方案?点击看专家聊数字化转型落地过程中的困难和解决办法 了解详情
写点什么

InfoQ 专访:Kubernetes 上的服务生态系统

  • 2019 年 7 月 04 日
  • 本文字数:2403 字

    阅读完需:约 8 分钟

InfoQ专访:Kubernetes 上的服务生态系统

服务网格接口(Service Mesh Interface,简称 SMI)是微软牵头的多家公司最近刚宣布的一项全行业规范倡议,它旨在定义一组通用的、可移植的 API,为开发人员提供跨不同服务网格技术的互操作性。SMI 的宣布在Kubecon欧盟场主题演讲中占据了显著地位。


随着微服务、容器以及诸如 Kubernetes 之类的编排器的大量使用,服务网格技术变得越来越重要。由于服务网格技术的不断涌现,许多厂商都推出了各种平台来促进应用程序的开发。然而,这存在厂商锁定的风险,开发人员将应用程序从一个平台迁移到另一个平台的可移植性。


在上层,SMI 提供如下功能:


  • Kubernetes 上的服务网格标准接口

  • 用于最通用的服务网格用例的基本特性

  • 随着时间的推移灵活地支持新的服务网格能力

  • 使用服务网格技术实现生态系统创新的空间


SMI 借鉴了 Kubernetes 资源 Ingress 等的原理,定义了一组通用的 API,并允许厂商提供自己的最佳实现。使用这些 API 编程能为应用程序提供可移植性。


InfoQ 就 SMI 的发布采访了微软首席项目经理Lachlan Evenson。讨论的主题还包括 Kubernetes 上的服务网格生态系统及 Gabe Monroy博客上的引用。


InfoQ:在 KubeCon 欧洲场的主题演讲中谈到“智能端点和哑管道(smart endpoints and dumb pipes)”,以及随着微服务的发展,这些管道现在需要怎样变得更加智能,您能概括下这意味着什么吗?


Evenson:多年来,网络体系结构的口号是尽可能保持网络管道的静音,并在应用程序中构建智能。网络的任务是转发数据包,而用于加密、压缩或身份认证的任何逻辑都应存在于网络端点内。互联网是以这句格言为前提的,所以你可以说它运行得相当好。

但是今天,随着微服务、容器和诸如 Kubernetes 之类的编排系统的爆炸式发展,工程团队面临着越来越多的网络端点安全、管理和监控问题。服务网格技术通过使网络变得更智能,为解决这个问题提供了解决方案。服务网格技术不是教所有的服务加密会话、授权客户端、发射合理的遥测数据,也不是在应用程序版本之间无缝地转移流量,而是将这种逻辑推送到由一组单独管理的 API 控制的网络中。


InfoQ:我们可以先谈下微服务和服务网格的关系吗?根据 Kubecon 欧洲场的走廊讨论,SMI 对于一般的微服务,尤其是对于 Kubernetes 来说,似乎还处于采用生命周期的早期,是这样吗?


Evenson:如我们所见,由于服务网格技术的激增,许多厂商为应用程序开发人员提供了新的、令人兴奋的选择。但问题是,转向网格技术的开发人员必须选择一个厂商提供者并直接编写他们的 API。他们被锁定了在服务网格实现中。如果没有通用的接口,开发人员将失去可移植性和灵活性,并且从广泛生态系统创新中获益的能力也会受到限制。

除了 Gabe Monroy 在博客中提到的内容外,现在的时机正适合 SMI,因为与社区中的其他通用的抽象(CNI、CRI、Ingress、NetworkPolicy)一样,它们专注于解决开发人员的需求,而不是指定技术实现。在服务网格领域创建一组通用的抽象,能促进生态系统的增长,并能为开发人员和集群管理员提供选择最佳类实现的自由。


InfoQ:您能提供下更多的关于服务网格接口的技术细节,并解释下这主要是针对开发人员的还是平台提供商的吗?如果是针对平台提供商的,它会以怎样方式影响开发人员呢?


Evenson:它是以不同的方式来针对两者的。它允许平台提供商为最常用的服务网格特性提供单一抽象,同时能保持为作业选择最佳实现的自由。这使平台能够保持灵活性和一定的可移植性,同时使用户能够访问最需要的服务网格特性。

从开发人员的角度来看,他们现在有了一组可以从服务网格中获取需求的 API。这些通用抽象删除了实现中的某些特性。例如,“我希望能为我的服务提供金丝雀部署”是一个常见的问题,他们可以简单地使用 SMI TrafficSplit API 来处理这种复杂问题,而不必编写离散的低级资源程序。


InfoQ:在主题演讲中,提到服务网格接口类似于 Kubernetes 资源Ingress(在 Kubernetes 1.1 中引入)。公平地说,Ingress 的功能范围非常具体。而 SMI 则试图提供跨多个不同的平台(ISTIO、Linkerd、Consul 等)的通用接口,这些平台具有比网络 ingress 更多的功能。那将如何克服这一挑战呢?


Evenson:我们不是只关注服务网格生态系统的原始功能,而是与企业客户合作,来了解他们关注服务网格的首要需求。我们让这些共同的企业需求引导我们在 SMI 中创建抽象。


InfoQ: 服务网格空间中有大量的使用 isito,那么有多少 isito 内部构件或概念将出现在 SMI 中?或者是,SMI 仅关注服务网格提供的核心功能呢?


Evenson:是后者,SMI 将根据我们从企业客户那里了解到他们为什么使用服务网格,并基于这些信息提供最通用的抽象。


InfoQ:您能谈下 SMI 社区及其路线图吗?


Evenson:SMI 是一个开放项目,由微软、Linkerd、HashiCorp、Solo.io、Kinvolk 和 Weaveworks 联合启动。并得到了 Aspen Mesh、Canonical、Docker、Pivotal、Rancher、Red Hat 和 VMware 的支持。

我们联合 HashiCorp、Buoyant、Solo.io 和其他公司根据从企业客户处了解到的三大服务网格功能构建初始规范:

  • 流量策略-跨服务应用身份和传输加密等策略

  • 流量遥测 - 捕获关键指标,如错误率和服务间的延迟

  • 流量管理 - 在不同服务之间转移流量

这只是我们希望通过 SMI 实现目标的开始阶段。随着更多令人兴奋的网格功能的开发,随着时间的推移,我们完全可以期待 SMI API 的逐步发展,期待新的功能可以扩展当前的规范。

我们正在与创始合作伙伴一起,识别其他应该定义的 API,也在为即将到来的项目里程碑构建路线图。


综上所述,服务网格技术已经引起应用程序开发人员的极大关注。SMI 借鉴了经过时间考验的应用程序开发原则,旨在为多个厂商和平台提供商提供统一的规范来实现在服务网格实现上的竞争,同时通过一组通用接口为应用程序开发人员提供可移植性。


请访问smi-spec.io 了解更多关于 SMI 的详细信息,了解规范本身的相关信息请访问 GitHub


原文链接:


Service Mesh Interface (SMI): Q&A with Microsoft’s Lachlan Evenson


2019 年 7 月 04 日 08:008935
用户头像

发布了 39 篇内容, 共 12.4 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

前端⼤规模构建演进实践

白玉兰开源

架构 大前端

智汇华云 | ArSDN打通软件定义数据中心的“任督二脉”

华云数据

聪明人的训练(二十二)

Changing Lin

4月日更

Redis为什么是单线程?高并发响应快?

Linux服务器开发

redis Linux服务器开发 网络io C++后端开发 单线程

混搭的美感|靠谱点评

无量靠谱

什么是Selenium?使用Selenium进行自动化测试

信码由缰

DevOps selenium

前端规范之路

白玉兰开源

大前端 开发规范

从源码分析 MySQL 死锁问题入门

比伯

Java 编程 程序员 架构 计算机

Redis的适用场景简单剖析

大数据技术指南

redis 4月日更

2020年12月的面试经历:美团4面+字节4面(均已拿offer),面试真题分享

Java架构师迁哥

GitHub惊现!JVM G1GC的算法+实现,90张图+33段代码,你的面试专属!

Java架构师迁哥

阿里巴巴的“双11”高并发秒杀终极版教程!(Java语言设计)

Java架构追梦

Java 阿里巴巴 架构 面试 秒杀架构设计

知识分享:SQL注入的流程和步骤

Thrash

sql

软件测试——教育机构课程顾问常见黑话大全

程序员阿沐

程序员 软件测试 教育 机构 教育培训

一文搞定 Flink Job 的运行过程

shengjk1

flink flink源码 flink源码分析

如何深入的学习C语言

cdhqyj

编程 C语言 计算机 嵌入式

轻松带你学习java-agent

华为云开发者联盟

Java Trace Java虚拟机 java-agent 挂载

0门槛成为“技术牛人”!星环科技线上分享课“星课堂”开播,快来报名,一探究竟

星环科技

人工智能 数据库 云计算 大数据 直播技术

重磅来袭:Spring之RequestBody的使用姿势小结

学Java关注我

Java 编程 架构 技术 程序人生

华云大咖说 | 华云数据与数科网维携手共建国产云生态

华云数据

一个诡异的MySQL查询超时问题,居然隐藏着存在了两年的BUG

CoderW

Java MySQL 数据库 程序员 互联网

前端DDD总结与思考

白玉兰开源

大前端 DDD

一入爬虫深似海,从此早睡是路人

Thrash

【转载】图形化系统开发组件X-Series(一)——XrossUnit介绍

赫杰辉

TcaplusDB君· 行业新闻汇编(4月21日)

TcaplusDB

数据库 nosql 分布式 TcaplusDB

简简单单才是真,初试 Svelte

LeanCloud

肝了15000字性能调优系列专题(JVM、MySQL、Nginx and Tomcat),看不完先收藏

北游学Java

Java MySQL nginx tomcat JVM

Golang 对象池

escray

学习 极客时间 Go 语言 4月日更

家务活中的python协程

行者AI

协程 python学习

彻底搞懂ThreadLocal

千珏

Java 源码分析 多线程 ThreadLocal

InfoQ专访:Kubernetes 上的服务生态系统_云原生_Rags Srinivas_InfoQ精选文章