​在数字化转型、零售业务快速发展、信创建设驱动下,应用架构、技术架构、基础架构都已向云原生快速演进,银行业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基础设施管控复杂性,成功的数据中心会把团队技能提高作为当前首要任务,只有这样才能保障信息科技部门的价值。

中电金信:云原生时代IT基础设施管理利器——基础设施即代码(IaC)的更多相关文章

  1. 云原生时代,为什么基础设施即代码(IaC)是开发者体验的核心?

    作者 | 林俊(万念) 来源 |尔达 Erda 公众号 从一个小故事开始 你是一个高级开发工程师. 某天,你自信地写好了自动煮咖啡功能的代码,并在本地调试通过.代码合并入主干分支后,你准备把服务发布到 ...

  2. CODING —— 云原生时代的研发工具领跑者

    本文为 CODING 创始人兼 CEO 张海龙在腾讯云 CIF 工程效能峰会上所做的分享. 文末可前往峰会官网,观看回放并下载 PPT. 大家上午好,很高兴能有机会与大家分享 CODING 最近的一些 ...

  3. 阿里云弹性容器实例产品 ECI ——云原生时代的基础设施

    阿里云弹性容器实例产品 ECI ——云原生时代的基础设施 1. 什么是 ECI 弹性容器实例 ECI (Elastic Container Instance) 是阿里云在云原生时代为用户提供的基础计算 ...

  4. 进击的 Java ,云原生时代的蜕变

    作者| 易立 阿里云资深技术专家 导读:云原生时代的来临,与Java 开发者到底有什么联系?有人说,云原生压根不是为了 Java 存在的.然而,本文的作者却认为云原生时代,Java 依然可以胜任&qu ...

  5. 开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门

    点击下载<Knative 云原生应用开发指南> 自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注.Knative 在 Kubernetes 之上提供了一套完整的应 ...

  6. [转帖]从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑?

    从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑? 2019-10-08 10:26:28 阿里云云栖社区 阅读数 54   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...

  7. 云原生时代,Java的危与机(周志明)

    说明 本篇文章是转载自周志明老师的文章,链接地址:https://www.infoq.cn/article/RQfWw2R2ZpYQiOlc1WBE 今天,25 岁的 Java 仍然是最具有统治力的编 ...

  8. 云原生时代的Java

    原文链接(作者:周志明):https://time.geekbang.org/column/article/321185 公开课链接:https://time.geekbang.org/opencou ...

  9. 🏆【JVM深层系列】「云原生时代的Java虚拟机」针对于GraalVM的技术知识脉络的重塑和探究

    GraalVM 背景 新.旧编程语言的兴起躁动,说明必然有其需求动力所在,譬如互联网之于JavaScript.人工智能之于Python,微服务风潮之于Golang等等.大家都清楚不太可能有哪门语言能在 ...

  10. 云原生时代的DevOps平台设计之道

    开发人员与运维人员是 IT 领域很重要的两大人群,他们都会参与到各种业务系统的建设过程中去.DevOps 是近年间火爆起来的一种新理念,这种理念被很多人错误的解读为"由开发人员(Dev)学习 ...

随机推荐

  1. 【赵渝强老师】大数据工作流引擎Oozie

    一.什么是工作流? 工作流(WorkFlow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算.工作流要解决的主要问题是:为实现某 ...

  2. 《Vue.js 设计与实现》读书笔记 - 第8章、挂载与更新

    第8章.挂载与更新 8.1 挂载子节点和元素的属性 扩展子元素的类型可以为数组,并判断如果是数组的话,就先依次挂载所有的子元素. 同时新增节点属性.属性可以通过 el.setAttribute 添加到 ...

  3. arm64 下内核 crash—— 非法地址

    下面是在实际工作中遇到的一次内核(5.4.110)访问非法内存地址(空指针)导致出错的现场,在这里记录一下简单的分析流程为以后遇到类似的问题作为参考. [ 220.619861] Unable to ...

  4. 2022年10月中国数据库排行榜:达梦冲刺IPO热度不减,PolarDB立足创新夺锦才

    秋风萧瑟,洪波涌起. 2022年10月的 墨天轮中国数据库流行度排行榜 火热出炉,本月共有245个数据库参与排名,相比上月新增七个数据库,本月排行榜前十名变动较大:达梦反超openGauss重摘探花: ...

  5. threejs 几何体的本质 顶点

    几何体的线框模式, 一个正方平面最少可以由4个顶点组成,两个三角形组成(公用了 2个顶点,使用了索引创建顶点属性) . // 导入 threejs import * as THREE from &qu ...

  6. 17 Transformer 的解码器(Decoders)——我要生成一个又一个单词

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  7. 两个时间段比较的六种情况,以及交集、并集、补集简要sql语句示例

    〇.两时间段比较的全部情况 总共有如下图中的六种情况: 下文将根据这六种情况进一步操作. 注意,图中说的动态和固定两时间段,就是两个普通时间段,不区分主次,仅用作帮助理解. 一.判断两个时间段是否有交 ...

  8. mongodb副本集群使用总结

    一.该文档仅为了总结经验,方便下次部署时跳过踩过的坑.其中MongoDB的复制原理.特点等参照的菜鸟教程,附地址:https://www.runoob.com/mongodb/mongodb-repl ...

  9. Machine Learning Week_1 Welcome

    目录 0 Welcome 0.1 Video: Welcome to Machine Learning! Transcript unfamiliar words 0.2 Reading: Machin ...

  10. Java常见面试真题之中级进阶(List篇)

    前言 本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!获取一个类Class对象的方式有哪些?ArrayList 和 LinkedList 的区别有哪些?用过 ArrayList 吗?说一下它有 ...