在现代微服务环境中,构建小型、单一的应用程序的旧策略又再一次流行了起来。
1984 年,Rob Pike 和 Brian W. Kernighan 在 AT&T 贝尔实验室技术期刊上发表了名为 “Unix 环境编程” 的文章,其中他们使用 BSD 的 cat -v
例子来认证 Unix 哲学。简而言之,Unix 哲学是:构建小型、单一的应用程序 —— 不管用什么语言 —— 只做一件小而美的事情,用 stdin
/ stdout
进行通信,并通过管道进行连接。
听起来是不是有点耳熟?
是的,我也这么认为。这就是 James Lewis 和 Martin Fowler 给出的 微服务的定义 。
简单来说,微服务架构的风格是将单个 应用程序开发为一套小型服务的方法,每个服务都运行在它的进程中,并用轻量级机制进行通信,通常是 HTTP 资源 API 。
虽然一个 *nix 程序或者是一个微服务本身可能非常局限甚至不是很有用,但是当这些独立工作的单元组合在一起的时候就显示出了它们真正的好处和强大。
*nix程序 vs 微服务
下面的表格对比了 *nix 环境中的程序(例如 cat
或 lsof
)与微服务环境中的程序。
*nix 程序 | 微服务 |
---|
via: https://opensource.com/article/18/11/revisiting-unix-philosophy-2018
作者:Michael Hausenblas 选题:lujun9972 译者:Jamskr 校对:wxy
发表回复