场景一节省项目环境部署时间
1.单项目打包
每次部署项目到测试、生产等环境都要部署一大堆依赖的软件、工具而且部署期间出现问题几率很大不经意就花费了很长时间。
Docker主要理念就是环境打包部署可在任意Docker Engine运行。前期我们只需要将每个项目环境打包到镜像push到镜像仓库当有需要部署这个项目时直接pull镜像启动容器这个项目就可以访问了一次构建多次部署一劳永逸。
2.整套项目打包
公司有一项这样的业务有一个产品可以整套部署到客户那里以往都是派一名实施工程师到客户那部署。如果用了Docker我们可以前期将这套项目封装打包起来实现一键部署分分钟钟搞定就不需要再派人过去了。比如官方的Docker Compose编排工具。
3.新开源技术试用
有时我们想调研一些开源项目我们可以直接从公共镜像仓库pull项目官方做好镜像启动容器即可。
场景二环境一致性
开发工程师在Windows系统上开发项目测试、生产环境操作系统都是Linux系统这就产生了环境不一致的情况项目在开发电脑本地运行没问题到了测试或生产环境就运行不起来解决这问题最好方式就是这三处环境保持一致。软件版本、操作系统、物理机、云主机......试想下能做到吗
Docker将项目环境打包成镜像可以在任何Docker Engine上浪。此时Docker就是我们这些项目的基石Docker可移植性保持运行状态一致性可想而知是否更容易解决问题呢
场景三持续集成
一个项目版本快速迭代的测试场景需要一个合理的CI持续集成/CD持续部署环境支撑。CI/CD是一个周期性自动化项目测试流程包括构建、部署、测试、发布等工作很少需要人工干预。
项目测试流程大致如下图
4a9865dd3064a17d4ee37e546b0ba4ca.jpg
Docker结合Jenkins构建持续集成环境大致如下图
8c3ef2e57378972a177353133dd45eb7.jpg
Docker在上面这个图的作用是项目镜像构建和快速部署打通测试环境与生产环境高度保持多个环境之间一致性。
场景四微服务
微服务是近几年来IT圈内谈论比较多的一个名词意义也很简单尽可能细粒度拆分业务程序架构由多个独立服务组成业务系统。
Docker的容器设计原则一个容器一个服务容器之间相互隔离不妨试想一下如果容器作为这些独立服务的部署单元是不是有点恰到好处呢
场景五弹性伸缩
说到弹性伸缩通常是集群模式下存在。像AWS AutoScaling可以自定义资源阈值SLB自动添加EC2云主机应对业务访问量突发情况。
当适用Docker技术以后这种弹性伸缩的单元就是云主机之上的容器了。
容器集群化管理已经有成熟的解决方案比如官方的Swarm谷歌的K8S
由于Docker容器快速启动特性可以很快速的启动几十个、上百个容器来提供更多并发和资源利用率如果宿主机资源不够还需要加主机到集群中。
小结
根据上述应用场景总结下Docker特点开箱即用快速部署可移植性强环境隔离等。
Docker这些特性的确解决了企业IT基础架构很多问题合理的利用这些特点将更健壮和强大您的IT基础架构。也是为什么越来越多的企业拥抱它的原因
可能您觉得眼前这种模式并没有明显带来什么好处但从长远看细细品味还是可以提高更大生产力的
以上场景特点相互相应只有一个共同目标简化部署流程提高生产力
想学习Docker技术而又无从下手或者无法深入的朋友可以看看我录制的课程视频<Docker入门到高级应用实战>也许能帮助你进一步的提高专业能力升职加薪指日可待
课程地址https://opsdev.ke.qq.com
欢迎加技术群一起交流、学习
Python运维开发群249171211
Docker技术交流群719105297
Kubernetes v1.12 äºè¿å¶é¨ç½²é群ï¼HTTPS+RBACï¼
©著作权归作者所有来自51CTO博客作者李振良OK的原创作品如需转载请注明出处否则将追究法律责任
应用场景dockerDocker & K8S