内容简介:IBM、Google 和 Lyft 在 Istio Service Mesh 上提供微服务
5 月 24 日,IBM 和 Google 宣布共同发布 Istio ,这是一项开源技术,可以为开发人员提供一种途径来无缝连接、管理和保护不同微服务网络——而且与平台、源代码或供应商无关。
Istio 是 IBM、Google 和 Lyft 联手协作的成果,是支持在微服务之间进行流量管理、访问策略实施和遥测数据聚合的一种方法。 它使开发人员无需更改先前 基于 IBM、Google 和 Lyft 技术开发的 应用程序代码 ,即可实现上述功能。
Istio 目前在支持 Kubernetes 的平台上运行,如 IBM Bluemix Container Service 。但其设计不是特定于某个平台。Istio 开源项目计划将支持包括 CloudFoundry、VM 在内的其他平台。
(点击查看视频详情)我们为什么要构建 Istio
我们不断看到越来越多的开发人员在构建应用程序时转向使用微服务。该策略使开发人员能够将大型应用程序分解成更小、更易于管理的多个部分。尽管在软件编写领域中,将大型应用程序分解成较小的多个部分自软件编写以来就是一种常见的实践,但微服务方法特别适用于在云中开发持续可用的大规模软件。
随着我们众多的大型企业客户迁移到云端,我们亲眼见证了这一趋势。由于微服务是动态扩展的,诸如服务发现、负载均衡和故障恢复等问题的统一解决就变得越来越重要。各个开发团队都独立管理和更改其微服务,因此,很难让所有部分协同起来像单个统一的应用程序一样一起工作。我们经常会看到,有些客户为应对这些问题而制定的定制解决方案甚至无法扩展至自己的团队之外。
在合作之前,IBM、Google 和 Lyft 虽然一直在各自解决这方面的问题,但这些工作实际上是互补的。
IBM 的 Amalgam8 项目 是去年创建的一个开源统一服务网格,它提供了一个带有可编程控制平面的流量路由架构,以帮助其内部用户和企业客户完成 A/B 测试,发布金丝雀版本,并系统地测试其服务对故障的恢复能力。
Google 的 Service Control提供的服务网格除了收集来自各种服务和代理的遥测数据之外,还为服务网格提供一个控制平面,该控制平面专注于执行诸如 ACL、速率限制和身份验证之类的策略。
Lyft 开发了Envoy 代理来帮助他们踏上微服务之旅,这使得他们将此前一个单一应用程序发展为跨越 10,000 多个 VM、能处理 100 多个微服务的生产系统。IBM 和 Google 对 Envoy 的功能、性能,以及 Envoy 开发者与社区合作的意愿印象深刻。
很明显,如果开展合作,在 Envoy 中创建一流的路由和策略抽象,并公开能与 CI/CD 轻松集成的管理平面 API,对我们大家都大有裨益。除了开发 Istio 控制平面之外,IBM 还向 Envoy 贡献了几个特性,例如跨服务版本的流量分流、用 Zipkin 实现的分布式请求跟踪,以及故障注入。Google 则强化了 Envoy 与安全性、性能和可伸缩性有关的几个方面。
Istio 的工作原理是什么?
图像
提高对流入和流出应用程序的数据的可见性,而无需大量的配置和重新编程。
Istio 通过引入可编程路由和共享管理层,将不同的微服务转换为集成服务网格。通过将 Envoy 代理服务器注入到服务之间的网络路径中,Istio 可以提供复杂的流量管理控制,比如负载均衡和细粒度路由。在该路由网格中,还能够提取关于流量行为的大量指标,可使用它们来执行策略决策,例如运营商可配置的细粒度访问控制和速率限制。这些指标也被发送到监控系统。这样,无需进行大量的配置和重新编程,它就可以对流入和流出应用程序的数据提供更高的可见性,以确保应用程序的所有部分都能安全顺畅地一起工作。
一旦能够控制服务之间的通信,我们就可以在任意成对的通信服务之间实施身份验证和授权。如今,可以利用自动证书管理,通过相互 TLS 身份验证来自动保护通信。我们也正在努力增加对常见授权机制的支持。
推动开源合作的关键伙伴关系
这几个月来,我们一直在与 Tigera,还有维护 CNI、Calico 和 flannel 等项目的 Kubernetes 网络人员合作,将高级网络策略集成到 IBM Bluemix 产品中。我们现在希望集成 Istio 和 Envoy,所以我们正在扩大合作范围以包含这些项目,并实现一种适用于第 3 层到第 7 层的共用策略语言。
Tigers 联合创始人兼首席执行官 Andy Randall 表示:“仅靠开源技术来推动创新是不够的。必须有一个开放的、活跃的多供应商社区,而作为开放协作能力的坚定信仰者,IBM 在培育 Kubernetes 及相关项目(包括 Calico 和 Istio)的社区方面发挥着重要作用。我们对这种合作伙伴关系感到非常高兴,并期待能一直合作下去,为这些技术的所有用户造福。”
Istio 的关键特性
HTTP/1.1、HTTP/2、gRPC 和 TCP 流量的自动区域感知负载均衡和故障转移。
通过丰富的路由规则、容错和故障注入,对流量行为进行细粒度的控制。
一个可插拔策略层,以及支持访问控制、速率限制和配额的配置 API。
集群内所有流量(包括集群入口和出口)的自动度量、日志记录和跟踪。
通过在一个集群中的服务之间使用强身份声明,保护服务到服务的身份验证。
如何立刻使用 Istio
您可以 点击此处开始使用 Istio 。我们也有一个 示例应用程序 ,它由四个可轻松部署的独立微服务组成,用于演示 Istio 服务网格的各种特性。
项目与合作
Istio 是一个由 IBM、Google 和 Lyft 共同开发的开源项目。目前的版本支持 Kubernetes 集群,但是随着我们增加对更多平台的支持,我们将每隔几个月就发布一次主要版本。如果您有任何问题或反馈,请随时通过 istio-users@googlegroups.com 与我们联系。
我 们很高兴看到社区中许多公司对该项目的早期承诺和支持: Red Hat 的 Red Hat Openshift 和 OpenShift Application Runtimes、Pivotal 的 Pivotal Cloud Foundry、 Weaveworks 的 Weave Cloud 和 Weave Net 2.0、 Tigera 的 Project Calico Network Policy Engine。如果您也有兴趣参与这个开源项目的进一步开发,请在 GitHub 加入我们。如果您是 IBM 合作伙伴/供应商,我们建议您在 Istio 上构建解决方案,以满足客户的独特需求。当您的客户从单一应用程序转移到微服务时,他们可以轻松地使用 Istio 管理在 Bluemix 基础架构上运行的复杂的企业级微服务。如有任何疑问,请随时联系我们:istio-users@googlegroups.com。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用Knative提供无服务器服务的简单案例
- 根据提供服务的不同,服务器可以这样来分类!
- 使用Python提供高性能计算服务
- 用 whitenoise 提供静态文件服务(Python)
- 服务提供者(provider)与服务消费者(ribbon版本)-微服务架构
- Laravel初级教程之服务提供者
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。