中电金信:云原生时代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基础设施管控复杂性,成功的数据中心会把团队技能提高作为当前首要任务,只有这样才能保障信息科技部门的价值。
中电金信:云原生时代IT基础设施管理利器——基础设施即代码(IaC)的更多相关文章
- 云原生时代,为什么基础设施即代码(IaC)是开发者体验的核心?
作者 | 林俊(万念) 来源 |尔达 Erda 公众号 从一个小故事开始 你是一个高级开发工程师. 某天,你自信地写好了自动煮咖啡功能的代码,并在本地调试通过.代码合并入主干分支后,你准备把服务发布到 ...
- CODING —— 云原生时代的研发工具领跑者
本文为 CODING 创始人兼 CEO 张海龙在腾讯云 CIF 工程效能峰会上所做的分享. 文末可前往峰会官网,观看回放并下载 PPT. 大家上午好,很高兴能有机会与大家分享 CODING 最近的一些 ...
- 阿里云弹性容器实例产品 ECI ——云原生时代的基础设施
阿里云弹性容器实例产品 ECI ——云原生时代的基础设施 1. 什么是 ECI 弹性容器实例 ECI (Elastic Container Instance) 是阿里云在云原生时代为用户提供的基础计算 ...
- 进击的 Java ,云原生时代的蜕变
作者| 易立 阿里云资深技术专家 导读:云原生时代的来临,与Java 开发者到底有什么联系?有人说,云原生压根不是为了 Java 存在的.然而,本文的作者却认为云原生时代,Java 依然可以胜任&qu ...
- 开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门
点击下载<Knative 云原生应用开发指南> 自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注.Knative 在 Kubernetes 之上提供了一套完整的应 ...
- [转帖]从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑?
从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑? 2019-10-08 10:26:28 阿里云云栖社区 阅读数 54 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...
- 云原生时代,Java的危与机(周志明)
说明 本篇文章是转载自周志明老师的文章,链接地址:https://www.infoq.cn/article/RQfWw2R2ZpYQiOlc1WBE 今天,25 岁的 Java 仍然是最具有统治力的编 ...
- 云原生时代的Java
原文链接(作者:周志明):https://time.geekbang.org/column/article/321185 公开课链接:https://time.geekbang.org/opencou ...
- 🏆【JVM深层系列】「云原生时代的Java虚拟机」针对于GraalVM的技术知识脉络的重塑和探究
GraalVM 背景 新.旧编程语言的兴起躁动,说明必然有其需求动力所在,譬如互联网之于JavaScript.人工智能之于Python,微服务风潮之于Golang等等.大家都清楚不太可能有哪门语言能在 ...
- 云原生时代的DevOps平台设计之道
开发人员与运维人员是 IT 领域很重要的两大人群,他们都会参与到各种业务系统的建设过程中去.DevOps 是近年间火爆起来的一种新理念,这种理念被很多人错误的解读为"由开发人员(Dev)学习 ...
随机推荐
- ShardingSphere系列(二)——ShardingSphere-JDBC绑定表
完整的项目示例地址:https://gitee.com/learnhow/shardingsphere/tree/v1.1/jdbc 紧接上一篇文章,这次我们介绍绑定表的概念. 绑定表指分片规则一致的 ...
- Spring 实现 3 种异步流式接口,干掉接口超时烦恼
大家好,我是小富- 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable.WebAsyncTask 和 DeferredResult.CompletableFuture等均可实现 ...
- Notepad--特色功能:拷贝另存为
Notepad--特色功能:拷贝另存为 你是否纠结如下的使用场景: 正在编辑的文件,还没有想好,保存担心把原文件给覆盖了. 使用"另存为"后当前编辑界面的文档又变成新的文件了,可是 ...
- 快速部署mysql并开启binlog
curl -fsSL https://get.docker.com | bash yum -y install docker-ce sudo systemctl start docker sudo s ...
- Rsync 秒杀一切备份工具,你能手动屏蔽某些目录吗?
引言 Rsync 是一种快速且通用的命令行实用程序,可通过远程shell在两个位置之间同步文件和文件夹. 使用 Rsync,可以镜像数据,创建增量备份,并在系统之间复制文件.复制数据时,你可能要根据文 ...
- vue3 使用swiper轮播组件
本地环境信息 node版本: nodejs : v18.20.4 npm : 10.7.0 vue版本 "dependencies": { "vue": &qu ...
- html页面实现回车跳转下一文本框
window.onload = function () { //阻止按回车按钮后提交表单的问题 document.getElementsByTagName("form")[0].o ...
- Spark原理及关键技术点
Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎.Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop M ...
- github/gitee个人博客到底是什么一个运行原理?
本文主要讲的是GitHub.Gitee这样的代码存储网站上提供的个人博客建站的原理分析,需要注意的是,本文并不介绍GitHub.Gitee上建立个人blog的操作步骤,本文只介绍原理,不介绍实操步骤. ...
- 一文搞懂 ARM 64 系列: PACISB
1 PAC AMR64提供了PAC(Pointer Authentication Code)机制. 所谓PAC,简单来说就是使用存储在芯片硬件上的「密钥」,一个「上下文」,与「指针地址」进行加密计算, ...