DCRC是数据中心容器化实验室的简称,该实验室为研究数据中心容器化技术而成立。 DCRC致力于研究将传统的数据中心基础架构通过容器技术进行优化,提高数据中心的灵活性、可扩展性和安全性。 该实验室的成果不仅可供学术界参考,还可直接应用于工业界。 DCRC的研究内容涉及大规模数据中心的容器编排、负载均衡、容器监管和安全策略等方面。 实验室通过与各大互联网企业合作,建立了一个庞大的测试平台,对容器化技术进行系统的测试和验证,同时研发相应的工具、算法和框架,以应对物联网、云计算和大数据应用等领域的不断变革。 DCRC的研究成果对于现代数据中心的发展具有重要的价值。 容器技术作为快速部署和弹性伸缩的有效方式,将成为未来数据中心的主流趋势。 DCRC的研究对于促进容器技术在数据中心中的应用、提高数据中心的性能和可靠性,以及保护数据中心的数据和应用的安全,都将起到积极的推动作用。
用于管理容器化应用和服务常用的平台是Kubernetes与OpenShift。
1、Kubernetes
kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
2、OpenShift
OpenShift是红帽的云开发平台即服务(PaaS)。自由和开放源码的云计算平台使开发人员能够创建、测试和运行他们的应用程序,并且可以把它们部署到云中。OpenShift广泛支持多种编程语言和框架,另外它还提供了多种集成开发工具如Eclipse integration,JBoss Developer Studio和Jenkins等。OpenShift基于一个开源生态系统为移动应用,数据库服务等,提供支持。
Kubernetes与OpenShift的产品特点
1、Kubernetes
可移植:支持公有云,私有云,混合云,多重云(multi-cloud)。
可扩展:模块化,插件化,可挂载,可组合。
自动化:自动部署,自动重启,自动复制,自动伸缩/扩展。
2、OpenShift
采用图形化方式:易用的Web管理界面,在Docker易用性的基础上,再一次降低了使用容器技术部署容器应用的难度。
支持多种调度器:通过环境模板,很容易地创建和部署CaTTLe、Swarm、K8S、Mesos容器集群管理调度平台。
管理主机集群:管理对象是多台主机的集群,而不仅仅是单台容器主机,创建和管理几台、几十台应用服务器集群,只需要Ctrl+C、Ctrl+V,复制粘贴就解决了。
内置应用商店:使用其中的WordPress模板,创建一个WordPress博客系统,只需点点鼠标,部署难度不高于申请一个免费的电子邮箱!
资源弹性分配:内置应用负载均衡器,“服务”最小只需1个容器实例,当负载不够/或过剩时,只需点点鼠标,增加/减少“服务”中容器的实例数,即可解决问题,应用系统具有天生的弹性扩容能力。
在虚拟机(VMware)出现以前,应用的部署由于依赖问题,往往新应用要部署在独立的服务器上,导致硬件资源利用率低下,VMware的出现完美的解决了这个问题。
但是,VMware也存在不足,首先VMware实际上是虚拟独立的OS,这需要额外的CPU、RAM和存储资源;其次,由于虚拟机是独立的OS,因此启动比较慢;最后,对于独立的OS,需要单独的补丁&监控,对于商业应用还需要系统的授权许可。
基于以上原因,以google为代表的大型互联网公司一直在探索以容器技术替代虚拟机模型的缺点。
在虚拟机模型中,Hypervisor是 硬件虚拟化(Hardware Virtualization) —将硬件资源划分为虚拟资源打包进VM的软件结构中,而容器模型则是 操作系统虚拟化(OS Virtualization) 。
容器共享宿主机OS,实现进程级别的隔离,相对于虚拟机,容器启动快、资源消耗低、便于迁移 。
现代容器技术起源于Linux,依赖的核心技术包括内核命名空间(Kernel Namespace)、控制组(Control Group)、联合文件系统(Union File System) 。
容器技术的复杂性使其难于推广,知道Docker的出现,Docker使得容器技术的使用变得简单。
目前还没有Mac容器,windows平台win10和win server2016已经支持windows容器。
注意,因为容器是共享宿主机操作系统的,因此windows容器是不能运行在Linux系统的,但Docker for Mac和Docker for Windows 通过启动一个轻量的Linux VM来支持Linux容器
在windows中,系统必须是64位windows 10且开启 Hyper-V 和容器特性。
略,Mac安装参考 这里 ,windows安装参考 这里 。
安装成功后,执行 docker version 输出类似下面的内容:
镜像是由多个层组成的,包含一个精简的OS和应用和依赖包的独立对象。镜像存储于镜像仓库 官方镜像仓库服务 。
可以通过命令 docker image pull 镜像名 拉取镜像,一个完整的镜像名如下:
容器是镜像的运行时实例。
容器即应用。
将应用整合到容器运行的过程称为容器化。
容器化的一般步骤:
下面正式进入正题,通过容器化的方式定制一个全栈开发基础环境。
创建容器运行脚本:
最后执行构建命令 docker image build . 。
1.容器技术简介对于容器,它首先是一个相对独立的运行环境,在这一点有点类似于虚拟机,但是不像虚拟机那样彻底。 在容器内,应该最小化其对外界的影响,比如不能在容器内把宿主机上的资源全部消耗,这就是资源控制。 2.容器与虚拟机的区别容器和虚拟机之间的主要区别在于虚拟化层的位置和操作系统资源的使用方式。 11容器与虚拟机拥有着类似的使命:对应用程序及其关联性进行隔离,从而构建起一套能够随处运行的自容纳单元。 此外,容器与虚拟机还摆脱了对物理硬件的需求,允许我们更为高效地使用计算资源,从而提升能源效率与成本效益。 虚拟机会将虚拟硬件、内核(即操作系统)以及用户空间打包在新虚拟机当中,虚拟机能够利用“虚拟机管理程序”运行在物理设备之上。 虚拟机依赖于hypervisor,其通常被安装在“裸金属”系统硬件之上,这导致hypervisor在某些方面被认为是一种操作系统。 一旦 hypervisor安装完成, 就可以从系统可用计算资源当中分配虚拟机实例了,每台虚拟机都能够获得唯一的操作系统和负载(应用程序)。 简言之,虚拟机先需要虚拟一个物理环境,然后构建一个完整的操作系统,再搭建一层Runtime,然后供应用程序运行。 对于容器环境来说,不需要安装主机操作系统,直接将容器层(比如LXC或libcontainer)安装在主机操作系统(通常是Linux变种)之上。 在安装完容器层之后,就可以从系统可用计算资源当中分配容器实例了,并且企业应用可以被部署在容器当中。 但是,每个容器化应用都会共享相同的操作系统(单个主机操作系统)。 容器可以看成一个装好了一组特定应用的虚拟机,它直接利用了宿主机的内核,抽象层比虚拟机更少,更加轻量化,启动速度极快。 相比于虚拟机,容器拥有更高的资源使用效率,因为它并不需要为每个应用分配单独的操作系统——实例规模更小、创建和迁移速度也更快。 这意味相比于虚拟机,单个操作系统能够承载更多的容器。 云提供商十分热衷于容器技术,因为在相同的硬件设备当中,可以部署数量更多的容器实例。 此外,容器易于迁移,但是只能被迁移到具有兼容操作系统内核的其他服务器当中,这样就会给迁移选择带来限制。 因为容器不像虚拟机那样同样对内核或者虚拟硬件进行打包,所以每套容器都拥有自己的隔离化用户空间,从而使得多套容器能够运行在同一主机系统之上。 我们可以看到全部操作系统层级的架构都可实现跨容器共享,惟一需要独立构建的就是二进制文件与库。 正因为如此,容器才拥有极为出色的轻量化特性。 对Docker稍有接触的人应该都见过下图,无需更多解释,Docker减少Guest OS这一层级,所以更轻量和更高性能。 docker虚拟机区别3.深层区别:docker虚拟机区别更新:Docker现在已经支持windows平台,所以上面的Windows支持一栏可以忽略。
1、数据安全问题
不要将数据储存在容器中,这也是 Docker 官方容器使用技巧中的一条。容器随时可以停止、或者删除。当容器被rm掉,容器里的数据将会丢失。为了避免数据丢失,用户可以使用数据卷挂载来存储数据。但是容器的 Volumes 设计是围绕 Union FS 镜像层提供持久存储,数据安全缺乏保证。如果容器突然崩溃,数据库未正常关闭,可能会损坏数据。另外,容器里共享数据卷组,对物理机硬件损伤也比较大。
即使你要把 Docker 数据放在主机来存储 ,它依然不能保证不丢数据。Docker volumes 的设计围绕 Union FS 镜像层提供持久存储,但它仍然缺乏保证。
使用当前的存储驱动程序,Docker 仍然存在不可靠的风险。如果容器崩溃并数据库未正确关闭,则可能会损坏数据。
2、性能问题
大家都知道,MySQL 属于关系型数据库,对IO要求较高。当一台物理机跑多个时,IO就会累加,导致IO瓶颈,大大降低 MySQL 的读写性能。
在一次Docker应用的十大难点专场上,某国有银行的一位架构师也曾提出过:“数据库的性能瓶颈一般出现在IO上面,如果按 Docker 的思路,那么多个docker最终IO请求又会出现在存储上面。现在互联网的数据库多是share nothing的架构,可能这也是不考虑迁移到 Docker 的一个因素吧”。
针对性能问题有些同学可能也有相对应的方案来解决:
(1)数据库程序与数据分离
如果使用Docker 跑 MySQL,数据库程序与数据需要进行分离,将数据存放到共享存储,程序放到容器里。如果容器有异常或 MySQL 服务异常,自动启动一个全新的容器。另外,建议不要把数据存放到宿主机里,宿主机和容器共享卷组,对宿主机损坏的影响比较大。
(2)跑轻量级或分布式数据库
Docker 里部署轻量级或分布式数据库,Docker 本身就推荐服务挂掉,自动启动新容器,而不是继续重启容器服务。
(3)合理布局应用
对于IO要求比较高的应用或者服务,将数据库部署在物理机或者KVM中比较合适。目前TX云的TDSQL和阿里的Oceanbase都是直接部署在物理机器,而非Docker 。
3、网络问题
要理解 Docker 网络,您必须对网络虚拟化有深入的了解。也必须准备应付好意外情况。你可能需要在没有支持或没有额外工具的情况下,进行 bug 修复。
我们知道:数据库需要专用的和持久的吞吐量,以实现更高的负载。我们还知道容器是虚拟机管理程序和主机虚拟机背后的一个隔离层。然而网络对于数据库复制是至关重要的,其中需要主从数据库间 24/7 的稳定连接。未解决的 Docker 网络问题在1.9版本依然没有得到解决。
把这些问题放在一起,容器化使数据库容器很难管理。我知道你是一个顶级的工程师,什么问题都可以得到解决。但是,你需要花多少时间解决 Docker 网络问题?将数据库放在专用环境不会更好吗?节省时间来专注于真正重要的业务目标。
4、状态
在 Docker 中打包无状态服务是很酷的,可以实现编排容器并解决单点故障问题。但是数据库呢?将数据库放在同一个环境中,它将会是有状态的,并使系统故障的范围更大。下次您的应用程序实例或应用程序崩溃,可能会影响数据库。
**知识点:**在 Docker 中水平伸缩只能用于无状态计算服务,而不是数据库。
Docker 快速扩展的一个重要特征就是无状态,具有数据状态的都不适合直接放在 Docker 里面,如果 Docker 中安装数据库,存储服务需要单独提供。
目前,TX云的TDSQL(金融分布式数据库)和阿里云的Oceanbase(分布式数据库系统)都直接运行中在物理机器上,并非使用便于管理的 Docker 上。
5、资源隔离
资源隔离方面,Docker 确实不如虚拟机KVM,Docker是利用Cgroup实现资源限制的,只能限制资源消耗的最大值,而不能隔绝其他程序占用自己的资源。如果其他应用过渡占用物理机资源,将会影响容器里 MySQL 的读写效率。
需要的隔离级别越多,获得的资源开销就越多。相比专用环境而言,容易水平伸缩是Docker的一大优势。然而在 Docker 中水平伸缩只能用于无状态计算服务,数据库并不适用。
我们没有看到任何针对数据库的隔离功能,那为什么我们应该把它放在容器中呢?
6、云平台的不适用性
大部分人通过共有云开始项目。云简化了虚拟机操作和替换的复杂性,因此不需要在夜间或周末没有人工作时间来测试新的硬件环境。当我们可以迅速启动一个实例的时候,为什么我们需要担心这个实例运行的环境?
这就是为什么我们向云提供商支付很多费用的原因。当我们为实例放置数据库容器时,上面说的这些便利性就不存在了。因为数据不匹配,新实例不会与现有的实例兼容,如果要限制实例使用单机服务,应该让 DB 使用非容器化环境,我们仅仅需要为计算服务层保留弹性扩展的能力。
7、运行数据库的环境需求
常看到 DBMS 容器和其他服务运行在同一主机上。然而这些服务对硬件要求是非常不同的。
数据库(特别是关系型数据库)对 IO 的要求较高。一般数据库引擎为了避免并发资源竞争而使用专用环境。如果将你的数据库放在容器中,那么将浪费你的项目的资源。因为你需要为该实例配置大量额外的资源。在公有云,当你需要 34G 内存时,你启动的实例却必须开 64G 内存。在实践中,这些资源并未完全使用。
怎么解决?您可以分层设计,并使用固定资源来启动不同层次的多个实例。水平伸缩总是比垂直伸缩更好。
总结
针对上面问题是不是说数据库一定不要部署在容器里吗?
答案是:并不是
我们可以把数据丢失不敏感的业务(搜索、埋点)就可以数据化,利用数据库分片来来增加实例数,从而增加吞吐量。
docker适合跑轻量级或分布式数据库,当docker服务挂掉,会自动启动新容器,而不是继续重启容器服务。
数据库利用中间件和容器化系统能够自动伸缩、容灾、切换、自带多个节点,也是可以进行容器化的。
见仁见智,一般不推荐用容器做状态或持久化的东西,因为无法保证数据安全。当然,你如果是类似于一主多从,并对数据一致性没有变态的要求,那用容器跑几个只读从库也没啥不可以
专访阿里云资深专家易立
集装箱曾经改变全球贸易的供应链,Docker也将改变软件的供应流程。
4月26日的云栖大会·南京峰会上,阿里云资深专家汤子楠发布了飞天专有云敏捷版(Apsara Stack Agility),此前美国Docker公司首席执行官Ben Golub 在曾在DockerCon 2017上宣布过这个消息。
这是阿里云和Docker公司合作之后的产物,是国内第一个支持Docker官方企业版(Enterprise Edition, EE)的容器类产品,包含从容器的创建到运行以及镜像的全生命周期管理,可以部署在企业自有数据中心环境内,特别适用于企业专有云及混合云场景。
据阿里云方面介绍,阿里巴巴集团内部运用容器技术已有六年时间。2016年,阿里电商核心应用的基础平台全部转向Docker,并通过天猫双11进行了技术验证。
容器技术领域,最为著名的公司,无疑为Docker,后者也是一个容器管理引擎。与传统虚拟机相比,容器技术是操作系统级别的虚拟化技术,更为轻量。36氪曾经介绍过,Docker则是在容器技术的基础上额外提供了标准镜像格式。Docker就像被标准化的容器,相当于云计算领域的“集装箱”,可以承载后端的各种技术。
自从2013年开源的Docker项目发布之后,其以惊人的速度被企业采用,已成为容器运行的事实标准。据Docker公司公布的数据,截止目前为止,Docker Hub上的镜像下载量,已经达到120亿次,去年6月份这个数据是60亿;镜像总量超过了90万,去年只有40万。
国外许多大公司都积极拥抱Docker,包括AWS、IBM、HPE和微软等。国内网易、腾讯、阿里等主流云计算厂商,都提供基于Docker的容器服务。2015年,阿里云就在Docker社区版的基础上推出了阿里云容器服务,华大基因、上海证券交易所、中信集团、ofo共享单车、深圳码隆科技等多家企业均是容器服务的客户。去年10月,Docker与阿里云达成合作,将通过后者落地中国。
阿里云非常看好Docker的前景,认为Docker也将像集装箱一样,是改变世界那只箱子。就像集装箱改变全球贸易的供应链一样,Docker将改变软件的供应流程。根据阿里云去年面向技术人员所做的调查,其中超过87%的人表示,有意愿现在使用或者可能在未来六个月内使用Docker的架构。
据阿里云资深专家易立介绍,Docker技术有三方面的优势。
首先是敏捷。由于Docker的轻量级,就意味着同一硬件上可以运行更多的应用,它可以将系统利用率提高5-10倍;而且因为轻量,它的启动速度非常快,当公司业务出现峰值时,可以通过容器快速部署。容器技术也能实现产品的快速迭代,据调查,Docker对软件版本发布频率有高达13倍的平均提升。
然后是可移植性。在传统架构下,开发人员交付应用之后,运维人员需要部署合适的运行平台。两个环境间的差异往往会导致,应用在测试环境下正常运行,上线之后却经常会出问题。Docker则能把应用和应用环境一同打包,开发完成之后,运维人员可以直接使用这个容器来部署代码。
经过容器化的应用可以部署在任何地方,就可以避免原来因为环境差异带来的问题,同时也可以无缝迁移云,不用锁定某个云服务商。用户在自己的笔记本电脑上开发了一个应用,容器化之后可以不加修改地发布到云上。
第三是可控性。容器使得大规模互联网化运维变得可能,原来,企业的IT系统用久了,经过多次版本更新,里面的东西变得不可知,一旦出现问题需要花大量的时间排查。如果用容器化的方式交付应用,则线上每一个版本都可以复现,所有的东西都可以回溯。一旦原来的IT人员离职了,其他人也更容易理解应用程序是如何创建和工作的。
此外,易立指出,促进了开发和运维的一体化之外,Docker还有利于企业应用的现代化改进。传统应用往往是单体架构,如企业原有的CRM、ERP等大型应用,但随着新需求增加,更新和修复大型这类应用变得越来越困难;为此出现了微服务架构,其提倡将大应用拆解分一堆小服务,彼此协调提供功能,单个小服务可以独立部署、测试和运行。云原生的企业应用的架构一般是后者,Docker这套执行环境就非常适配云原生应用。
根据阿里云去年的调查,技术人员使用或考虑使用Docker,大部分出于上述原因考虑。
虽然容器技术成为主流,将会是未来的趋势,但目前在国内仍未大规模普及。企业要使用该架构,依然需要付出一定的迁移和学习成本,可能还会有一定的安全考虑,这也是影响Docker普及的原因。因此,Docker推出了企业版处理类似问题。
据易立介绍,使用Docker架构需要对企业应用容器化,像刚刚说的,云原生应用与Docker非常契合,但不可能所有的应用都是新写的,有的企业应用属于传统架构、没有微服务,需要对现有系统做改造和迁移。
因此,针对传统的企业应用,Docker推出了传统应用迁移技术,可以一键转换虚拟机镜像,将原来的企业化应用转化为可以用容器化的方式交付和运维的应用。企业可以有两种路径,可以先将整个大应用容器化,再逐渐转化成微服务架构;也可以先将企业拆成微服务架构,然后容器化。
此前,之前Docker企业版未落地中国,社区版由开源社区来维护,每个月有个更新,三个月发布一次稳定版,这样的好处是版本演进速度很快,但对企业而言却带来很大的运维压力,需要经常大规模对Docker版本进行修复和升级,企业需要有极强的软件研发能力,并不是所有的企业IT部门都有将这种技术产品化的能力。
全球有不少公开的Docker镜像库,其中Docker Hub是最大的公开仓库,开发者可以在上面共享和拉取Docker镜像,生成容器化的应用。但谁都可以往仓库推送镜像,就意味着无法保证安全风险。
针对此,Docker推出了Docker Store,上面的容器镜像全都由Docker认证,确保安全性,包括通过安全扫描,确定没有不合规的代码;同时通过签名“密封”镜像,确保其不可篡改。这就有点像一个容器版的Apps Store,里面所有的镜像都通过Docker审核。
总而言之,Docker企业版面向企业的,是一个完整的场景,而不是一个技术。它有增强的编排能力,有完整的控制台界面,里面的操作都可以安全地使用,它在社区版上增加了面向企业用户的管理和安全能力,同时提供了经过认证的操作系统、容器和插件。中国Docker企业版的技术支持,将会由阿里云和Docker联合提供。
说到阿里云跟Docker的合作,包括三个层面:Docker会借助阿里云的云基础架构进入中国,后者将为Docker Hub提供中国运营的基础服务;阿里云会推动Docker企业版的落地,联合提供销售和技术支持;阿里云成为Docker认证的云平台,Docker的认证插件和认证容器会验证在阿里云上的稳定可运行性,确保客户在阿里云上使用Docker的体验。
目前阿里云提供公共云版、飞天专有云版和飞天专有云敏捷版三种Docker的部署形态,客户也可以选择在公共云上使用,也可以自己部署。
自从容器技术面世之后,其生态内也出现了不少创业公司,国外涌现不少专注容器基础服务、网络、安全、存储和监控等某一细分领域的创业公司;在国内,除了阿里云以外,也有大批围绕Docker技术提供服务的创业公司,提供云端的快速部署和管理能力,比如36氪报道过的时速云、数人云、灵雀云、才云科技、轻元科技。阿里云整合了Docker企业版的飞天敏捷版,跟他们可能存在一定竞争关系。
才云科技CEO张鑫曾经说过,Docker本身一定不是核心竞争力,而真正的核心是如何能让用户或企业“无痛”地从非Docker的环境迁移至Docker化的世界,以及如何帮助用户在新的Docker化的世界里建立一整套的开发运维体系。
阿里云也表示,企业需要的,并不仅是Docker这个技术,而是一整套应用的解决方案。用户最终选择谁,取决于谁的服务更完整更好。不过,他们认为,国内容器市场还在成长阶段,他们和这些公司应该是在共同培育市场。
;《Docker 技术入门与实战》(杨保华)电子书网盘下载免费在线阅读
资源链接:
链接:技术入门与实战-杨保华+戴王剑+曹亚仑
作为字节跳动旗下的企业级技术服务平台,火山引擎抽象了字节跳动在硬件、存储、安全、业务、开发、运维等多个场景下的云原生实践思想,推出了包含上层解决方案和中层基础产品服务的云原生全系产品。 火山引擎容器服务,架构上通过深度融合新一代云原生技术,提供以容器为核心的高性能 Kubernetes 容器集群管理服务,助力用户快速构建容器化应用。 主要有以下几个优势:1、可视化交互:构建符合用户使用习惯的交互界面,简化集群管理及容器化应用构建等相关功能的操作逻辑,提高容器业务部署效率,实时观测底层资源使用情况。 2、简单易用:提供容器集群一键创建和升级,提供集群管理、资源分配、容器调度、应用编排等能力,简化云原生应用的管理与运维,用户无需关注底层架构和集群管理扩展设计。 3、稳定可靠:全面托管的容器集群环境,控制面高可用设计,最大化保障用户集群容器化业务的稳定性与可用性,容器集群资源按需快速弹性伸缩,稳定应对业务高峰期的突发流量浪涌。 4、全面拥抱云原生:基于业界主流的 Kubernetes 实现,完全兼容原生 Kubernetes API 和 Kubectl,为容器化应用提供快速部署、策略调度、服务发现和动态伸缩等一系列完整功能。 5、构建混合云能力:提供强大的第三方对接兼容能力,可一键创建公有云容器服务集群,构建数据中心本地集群与公有云集群间的连接“桥梁”,云上云下产品能力一致性体验,最大程度降低用户对多集群业务的运营管理成本和运维难度。
容器化部署与传统部署的区别如下:
以Docker为例子,Docker是能够把应用程序自动部署到容器的开源引擎。
传统的部署模式是:安装(包管理工具或者源码包编译)->配置->运行;
Docker的部署模式是:复制->运行。实现更轻量级的,方便快速部署,对于部署来说可以极大地减少部署的时间成本和人力成本。
容器化部署的优势
1、交付物标准化
Docker是软件工程领域的“标准化”交付组件,最恰到好处的类比是“集装箱”。
传统的软件交付物包括:应用程序、依赖软件安装包、配置说明文档、安装文档、上线文档等非标准化组件。Docker的标准化交付物称为“镜像”,它包含了应用程序及其所依赖的运行环境,大大简化了应用交付的模式。
2、一次构建,多次交付
类似于集装箱的“一次装箱,多次运输”,Docker镜像可以做到“一次构建,多次交付”。当涉及到应用程序多副本部署或者应用程序迁移时,更能体现Docker的价值。一次创建和配置之后,可以在任意地方运行。测试人员可以将容器与持续集成系统结合,在pipeline中自动化的完成集成测试,同时运维人员可以通过持续部署系统对应用自动完成部署。
3、应用隔离
集装箱可以有效做到货物之间的隔离,使化学物品和食品可以堆砌在一起运输。Docker可以隔离不同应用程序之间的相互影响,但是比虚拟机开销更小。
定义不同、速度不同等。 容器化部署是将软件代码及其所有依赖项(如库、框架等)打包到独立的容器中,这些容器能够隔离各自的运行环境。 传统部署则是将环境和项目分开搭建部署,即在平台或操作系统上直接编写代码。 容器化部署将速度作为关键指标之一,其快速且自动化的过程使得部署概念能够融入应用程序设计的核心。 传统部署往往涉及多个手动过程,这些过程需以正确方式执行才能成功,因此速度较慢。
本文地址:http://www.hyyidc.com/article/25231.html