中电金信:云原生时代IT基础设施管理利器——基础设施即代码(IaC)

在数字化转型、零售业务快速发展、信创建设驱动下,应用架构、技术架构、基础架构都已向云原生快速演进,银行业IT基础设施管理产生了非常大的变化,当前银行业,正在开展新一轮的核心应用系统重构、基础平台统一建设等重点任务,IT基础设施管理手段必将进行革新。

IT基础设施进行定义说明:

本文里的IT基础设施涵盖计算、网络、存储、安全等硬件资源,支撑资源运行的IaaS、容器、PaaS等平台环境,以及操作系统、数据库、中间件等基础软件环境。

图片

01·云原生时代存在的问题·

云原生时代下,IT基础设施管理有哪些需求改变呢?

管理范围增大,配置信息更复杂

传统基础架构下,基础设施只需要管理计算、网络、存储、安全等硬件,以及相关的操作系统、数据库、中间件,而云原生时代,还需要增加虚拟化、云平台、容器、大量PaaS组件等管理。管理范围更大,相关配置信息更多,配置基线建立也更复杂。

硬件资源量增大,基础软件环境增多

在IOE时代,一套大型应用系统至多几十台服务器。在云原生时代,则需要几百台服务器,硬件资源量急剧增大。另外云原生架构下的微服务应用涉及节点多、微服务间交互复杂,每套应用为测试交易链路需要建立N套测试环境,基础资源分配、扩容、基础软件环境部署等工作量大幅增加。

基础设施变化更频繁、过程需要被清晰记录

频繁的基础设施变更,需要清晰记录每次变化了哪些内容。内容记录不仅涉及版本回退,当变更后出现次生问题或性能问题时,还需要进行对比变更前后的基础设施信息。如果是手动管理基础设施,很难将变更前后进行比对清楚。此外,每个应用版本对应的基础设施版本,也需要有一个清晰的对应关系,以实现应用版本升级对基础设施影响情况分析。

综上所述,云原生时代下,基础设施管理依靠手动方式,已不太现实,亟待需要使用规范化、自动化方式替代手动管理方式。

02·基础设施即代码定义·

IaC是通过非手动方式管理基础设施的方法,将基础设施管理纳入持续集成环境,像管理应用代码一样实现基础设施版本化管理。针对每次基础设施数量、配置变更,进行代码编写,然后自动化执行,实现基础设施规范化、自动化管理。

同时,IaC拉近了基础设施与应用的关系,完全响应了云原生架构下的需求,有效促进了基础设施管理由资源供给型向应用供给性转型,应用的每次变更都可以对应到基础设施的变更。通过持续集成环境,可以清晰的看到每个应用版本分支对应的基础设施版本分支,非常有利于分析基础设施容量如何随应用(或业务量)变化而变化,从而推进IT基础设施容量智能预测的实现。

03·基础设施即代码收益·

降低运维工作量,降低运维成本

IaC可实现基础资源配置信息的批量化、自动化修改。按照SRE的思想,IaC就是解决运维工作量不以设备数量增长而线性增加的问题。在IaC方式下,运维工作量不会随着设备数量而增加运维人员数量,从而降低了运维成本。

加快速部署速度,提升运维效率

IaC实现基础资源的一键式分发、一键式部署。传统运维方式下,搭建一套测试环境时间需要耗费数天时间。在IaC方式下,搭建一套测试环境则缩短至小时级别,如果再叠加审批流程自动化,将会进一步缩减到分钟级别,从而大幅提升运维效率。

降低操作风险,提高架构一致性

IaC的自动化操作,有效减少人工误操作、降低操作风险,另外线上化操作方便复制、对比历史信息,方便制定信息校验策略,减少人工操作错误。每次基础设施变更都会进行版本化管理,每个应用版本都会对应一个基础设施版本,有效提高了架构一致性。

04·基础设施即代码平台建设·

基础设施即代码实现方式

实现基础设施即代码可以对现有DevOps和CI/CD系统进行升级改造,在原有功能基础上增加基础设施即代码能力,也可以新建基础设施即代码平台。但无论采用哪种方式,都需要与现有相关平台进行集成。

基础设施即代码功能集成

从软件生命周期为视角透视,基础设施即代码平台将覆盖生命周期中所有阶段。

图片

当前在银行业,不同规模客户的基础建设成熟度不同。对于成熟度较高的客户,各基础平台建设已经比较完善,基础设施即代码平台更多集中在能力建设和各平台集成上。对于基础平台建设比较欠缺的客户,基础设施即代码平台可涵盖DevOps、运维自动化平台的所有能力。

从基础设施即代码能力建设视角考虑,输入信息有两类,一是当业务需求确定后,在构建应用版本时,同时构建基础设施版本;二是当ITSM审批流程完成后,基础设施即代码平台发起基础设施版本发布指令。在对外信息输出和交互方面,一是与DevOps平台或分布式开发平台交互,在持续集成环境中构建基础设施代码版本;二是在基础设施版本发布时,对接私有云完成云上基础资源及环境发布,对接自动化平台或虚拟化平台完成云下基础资源及环境发布以及稳态应用发布,对接容器平台完成容器资源及环境发布以及敏态应用发布。

基础设施即代码实现的关键要素

■ 管理思维和管理流程的支撑

基础设施即代码不仅是技术的革新,更是管理思维的革新。我们在做业务需求时,是否一定要先建模再生成代码框架;在做应用系统开发时,是否一定要先数据建模再生成数据库表。基础设施管理也是这样,我们是否要以代码、版本、发布等管理方式进行。同时,基础设施即代码中的代码编写工作,是应用开发人员来写,还是基础设施运维人员来写,取决于管理流程,当然管理流程确定后还需要组织架构的同步支撑。

图片

在银行业按照监管要求,开发与运维需要严格分离。基础设施即代码的管理方式是典型的开发运维一体化思维,所以需要在保留一体化思维前提下满足开发与运维分离监管要求。比如开发测试环境的基础设施即代码可以部署在开发测试环境,生产环境的基础设施即代码需要考虑部署在生产环境,需要通过登录堡垒机进行管理平台的操作。当开发人员操作时,还需要满足操作环境的物理隔离和安全管控。

■ 基础设施即代码使用到的技术

Terraform是一种常用的、非常有优势的基础设施即代码工具,可以安全高效的构建、变更云上和云下基础设施,并对其进行版本控制。相对AWS发布的基础设施即代码工具,Terraform更有优势。

图片

对于已经建设了私有云的客户,对云上资源和环境操作,可以采用Terraform+私有云能力完成云上资源和环境的管控,当前常见私有云都已提供了Terraform Provider。

对于没有建设私有云的客户,或者对云下资源及环境管控,需要借助自动化部署工具,常见的工具包括Puppet、Chef、Ansible、SaltStack等。

■ 基础设施即代码平台技术架构

采购或研发一款基础设施即代码管理平台产品是开展IaC工作的前提,除了使用开源技术以外,还需要进行自研。通过开源+自研模式,最终形成适应自身需求的基础设施即代码管理平台。

■ 基础设施即代码能力扩展

建立基础设施即代码相关流程和机制以后,在基础设施即代码管理平台基础上,可以扩展实现XaC,如观测即代码、配置管理即代码、配置基线即代码等。通过XaC的扩展,可以实现端到端全链路可观测、CMDB自动化、基线管理等能力,并将要实现的能力转换为控制代码,统一纳入持续集成管理范围,在基础设施即代码发布时同步进行XaC的发布。

所扩展的全链路可观测能力,可实现基于业务和应用视角的全链路可观测,即应用部署和基础设施部署时即具备可观测功能。CMDB自动化能力,可保障CMDB信息的实时性与完整性,为实现智能化运维奠定基础。基线管理能力,可满足国家信息安全和金融行业合规要求。

写在最后,展望一下IT基础设施管理亟待展开的工作,也是IT基础设施管理部门和管理者非常值得关注的内容,结合Gartner预测,大致的工作项如下:

■ 负责云建设的部门和团队,将优化和重构云基础设施,开展全行级云基础平台的规划和建设,如建设几朵云、每朵云的定位、规范云技术路线等。

■ 制定和推广上云标准,数据中心团队将在内部制定和推广上云标准,如容器的应用尽用,规范应用分类和上云技术路线,实现全行级云化转型。

■ 基础设施和基础技术平台需适应新型应用架构的发展,面向云原生的新型应用架构将需要新的基础设施类型、新的基础设施供给方式,如IaC。

■ 构建数据中心新型技术团队,面对混合架构下的IT基础设施管控复杂性,成功的数据中心会把团队技能提高作为当前首要任务,只有这样才能保障信息科技部门的价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/387116.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux网络:传输层协议TCP(二)三次挥手四次握手详解

目录 一、TCP的连接管理机制 1.1三次握手 1.2四次挥手 二、理解 TIME_WAIT 状态 2.1解决TIME_WAIT 状态引起的 bind 失败的方法 三、理解CLOSE_WAIT状态 一、TCP的连接管理机制 在正常情况下, TCP 要经过三次握手建立连接, 四次挥手断开连接 1.1三次握手 三次握手顾名思…

【设计模式】代理模式详解

1.简介 代理模式是常用的Java设计模式,该模式的特点是代理类与委托类共享相同的接口。代理类主要负责预处理消息、过滤消息、将消息转发给委托类,并在事后处理消息等。代理类与委托类之间通常存在关联关系,一个代理类对象与一个委托类对象关…

SpringBoot Mysql->达梦8 activiti6.0.0 项目迁移

全部源码:公众号搜索资小库,回复dm获取源码 1.整合达梦 1.1 达梦驱动下载 MyBatis-Plus 框架 | 达梦技术文档 (dameng.com) 1.2 数据迁移 怎么安装数据库,很多大佬有帖子,搜一下达梦先建立用户,使用DM管理工具 链…

SQL Server 数据误删的恢复

在日常的数据库管理中,数据的误删操作是难以避免的。为了确保数据的安全性和完整性,我们必须采取一些措施来进行数据的备份和恢复。本文将详细介绍如何在 SQL Server 中进行数据的备份和恢复操作,特别是在发生数据误删的情况下。假设我们已经…

使用visual studio编译C++项目时无法找到 enum中的某些项

vs 2017 编译一个cocos2dx 的老项目时,报错: 在项目中搜索关键字 ARMATURE_LOOP_COMPLETE,发现在文件EventType.h中是有定义的,是 enum Event 的一项,而且确认了报错的文件已经引入了这个头文件: 这太奇怪了…

傻瓜式PHP-Webshell免杀学习手册,零基础小白也能看懂

项目描述 一、PHP相关资料 PHP官方手册: https://www.php.net/manual/zh/ PHP函数参考: https://www.php.net/manual/zh/funcref.php 菜鸟教程: https://www.runoob.com/php/php-tutorial.html w3school: https://www.w3school…

【React】全面解析:从基础知识到高级应用,掌握现代Web开发利器

文章目录 一、React 的基础知识1. 什么是 React?2. React 的基本概念3. 基本示例 二、React 的进阶概念1. 状态(State)和属性(Props)2. 生命周期方法(Lifecycle Methods)3. 钩子(Hoo…

Spring Cloud微服务项目统一封装数据响应体

在微服务架构下,处理服务之间的通信和数据一致性是一个重要的挑战。为了提高开发效率、保证数据的一致性及简化前端开发,统一封装数据响应体是一种非常有效的实践。本文博主将介绍如何在 Spring Cloud 微服务项目中统一封装数据响应体,并分享…

ValueError: invalid literal for int() with base 10: ‘a‘

ValueError: invalid literal for int() with base 10: ‘a‘ 目录 ValueError: invalid literal for int() with base 10: ‘a‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰&#xff…

基于web3区块链的名酒资产数字化、个人闲置资产收藏系统,实现联盟链、NFT数据上链、智能合约开发

系统背景: 国内有众多历史悠久却极具收藏价值的名酒品类,但是传统名酒投资存在着保真、流通和收藏三大痛点,极大影响了名酒产业的发展。基于区块链的分布式、不可篡改、可追溯、透明性、多方维护、交叉验证等特性,数据权属可以被有…

【Linux】软连接|硬链接|当前路径(.)|上级路径(..)|硬链接不能链接目录

目录 前言 软连接 ​编辑 删除源文件 快捷应用 总结 硬链接 硬链接为何不能链接目录 为什么软连接可以 软硬链接区别 当前路径(.)和上级路径(..) ​编辑 前言 在 Linux 中,文件的存储位置和数据(属性内容)是由 inode 号来唯一标…

错误:请查看是否设备未加入到证书列表或者确认证书类型是否匹配

这个问题实际上网上都有解法,但是可能没有那么的清楚,大家在各种问,我既然搞定了,就分享给大家吧网上解法: 开发调试需要另外创建开发证书和描述文件,描述文件同时绑定开发设备解读: 实际上这句…

electron 主进程和渲染进程

最近在整理electron 相关的项目问题,对自己来说也是温故知新,也希望能对小伙伴们有所帮助,大家共同努力共同进步。加油!!!! 虽然最近一年前端大环境不好,但是大家还是要加油鸭&#…

SmartInitializingSingleton和InitializingBean的区别

SmartInitializingSingleton:接口里面就一个方法afterSingletonsInstantiated,它是spring容器将所有bean都初始化完成之后,才会去调用,要求实现它接口的bean必须是单例的。 应用场景:可以在服务启动之后去处理一些逻辑…

科普文:从源码解读5种Redis基本数据类型

键值对字符串 char* 与 SDS char* 的不足: 操作效率低:获取长度需遍历,O(N)复杂度 二进制不安全:无法存储包含 \0 的数据 SDS 的优势: 操作效率高:获取长度无需遍历,O(1)复杂度&#xff08…

60个常见的 Linux 指令

常见60个Linux指令 1.ssh 登录到计算机主机2.ls 列出目录内容3.pwd 当前终端会话所在的完整路径4.cd 切换当前工作目录5.touch 创建空文件或更新文件的时间戳6.echo 终端输出文本或变量值7.nano 在终端中编辑文件8.vim 文本编辑器9.cat 查看、连接和创建文件10.shred 安全删除敏…

XPathParser类

XPathParser类是mybatis对 javax.xml.xpath.XPath的包装类。 接下来我们来看下XPathParser类的结构 1、属性 // 存放读取到的整个XML文档private final Document document;// 是否开启验证private boolean validation;// 自定义的DTD约束文件实体解析器,与valida…

科研绘图系列:R语言山脊图(Ridgeline Chart)

介绍 山脊图(Ridge Chart)是一种用于展示数据分布和比较不同类别或组之间差异的数据可视化技术。它通常用于展示多个维度或变量之间的关系,以及它们在不同组中的分布情况。山脊图的特点: 多变量展示:山脊图可以同时展示多个变量的分布情况,允许用户比较不同变量之间的关…

FastAPI(七十二)实战开发《在线课程学习系统》接口开发-- 留言列表开发

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 之前我们分享了FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言,这次我们分享留言列表开发。 获…

i2c中结构体 数据传输 i2c Tools使用

I2C中重要结构体 在I2C(Inter-Integrated Circuit)通信中,涉及的主要结构体通常用于描述设备、消息和传输的配置。以下是一些常见的I2C结构体及其作用: i2c_adapter: 这是一个代表I2C总线适配器的结构体。它包含与该I2C总线相关的…