更新时间:2022-03-17 06:18:29
A:前期的学习和选型用了2个月。后面基础搭建用了1个月,耗时最长的是旧服务的Docker化,这个到现在还没全部完成,因为技术债太多。Q:可以说明下为什么生产环境不用Docker吗,跟你们是金融公司属性有什么关系?
A:因为金融公司对于稳定性有非常高的要求,同时对于生产服务器数量和空置率又不敏感。所以Docker这样的新技术应用还是需要不会那么快切入。同时运维团队也要去学习,技术储备等都是阻碍。所以现在很多银行也只是在周围不重要,变化频繁的系统开始尝试Docker。Q:主要想了解下你们集成的流程?
A:CI的流程和普通的CI类似。代码变动后触发Jenkins,Jenkins会编译,打包,产生一个对应的发布单元的新容器版本。然后触发对应的脚本来停服务,取镜像,启动容器。Q:为什么不考虑在私有云平台上玩?
A:因为资源限制,从硬件及人力上都不足。另外就几十台服务器,没必要。如果有几百台就要考虑资源调度等因素。Q:请问容器做编排管理,你们选用什么工具
A:我们只用了原生的Swarm。这样不用考虑开源软件二次开发及工具间的版本兼容问题。Q:如何让宿主机挂载到存储之后,让容器全部跑在存储里面?
A:容器本身还是在Docker主机的磁盘中,但其他数据:例如配置文件都是从SAN上挂载到容器中。这样保证如果Docker主机down了,容器可以在其他主机上重启恢复。Q:z387的ip如何分配?
A:Contiv会帮你分配IP的,不用自己管理。Q:为什么把JIRA也Docker?
A:因为资源不足,没有强大的主机来跑JIRA,也没有办法主备。所以干脆把这些重要系统都放到容器里。这样就可以用较少的主机来保证性能和可用性。Q:镜像带环境变量属性吗?
A:看情况,我们跑自动化测试的镜像有环境变量属性,因为有很多可变参数。Q:如果服务挂了,重启服务。重新修改DNS和Nginx,问题1:服务挂了,Swarm可以负责重启吧?问题2:为什么重启后需要改DNS Nginx。Swarm的ingress网络可以从任何一台node路由到对应的Container吧。
A:如果镜像down了,Swarm会管理的。但如果是服务不可用,Swarm是不知道的。这时候就需要在服务监控那里触发重启。由于服务还有端口的问题,所以是在Nginx上转发到真实的服务端口上。DNS基本都是配置到Nginx上,如果Nginx挂了,就要把DNS重新指向。Q:应用是Java的吗,根据环境不同的配置文件如何处理?
A:大部分是Java的,也有Python等。我们自己开发了一套配置文件管理的系统,同时对配置文件里的配置项进行命名规范,这样从一套环境到另一套大部分情况是直接自动进行修改的。Q:如何做多版本环境隔离测试?
A:目前我们没有这样的需求。测试环境基本上都是和生产对齐。特殊情况是在Jenkins上来选择特定的代码版本来进行部署。所以在不同的环境里可以部署不同的代码。Q:请问Ngin配置的是Container的IP还是物理机IP?
A:Nginx是暴露出80端口在容器宿主机上的。Q:不同环境的配置文件是在镜像层面替换进去还是在容器层面替换进去
A:是在容器层面的。每个容器上有个Agent,负责去拉取配置文件。
以上内容根据2017年06月20日晚微信群分享内容整理。分享人寿佳炎,盛付通质量流程中心经理。在通信和互联网跌打滚爬近20年。几乎干过研发体系内各种岗位。从初级码农到管理层。中国第一批EXIN DEVOPS MASTER认证通过者。 DockOne每周都会组织定向的技术分享,欢迎感兴趣的同学加微信:liyingjiesa,进群参与,您有想听的话题或者想分享的话题都可以给我们留言。
原文发布时间为:2017-06-22
本文作者:寿佳炎
本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。
原文标题:DockOne微信分享(一二七):Docker的另类用法,就是这么简单粗暴