关于在项目中有没有必要使用docker的一点感悟

news/2024/11/10 6:07:40

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一、背景

    笔者在一家供应链公司,主要业务是跨境商品,公司研发部门成立于2016年4月,还是比较年轻的,项目开发采用传统的MVC架构,平台交易量不是很大不大。

二、使用docker带来的好处

1、应用打包

    以前我们发布应用通常把应用打成war包然后交付给运维,由运维统一上线,但是会出现这么一个情况,就是运维对应用的配置不是很清楚,有可能出现配置不当或者因为某些环境差异导致应用发布失败,而采用docker后,开发只需要提交代码到Jekins,然后Jekins检测到版本库是否有更新,如果有代码更新则自动构建打包成image镜像,然后上传至docker registry,运维要做的就是在docker registry获取最新的image然后发布就行了,这样就避免了上诉情况的发生。

2、快速回滚能力

    笔者以前犯过这样一个错误,一个商品搜索系统因为修改了某些代码,上线后Elasticsearch抛出了异常,因为没有备份上一个war包,所以就需找出问题所在然后重新编译源代码及修改配置,最终生成war然后再重新上传,导致我们搜索服务瘫痪了2个小时,当时就想,如果把war包打成docker镜像,然后上传至docker registry ,这样如果线上出问题,就可以拉取上一个image,因为上一个版本的镜像就存在本地,所以回滚到上一个版本就是分分钟的事了,当然也可以写一些脚本自动化完成。

3、横向扩展能力

    当项目设计高并发,这时项目需要横向扩展,传统做法就是加机器,但是一些公司申请机器是非常耗时的工作,就拿笔者公司来说,要申请一台机器最起码要3天时间,时间太慢,这时候就可以使用docker来解决这个问题,就是使用公用CASS平台或自建CASS平台,这样当并发来时,就可以在分钟级别启动多个容器来承载更多的并发,当峰值过去了,就可以动态缩容,避免资源浪费。

三、我司为什么没有采用Docker

1.项目不涉及高并发
2.项目规模较小,人工完全可以应付
3.对于代码回滚能力,我们可以实现备份war包,当出现问题时可以使用替换war包的形式,而不是使用 Docker,因为如果采用docker,还有搭建私有docker registry,太过于重量级。

四、总结

项目要尽可能简单化,没必要为了技术而技术,适合自己才是做好的。

五、注意

在使用docker时要思考下下面几项。

1.使用docker后日志我们该如何采集,有朋友会说可以在image里放一个agent用于收集日志,然后上传至日志处理中心,但是想想,是否符合docker的原则呢(一个容器只负责一件事)
2.容器多了我们该如何管理?

是使用 docker自带的调度还是k8s又或者是mesos?学习成本如何?

3.如何做容器的监控

以上是我的一点总结,系统大神们斧正。

转载于:https://my.oschina.net/u/1455335/blog/906959


http://www.niftyadmin.cn/n/1980868.html

相关文章

静态类型检查与继承

类型检查(type checking)是指确认任一表达式的类型并保证各种语句符合类型的限制规则的过程。Java是静态类型检查的语言,可是仍然须要执行期类型检查,并抛出可能的执行时异常。 Wiki: Static type-checking is the process of verifying the type safety…

2017-05-25 前端日报

搜车 React Native 依赖管理方案React Native 持续部署VueConf尤雨溪演讲视频Redux状态管理之痛点、分析与改良The Tools of an HTML Email WorkflowECMAScript modules in browsersThe state of JavaScript modules【墙】

【面向对象设计原则】之依赖倒置原则(DIP)

依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对抽象(接口)编程,而不是针对实现细节编程。 开闭原则(OCP)是面向对象…

连载:面向对象葵花宝典:思想、技巧与实践(34) - DIP原则

DIP,dependency inversion principle,中文翻译为“依赖倒置原则”。DIP是大名鼎鼎的Martin大师提出来的。他在1996 5月的C Reporter发表“ The Dependency Inversion Principle”的文章具体阐述了DIP原则,而且在他的经典著作《 Agile Softwar…

希捷银河声音大_技术成熟:希捷表示将直接推出 24TB HAMR 硬盘

本文转自:IT之家作者:信鸽随着 SSD 固态硬盘技术的稳步推进,以及国产 NAND 颗粒的成功量产,传统机械硬盘厂商面临着越来越大的压力,而 HAMR(热辅助磁记录)技术,是提高存储密度的新一代解决方案。据外媒 BLO…

Kali渗透测试——WOL-E

网络唤醒工具WOL-E 网络唤醒(WOL)是非常有用的一个功能。电脑开启WOL功能后,当电脑长期没人使用会进入待机状态。这时,其他电脑就可以借助WOL功能,通过网络唤醒该计算机。在渗透测试中,寻找网络中支持网络唤…

zemax迈克尔逊干涉仪_诺贝尔物理学奖史演义系列(六)——迈克尔逊

迈克尔逊干涉仪是光学领域里最常见的干涉仪,是近代物理学的重要实验仪器之一。清晨起床,一缕阳光洒进房间,寓示着新的一天开始了。虽然太阳离地球非常遥远,但阳光只需要几秒钟就可以到达地面,由此可见光的速度非常快。…