壹Linux
作者壹Linux·2017-01-22 13:27
其它·壹Linux

壹观点|金融IT的容器化之道

字数 3744阅读 1767评论 0赞 0

博云 李亚琼 CTO


摘要

随着以Docker为代表的容器技术快速发展,特别是在互联网渠道业务的推动下,金融行业建设容器云平台成为一种趋势,也是一种迫切的现实选择。在建设容器平台中应该把握哪些原则?关键性建设内容又有哪些?又该如何进行技术和平台的选型?本文结合Docker技术和行业建设案例尝试对上述问题进行分析、阐述,希望对相关从业人员以启发。

前言

近两年,以Docker为代表的容器技术快速发展。特别是在互联网行业,容器已经成为支撑关键业务的重要性平台技术。京东商城在2016年”6.18”促销活动中共使用了近15万个容器来应对活动带来的大流量冲击,展示了容器作为一种成熟的技术在支撑企业核心业务上的稳定性和弹性伸缩特性。和互联网业对待新技术的态度不同,金融行业对IT技术的选择往往以技术选择要求安全、可靠、稳定等著称。然而,从2015年底开始,民生银行、浦发银行、华兴银行、江苏银行等都开始利用容器技术建设私有云平台。为什么这么多银行金融结构对Docker这个一个刚刚兴起的技术这么热衷,并且开始建设以容器为支撑技术的私有云平台呢?

金融云Docker化的必然趋势

分析金融云Docker化的现状和趋势,需要从容器技术发展历史和当前的金融环境两个方面进行阐述。

容器本身并不是一种全新的技术,最早源自UNIX操作系统于1979年引入的chroot系统调用。2000年FreeBSD操作系统引入了名为Jails的容器技术,2001年的Linuxxu VServer、2004年Solaris Containers、2005年的OpenVZ进一步发展了容器的概念,在CPU处理时间片、内存地址、进程树、设备、IPC对象等内核对象上提供了更加完善的隔离机制。现代Linux内核的容器技术LXC主要依赖两个重要的内核机制:cgroups和namespace,为进程的执行提供了CPU调度、进程树、内存空间访问、文件系统、网络地址、设备空间等隔离与访问控制。新型的Docker对容器技术的贡献主要在于两点:一,把复杂的容器配置操作封装成简单的命令行接口,简化了容器的配置与管理;二,实现了一种分层打包应用及其依赖的方式,即容器镜像。尤其是后者,使得已经封装好的应用镜像可以在全世界范围内不需要二次配置即可实现运行。这种“一次发布,随处运行”特性给了大家无限的想象,从技术上真正为云端应用打开了一扇门。

从金融环境视角看,当前的金融环境发生了翻天覆地的变化。互联网金融服务,如互联网支付(支付宝、微信支付)、互联网理财、众筹、消费金融贷款等,对传统金融机构的存贷款业务、支付业务、理财渠道业务等构成了非常大的冲击。特别是随着利率市场化的全面实行,金融竞争的形式进一步加剧,存贷款业务的增速也会进一步放缓。渠道金融成为当前金融竞争的一个主要领域。支撑柜面业务的传统金融IT显然无法支撑互联网用户的大流量请求。

容器技术的快速弹性扩展能力为金融IT构建支撑互联网流量的金融服务提供了技术上的可能性,这也是金融机构在应对互联网流量和渠道红利时的技术性选择。

金融Docker云案例分析

某股份制银行的直销银行业务因用户数快速增加,同时存在接入互联网渠道的强烈需求,进一步加剧了直销银行业务系统的压力。经过前期的技术调研和选型,该行决定采用Docker容器技术来构建高弹性业务云平台。整个系统建设包括四个内容:Docker 平台、中间件平台、数据库平台和业务应用。

1.Docker容器平台。负责支撑可并发运行的业务单元,包括容器镜像库、调度平台、负载均衡器、配置平台、弹性伸缩服务等组件。

2.中间件平台。提供消息通信、缓存、一致性协同等服务,通过中间件系统来降低流量压力,进行流量消峰、负载分发、缓存加速等,在平台架构上提供高并发能力保障。

3.数据库平台。数据库是业务系统数据端的核心,金融账户对于数据一致性非常高,所以要求数据库平台既要满足稳定性,又要具备高的并发性能。

4.业务应用。业务应该的改造升级思路是从过去单体应用的模式改造成围绕消息系统的微服务模式,一方面借助消息系统的流量消峰特性提高系统的吞吐量,另一方面利用容器弹性特性提高并发处理能力。

整个建设方案中,行方分别采用了不同的技术来构建整个直销银行业务平台:利用容器技术提高系统应对大流量冲击时的并发处理能力,利用中间件技术支撑业务架构转型同时提供流量消峰、缓存加速等特性,利用高并发数据库来保障数据一致性,最后通过改造业务应用达到技术的综合应用。

总的来看,在金融行业建设Docker平台需要解决好四个方面的问题:业务架构改造、中间件支撑、高并发数据一致性保障和容器弹性支撑。容器只是建设一个成功的高并发业务云平台的一个部分,真正达到建设目标还需要我们结合其他技术手段来确保业务高并发特性,比如基于LinuxONE的大型数据库方案等。从性能、稳定性和安全性方面,LinuxONE可以给Docker平台提供更好的支撑。LinuxONE卓越的单线程性能可以为Docker化的应用实现更高的吞吐量,SMT模式能够提高容器密度和性能。Docker应用在企业生产环境,高可用性至关重要,LinuxONE突出的RAS特性能够给Docker提供更稳定、可靠的基础架构环境。同时,LinuxONE在多租户企业环境中还可提供完全安全的隔离。

金融Docker云建设关键点

金融行业云平台建设有其通用技术性的一面,比如虚拟化技术、容器技术等,另外还有其特殊性的另一面:金融行业监管及安全性需求。相比较其他行业云建设来说,金融云特别是金融Docker云其建设特殊性或者说关键点主要集中在如下四个方面:

1.应用场景驱动,以业务需求为导向。金融机构建设Docker平台最忌讳的是为了容器而容器,虽然知道容器的技术优势,但缺乏对业务系统和Docker结合的细致讨论,往往不能够达到很好的技术落地效果。理想的建设模式应该是从业务场景、规模、架构、平台、技术和运维等多个维度分析,以Top-Down模式对业务场景下的应用架构、支撑平台、关键技术、核心流程等进行详细的梳理,确保技术和业务场景的无缝结合。

2.以应用架构优化和适配为关键。在容器技术的诸多优点中,快速弹性扩展是其最为关键性的技术特性,不过弹性扩展技术的应用需要和应用架构结合才能更好的发挥它的优势。当前应用架构正从单体应用向以微服务为核心的Cloud native模式前进,微服务和容器的弹性技术结合才能够更好的应对互联网流量的冲击,支撑更多的互联网渠道业务接入需求。

3.技术选型要打好组合拳。容器技术不是万能的,特别是如何在事务一致性要求比较高的业务领域,要充分利用好容器的技术优势还需要综合利用传统的技术。例如一个典型的应用架构下,Web端、应用端、中间件端、数据库端等具有不同的一致性模式,要充分考虑传统的数据库、中间件和现代的容器技术更好的结合。既能满足业务应用的并发量需求,又能提供应用所需要的强一致性等特性。

4.充分考虑基础设施及流程融合。金融云建设中除了平台和应用对接之外,还要考虑基础设施层面和管理流程上满足合规性要求。特别是容器和DevOps理念的结合,对于开发环境、测试环境、UAT环境、生产环境等的管理合规性与DevOps自动化之间的矛盾需要充分考虑,在自动化和合规性之间取得平衡。

下面以某金融监管机构的容器平台建设的需求来举例说明。该金融监管机构是央行下的金融监管部门,需要监管大量的金融交易,对金融交易行为进行统计汇总等分析,满足金融风险控制等监管需要。整个金融IT架构分为金融监管数据采集、数据交换、数据分析与数据存储等四个主要部分。数据交换系统的核心是由kafka构建的分布式消息系统,数据分析系统围绕kafka进行构建。由于数据流量的不确定性(和被监管机构的交易频度相关),所以在数据分析部分采用了基于Docker的容器平台进行构建。而在数据存储部分考虑大数据分析和事务一致性两个维度的需求,方案中采用了“分布式大数据平台+传统数据库”方式进行数据存储,兼顾了大数据分析和数据一致性的需求。

金融云发展趋势展望

结合当前技术发展的趋势和金融行业服务的特点,金融云未来的发展将会呈现三个发展趋势。

金融混合云将成为一种现实选择。容器技术有其十分突出的优势,但无论从历史还是金融服务的复杂性角度看,容器都不可能成为唯一一种构建金融云的技术。未来的金融云平台一定是混合了传统大型机、虚拟化X86服务器和容器平台等的混合云架构,支撑不同金融业务对资源、应用、数据等异构类型的能力需求。

金融业务微服务化将加速进行。无论从扩展性还是业务快速上线的角度看,微服务化都是金融业务未来发展的一个必然选择。未来定制化渠道和根据客户画像的有差别服务将成为主流,基于微服务进行灵活的组装来支撑这一需求业务驱动技术先行的必然结果。

金融服务编排技术与金融服务语言具备十分美好的技术前景。服务编排是构建新服务的一种快速方法,无论是AWS的Step function还是Netflix Conductor都在致力于提供一种基于微服务的可编排服务能力,通过可视化编排与领域特定语言(DSL)驱动的方式构建新的服务,极大缩短了服务上线的周期。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广