赞
踩
随着互联网技术的不断发展,单机系统已经无法满足日益正常的用户量以及正常处理用户请求,这个时候就需要进行多机部署,比如同一个应用服务部署到5台或者10台机器,这个时候如果你去每一台机器配置变量,加载jar包等等,那么整个部署会非常耗时且每次升级也很耗时,容易出错,这个时候就出现了Docker,Docker 是一个以容器的形式将应用程序及其所有依赖项打包在一起的平台,它可以使应用程序的创建、部署和运行变得更加容易。实现“build once,run everywhere”,也就是说你可以编译一次,然后部署10台甚至100台机器都是很快就可以完成的。那么Docker是什么呢?
说起Docker,我们首先来看一下Docker的翻译
这里我们可以看到Docker可以翻译为码头工人,引申为 集装箱 ,那么对于集装箱来说,每一个集装箱都可以算得上是一个完整的容器,里面包含应用程序、Libs(函数库)、Deps(依赖)、配置与应用等,每一个集装箱相对于其他集装箱来说都是一个独立的世界,也就是一个独立的容器。并且这样的集装箱不用区分运货平台(操作系统),你可以直接放在火车上运送,也可以直接通过货船运送,这也就是Docker提到的“build once,run everywhere”。
那么说到Docker,到处充斥着的都是Docker的优点,比如说可以更快的交付和部署、安全性、可移植性、应用隔离、弹性伸缩快速扩展等,那么Docker有什么缺点呢?
隔离性上:虽然Docker使用了容器技术进行隔离,但是相较于虚拟机技术,Docker的隔离性仍然较弱。容器之间共享同一个操作系统内核以及其他组件,因此在受到攻击等情况时,更容易通过底层操作系统影响到其他容器;
资源上:虽说Docker可以在同一个操作系统上运行多个容器,但是每个容器都会占用一定的资源,比如内存和CPU等。因此,如果同时运行大量Docker容器,可能会对宿主机造成较大的压力,导致性能下降;
稳定性上:当多个Docker容器部署在一台服务器上时,当其中一台Docker容器发生问题或者崩溃的话会影响到操作系统的稳定性以及其他Docker容器的稳定。
个人理解,Docker和AI结合,那一定会让部署更加丝滑的。
首先来说,Docker可以提供一个标准化、一致的环境,那么可以通过AI应用在不同系统上运行时都可以获得相同的效果。这样通过AI的加入,可以极大的减少运维人员在部署或者多机部署上耗费的时间精力;
再者说,Docker的容器化技术可以打包AI应用及其依赖项,那么可以使其在任何支持Docker的平台上运行,无需对环境进行额外的配置,这也就排除了使用AI操作部署时对于环境以及操作配置文件无法保证准确性的情况;
最后,Docker还提供了强大的资源管理和调度功能,可以使得AI应用的资源分配更加灵活和高效,从而使得每一个Docker容器都可以以最优的资源稳定的运行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。