大家好,我一直之前是从事在互联网公司,我最近一段时间是工作在国家机关单位,但是我还是在云栈科技做容器这一块的技术,但是我今天给大家分享一下,大家说容器比较轻量它也比较土怎么样支撑传统业务的需求,或者怎么样把传统的业务系统的实现容器的价值,这一张图比较显目,大家上学都学过这是一个地动仪,我今天就分享一下容器在地震局这系统里面的实践的经验。总共有四个板块,以及容器的关键技术,还有容器对地震局产生的价值。地震局他们有一个理念就是防震减灾造福人民。
这是我个人的介绍,我现在是就渔于希云任技术总监是国内最早从事的容器布道者,我是在2013年从事,我现在是给各大企业就是容器还有CI、CD还有PAAS等等。
我们先来看一下地震局的介绍,地震局是一家机关单位,主要是负责测震,如果有地震的话会发布地震的信息,我们这是做的辽宁省的地震局,这地震局是归国家地震局和辽宁人民政府装双领导的一家单位。我们来看一下项目背景,地震局有两个核心的大系统,一个前兆系统一个是测震系统。
我们来看一下前兆系统,好多的测震仪会分布在大山里或者山东里,测震仪会把数据传到各个地市,就是每一个地市都会有系统,这一些设备都会把这数据收到前兆,还有一个数据库。把这一些数据传到前兆以后,这一个前兆每一个地市都有自己的服务器,需要自己的运维人员管这设备,并且在前兆地市做完分析以后,它会把这一些数据全都汇总到一个省中心就是区域中心,这区域中心现在跑的Oracle的单机,这是测震系统也是下面有好多好多的设备,然后分布到不同的地方。然后这测震是Mysql,所以说这一些设备全都传到省中心,在地市要做展示,在中间这地方去调数据这是整个的逻辑。
现在遇到的一个挑战,它每一个站台每一个地实都至少需要2台服务器来去支撑系统,总共有15个台站。这一些利用率比较低,而且另外一个因为测震系统有好多年了,所以它的硬件设备也比较陈旧,如果出问题的话数据安全性不太好保证。另外一个就是现在IT人员比较少,所以要维护这么多的机器他们就有比较吃劲。另外一个就是业务出问题的时候,基本上要去给北京地震中心打电话这是什么问题,他们解决起来难度比较高。另外一个有是这一些服务器全都是使用命令行的方式去管,就没有一个可视化,或者像刚才讲到的统一管理或者可视化的统一编排部署、运维,都是需要手动去管的。另外一个就是这一些数据分散到各个站台,它不是在一起,如果在一起的话我专门管两个人去做这种运维,然后管理就可以了。但是现在每一个地方都是分散了那么几个。
另外一个就是它的数据重组是单点,如果出问题了那一些数据就收不下来。还有一个因为现在的地震系统还有跟国外还有咱们中国自己研发创新,然后都会有一些新的系统要去更新,如果按照原先他们的部署,现在做点几下鼠标就可以部署完成。另外一个有是他们现在的系统是没有一个高可用的保障。这是刚才一些现状,但是说再来讲一下业务上的需求,就是台站的数据就统一汇总到辽宁省的中心,就是说把所有的机器都归到辽宁省去管,但是那一些台站的人可以通过一个统一的点击说我要察看我自己的台站的数据,还有这一些系统的信息可以自己去看,另外一个就是台站的部署都是通过辽宁省中心去完成。
还有数据库设计要设计成高可用的。另外提供一个云管理平台就是可视化的操作还是使用密码操作。就是普通人员经过培训就可以独立去部署应用系统,这是他们的主任提出来的一个思想。然后降低应用系统、日常运维的复杂度也是他们非常非常看中的。最后一个就是测震系统是使用Freebsd系统,所以如果说对技术比较了解一些的话,大家都知道它另一个身份内核和Freebsd不一样,所以说怎么样容器技术支撑Freebsd也是一个挑战。
最后是我们提供了一些关键的技术,就是从底层的资源层,然后到平台层,最终到应用层,最终到运营层。重点看一下就是我们有一个在应用层编排的时候,有一个叫行业应用的编排,就是说我们虽然说提供的是一家Paas平台的厂商是一个标准化统一的平台,怎么样银行的客户、地震局包括汽车厂商他们应用的特点都不一样,所以说我们编排就着重去把这行业应用编排这一块做的特别细。
这是总的逻辑架构,就是底层都是有这种专线把各个地方打通了。这是前兆系统的架构,这一些都是设备,通过网络把这数据都汇报上来,汇报上来以后可以通过去访问,这边是台站他们会分析自己的数据。现在这前兆系统就是基于容器做了一个改进,就是把原先的程序手动去安装文档。我们现在的安装只需要3分钟包括里面的数据库还有数据都可以直接连接IP地址就可以直接使用了。所以说像(OrAcle)数据库没有好几天也搞不定,所以我们现在都成应用商店。并且填几个代码输进去,自己就去识别,再把底下分布不同地方的测震的仪器要把IP,把密码一输,这样的那一些术语就可以在平台展示。包括像底层的主机,还有应用都可以实现统一的管理。
他们这一套应用系统总共全算下来部署,最多就需要5到10分钟,10分钟之内必须全都是可用,而且是可以直接对外提供服务,可以进行收集数据和分析。这是测震系统底层是构架,数据库是高可用设计,包括(osphere)在共享磁盘、共享重组路径配置一下,一键就可以启动了。
这数据库它的设计、包括(Mylek)多主,只有主节点没有从节点,这三个任意挂一个都不影响。崩塌这数据库的部署它也是通过容器来部署,也可以实现一键部署完成就可以形成一个集群,然后加节点也都是可以自动的整个测震应用系统因为是(Oracle)比较轻,一到两分钟就可以完成,比如说终端数量测震的点增多,这一些服务器不够可以非常批横向的进行扩展。这一些都是测震系统。就是在我们平台可以去管容器,也可以去管虚拟机,但是这虚拟机在我们平台来看它是一种容器它不是一个虚机。所以这一个也是国际上第一家提出来,我可以在容器里面跑虚拟机。原先大家想的虚拟机跑容器,但是反过来就是增强版的技术,可以把虚机直接包在容器里面。包完了以后可以像容器一样方便部署,包括后期的管理都可以这样去做,包括它的升级。并且都可以直接相互之间底层的穿透都可以的。所以说有了双引擎的技术就可以支持Freebsd起一个虚拟机,来Windows应用,包括容器还有虚拟机都可以统一去管理。
我最后来总结一下容器给地震系统带来的价值,第一个下到底层上到应用层都军军可以高可用架构。任何一个单点很快的非常。并且极大的解决了应用部署的难度,就是原先如果现在让各地市的地震局IT人员去部署一个测震,或者说前兆的系统都是不可能完成的任务就特别难,而且我看了部署文档就149页,那个文档太多了,里面如果对1+2不熟,或者对数据库不熟基本上搞不起来,所以我们做了一个封装直接点击一下就完成了,极大的提升了服务效率。另外一个服务器资源利用率的提升,原先都是一台机器只能跑一个。因为他们除了有这些核心的测震的前兆都已经上了生产,因为他们还有一些内部的IT服务,比如说有NTP,还有邮件等等的一些IT办公系统,他们现在都把它跑到服务器之上。
另外一个就是各台站的数据现在都汇总到了省中心来去管,各台站也不用去再维护独立的服务器,都可以通过内网直接连到中心的云管理平台,就可以管它自己独有的服务器。并且这一个数据后端都是高可用的架构,我们再进行一些重新的设计,但是重新设计包括上容器对它的业务都没有任何的改造。
最后就是我们给它提供了一个自动化的运营管理面板这一些人他可以去简单的点几下鼠标,就可以完成。如果说失败了他可以立刻就把这删掉重建,就又可以恢复。所以说不用说坏的一个他要去指导查日志很快的删掉再进行重建就可以了。另外一个全都是统一化的管理,并且应用的状态,就是我们内制的检查点,这服务宕机或者挂掉以后它会自动的迁移,如果程序故障会进行重启,或者重建这样的操作。所以说不仅是方便的管理,而且在IT的水平之上都有一个极大的提升。
另外一个有是我们国内容器比较专注的,我们从创业以来一直是做私有云,并且包括新浪的云计算,像内网的、新浪的SVE五也都是我们来运营,我们的产品都是国内研发团队来进行研发,所以当代码都是完全掌控,并且也都符合我国的国产化绽裂。