前言
有人说人生在世要“与时俱进”,还有人说”识时务者为俊杰”。然而作为金融IT从业者,却发现实际并不是这样。
我们都知道金融系统瞬息万变,稍微有点风吹草动就会反映在市场上,这些通过大盘的涨跌可见一斑,但是后面保障金融数据稳定呈现的金融信息系统却犹如大山一般,任你外面互联网技术如何更新换代、风云变幻,它却岿然不动,当然这里面的原因有很多,最主要的还是求“稳”。比如银行、券商和基金公司,里面的信息系统普遍较老旧,甚至充斥着大量的Windows服务器。
近年来金融公司的互联网转型也如火如荼的进行着,各种创新业务层出不穷,而这也依赖新型的架构支撑。业务的激增带来的是海量的数据和服务,以及服务器资源的扩容等,其中“自动化”就显得尤为重要。
本着新技术的调研,以及实现自动化的目标,我们引入了docker容器来管理应用,并结合zabbix监控部署尝试容器化,遂成此文。
为什么要容器化?
很多高大上的金融公司,大部分情况下一个系统通常从商务立项到开发实施到运维上线仅由一个或者几个人来负责,从而形成的大大小小系统生态。不仅对技术人员要求较高,而且自动化测试、自动化运维程度低,系统出现异常时定位问题慢耗时久。
通常一个服务上线是一台PC一套应用环境,不易复制,搭建环境麻烦。而且资源利用率低。即使利用虚拟化,后期也会由OS消耗大量的计算、存储资源和物理机的运维成本相当。并且这种部署方式扩容慢,遇到突发流量,疲于奔命,系统迁移慢且繁琐。我们之前有遇到系统是window服务器的,需要扩容20台,一台台系统通过离线电话激活,可想而知的痛苦。
而实现容器化,可以做到应用隔离,某个服务消耗资源不会占用其他应用资源。可移植支持多种云部署公有云,私有云,混合云,多重云;可扩展: 模块化,插件化,可挂载,可组合。在自动化方面表现尤为突出,利用dockerswarm,mesos,k8s等跨服务器的编排工具可以实现自动部署,自动重启,自动复制,自动伸缩扩展。其中docker和虚拟机对比如下:
企业级应用容器化,一般怎么做?
1、部署docker应用,省去依赖环境的配置。由依赖JVM、weblogic、Nginx等二进制来部署的,过渡到基于docker镜像的单主机模式使用Docker部署。镜像仓库服务,本地打包好上传,服务器直接拉取即可,和yum安装软件一样简单。
2、用docker compo