谢伟
摘要:文章在分析金融行业面所临的挑战的基础上,对容器技术在金融行业的应用现状进行了探讨,同时也分析了容器对金融行业IT演进的作用,为容器在金融行业的应用提供了一些探索性的参考。
关键词:容器 云计算 金融行业
一、前言
(一)传统金融行业面临的挑战
在“互联网+”的时代背景下,中国金融IT面临一场规模空前的转型大潮。传统的IT流程、软件架构和运维模式已经无法满足业务发展需要和竞争形态的转变。传统金融机构纷纷考虑未来的IT开发机制、IT架构的变革。
首先,互联网对传统金融IT带来的冲击就是应用快速上线的要求。在互联网+的转型过程中,金融行业IT建设的关键变成了如何及时响应业务需求、如何快速研发上线新的产品,在这种现状下,传统金融业IT架构已经变成应用快速交付的瓶颈。
其次,传统金融企业应用大多是单体式的,其扩展方式大多基于硬件配置的纵向扩展,其典型特点为体量大、部署慢、难升级、难扩展。在传统的金融业务中,业务压力可控、有规律,采用单体架构也能基本适应业务需求。但互联网时代带来了新的挑战,如抢红包、秒杀等应用,其特点是随机性和海量瞬时流量。单体式应用和纵向扩展不再能够支持此种场景,而只能拥抱云原生、微服务,依靠弹性扩展能力才能满足互联网业务的需求。
再次,传统金融企业IT系统中开发测试运行环境割裂,无法使用现代互联网技术中的A/B测试、蓝绿部署、灰度发布等功能,难以应对瞬息万变的线上环境变化。
最后,金融企业IT系统对业务连续性和可用性要求严苛。而“互联网+”却是在不断变化中寻求发展。如何在“变化”和“稳定”两者间进行平衡对系统的运维提出了巨大的挑战。
(二)容器技术简介
在新涌现的大批先进技术中,以Docker为代表的容器技术受到了极大关注。容器技术最显著的特点是容器中不仅包含了应用本身,还包括了应用运行所需的环境,从而能够在不同的环境中迁移并运行,做到一次构建、多次部署。另外,容器技术也是一种相对轻量级的虚拟化技术,能够做到秒级启动和停止。基于这两点主要特性,容器技术有着解决传统金融行业IT所面临问题的先天性优势。
Docker最初是dotCloud公司创始人Solomon Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并于2013 年3月以Apache 2.0授权协议开源,主要项目代碼在GitHub上进行维护。
Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace以及AUFS类的Union FS等技术对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。
Kubernete是一个全新的基于容器技术的分布式架构领先方案。Kubernetes(k8s)是Google开源的容器集群管理系统。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
如今Kubernetes已经成为容器编排乃至容器技术的事实标准,几乎所有的容器产品均基于Kubernetes构建。Kubernetes也是云原生技术的核心和基石,支撑了DevOps、微服务等应用场景。
二、容器在金融行业的应用现状
(一)容器技术的应用进展
超过三成已使用云计算技术的金融机构已将容器技术用于生产环境或测试环境。在调查中,有14.91%的金融机构已经将容器技术投入生产环境;20.50%的金融机构仅用于测试环境。
(二)容器技术的应用需求
能够实现快速部署、有助于微服务架构的实现是金融机构应用容器技术的主要原因。已经应用容器技术的金融机构中,出于能够快速部署应用的目的而应用容器技术的金融机构最多,占比 67.8%;其次,47.2%的金融机构认为有助于微服务架构的实现是金融机构应用容器技术的原因;另外,支持快速弹性扩容(43.4%)以及管理便利(41.0%)也是金融机构应用容器技术的重要推动力。
(三)容器运行技术的选择
Docker是金融机构主要选择的容器运行技术。已经应用容器技术的金融机构中(包括测试环境),有 90.7%选用了 Docker 技术,有 9.3%使用了 RKT 技术。
(四)容器编排技术的选择
目前金融机构主要应用的容器编排技术是 Kubernetes 和 Mesos/DCOS。其中,Kubernetes 占比 39.18%,Mesos/DCOS 占比 36.08%。另外, CloudFoundry(18.56%)也是重要的容器编排技术。
值得注意的是Kubernetes使用处于快速上升阶段,预计会完全替代其余编排技术,成为事实标准。
三、容器助力金融行业IT持续演进
《云计算技术金融应用规范技术架构》中对容器的建议如下:
容器服务为云服务使用者提供轻量级的应用封装、管理和运行解决方案。容器服务的功能要求如下:
——应支持不同应用的逻辑隔离;
——应支持容器镜像管理;
——应支持容器网络组网;
——应支持完善的容器调度伸缩和应用集群管理功能;
——宜支持界面化容器编排;
——宜支持基于多租户的数据和权限管理机制。
针对金融行业IT在新时代面临的新挑战,通过容器技术支撑三大场景:应用管理、微服务、DevOps。
容器云:容器云是基于Kubernetes+docker的现代容器平台,提供容器集群和容器实例的双模容器基础设施,全面支撑金融行业IT的应用运行场景;通过应用和节点二级的弹性扩容方案,轻松应对瞬时流量和持续流量增长;容器云底层适配多种IaaS和裸机场景,在云化与传统资源上都能运行;底层支持原生多租户SDN,并能通过开放插件支撑第三方SDN,实现网络统一调度,统一管理。
三大应用场景:
应用管理:提供应用一站式生命周期管理,包括应用的:网络、存储、日志、监控、调度、路由和权限管理,全面解决由单体式应用向分布式微服务应用演进中的问题。同时,通过可视化的监控和日志功能,实现数据化运维,简化运维难度,保障业务持续运行。
DevOps:传统应用开发模式遗留下来的发布周期长、产品迭代缓慢、测试开发环境不一致等问题,都可以通过DevOps得到解决。而容器云下的DevOps更是可以在容器技术的加持下,使得整个过程更加快速、轻量和灵活。
微服务:传统金融行业IT架构下,应用的升级回滚、蓝绿发布、A/B测试等功能需要大量的定制化配置和开发,无法做到灵活的配置,因而也无法大范围推广。容器云提供的微服务治理功能,可以实现标准化的微服务治理,通过简单配置快速实现内容路由、负载均衡、灰度发布、故障注入、A/B测试等功能。
四、结束语
在“互联网+”的时代背景下,传统金融机构已经感受到来自内外部的新需求,自身IT体系架构的不足也逐渐显现;容器技术作为云计算发展的新阶段正改变着IT服务交付的方式,更影响着云计算的未来,而金融行业对系统的可靠性要求要远高于互联网企业,目前将容器技术应用于生产环境的金融机构比较少,而是更多应用于开发测试,但就像虚拟机一样,之前也只是应用于开发测试,如今已经大范围应用于生产系统,所以传统金融机构应在充分调研和测试新兴互联网技术的基础上,积极地去拥抱它们,一方面克服自身体系架构的不足,降低成本,另一方面努力适应外部快速变化的需求。
(作者单位:江西农商银行信息科技部)