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微信公众号。