Envoy Mobile项目加入CNCF

Envoy项目文章,作者:Michael Schore

就在一年前,我们发布了Envoy Mobile的初次开源预览。今天,我们要分享一些激动人心的消息:Envoy Mobile正式加入其母项目Envoy,成为CNCF的一部分!从一开始,我们就承诺将Envoy Mobile开发为一个开源项目。我们相信,作为移动网络的一个模式,它有潜力开创新的领域,并且对围绕着Envoy成长起来的充满活力的社区的认可,使开源成为我们明确的选择。在过去的一年里,与社区的互动带来了巨大的回报,因为我们已经从最早的概念验证阶段过渡到实验阶段,然后是生产解决方案,完全公开。今天是一个重要的里程碑,我们荣幸地参加了CNCF管理下的项目,就像Envoy、Kubernetes、gRPC等。

简史

Envoy项目之所以成功,是因为它为一个由多种语言系统组成的网络提供了一个共同的基础。部署Envoy意味着在整个机群中实现一致的可观察性、可配置性和可扩展性,而不考虑单个服务的任何独特特征。Envoy的主动/被动健康检查模型和最终一致的路由配置,在面对不可预测的网络和软件故障时,提供了稳定性和可靠性。

Envoy Mobile项目始于一个问题:为什么我们将移动设备与后端基础设施中的节点区别对待?即使企业在这两个平台上运行关键软件,一个被视为核心基础设施,而另一个被视为独立的外部客户端。历史上默认的假设是,这两个组成部分是根本不同的。虽然确实存在差异,但移动客户端遇到的许多挑战类似于我们之前使用Envoy在服务器上解决的问题。

对许多组织来说,实现对移动应用程序运行状况和性能的可见性是一项持续的斗争。类似地,自定义运行时/动态配置解决方案是大规模部署应用程序的标准。考虑到Android和iOS都必须同时支持,共享代码很困难。此外,与后端基础设施相比,移动客户端所面临的网络条件更不可预测,更容易出现故障。我们在后台利用Envoy作为这些问题的共同解决方案。Envoy能成为移动客户端的解决方案吗?我们决定:“绝对能够。”,Envoy Mobile出现了。

移动网络库

“Envoy已经成为应用网络的通用可编程数据平面。我们很高兴看到Envoy Mobile将Envoy的好处带到移动生态系统中。我们现在有能力向客户端应用程序提供可编程性,比如支持真正的端到端云原生服务的移动应用程序。”
-Anna Berenberg,谷歌云杰出工程师

在我们开始这个旅程之前,我们花了一些时间来评估其他的可能性。有许多功能强大的移动网络库,它们都有强大的追随者。但是Envoy提供的一个关键区别是,它为分布式应用程序中的所有网络提供了一个公共层。最终,我们得出结论,我们在移动客户端取得同样优势的唯一途径就是使用Envoy本身。

当然,Envoy并不是设计成进程内库的,更不用说在移动应用程序中运行了。但是它的许多设计决策使它能够非常好地适应这个新目标--从它的单线程代码库到它的缓冲区管理模型。我们将在以后的文章中分享更多关于这方面的内容,但要深入了解我们是如何将Envoy变成一个库而不是一个服务器,请参阅我们去年在KubeCon和EnvoyCon上的演讲(Envoy Mobile in Depth: From Server to Multi-platform Library - Jose Nino & Michael Schore, Lyft)。Envoy的现代架构和设计为证明我们的想法的可行性提供了一个显著的开端。

开源

当我们第一次发布Envoy Mobile仓库时,这个库仅仅是一个工作原型。Envoy运行并可以在iOS和Android上处理请求。我们有个雄心勃勃的路线图,但是我们并没有闭门执行项目,并且只有当我们有一个生产就绪的解决方案时才分享它,我们慎重地决定不仅开放我们的初始项目,而且开放路线图本身。我们相信,Envoy Mobile背后的理念有可能从根本上改变企业看待移动客户端和物联网设备的方式,并与之互动。分享这个愿景和这个项目最早的版本,部分是我们对这个信念的承诺,部分是对社区的承诺,我们希望为每个人实现这些好处。

一年过去了,Envoy Mobile被汇编到Lyft应用程序中,并发送我们的生产流量。该库具有一流的绑定,并支持Swift、Kotlin、Objective-C和Java(Python开发中!)我们现在已经拥有了一个真正的基础,可以构建未来的移动网络。

下一步

“Envoy的社区增长和无数的使用案例继续超出我最疯狂的期望。虽然Envoy对服务器端云原生分布式系统的构建方式有着深远的影响,但移动客户端和物联网设备与服务器端设备存在相同的问题,包括可观察性、容错、负载平衡和配置。Envoy Mobile进入CNCF将加速Envoy作为端到端云原生网络平台的采用,使复杂的分布式应用能够更健壮地部署。我太激动了。”
- Matt Klein,Envoy的创造者

有了跨客户端和后端服务的统一基础和公共网络抽象,特性可以一次性创建并在任何地方使用。我们有Envoy Mobile发展的下一个篇章的宏伟计划。非常简短的亮点包括:

  • 强类型API生成--允许使用IDL(如protocol buffer)定义API,并利用代码生成来消除样板文件和抽象传输。
  • 通过API/IDL注释,选择基于策略支持的网络特性--包括缓存、重试、延迟API、流、推和优先级。
  • 先进的协议支持和网络优化--支持QUIC、HTTP/3、DNS替代、和自定义协议扩展,智能连接加权和选择。
  • xDS--利用Envoy的配置发现API,通过与传统网格相同的控制平面动态配置。

要了解更多关于我们的计划或贡献的机会,我们的路线图也是开源的!

Envoy Mobile加入CNCF的时机恰到好处。这个新的,中立的家园将使我们更容易与其他组织合作,并接受来自其他组织的贡献。它还将使我们更紧密地与Envoy的开发周期保持一致,允许我们执行共享的CI测试覆盖率,以及两个项目之间更紧密集成的上游特性。通过这一步,我们期待着与CNCF以及你们所有人一起重新定义我们对客户端到服务器通信的看法。

点击阅读网站原文


CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。
CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。扫描二维码关注CNCF微信公众号。
image

你可能感兴趣的:(cncf,envoy,移动app,网络通信引擎)