Udi Dahan 访谈:“无服务器是下一代 PaaS”

  • Elton Stoneman
  • 谢丽

2017 年 6 月 26 日

话题:Azure架构文化 & 方法

在 NDC Oslo 大会上,InfoQ 采访了Particular Software的创始人兼首席执行官 Udi Dahan。Particular 是NServiceBus的开发者,这是一个面向.NET 的企业级消息传递和工作流引擎,他们提供了监控和管理工具。InfoQ 对 Udi 进行了采访,内容涉及当前 IT 及其他由 IT 支撑的行业的发展趋势、Particular Software 的未来发展方向以及从开源项目到企业产品的过程。

InfoQ:您是怎么理解“无服务器”的?

Udi Dahan:从托管和环境的角度看,无服务器是下一代平台即服务。这是最小的那些企业的主流价值观,而不是那些最大的企业——这让他们可以大幅降低异常情况的成本。我认为,无服务器的令人兴奋之处不是针对主流企业 IT 来说的,而是针对印度和中国的下一代初创企业。

InfoQ:在 NDC Oslo 大会上演讲时,您对于微服务提出了一种不同的看法。什么是“微服务”?

Dahan:当人们说起“服务”时,他们通常是指某种可以通过 HTTP 或 TCP 远程调用的东西。我的看法是——通过网络调用比进程内调用慢,而且增加了复杂度和其他的问题,如安全。我越来越多的听到,微服务是那些理解 SOA 的人为了纠正 Web Service 的错误在这样一个新的名称下所做的一次尝试。

InfoQ:我们看到,由于.NET 世界有许多跨平台需求,所以微软开发了可以在 Linux 和容器中运行的.NET Core。您认为市场上真有那么强烈的需求吗?

Dahan:我认为有几个细分市场。在中等规模的组织里,也许是一个存在了二三十年的组织,他们的 IT 需求不多——他们在一个平台上。如果他们是个 Windows 商城,那么他们会运行在 Windows 上。我认为,他们不会看到跨平台的需求。对于初创企业,他们往往会选择一种他们知道的平台。第三个细分市场是大型企业,他们采用了一大堆技术栈。他们实际上更多的是由许多较小的组织组成的企业集团,但是,有些小却跨度很大的区域环境。他们可能会希望利用跨平台所带来的好处,他们会说,我们希望继续使用 C#,但是我们需要在上千台的服务器上运行,因此,与 Windows 相比,在 Linux 上的运行成本开始增加。但我想说,这不是一个普遍存在的行业现象。

InfoQ:在 Particular,您在合作过的公司中看到了什么类型的问题?

Dahan:在一些垂直领域我们看到了许多——零售、电商、医疗、金融服务、保险、多媒体、电信。那些领域开始求助于我们,因为我们的价值定位更长久,你希望自己的系统可靠,你希望确保它们在出现故障的情况下依然不丢失数据,你希望确保代码随着时间推移依然可维护。他们没有属于前 0.1% 的顶级开发人员,他们的总部不在旧金山、伦敦或东京。他们的基础设施环境非常主流,他们关心的是——如何借助现有的开发人员团队让我们编写的代码维持在我们需要的可扩展水平上,保证可靠性和干净利索的升级。我们采用一种实用的方法帮他们解决问题,他们将来可以推广应用。

InfoQ:如果其核心是转向发布 - 订阅式的异步通信,那么您看到人们在使用什么样的消息队列系统?

Dahan:MSMQ——虽然在有个性的团队中并不普遍——安装和配置都很简单,所以你不会丢失数据。人们可能会说,他们想要使用 RabbitMQ。NServiceBus 支持 RabbitMQ,但是设置 RabbitMQ 集群不是一件简单的事情,而且还建议使用 CentOS 的特定版本,因为它在那个版本上测试最充分。在市场上,使用 MSMQ 取得巨大成功的大有人在。在云上,你会希望使用提供商提供的东西——因此,在 Azure 中就是 Azure 服务总线,或 Azure 存储队列。

InfoQ:所以,NServiceBus 是核心,而你可以使用你喜欢的任何传输方式——Particular 平台还包括其他哪些部分?

Dahan:NServiceBus 是在所有这些队列系统之上的一层抽象,让你可以不用考虑重试、事务管理、线程和如何实现长期运行的进程。NServiceBus 提供的其中一个特性是,如果消息重试全都失败,那么它会将其移入一个错误队列——我们有一个单独的进程处理错误队列,我们称之为 ServiceControl。ServicePulse 提供了一个监控和管理那些错误的环境,在那里,你可以重放消息,让所有消息都成功。

第二个部分是审计。在 NServiceBus 中,每次消息处理成功后,你都可以选择将那条消息放入审计队列。我们让审计变得非常有价值——审计日志包含了消息路径,比如说,该消息来自另外的消息,而后者来自另外一个端点发布的事件。ServiceControl 会摄取审计日志,提供给名为 ServiceInsight 的可视化工具,它可以用顺序图展示生产环境中实际发生了什么。

InfoQ:你们已经走在将 NServiceBus 从开源项目变成企业级产品的道路上。你们这样做的动机是什么?

Dahan:对于大多数开源项目而言,成功的悲剧在于他们会获得许多用户,而这些用户发出的 Bug 修复请求和特性请求超出了他们的处理能力。作为独立顾问,我把大量的时间用在了 NServiceBus 和消息传递咨询和培训上,但我无法在编码和为 NServiceBus 增加特性上投入大量的时间。所以,NServiceBus 的发展有点慢如蜗牛。我觉得,如果这种情况继续下去,那么就必须有一个收入流来支撑 Bug 修复和增加特性。我感觉到,唯一的出路是开始收取一些合理的许可费用。那有效果,许多公司转而跟我们说,谢谢你们收费,因为我们不允许使用免费的开源软件。

InfoQ:您仍然承担了演讲、研讨和培训工作。您认为人们现在希望学习什么?

Dahan:我想说,人们参加会议或者研讨是为了跟上发展的步伐。在大会的研讨会上,你可以让人们知道 NServiceBus,但永远没有机会演示它,你让人们希望更深入地学习它——对于几乎所有的研讨会都是这样的。还有第二类人,他们已经完成了第一个项目,他们说——好,我们了解这项技术,但现在我们需要设计不同的东西,我们希望学习如何以不同的方式去思考软件。那是我们期待的——帮助我们看世界,以不同的方式看待软件,那样,我们就可以更成功地运用这项我们已经了解的技术。

查看英文原文"Serverless is next-generation PaaS" - InfoQ Talks to Udi Dahan

Azure架构文化 & 方法