
当我们需要部署微服务的时候,哪个更好?Spring Cloud还是Kubernetes?答案是都可以,只是各自有其优势。

最近我读了A. Lukyanchikov写的一篇非常精彩的文章[1],讲的是用 Spring Cloud 和 Docker 来构建微服务架构。如果你还没读过,你应该读一下,因为它给出了一个关于如何利用 Spring Cloud 来创建一个简单的基于微服务的系统的综合视角。为了构建一个能扩展到数千个服务的可扩展且有弹性的微服务系统,它就必须有一套拥有广泛的构建时和运行时能力的工具集来帮助管理和控制。使用 Spring Cloud,既能实现功能型服务(比如统计服务,账号服务以及通知服务),又能实现基础架构服务(比如日志分析,配置服务器,服务发现,认证服务等)。描述这样一个使用 Spring Cloud 构造的微服务架构(MSA)图如下所示:
该图包含了运行时视角,但是它不包含打包,持续集成,扩展性,高可用,自愈等在MSA世界中同样重要的功能。本文假设大部分 Java开 发者都熟悉 Spring Cloud,我们来做个对比,看看 Kubernetes 是如何提出这些额外的概念,以关联到 Spring Cloud 的。

我们不会针对两者一个一个概念的比对,而是根据更广阔的微服务概念,来看看 Spring Cloud 和 Kubernetes 分别是如何实现他们的。今天有关 MSA 的一个好事是,它是一个有着易于理解的优缺点评估的架构风格。微服务能加强模块边界,各模块可以有独立的部署和技术差异。但是同时也带来了代价,需要开发分布式系统以及明显增加操作成本。一个关键的成功因素是聚焦于使用一套能帮助你实现尽可能多的 MSA 概念的工具。能使得启动过程迅速且容易是很重要的,但是通向产品化的旅程是很漫长的,你需要达到这样的高度[2]才能到达那里。
如上图所示,我们可以看到 MSA 中必须实现的那些最普遍的技术概念(我们将不会关注非技术概念,比如组织结构,文化等)。

最低0.47元/天 解锁文章
1293

被折叠的 条评论
为什么被折叠?



