AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

服务网格如何推动云与安生 App 开发的转型

  • 2020-05-18
  • 本文字数:1807 字

    阅读完需:约 6 分钟

服务网格如何推动云与安生App开发的转型

Kubernetes 因其许多精巧的功能与先进的理念而具有变革性的力量,其中之一就是出于开发人员的角度而设计的 API 功能。你可以在 Kubernetes 中创建 Deployment 和 Service,而不是诸如机器、磁盘和网络之类的基础架构对象。你依旧使用计算、网络和存储,但是你创建的资源将会和应用程序部署一致。


然而,在容器中的运行进程或者在 Kubernetes 中的 pod 并不是全部。应用程序不仅只有它的运行代码而已,它还由网络通信来定义。这些消息和特性(如拓扑、路由、指标和访问控制)定义了分布式系统及其容器镜像。


因此,显而易见的是——面向应用程序的 API 定义了应用程序的通信,并且这是云原生开发人员经验中很重要的一部分。这些 API 通常被称为 Service Mesh API。Service Mesh API 可以让应用程序开发人员使用开发人员友好的声明式资源来表达分布式应用程序的连接性。至于如何实现应用程序连接的具体细节留给 Service Mesh 的几个项目,如 Consul、Linkerd、Istio(在Rancher 2.3中已正式集成)或 Envoy。


解耦服务网格用户和服务网格实现体现了 Kubernetes 重要的设计原则,即使用声明式 API 的模块化组合和解耦的基础架构层。这一设计原则使得 Kubernetes 由大量通用可插拔 API 组成。例如,云供应商绑定,该绑定使 Kubernetes 可以跨 Azure、AWS、Google 等公有云运行,此外,还能运行 CNI(容器网络接口)、CSI(容器存储接口)和 CRI(容器运行时接口),这些接口通常定义容器如何与计算、网络和存储进行交互。


服务网格中也存在类似的接口,通常称为服务网格接口(SMI),它是为了解决 Service Mesh 标准化问题而由微软牵头引入的。它定义了一组标准通用的 API,为开发人员提供跨不同服务网格技术的互通性。SMI 是一个标准的接口,它能在任何具体的 Service Mesh 产品(如 Istio、Linkerd 或 Consul)之上抽象出一个公共层,屏蔽掉上层应用、工具或生态系统对具体 Service Mesh 项目的实现细节。



将 API 规范与实现分开为整个 Kubernetes 生态系统提供了独一无二的价值,因此在 Service Mesh 中提供同样的规范也能为 Service mesh 技术提供相同的价值。一个通用的标准 API 可以让开发人员构建一个可移植的应用程序——无论是从本地集群迁移到基于云的集群,或者在不同的公有云上进行迁移。而且,一个通用的接口意味着开发人员构建的实用工具可以应用于整个生态中。


当 API 和实现更紧密地绑在一起时,采用一个新的 API(或一组 API)就会成为一个充满挑战的选择。如果一段时间之后发现这一实现不合适,则更改该实现需要继续进行大量的操作,并且需要重新学习各种概念和实现工具,所需成本极高。一个标准化的 API 将改变这一现状,由于用户是从 API 的实现中抽象出来的,因此只需一点改变就可以更换实现。这意味着成功地采用一个网格不一定需要成功地使用某种实现,换言之,使用一种诸如服务网格之类的新技术风险变得更低了。


SMI 的设计理念是成为一个易于理解和实现的 API,因此仅由 4 个概念定义:


  • 路由(Route)定义通过 HTTP 或 TCP 进出应用程序的路径。

  • TrafficTarget 描述了应用程序是否可以在一组特定路由中进行调用(或接收调用)。



  • TrafficSplit 描述了如何根据实验目的在两个及以上的 Kubernetes 服务中拆分流量。



  • TrafficMetrics 描述了用于获取应用程序流量统计数据的通用指标终端。



使用此 API,可以以面向开发人员的方式定义应用程序的面向应用程序的核心结构。


对类似此接口主要考虑将其作为各个 Service Mesh 产品的“最小公分母”,也就是说,这对任何产品都没有用处。这始终是接口 API 所关注的问题。而解决此问题的方法是同时包含供应商特定的注释和随时间演变的规范。我们在这一演进中的灵感来自 OpenGL,尽管通用 API 和特定的图形卡功能之间也存在类似的矛盾, 但 OpenGL 还是取得了成功。在 SMI 中,API 供应商特定的注释会一直存在,并且不会移植。然而,随着时间的推移,将包含最受欢迎的供应商特定的功能,并将其添加到规范中。通过这种方式,此类演进希望确保大多数用户可以通过 SMI API 成功管理其服务网格。


Kubernetes 标志着向应用程序和面向开发人员的云 API 转型的开始。而 SMI 是这条道路上重要的下一步。


作者简介

Bredan Burns, 微软杰出工程师(DE)

Bredan Burns 是 Kubernetes 的联合创始人之一,现在是微软的杰出工程师。领导了 Azure Container Service(AKS)、Azure Container Instances、Azure Cloud Shell 和 Azure Resource Manager 的开发工作。


2020-05-18 18:03641

评论

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

智能运维进入6.0时代,CloudwiseGPT运维大语言模型强势来袭!

云智慧AIOps社区

智能运维 大模型训练 大模型 大模型时代

CRM系统化整合从N-1做减法实践 | 京东物流技术团队

京东科技开发者

CRM CRM系统 企业号 7 月 PK 榜 系统化整合

从iOS App启动速度看如何为基础性能保驾护航 | 京东物流技术团队

京东科技开发者

ios 开发 企业号 7 月 PK 榜 APP冷启动 启动速度

Spring 中一个少见的引介增强 IntroductionAdvisor

江南一点雨

Java spring

IoT 场景下 InfluxDB 与 TDengine 的性能对比测试报告出炉!点击查看

爱倒腾的程序员

数据库

三大升级!龙蜥正式推出首款全面拥抱智算的国产操作系统 Anolis OS 23

OpenAnolis小助手

开源 操作系统 龙蜥社区 版本发布 Anolis23

Excel 高阶使用(含 ChatGPT)与数据可视化

Data 探险实验室

数据分析 Excel 数据可视化 可视化工具 ChatGPT

新一轮智能制造相关产业政策猜想

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

Nautilus Chain 主网上线,Zepoch 持有者将获第三轮 POSE 空投

西柚子

详解TCP网络协议栈的工作原理

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 7 月 PK 榜

功能更新|Leangoo领歌敏捷工具支持SAFe大规模敏捷框架

顿顿顿

敏捷开发 敏捷项目管理 scrum敏捷工具 SAFe框架 SAFe大规模敏捷

技术速览|Meta Llama 2 下一代开源大型语言模型

SEAL安全

meta openai backstage mata llama

Ceph社区上游正式合入openEuler原生支持,并通过CI持续验证

openEuler

Linux 分布式 操作系统 Ceph openEuler

火山引擎DataLeap如何解决SLA治理难题(三): 平台架构与未来展望

字节跳动数据平台

大数据 数据中台 数据治理 数据安全 企业号 7 月 PK 榜

搜狗输入法双击输入框崩溃问题 | 京东云技术团队

京东科技开发者

搜索引擎 搜索 输入法 企业号 7 月 PK 榜

关于云平台虚拟机核心组件 libvirt 热迁移流程及关键参数介绍 | 龙蜥技术

OpenAnolis小助手

开源 虚拟机 龙蜥大讲堂 浪潮数据 热迁移

防范直播网站源码搭建多重问题的背后重要功能_山东布谷科技创作

山东布谷科技

软件开发 直播 源码搭建 直播源码 直播网站源码

Nautilus Chain 主网上线,Zepoch 持有者将获第三轮 POSE 空投

西柚子

手把手带你初探Vue 3.0 | 京东物流技术团队

京东科技开发者

前端 Vue 3 VUE 3.0 源码 企业号 7 月 PK 榜

在 Go 语言单元测试中如何解决 HTTP 网络依赖问题

江湖十年

单元测试 HTTP Go 语言

AIGC技术展望和机会 | 社区征文

AIWeker

AIGC Stable Diffusion MidJourney 年中技术盘点

3步带你搞定华为云编译构建CodeArts Build “新手村任务”

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

如何评价一种框架技术的好坏?

canonical

低代码 架构设计 软件设计原则 ORM框架 开源框架

不止工具:音视频开发「利器」的新机遇

阿里云CloudImagine

云计算 音视频 视频云

用NineData三分钟搭建企业数据库平台,告别数据泄露与删库跑路

NineData

安全 敏感数据 AIGC 玖章算术 NineData

上海科技大学智能生活组齐聚合合信息,“沉浸式”体验人工智能产品

合合技术团队

人工智能 人才发展 合合信息 校企合作 上海科技大学

《让花掉的钱自己流回来》

石云升

读书笔记 财富管理

SAM&Stable-Diffusion集成进化!分割、生成一切!AI绘画新玩法

飞桨PaddlePaddle

人工智能 百度 paddle AI 飞桨

全国独家线下面授 | 上海大规模敏捷LeSS认证9月7-9日

ShineScrum

less 大规模敏捷 大规模敏捷LeSS CLP

Dxitco德西科跟单社区首创CHATGPT人工+AI双重大数据分析机制

科技热闻

《Spring6核心源码解析》已完结,涵盖IOC容器、AOP切面、AOT预编译、SpringMVC,面试杠杠的!

冰河

Java spring 程序员 架构师 源码解析

服务网格如何推动云与安生App开发的转型_文化 & 方法_Rancher_InfoQ精选文章