使用面向数据的服务网格驯服面向服务的架构
At Hasura’s Enterprise GraphQL Conf on October 22, we presented Viaduct, what we’re calling a data-oriented service mesh that we believe will bring a step function improvement in the modularity of our microservices-based Service-Oriented Architecture (SOA). In this blog post, we describe the philosophy behind Viaduct and provide a rough sketch of how it works. Please watch the presentation for a more detailed look.
在 10 月 22 日 Hasura 的 Enterprise GraphQL Conf 上,我们展示了 Viaduct——我们称之为data-oriented service mesh,相信它将为基于微服务的 SOA 的模块化带来阶跃式提升。在这篇博文中,我们阐述 Viaduct 背后的理念,并粗略勾勒其工作原理。请观看演讲以了解更多细节。
Massive SOA Dependency Graphs
庞大的 SOA 依赖图
For a while, Service-Oriented Architectures have been moving towards ever larger numbers of small microservices. Modern applications can consist of thousands to tens of thousands of microservices connected in unconstrained ways. As a result, it’s not uncommon to see dependency graphs like the following:
一段时间以来,Service-Oriented Architectures 正朝着数量越来越多的小型微服务发展。现代应用可能由数千到数万个以不受约束方式连接的微服务组成。因此,出现如下所示的依赖图并不罕见:
Press enter or click to view image in full size
按回车键或点击以全尺寸查看图像
This particular dependency graph happens to be from Airbnb, but it’s not uncommon. Amazon, Netflix, and Uber are examples of those that shared similarly tangled dependency graphs.
这个特定的依赖图来自 Airbnb,但这种情况并不罕见。Amazon、Netflix 和 Uber 都分享过同样错综复杂的依赖图。
These dependency graphs are reminiscent of spaghetti code, just at the microservices level. Similar to how spaghetti code becomes harder and harder to modify over time, so does spaghetti SOA. To help manage the larger number of services inherent in a microservices-based architecture, we need organizing principles as well as technical measures to implement those principles. At Airbnb, we undertook an effort to find such principles and measures. Our investigations led us to the concept of a data-oriented service mesh, which we believe brings a new level of modularity to SOA.
这些依赖图让人联想到 spaghetti code,只是发生在微服务层面。正如 spaghetti code 随着时间推移越来越难修改,spaghetti SOA 也是如此。为了帮助管理微服务架构中固有的更多服务,我们需要组织原则以及...