我们不断
看到越来
越多的开
发人员在
构建应用
程序时转
向使用微
服务。该
策略使开
发人员能
够将大型
应用程序
分解成更
小、更易
于管理的
多个部分
。尽管在
软件编写
领域中,
将大型应
用程序分
解成较小
的多个部
分自软件
编写以来
就是一种
常见的实
践,但微
服务方法
特别适用
于在云中
开发持续
可用的大
规模软件
。
随着我们
众多的大
型企业客
户迁移到
云端,我
们亲眼见
证了这一
趋势。由
于微服务
是动态扩
展的,诸
如服务发
现、负载
均衡和故
障恢复等
问题的统
一解决就
变得越来
越重要。
各个开发
团队都独
立管理和
更改其微
服务,因
此,很难
让所有部
分协同起
来像单个
统一的应
用程序一
样一起工
作。我们
经常会看
到,有些
客户为应
对这些问
题而制定
的定制解
决方案甚
至无法扩
展至自己
的团队之
外
。
在合作之前,
IBM
、
Google
和
Lyft
虽然一直
在各自解
决这方面
的问题,
但这些工
作实际上
是互补的
。
IBM
的
Amalgam8
项
目
是去年
创建的一
个开源统
一服务网
格,它提
供了一个
带有可编
程控制平
面的流量
路由架构
,以帮助
其内部用
户和企业
客户完
成
A/B
测试,发
布金丝雀
版本,并
系统地测
试其服务
对故障的
恢复能力
。
Google
的
Service Cont
ro
l
提供
的服务网
格
除了收
集来自各
种服务和
代理的遥
测数据之
外,还为
服务网格
提供一个
控制平面
,该控制
平面专注
于执行诸
如
ACL
、速率限制和身份验证之类的策略。
Lyft
开发了
Envoy
代
理
来帮助
他们踏上
微服务之
旅,这使
得他们将
此前一个
单一应用
程序发展
为跨
越
10,000
多个
VM
、能处理
100
多个微服务的生产系统。
IBM
和
Google
对
Envoy
的功能、性能,以及
Envoy
开发者与社区合作的意愿印象深刻。
很明显,如果开展合作,在 Envoy 中创建一流的路由和策略抽象,并公开能与 CI/CD 轻松集成的管理平面 API,对我们大家都大有裨益。除了开发 Istio 控制平面之外,IBM 还向 Envoy 贡献了几
个特性,
例如跨服
务版本的
流量分流
、用 Zipkin 实现的分
布式请求
跟踪,以
及故障注
入。Go
ogle 则强化了 Envoy 与安全性
、性能和
可伸缩性
有关的几
个方面
。
Istio
的工作原理是什么?
提高对流
入和流出
应用程序
的数据的
可见性,
而无需大
量的配置
和重新编
程
。
Istio
通过引入
可编程路
由和共享
管理层,
将不同的
微服务转
换为集成
服务网格
。通过
将
Envoy
代理服务
器注入到
服务之间
的网络路
径中
,
Ist
io
可以提供
复杂的流
量管理控
制,比如
负载均衡
和细粒度
路由。在
该路由网
格中,还
能够提取
关于流量
行为的大
量指标,
可使用它
们来执行
策略决策
,例如运
营商可配
置的细粒
度访问控
制和速率
限制。这
些指标也
被发送到
监控系统
。这样,
无需进行
大量的配
置和重新
编程,它
就可以对
流入和流
出应用程
序的数据
提供更高
的可见性
,以确保
应用程序
的所有部
分都能安
全顺畅地
一起工作
。
一旦能够
控制服务
之间的通
信,我们
就可以在
任意成对
的通信服
务之间实
施身份验
证和授权
。如今,
可以利用
自动证书
管理,通
过相互 TLS 身份验证
来自动保
护通信。
我们也正
在努力增
加对常见
授权机制
的支持
。
推动开源合作的关键伙伴关系
这几个月来,我们一直在与
Tigera
,还有维护
CNI
、
Calico
和
flannel
等项目的
Kubernetes
网络人员合作,将高级网络策略集成到
IBM Bluemix
产品中。我们现在希望集成
Istio
和
Envo
y
,所以
我们正在
扩大合作
范围以包
含这些项
目,并实
现一种适
用于
第
3
层到第
7
层的共用策略语言。
Tigers 联合创始人兼首席执行官 Andy Randall 表示:“
仅靠开源
技术来推
动创新是
不够的。
必须有一
个开放的
、活跃的
多供应商
社区,而
作为开放
协作能力
的坚定信
仰者,I
BM 在培育 Kubernetes 及相关项目(包括 Calico 和 Isti
o)的社
区方面发
挥着重要
作用。我
们对这种
合作伙伴
关系感到
非常高兴
,并期待
能一直合
作下去,
为这些技
术的所有
用户造福
。
”
Istio
的关键特性
HTTP
/1.
1
、
HT
TP/
2
、
gR
PC
和
TCP
流量的自动区域感知负载均衡和故障转移。
通过丰富
的路由规
则、容错
和故障注
入,对流
量行为进
行细粒度
的控制
。
一个可插
拔策略层
,以及支
持访问控
制、速率
限制和配
额的配
置
API
。
集群内所
有流量(
包括集群
入口和出
口)的自
动度量、
日志记录
和跟踪
。
通过在一
个集群中
的服务之
间使用强
身份声明
,保护服
务到服务
的身份验
证
。
如何立刻使用
Istio
您可以
点击此处开始使用
Isti
o
。我们
也有一
个
示例应
用程
序
,它
由四个可
轻松部署
的独立微
服务组成
,用于演
示 Istio 服务网格的各种特性。
项目与合作
Istio 是一个由 IBM、Google 和 Lyft 共同开发的
开源项目
。目前的版本支持 Kubernetes 集群,但
是随着我
们增加对
更多平台
的支持,
我们将每
隔几个月
就发布一
次主要版
本。如果
您有任何
问题或反
馈,请随
时通过 isti
o-us
ers@
goog
legr
oups
.com 与我们联系。
我 们很高兴
看到社区
中许多公
司对该项
目的早期
承诺和支
持
:
Red
Ha
t
的 Red Hat Openshift 和 OpenShift Application Runtimes、Pivotal 的 Pivotal Cloud Foundry、
Weaveworks
的 Weave Cloud 和 Weave Net 2.0、
Tigera
的 Project Calico Network Policy Engi
ne。如
果您也有
兴趣参与
这个开源
项目的进
一步开发
,请在
GitHub
加入我们。如果您是 IBM 合作伙伴/供应商,我们建议您在 Istio 上构建解
决方案,
以满足客
户的独特
需求。当
您的客户
从单一应
用程序转
移到微服
务时,他
们可以轻
松地使用 Istio 管理在 Bluemix 基础架构
上运行的
复杂的企
业级微服
务。如有
任何疑问
,请随时
联系我们
:ist
io-u
sers
@goo
gleg
roup
s.co
m
。
本文翻译自博客:
IBM,
Goo
gle
and
Lyft
giv
e mi
cros
ervi
ces
a ri
de o
n th
e Is
tio
Serv
ice
Mes
h
Tags: 
istio
microservices
google