查看原文
其他

基础设施即代码,加速金融IT云化转型

The following article is from 中国金融电脑 Author 智锦

杭州云霁科技有限公司CEO 智锦



随着金融行业数字化转型的加速,业务部门对金融IT部门提出了更高的要求。应用和基础设施的云化和敏捷交付,成为了金融行业数据中心的共同目标。但在基础设施上云的过程中,异构基础设施和多云的复杂度对IT管理带来的挑战。同时,在应用交付的过程中,尽管用户可以用很短的时间获取到所需的虚拟化计算资源,但还是必须进行一系列的复杂部署和配置过程,才能使应用运行在基础设施之上,整体的应用投产效率较低。因此,需要一种手段来填补业务应用和基础设施资源之间的间隙,让应用可以更为快速地在基础设施资源上运行。


一、基础设施即代码


基础设施即代码(Infrastructure as Code,IaC)是一种基于软件开发实践的基础设施自动化方法,强调系统的日常配置、变更具备一致性和可重复性,全面测试验证后通过无人值守的方式应用到系统中去。


国外金融机构在基础架构云化的过程中,率先通过这种创新方式来管理整个基础设施。美国第一资本金融公司利用IaC连接了内部6000余名开发者和跨区域的多个数据中心,实现了敏捷交付;澳大利亚国民银行利用IaC管理了超过2100多种应用,实现了这些应用在11000台服务器上的快速部署。此外,通过IaC方式实现应用和基础设施快速部署的海外机构还包括巴克莱银行、eBay、德国证券交易所等。据统计,美国500强企业中的200多家企业已经应用了IaC。


二、传统IT运维管理的困境:

可变基础设施


传统运维方式中,通常会通过虚拟化或者云化的资源池创建基础设施资源,然后通过手动或者自动化的方式实现业务应用的配置部署,进而实现业务投产。在应用运行过程中,我们可能会对业务进行一些日常的运维操作,如应用版本升级;如由于应用版本的依赖性,需要安装不同的软件依赖包;如由于系统漏洞,对某些软件依赖包版本进行升级;如由于性能问题,对某台服务器进行性能调优等。


这些操作会造成业务运行的基础设施环境变得和最初创建时不一致。服务器之间的版本和配置差异意味着在一些机器上运行良好的软件和脚本无法在其他设备上正常运行,同时可能会出现一些安全合规性方面的漏洞,这种现象通常被称为“配置漂移”。同时,由于配置管理系统的落地和推广困难,运维人员在扩容时往往通过镜像克隆的方式快速复制这些服务器,进一步导致了配置的丢失和不透明,增加了系统管理的复杂度和风险。


当这种情况发生时,自动化的补丁分发程序可能无法及时应用到受影响的系统上,造成安全风险。在开发测试环境,自动化的业务系统版本升级可能会遇到无法复现的意外,造成版本发布失败。运维人员疲于通过手工操作修复故障,不再相信自动化工具,最终会影响到应用交付的速度和质量。这就是造成传统运维困境的“可变基础设施”。


三、解决系统脆弱性的利器:

不可变基础设施


可变基础设施造成了基础设施的脆弱性、容易中断、不易修复等问题。解决这些问题需要一个可靠的、可复制的基础设施环境,对此业界提出了“不可变基础设施”的概念。


不可变基础设施(immutable infrastructure)是由软件人员Chad Fowler于2013年提出的一个前瞻性构想:任何基础设施的实例,包括服务器、容器等各种软硬件,一旦创建便处于只读状态,不可对其进行任意更改。如需修改或升级实例,唯一的方式就是创建一批新的实例进行替换(如图1所示)。

图1 可变基础设施和不可变基础设施对比


“不可变”思想已经在基于容器技术的应用发布领域得到了广泛应用,如不同版本的软件包升级、容器集群中对于老旧版本容器的销毁等。通过不可变的容器镜像实现了环境的一致性,确保不会由于“配置漂移”出现自动化失效的情况,以保证应用交付的速度和质量。


同理,当采用“不可变基础设施”来构建基础设施后我们可以获得如下收益:可以轻松地创建、销毁、更新、扩容和迁移基础设施;基础设施具备一致性;对基础设施执行的任何操作都是可重复的;系统变更的成本变低,可以确保系统能够进行安全和快速的变更。


四、系统可恢复性的保障:

基础设施即代码交付流水线


不可变基础设施解决了配置偏移的问题,降低了IT系统的脆弱性。同时,IaC可以进一步通过交付流水线的方式来增强IT系统的可恢复性。


做到系统高可恢复性需要快速定位问题、修复故障,并恢复业务。这对IT管理和基础设施提出了很高的要求,需要大量运维系统来支持,维护庞大的技术专家团队。IaC另辟蹊径,在“不可变基础设施”的基础上通过快速的环境部署解决了这个难题。


IaC引入了成熟软件开发实践的方式来管理基础设施,希望通过诸如版本控制、持续集成、敏捷测试的思想来提高基础设施的质量。基础设施的质量是业务系统交付质量的重要保证。通过IaC可以迅速而全面地预览每一个变更,以确保基础设施可以部署到生产环境,变更更为可靠。一旦故障出现时,可以通过IaC快速实现回滚或者在其他资源池中创建一套新的可以正常稳定运行的业务系统,有效降低系统恢复时间(如图2所示)。


图2 基础设施即代码交付流水线流程


当采用的IaC交付流水线后,代码库和版本管理保证了配置管理的唯一性,基础设施可以快速部署和回滚;基础设施的自动化测试保证了交付质量,让交付变得更可靠;可以对基础设施变更的配置进行自动化效验,让IT合规和治理更易于落地。


五、基础设施即代码在金融行业中的

应用场景和收益


1.统一资源池纳管

国内金融机构在企业云化转型的过程中,随着企业信息化的发展,往往在内部同时存在多种不同厂商或不同类型的云平台,资源池存在异构现象。此时,需要一套统一的管理平台,对异构IT资源进行优化整合,实现多个资源池的统一管理以及各类资源和服务的全生命周期管理,推动资源管理标准化和服务标准化,提升企业信息化管理效率。


2.资源自助供给

IaC的自动化方式极大地提高了为开发、测试和生产提供基础设施流程的速度,将原有的资源申请变为自助服务,减少中间时间消耗,确保资源及时供给;将原有的部分自动化、需要人工方式进行串接,调整为自动化操作,增加资源开通效率;将原来的产品团队、运维团队的独立工作变为双方有效配合,应用部署敏捷高效。


3.环境一致性,降低系统脆弱程度

通过IaC进行资源的供给,保证了供给过程中的标准化和规范化。同时利用资源变更方式中的不可变基础设施策略,配合自动化和可重复性的特点,解决应用环境一致性的问题。通过环境一致性问题的解决,用户可以在业务跨环境部署、系统故障迁移、安全漏洞防范、信息安全风险等方面获益。


4.基础设施快速部署,提高系统可恢复性

经过了充分的测试,IaC可以随时把基础设施和业务应用部署到相关的环境中。通过版本控制可以实现快速的业务部署和回滚,可以帮助用户实现环境的快速部署并有效降低系统恢复时间。


5.安全和合规

IaC在资源供给过程中整合安全和合规性元素,对权限进行细粒度设置,可实现安全管理配置标准化、规范化、自动化,降低运维人员的频繁、重复工作;同时为基础设施变更提供审计功能,将原来需要在不同资源池控制界面进行的信息收集,通过统一的方式进行展现。


6.降低运维人员学习成本

金融数据中心存在大量不同厂商、不同操作方式的IT设备,设备的配置需要有专门的IT工程师负责。当有新成员加入或有专家离开时,相关人员需要学习不同系统的操作方式,因此需要较长的学习时间。IaC统一纳管这些IT设备,通过单一的领域语言,也就是IaC中的“Code”,来描述资源配置与资源间的相互关系,屏蔽了异构设备间操作的差异性。


7.多云可迁移性

通过IaC构建的环境,从设计之初就避免了特定厂商资源池锁定,IaC在实现了异构资源统一纳管的前提下,不同资源池进行相同的操作,操作变得更为容易,让业务部署本身实现了多云的可迁移。


六、国内金融行业基础设施即代码

应用展望


当前,国内金融IT需求主要来自两个方向。


一是新一代分布式核心系统。由于业务需求的变化倒逼架构上的创新,要求新的分布核心既能满足传统核心稳定的要求,又要满足互联网快速开发迭代的需求。


二是基础架构的云化和创新。为了更好地支撑业务,基础架构正在从传统的小型机和X86架构加速向混合云和多云的方向发展。同时,金融信创建设又对硬件架构创新提出了新的要求。


上述应用和基础架构的变化,为IaC在国内金融机构的落地奠定了良好的基础。IaC既可以解决异构资源统一纳管的难题,也可以基于不可变基础设施和交付流水线的方法实现业务快速部署和上线,满足应用快速开发迭代的要求,并可以在安全合规性方面提供相应的能力。


云霁科技是国内首家专注于金融行业多云管理和IaC的科技公司,目前已在多家国有银行和全国性股份制银行总行数据中心成功落地IaC,并发起了国内的IaC开源项目。在IT系统云化转型的大趋势下,云霁科技致力于通过IaC加速金融机构数据中心云化,实现基础架构管理的全新模式。


本文刊于《中国金融电脑》2021年6月增刊



《中国金融电脑》2021年6月增刊

征订热线:https://shop160045533.taobao.com

25

欢迎订阅


公众号ID

Fcc198905

长按识别左边二维码关注我们



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存