微服务和容器之间是什么关系?

10回答

wykkxwykkx  系统架构师 , 某基金公司
zftang0809xgeneZhouqift等赞同了此回答
现在一提到微服务,有很多人会想到容器技术(这里说到的容器技术是指docker)。那么微服务和容器之间到底有什么关系呢,我来简要和大家探讨下。先抛出结论:微服务和容器其实没有半毛钱关系。微服务理念出现的比容器技术要早很多,其理念是在70年代提出的。而容器技术是2013年才提出...显示全部

现在一提到微服务,有很多人会想到容器技术(这里说到的容器技术是指docker)。那么微服务和容器之间到底有什么关系呢,我来简要和大家探讨下。先抛出结论:微服务和容器其实没有半毛钱关系。微服务理念出现的比容器技术要早很多,其理念是在70年代提出的。而容器技术是2013年才提出的,它最初是由一个叫做dotcloud的项目发展而来,后来改名叫做docker。基于微服务的思想开发应用程序是完全可以不用容器技术的,例如现在很流行的spring cloud和dubbo都是可以不使用容器技术来做开发实现的。从2017年开始很多人喜欢同时提到微服务和容器化,这主要是基于以下几个原因:(1)按照微服务的理念,如果使用容器作为基础设施,能够实现快速部署,快速迭代;(2)在云计算浪潮中,容器作为替代vm的基础设施受到大家的关注度更高;(3)k8s作为几乎实际默认的容器化平台标准,其集成了配置中心和注册中心,相当于天然的帮微服务架构解决了自己开发配置中心和注册中心的问题。在我看来,以上三个是促使在2017年度很多时候,大家会将微服务和容器技术一起谈论的重要原因,甚至有些公司直接将自己的新建的微服务应用部署在容器平台上。

收起
 2018-08-30
浏览32767
nuaaysnuaays  技术经理 , 信而富
xgenecrisjunguoxilin等赞同了此回答
容器是一种新的软件交付方式,它把应用和其运行环境以一个标准镜像格式打包, 能保证应用及其运行环境的统一,并能在装有Docker环境上以容器方式运行,不管宿主机是什么环境 微服务是应用软件架构设计模式,推崇单一职责、服务自治、轻量通信和接口明确等原则, 基于此,容器可以比较...显示全部

容器是一种新的软件交付方式,它把应用和其运行环境以一个标准镜像格式打包, 能保证应用及其运行环境的统一,并能在装有Docker环境上以容器方式运行,不管宿主机是什么环境

微服务是应用软件架构设计模式,推崇单一职责、服务自治、轻量通信和接口明确等原则, 基于此,容器可以比较好的配合使微服务易于开发和维护、按需伸缩等

收起
 2018-08-31
浏览32767
李守超李守超  系统架构师 , 博云
wzpystcdcARZxgene等赞同了此回答
微服务是一种架构风格,是一种使用一套小服务来开发大型复杂软件应用的方式途径。容器是一种运行时技术,允许许多应用以互相隔离的方式运行在虚拟机、物理机等之上。同时,分层的容器镜像技术、类似Kubernetes的容器编排技术等的出现,使得运维人员管理成百上千的应用实例变成了...显示全部

微服务是一种架构风格,是一种使用一套小服务来开发大型复杂软件应用的方式途径。
容器是一种运行时技术,允许许多应用以互相隔离的方式运行在虚拟机、物理机等之上。同时,分层的容器镜像技术、类似Kubernetes的容器编排技术等的出现,使得运维人员管理成百上千的应用实例变成了非常简单的一件事情。
所以可以看到,使用容器技术作为微服务架构的基础,是非常自然不过的选择。

收起
 2019-05-28
浏览30217
刚接触容器的人,可以将容器与虚拟机类比来看,那么微服务是部署在容器中,或虚拟机中,或物理服务器中,都是可以的。但是容器有其独特的优势,快速启停,独立进程等,可以弥补很多的微服务运维上的缺点,所以两者可以说是黄金搭档。但是两者本身没有依赖性,都是独立的东西,只是两者的理念结...显示全部

刚接触容器的人,可以将容器与虚拟机类比来看,那么微服务是部署在容器中,或虚拟机中,或物理服务器中,都是可以的。
但是容器有其独特的优势,快速启停,独立进程等,可以弥补很多的微服务运维上的缺点,所以两者可以说是黄金搭档。
但是两者本身没有依赖性,都是独立的东西,只是两者的理念结合,会更加完美。

收起
 2019-05-27
浏览30507
youki2008youki2008  系统架构师 , DDT
wfang_2020wangxqtuomi2013赞同了此回答
微服务与容器之间不存在关联性。只是微服务可以部署在容器中来运行。 容器只是微服务的一种新的软件交付方式而已。显示全部

微服务与容器之间不存在关联性。只是微服务可以部署在容器中来运行。 容器只是微服务的一种新的软件交付方式而已。

收起
 2020-04-24
浏览2456
狄俄尼索斯狄俄尼索斯  软件架构设计师 , UProject
Christopheryinxinxgene赞同了此回答
容器是基础设施,微服务是架构模式。两者是相辅相成的,容器技术成熟给微服务实践带来了很多便利。显示全部

容器是基础设施,微服务是架构模式。两者是相辅相成的,容器技术成熟给微服务实践带来了很多便利。

收起
 2019-07-20
浏览23560
lonelybluelonelyblue  研发工程师 , tyt
Christopheryinxin赞同了此回答
容器是一种打包格式,抹平开发、测试、SIT、UAT、准生产和生产的环境差异;另外容器是半虚拟化,对于宿主机资源占用率低,以宿主机的进程方式存取基于容器镜像的分层文件系统,对于宿主机资源利用率提升很大。微服务是一种架构风格,轻量级分布式部署, 相对于单体应用来说复杂度高 ,需...显示全部

容器是一种打包格式,抹平开发、测试、SIT、UAT、准生产和生产的环境差异;另外容器是半虚拟化,对于宿主机资源占用率低,以宿主机的进程方式存取基于容器镜像的分层文件系统,对于宿主机资源利用率提升很大。
微服务是一种架构风格,轻量级分布式部署, 相对于单体应用来说复杂度高 ,需要微服务治理体系和工具的辅助配合。
容器对于DevOps的帮助,例如适合CICD的构建过程无状态化,配合K8S的强大编排引擎适合进行开发、测试、SIT等环境快速拉起,结合普罗米修斯监控系统和微服务的分布式链路跟踪帮助快速排障等,提升开发运维一体化成熟度。

收起
 2019-10-31
浏览5683
zftang0809zftang0809  软件开发工程师 , 合肥华宇随身软件
两个技术路线显示全部

两个技术路线

收起
 2020-05-07
浏览2277
wzpystcdcwzpystcdc  研发工程师 , 某公司
应用容器让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。容器工具可以把:业务逻辑容器、数据库容器、储存容器、队列容器使得软件可以拆分成若干个标准化...显示全部

应用容器让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
容器工具可以把:业务逻辑容器、数据库容器、储存容器、队列容器使得软件可以拆分成若干个标准化容器,然后像搭积木一样组合起来,让彼此通信,从而形成微服务。
因此微服务很适合用 容器实现,每个容器承载一个服务。一台计算机同时运行多个容器,从而就能很轻松地模拟出复杂的微服务架构

收起
 2020-03-15
浏览2923
calvin_kscalvin_ks  容器平台产品经理 , 青云QingCloud
打个轻松一点的类比,微服务类似太极拳这样的统称,太极拳里面有流派、陈氏太极、杨氏太极等等,微服务落地有SpringCloud、Dubbo、ServiceComb还有基于sidecar的service mesh等等,打太极拳的时候有人赤手,有人戴布手套,有人戴皮手套,就好比微服务有人直接调度业务跑在物理机上、...显示全部

打个轻松一点的类比,微服务类似太极拳这样的统称,太极拳里面有流派、陈氏太极、杨氏太极等等,微服务落地有SpringCloud、Dubbo、ServiceComb还有基于sidecar的service mesh等等,打太极拳的时候有人赤手,有人戴布手套,有人戴皮手套,就好比微服务有人直接调度业务跑在物理机上、虚拟机上、K8s之上

收起
 2020-02-21
浏览2969

提问者

小遥yao系统工程师, 某保险

问题状态

  • 发布时间:2018-08-30
  • 关注会员:12 人
  • 问题浏览:63336
  • 最近回答:2020-05-07