部署微服务:部署微服务:SpringCloud和和Kubernetes的比较的比较
当我们需要部署微服务的时候,哪个更好?Spring Cloud还是Kubernetes?答案是都可以,只是各自有其优势。
Spring Cloud 和 Kubernetes 都宣称自己是开发和运行微服务的最佳环境,但是它们的本质非常不一样,所追求的目标也不
同。本文我们分析一下两个平台是如何在其擅长的、实现基于微服务的架构(MSA)上起到作用的,并判断如何利用两者的
强项,来帮助我们在微服务旅程上获得成功。
背景故事
最近我读了A. Lukyanchikov写的一篇非常精彩的文章,讲的是用Spring Cloud和Docker来构建微服务架构。如果你还没读
过,你应该读一下,因为它给出了一个关于如何利用Spring Cloud来创建一个简单的基于微服务的系统的综合视角。为了构建
一个能扩展到数千个服务的可扩展且有弹性的微服务系统,它就必须有一套拥有广泛的构建时和运行时能力的工具集来帮助管
理和控制。使用Spring Cloud,既能实现功能型服务(比如统计服务,账号服务以及通知服务),又能实现基础架构服务(比
如日志分析,配置服务器,服务发现,认证服务等)。描述这样一个使用Spring Cloud构造的微服务架构(MSA)图如下所
示:
MSA with Spring Cloud (by A. Lukyanchikov)
该图包含了运行时视角,但是它不包含打包,持续集成,扩展性,高可用,自愈等在MSA世界中同样重要的功能。本文假设
大部分Java开发者都熟悉Spring Cloud,我们来做个对比,看看Kubernetes是如何提出这些额外的概念,以关联到Spring
Cloud的。
微服务概念
我们不会针对两者一个一个概念的比对,而是根据更广阔的微服务概念,来看看Spring Cloud和Kubernetes分别是如何实现他
们的。今天有关MSA的一个好事是,它是一个有着易于理解的优缺点评估的架构风格。微服务能加强模块边界,各模块可以
有独立的部署和技术差异。但是同时也带来了代价,需要开发分布式系统以及明显增加操作成本。一个关键的成功因素是聚焦
于使用一套能帮助你实现尽可能多的MSA概念的工具。能使得启动过程迅速且容易是很重要的,但是通向产品化的旅程是很
漫长的,你需要达到这样的高度才能到达那里。
评论0