zp_ccc
作者zp_ccc·2020-04-26 15:27
高级技术主管·国内某金融科技公司

金融科技从业人员的云化之路

字数 7465阅读 1371评论 0赞 3

近两年国家多次在国家战略层面要求“智能+”赋能传统产业,云计算作为“互联网+”,“智能+”,“数字经济”的“科技支撑能力”的基础环境,已经成为各行业IT建设主要的发展方向。2020年的新冠病毒疫情,改变人们的生活方式的同时也改变了诸多企业的办公模式,云计算、人工智能和大数据技术为应对疫情所作出的贡献被公众广泛认知,越来越多的企业、事业和政府单位都着力改变传统的数据中心模式,向具有弹性能力的云数据中心转变。 云计算、大数据和区块链等技术应用成为当前数字化架构转型的显著特征,其中云计算作为基础设施对其他技术提供支撑作用,企业系统迁移上云的步伐在逐渐加快。近期全国多个省份相继公布了总额几十万 亿的重点项目规划,主要涵盖大数据中心在内的7大新型基础设施建设领域,其中更多行业意识到数字化建设的重要性,云计算作为整个数字经济的基础设施,将获得前所未有的发展契机。 随着云计算技术在金融领域的推广应用,IT服务向集约高效的云服务模式转变已成为当前金融科技发展的重要趋势。金融科技领域建设云和使用云逐渐成为对金融科技人才的普适要求。本文从设计、技术、架构等几个角度阐述广大金融科技从业人员在金融云方面需要关注的内容。

一、明确金融属性的金融行业云顶层设计

云首先要符合国内和国际发布了的相关云计算标准,中华人民共和国国家标准 GB T 32400-2015 《信息技术云计算概览与词汇》,GB T 32399-2015 《信息技术 云计算 参考架构》。ISO和IEC发布的ISO/IEC 17788:2014《信息技术 云计算 概述和词汇》和ISO/IEC 17789:2014《信息技术 云计算 参考架构》。金融行业的云还需要有金融专属的属性并符合金融监管机构的规范,如人民银行发布的《金融科技产品认证规则》,以及中华人民共和国金融行业标准,JR-T 0166-2018《云计算技术金融应用规范 技术架构》,JR-T 0167-2018《云计算技术金融应用规范 安全技术要求》,JR-T 0168-2018《云计算技术金融应用规范 容灾》等等。

进行云服务设计时,要考虑使用一套成熟的、可行的方法,根据不同的平台、不同的功能划分不同层次的组件、由组件组装不同的云服务。云服务设计时遵循通用型、可复用性、可维护性以及覆盖全生命周期等原则。

云服务可以分为IaaS、PaaS、SaaS等多种类型。 Iaa S类型服务,包括计算、存储和网络三个大类。提供例如云主机,弹性块存储,虚拟私有网络等多种服务,这些服务不仅仅作为云服务资源进行独立发布并提供给云租户使用,同时也是云平台其他服务的基础。PaaS类型服务,是通过IaaS服务资源的整合,提供数据库、中间件、容器、安全等几大类基础服务,未来可以衍生出数据分析、人工智能等服务。SaaS类型服务,基于云原生架构构建符合金融市场的应用系统。

二、关键技术选型方法

云计算是虚拟化、分布式计算、并行计算、网络、存储、服务器等传统信息技术融合发展的产物,随着IT技术的不断发展和演进,云计算和传统IT技术也在不断融合发展,其技术范畴和应用领域也在不断拓展。

(一)计算虚拟化技术

计算资源虚拟化技术是指将服务器物理资源抽象成逻辑资源,CPU、内存、磁盘、I/O等硬件均变成可以动态管理的资源池,一台物理服务器变成多个相互隔离的虚拟服务器,可以提高资源的利用率,简化系统管理,实现计算资源池化的整合,提升计算资源对业务变化的适应力。服务器虚拟化的核心技术是Hypervisor。Hypervisor是运行在物理服务器和传统操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件,也称为VMM(Virtual Machine Monitor,虚拟机监控系统),Hypervisor协调物理服务器上的所有硬件资源的访问,并且实现各虚拟机之间的安全隔离。当前比较主流的技术有IBM powerVM,Vmware Esxi,Microsoft Hyper-V以及基于开源KVM的一系列计算虚拟化平台。

(二)存储虚拟化技术

存储虚拟化技术是将底层存储设备进行抽象化统一管理,向服务器层屏蔽存储设备硬件的特殊性,只保留其统一的逻辑特性,从而实现存储系统的集中、统一、方便的管理。作为云存储的基础,虚拟化存储的本质是实现了从物理存储到逻辑存储的转变,像数据块、磁盘、磁带库、文件系统等都可以被虚拟化提供云环境下的数据存储即服务。传统的存储方案SAN或NAS无法满足容量和性能的高并发需求,集成式的组件和接口限制了动态扩展能力,无法做到按需服务。随着x86系统性能的不断提成,软件定义SDS存储技术不断发展,基于x86通用硬件的分布式存储和分布式文件系统焕发了新颜。借助分布式存储不仅仅可以提供弹性存储资源,还可以根据应用需求提供各类接口。对象存储,分布式块存储,分布式文件存储作为分布式存储的三大利器,三者接口不同,业务形态也不同。分布式 块存储可以直接挂在主机上,直接读写磁盘空间的某段地址即可访问数据,资源调取效率较高,像一些大规模数据库多采用这种部署; 分布式 文件存储通常用于应用层,通过TCP/IP协议访问,需要使用者专门对文件写脚本,因此延时要高于块存储;对象存储具备二者的优点,兼顾高速、共享、智能 ,敏捷等特点。云平台需要按照业务分类选择不同的云存储解决方案。

(三)网络软件化技术

“网络软件化”(Network Softwarization)为软件定义网络(SDN),网络功能虚拟化(NFV)等技术提供了一个总称 。 网络软件化的定义是一种通过软件编程来设计、实现、部署、管理和维护网络设备和网络组件的总变革趋势,在网络设备、组件的整个生命周期中,利用软件的灵活性和快速性,为网络和服务结构的重新设计、优化成本和过程,实现自我管理,为网络基础设施带来附加值创造了条件。

SDN包含三个原则:控制和包转发的分离 , 集中 的 控制 , 通过定义良好的接口对网络行为进行编程的能力。与传统的分布式网络不同,SDN控制平面是一个以软件方式实现的逻辑集中控制器。控制器运行在单个或集群的服务器上,具有网络的全局视图,并根据操作策略进行流量管理决策。分组转发(数据平面)与传统网络相比要简单得多,它是由通用交换设备提供的,通过编程来实现对流量的处理。这种对网络进行编程的能力使创新更快,从而提高了响应能力、安全性、效率和成本效益。

NFV将网络功能虚拟化,如负载平衡器、防火墙、入侵检测系统和信令系统,这些功能以前是由专用硬件提供的,现在通过虚拟机上运行的软件来实现。因此,NFV通过软件取代专用硬件来减少资本支出。它还利用在云计算中的虚拟化所带来的效率,如规模经济、灵活性、定制和弹性等,降低了运营开支。

SDN和NFV共同推动了网络的软化,即软件控制网络流量的处理,通过软件处理为这些流增值,并协调资源的动态分配,以满足客户应用程序的需要,同时通过在融合的网络和云基础设施中正确地调整包和优化包处理,提高能源效率。

国内知名的网络和安全厂商均提供了多种软件SDN、硬件SDN和NFV的解决方案,经过多年实践已经日趋成熟,已经成为当前云数据中心建设的主流方案。

(四)容器技术

容器技术是 一种内核轻量级的操作系统层虚拟化技术 。容器包含应用和其所有的依赖包,和宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器通过 Namespace和Cgroup两大机制 ,来实现资源的隔离和管理控制。

容器技术是实现操作系统虚拟化的一种途径,可以在资源受到隔离的进程中运行应用程序及其依赖关系。通过使用容器,可以轻松打包应用程序的代码、配置和依赖关系,将其变成容易使用的构建块,从而实现环境一致性、运营效率、开发人员生产力和版本控制等诸多目标。容器可以帮助保证应用程序快速、可靠、一致地部署,其间不受部署环境的影响。容器还赋予对资源更多的精细化控制能力,让基础设施效率更高。现在软件开发领域更多的在运用容器技术,主流的云平台都推出了具有容器技术的PaaS服务。金融云为了适应金融机构应用多样性,应该建立一套容器平台,提供容器服务。业界知名的容器引擎技术有RKT公司的rocket和docker公司的docker。容器编排领域有Kubernetes和Docker Swarm。镜像仓库主要有Dockerhub、Apphouse、Harbor和CoreOS quay。容器网络主要有fannel,Calico,Weave。容器存储主要有CoreOS Torus和Flocker。容器安全主要有AppSafe,TwistLock,Aqua和CoreOS clair。容器操作系统主要有Redhat Linux,CoreOS,RancherOS,VMware photon OS,Ubuntu Core,windows nano Server等等。容器的运维主要有cAdvisor,Prometheus,Zabbix,logstash等等。

三、以服务为导向的架构选择方向

云计算服务模式主要分为三种,即IaaS(基础设施即服务),PaaS(平台即服务),SaaS(软件即服务),随着近些年云计算服务模式的发展还涌现出一些新兴的服务模式,例如CaaS(容器即服务),DBaaS(数据库即服务),DRaaS(灾备即服务)等等。金融云要根据所提供的服务,选择成熟的技术及平台架构来集成建设。

(一)IaaS层云计算平台

IaaS是将所有IT基础设施的使用提供给消费者的服务。包括CPU、内存、存储、网络和其他基本的计算资源,租户能够按需任意部署和运行各类软件,包括操作系统、数据库、中间件以及各类应用程序。消费者(租户)不控制也不管理任何云计算基础设施,但可以控制操作系统的选择,计算能力、存储空间、网络组件(包括路由、防火墙策略、负载均衡)的控制,以及应用的部署。业界有诸多成熟的商业产品以及开源解决方案,例如AWS、VMware、阿里、腾讯、青云等等比较成熟的自主产品,OpenStack、CloudStack等等开源的IaaS层云计算平台,在选择IaaS基础架构的时候尽量考虑到厂商的产品成熟度和稳定性的因素建议项目建设中尽量避免出现一个厂商的IaaS产品进行锁定。

(二)PaaS层云计算平台

PaaS是将软件研发的平台作为一种服务,提交给租户。PaaS可以将现有各种业务能力进行整合,具体可以归类为数据库、应用服务器、业务能力接入、业务引擎、业务开放平台,向下根据业务能力需要测算基础服务能力,通过IaaS提供的API调用硬件资源,向上提供业务调度中心服务,实时监控平台的各种资源。PaaS提供的是一个基础平台,平台的资源可以直接封装为服务目录提供给租户,也可以将资源通过API开放给SaaS层服务。业界有诸多成熟的商业产品以及开源解决方案,例如RedHat 的OpenShift 云计算平台,以及开源的Cloud Foundry云计算平台。

(三)DevOps实现开发运维的衔接

DevOps是Development和Operations的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。打破传统开发和运营之间的壁垒和鸿沟。 传统的软件交付流程要经历开发、测试、将系统打包并与安装操作文档一并交给运维团队、运维团队按照文档再部署软件诸多过程。长久以来存在例如上线效率低下,开发质量差,测试不全面,更新频率高,产品质量低等问题。DevOps是一种思想,一种最佳实践以及一种文化。强调促进开发、运维及质量保障部门的合作和沟通,加速开发和交付速度,在提高产品质量的同时降低开发成本,强调持续改进。达到缩短开发周期,提早发布软件版本,频繁更新发布,推进快速的定位排错、问题解决、测试、部署及反馈等。DevOps 的思想是提升IT服务的敏捷性,增强云计算平台的敏捷性。云计算平台引入DevOps思想,提供人、技术、过程、文化相结合的服务能力。现代更多的企业需要面向云原生的应用,这种数字化转型对持续集成、持续部署的要求越来越高,需要一个一体化的DevOps平台,来横向打通企业部门间的壁垒,纵向打通各种工具链。DevOps的落地实现,需要一个流程梳理与工具自动化的过程。可以定义需求规划、设计开发、代码管理、编译构建、封装打包、部署发布、测试环境、预生产环境、生产环境、监控管理、反馈分析的一套流程,并结合业界知名的一系列自动化工具来实现,例如编码阶段的GitHub、GitLab、Bitbucket,构建阶段的Apache Maven、Gradle,测试阶段的Junit、Cucumber,部署阶段的Nexus、Puppet、Ansible,运维阶段的Logstash、kibana、Elasticsearch。与此同时需要注意的是,ITIL依然是支撑IT运维的最佳实践,描述了很多支撑DevOps协同的工作流。为了适应DevOps更短的交付周期和更高的部署频率,ITIL流程的许多方面需要更加自动化,特别是变更配置和发布流程等方面。当发生服务故障时,依然需要快速检测和修复,所以事故问题管理的ITIL准则依然有重要意义。金融云建设可采用ITIL+DevOps双态共存的方式。

(四)云原生架构

云原生本身是一种基础设施,运行在其上的应用称作云原生应用,只有符合云原生设计哲学的应用架构才叫云原生应用架构。云原生系统的设计理念包括面向分布式设计( Distribution ):容器、微服务、 API 驱动的开发;面向配置设计( Configuration ):一个镜像,多个环境配置;面向韧性设计( Resistancy ):故障容忍和自愈;面向弹性设计( Elasticity ):弹性扩展和对环境变化(负载)做出响应;面向交付设计( Delivery ):自动拉起,缩短交付时间;面向性能设计( Performance ):响应式,并发和资源高效利用;面向自动化设计( Automation ):自动化的 DevOps ;面向诊断性设计( Diagnosability ):集群级别的日志、 metric 和追踪;面向安全性设计( Security ):安全端点、 API Gateway 、端到端加密的诸多特性。云原生应用程序被设计为在平台上运行,并设计用于弹性,敏捷性,可操作性和可观察性。其中弹性包含失败而不是试图阻止它们;它利用了在平台上运行的动态特性;敏捷性允许快速部署和快速迭代;可操作性从应用程序内部控制应用程序生命周期,而不是依赖外部进程和监视器;可观察性提供信息来回答有关应用程序状态的问题。云原生应用程序通过各种方法获取这些特征。它通常取决于应用程序的运行位置以及企业流程和文化。实现云原生应用程序所需特性的常用方法包括:微服务、健康报告、遥测数据、弹性、声明式等等。

(五)云管平台

云管理平台( CMP )是提供对公有云、私有云和混合云整合管理的产品(Gartner定义)。云管平台实现云环境下基础设施环境自动化管理,包括资源的自动发现、资源池纳管、资源的分配、资源部署等等,同时还要对接现有的系统监控,日志监控,服务管理(ITSM ) ,Devops管理,运维安全审计(堡垒机)等系统,实现应用自动化发布及变更自动化管理。云管平台在数据中心中通常扮演的是一个中台的概念,下面接管的IT基础设施,上面承载的是多元化的服务,同时通过云平台的租户管理体系对外提供一站式的IaaS、PaaS和SaaS等服务。业界有诸多成熟的商业产品以及开源解决方案,金融云建设时要考虑基础平台和管理平台的松耦合性。云管平台需要符合未来的发展具有多元化的异构能力,采用中立厂商的CMP云平台方案,避免产生锁定现象。

(六)网络互联架构

云的规划设计中,网络方面尤为重要和复杂,涉及多云数据中心之间、云数据中心内部、租户接入等多方面。

云数据中心间通常部署四种互联链路,每种互联链路所承载的数据不同,实现的功能不同,并且这四种链路在逻辑上相互隔离。承载网互联,也称为数据中心前端网络互联,所谓"前端网络"是指数据中心广域网的出口。多个数据中心的前端网络通过IP技术实现互联,租户也通过前端网络访问各数据中心。具有主备角色的两个数据中心,当主数据中心发生灾难时,前端网络将实现快速收敛,租户端能够通过访问网络灾备中心以保障业务连续性。三层互联,数据中心间通过两路DWDM波分链路实现三层互联,使双中心之间运行统一内部网关路由协议(IGP)计算路由,数据中心所有灾备切换场景无需绕行承载网,简化双中心之间三层互访流量路径。二层互联,也称为数据中心服务器网络互联。在不同的数据中心服务器网络接入层,构建一个跨数据中心的大二层网络(VXLAN),以满足服务器集群或虚拟机动态迁移等场景对二层网络接入的需求。物理层互联,也称为后端存储网络互联。借助传输技术(DWDM、SDH等)实现主中心和灾备中心间磁盘阵列的数据复制。

云数据中心内部采用扁平化二层架构(Spine-Leaf层),由SDN控制器通过OpenFlow协议向转发设备下发命令,转发设备根据流表项进行转发,实现控制平面与数据转发层面分离,加快数据处理和转发效率。Spine与Leaf节点之间采用VXLAN技术,扩大二层网络范围。

租户接入云数据中心有三种方式。互联网接入方式,即通过公网访问云数据中心,租户无需申请专线,直接通过Internet访问云数据中心资源,此种接入方式所有访问数据以明文形式在公网传输。VPN拨号接入方式,租户通过VPN拨号至云数据中心VPN设备访问云数据中心资源,租户无需申请专线,云数据中心需部署VPN设备,所有访问数据以密文形式在公网传输。金融专线接入方式,在租户与云数据中心之间部署专线,租户通过专线直接访问云数据中心资源。租户可根据实际情况选择一种或多种方式接入云数据中心。

四、综述

金融需要科技的大力支持,金融科技一直秉承安全、稳定、可靠、先进,是各行业的典范,随着互联网、云、人工智能等新兴技术的兴起,金融行业必然重新注入新鲜的动力和能量。金融科技的从业人员需要从传统技术、架构转型到新兴的技术生态中生存。本文仅抛砖引玉,触碰云生态环境下的一些知识点,供大家参考, 如有疏漏不妥之处,还请不吝赐教 。

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

3

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广