首页 > > > Docker 技术这些应用场景,你都知道吗?
作者 | 李振良 OK
原文 | http://blog.51cto.com/lizhenliang/1978081
场景一:节省项目环境部署时间
每次部署项目到测试、生产等环境,都要部署一大堆依赖的软件、工具,而且部署期间出现问题几率很大,不经意就花费了很长时间。
Docker 主要理念就是环境打包部署,可在任意 Docker Engine 运行。前期我们只需要将每个项目环境打包到镜像,push 到镜像仓库,当有需要部署这个项目时,直接 pull 镜像启动容器,这个项目就可以访问了!一次构建多次部署,一劳永逸。
公司有一项这样的业务:有一个产品可以整套部署到客户那里,以往都是派一名实施工程师到客户那部署。如果用了 Docker,我们可以前期将这套项目封装打包起来,实现一键部署,分分钟钟搞定,就不需要再派人过去了。比如官方的 Docker Compose 编排工具。
有时,我们想调研一些开源项目,我们可以直接从公共镜像仓库 pull 项目官方做好镜像启动容器即可。
场景二:环境一致性
开发工程师在 Windows 系统上开发项目,测试、生产环境操作系统都是 Linux 系统,这就产生了环境不一致的情况:项目在开发电脑本地运行没问题,到了测试或生产环境就运行不起来,解决这问题最好方式就是这三处环境保持一致。软件版本、操作系统、物理机、云主机...... 试想下,能做到吗?
Docker 将项目环境打包成镜像,可以在任何 Docker Engine 上浪。此时 Docker 就是我们这些项目的基石,Docker 可移植性,保持运行状态一致性,可想而知,是否更容易解决问题呢?
场景三:持续集成
一个项目版本快速迭代的测试场景,需要一个合理的 CI(持续集成)/CD(持续部署)环境支撑。CI/CD 是一个周期性自动化项目测试流程,包括构建、部署、测试、发布等工作,很少需要人工干预。
项目测试流程大致如下图:

Docker 结合 Jenkins 构建持续集成环境大致如下图:

Docker 在上面这个图的作用是项目镜像构建和快速部署,打通测试环境与生产环境,高度保持多个环境之间一致性。
场景四:微服务
微服务是近几年来 IT 圈内谈论比较多的一个名词,意义也很简单:尽可能细粒度拆分业务程序架构,由多个独立服务组成业务系统。
Docker 的容器设计原则:一个容器一个服务,容器之间相互隔离,不妨试想一下,如果容器作为这些独立服务的部署单元,是不是有点恰到好处呢?
场景五:弹性伸缩
说到弹性伸缩,通常是集群模式下存在。像 AWS AutoScaling,可以自定义资源阈值,SLB 自动添加 EC2 云主机,应对业务访问量突发情况。
当适用 Docker 技术以后,这种弹性伸缩的单元就是云主机之上的容器了。
容器集群化管理已经有成熟的解决方案,比如:官方的 Swarm,谷歌的 K8S
由于 Docker 容器快速启动特性,可以很快速的启动几十个、上百个容器来提供更多并发和资源利用率(如果宿主机资源不够,还需要加主机到集群中)。
小结:
根据上述应用场景总结下 Docker 特点:开箱即用,快速部署,可移植性强,环境隔离等。
Docker 这些特性的确解决了企业 IT 基础架构很多问题,合理的利用这些特点将更健壮和强大您的 IT 基础架构。也是为什么越来越多的企业拥抱它的原因!
可能您觉得眼前这种模式并没有明显带来什么好处,但从长远看,细细品味,还是可以提高更大生产力的!
以上场景特点相互相应,只有一个共同目标:简化部署流程,提高生产力!

数领先机 智赢未来
DTCC2018
中国数据库技术大会(简称 DTCC)是国内数据库及大数据领域规模最大、最受欢迎的技术交流盛会,每年一届。自 2010 年以来,迄今已成功举办了八届,累计参与人次达到 20000+。DTCC 每年都将邀请百余位行业专家,就热点技术话题进行分享,为数据库人群、大数据从业人员、广大互联网人士及行业相关人士提供最具价值的交流平台。
2018 年 5 月 10-12 日,第九届中国数据库技术大会(DTCC2018)将如约而至。本届大会以 “数领先机 • 智赢未来” 为主题,设定 2 大主会场及 20 个技术专场,邀请来自国内外互联网、金融、教育等行业百余位技术专家,共同探讨 Oracle、MySQL、NoSQL、大数据、机器学习、区块链、数据可视化等领域的前瞻性热点话题与技术。
点击左下阅读原文,立享购票8.8折优惠

原文作者:;如有侵权,请联系管理员删除。