由Microservices.com主办的从业者峰会是一个由从业者驱动的微服务会议,该会议聚焦于现实世界应用中采用微服务的实际问题。该峰会2017年1月31日在美国旧金山召开,演讲嘉宾包括来自Uber、New Relic、Lyft、PayPal,以及Google的微服务从业者。

\\

Matt Klein是一名来自于Lyft公司的资深软件工程师,他也是本次峰会的发言嘉宾之一。Klein在Lyft负责Envoy,这是一个七层通信总线,贯穿于整个Lyft的面向服务体系架构。

\\

峰会举办之前InfoQ和Klein讨论了针对Lyft通信需求构建定制工具的受益点,同时也讨论了这个工具可以如何帮助其他微服务体系架构。

\\

InfoQ:现代面向服务体系架构高度依赖网络通信和RPC调用,而不是在一个整体内处理。Envoy如何改进对于复杂网络基础架构的依赖?

\\

\

Matt Klein:过去5-\u0026gt;10年我们看到了SoA的几个重大进步。首先,有很多伙伴正在构建SoA,并且这个过程放在了基础架构生命周期的早期进行。更重要的是,我们看到很多公司同时使用多种语言进行部署(通常同时使用超过3种语言)。

\\

过去,许多成熟SoA通信网络的复杂性已经通过非常复杂的网络通信库解决。解决方案包括负载均衡、路由、服务发现、重试、限速、断路、统计、日志、跟踪等等。除非一个组织使用很少的语言或者拥有很多的资源,否则慢慢地不太可能针对每一种生产环境的语言实现一个成熟的网络通信库。

\\

Envoy是一个进程外的高性能代理,它一次性解决了通用SoA的网络通信问题。Envoy的设计目的是与应用程序(任务语言)一起运行,并且从应用程序开发人员手中抽象出许多复杂的网络通信业务。应用程序开发人员专注于业务逻辑,并且仅仅需要和本地Envoy交互,本地Envoy接着会去处理服务发现、负载均衡、路由等等。可能Envoy最重要的存在感是提供了针对SoA每一个步骤的一致性观察,从调试的角度来看这个特性非常重要。

\

\\

InfoQ:在Lyft,微服务开发人员需要了解多少网络通信协议栈?Envoy是否有助于减少这种知识积累成本开销?

\\

\

Matt Klein:非常少!随着完整的Envoy部署在Lyft,我们已经创造了一个世界,开发人员和一个极端的瘦客户端沟通,我们称这个瘦客户端为EnvoyClient。无论代码运行在开发环境、调试环境或是生产环境,开发人员实例化一个EnvoyClient并使用它和远程服务通信。在底层,所有的库都被设置了一些标签并与本地Envoy通信,而本地Envoy执行了所有工作。我们鼓励开发人员设置适当的重试机制、超时,等等。通过这个库,我们差不多可以完成这些功能。开发人员仅仅是启动一次调用并收到回复,其他东西就不需要多担心了。

\\

因为Envoy可以运行在任何地方,我们也可以生产出大量的一致性数据,以此帮助开发人员调试(统计、日志、跟踪、可视化,等等)。

\

\\

InfoQ:在Envoy就位以前,哪些组件参与了L7路由?为什么这些组件不够高效,创建一个自定义解决方案过程中我们做了哪些努力?

\\

\

Matt Klein:就像很多现代公司一样,Lyft是一个多语言公司。当前我们在生产环境中运行了PHP、Python和Go服务。在Envoy出现之前,我们采用了混杂不同解决方案的方式,包括每种语言的不同的库、不同的统计方式,等等。我们严重依赖于Aws的Elb产品,伴随着它们所有的内部问题(不稳定、较差的可观察性,等等)。总之,我们完全处于混乱状态。开发人员不信任网络通信,无法调试复杂的问题,并且对于在关键路径上创新高性能网络通信服务存在抵触。

\\

很显然我们需要一个共同的基础功能,我们之前的许多经验和观察指引着我们构建Envoy。

\

\\

InfoQ:是否Envoy有助于任何一个组织过渡到微服务体系架构?最好的开始方式是什么?

\\

\

Matt Klein:最终,我认为使用Envoy有助于任何一家公司适应复杂的SoA。一个基本点是提供一个一致性的环境,这个环境是无价的,它可以减轻开发人员的负担,并且帮助调试复杂的问题。

\\

我会鼓励大家去看看我们的网站,在那里我们已经付出很多努力去完善文档。我们也有一些关于Docker容器的示例,大家可以玩玩。此外,我们也正在努力构建更加直接访问K8s的Envoy,这样会让小型公司更容易使用Envoy。

\

\\

参考英文原文:Q\u0026amp;A with Matt Klein on Creating Envoy at Lyft

\\


感谢刘志勇对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们。

专访Matt Klein关于在Lyft构建Envoy的问答相关推荐

  1. 阿里云专访Redisson作者Rui Gu:构建开源企业级Redis客户端之路

    摘要: 本文为阿里云同学在RedisConf2018上对Redisson开源客户端作者Rui Gu做的一个专访,主要介绍了Rui Gu参与开启Redisson客户端开发的历程,同时也详细介绍了Redi ...

  2. 军事武器知识图谱构建与自动问答项目QAonMilitaryKG

    QAonMilitaryKG  QAonMilitaryKG,QaSystem based on military knowledge graph that stores in mongodb whi ...

  3. Envoy Proxy构建控制平面指南

    作者:Christian Posta 译者:殷龙飞 审阅:孙海洲 原文:medium.com/solo-io/gui- [编者案] Envoy 作为最受欢迎的早期网络组件,现在已经可以说是云原生架构中 ...

  4. envoy api 网关_在边缘,作为网关或在网格中构建控制平面以管理Envoy代理的指南...

    envoy api 网关 最近, Envoy已成为流行的网络组件. 马特·克莱因( Matt Klein )在几年前写了一个博客,内容涉及Envoy的动态配置API,以及它如何成为Envoy的采用曲线 ...

  5. 在边缘,作为网关或在网格中构建控制平面以管理Envoy代理的指南

    最近, Envoy已成为流行的网络组件. 马特·克莱因( Matt Klein )在几年前写了一个博客,内容涉及Envoy的动态配置API,以及它如何成为Envoy的采用曲线向右移的原因之一. 他称该 ...

  6. envoy api 网关_为Envoy构建控制平面的指南-特定于域的配置API

    envoy api 网关 建立您的控制平面交互点和API表面 一旦考虑了哪些组件可能构成控制平面体系结构(请参见上一章),您将要确切考虑用户将如何与控制平面进行交互,甚至更重要的是, 用户将是谁? 要 ...

  7. 为Envoy构建控制平面的指南-特定于域的配置API

    建立您的控制平面交互点和API表面 一旦仔细考虑了哪些组件可能构成控制平面体系结构(请参见上一章),您将要确切考虑用户将如何与控制平面进行交互,甚至更重要的是, 用户将是谁? 要回答这个问题,您必须决 ...

  8. 云原生计算基金会宣布Envoy毕业

    云原生计算基金会宣布Envoy毕业 Airbnb,eBay,Google,Pinterest,Salesforce等采用快速增长的服务和边缘代理 内华达州拉斯维加斯 - 2018年11月28日 - A ...

  9. CNCF宣布Envoy项目正式毕业

    云原生计算基金会(简称CNCF)28日前宣布Envoy项目正式毕业,成为其继Kubernetes与Prometheus之后第三个毕业的项目.在CNCF,要从孵化项目逐步发展成熟并走向毕业,项目必须有较 ...

最新文章

  1. QT发布中遇到的问题 - wufan的专栏 - 博客频道 - CSDN.NET
  2. STM32速度---网页讲解
  3. 数据访问......单条件查询与多条件查询
  4. HDU 2089 不要62(数位DP)
  5. no module named ‘cv2’解决办法
  6. 【九度OJ1522】|【剑指offer21】包含min函数的栈
  7. YII之yiic创建YII应用
  8. 用python处理excel视频教程_从零基础开始用Python处理Excel数据(第一季)课件+资料...
  9. IT编程宝园资料分享
  10. matlab zn整定,matlab里用ZN整定公式对系统进行PI、PID校正,程序问题,急!!
  11. 布加迪奇龙Blender雕刻、shading,并导入Three.js ,3DWEB模型【Three.js+Blender建模+web前端+可视化】
  12. 简单实用流程图模板分享,建议收藏
  13. python如何根据数据画散点图_用python绘制散点图
  14. Altium Designer快捷键布线无法实现网络线自动编号
  15. 让System.Drawing.Bitmap可以在linux运行
  16. linux 统计每个ip数量,日子IP统计
  17. 时间序列网络RNN,LSTM入门
  18. 中秋节出门,这些地方必定人山人海,不信你去看看
  19. 2021年金属非金属矿山(地下矿山)安全管理人员考试试卷及金属非金属矿山(地下矿山)安全管理人员试题及解析
  20. 如何免费下载学术文献?

热门文章

  1. c语言测序,一次Hi-C建库测序,两种分析,你不心动?
  2. FPGA之道(73)设计方法学与FPGA程序设计的境界
  3. FPGA之道(32)Verilog基本程序框架
  4. FPGA之道(28)VHDL的并行语句
  5. 【 MATLAB 】【 MATLAB 】DFT的性质讨论(三)序列的循环卷积及其 MATLAB 实现
  6. 《C和指针》对于数组这一节的总结
  7. Matlab R2018a 中文版安装教程(同时适用于大部分其他版本)
  8. 结构型模式 -- 代理模式(静态代理动态代理)
  9. 自定义配置webpack打包文件
  10. solr5的基本操作