• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

什么是基础设施即代码

基础设施即代码(IaC) 协助将基础设施管理从数据中心内的物理硬件过渡到虚拟化、容器和云计算。对于 IaC、网络、虚拟机、负载平衡器和连接拓扑都使用高级语言进行编码,将应用开发所依靠的环境标准化。完成编码后,DevOps 能够启动、拆解和扩展基础设施,以响应不断波动的需求。这样的敏捷性能够造就更快、更简单的软件开发、测试和部署。

一、什么是基础设施即代码

基础设施即代码(IaC) 协助将基础设施管理从数据中心内的物理硬件过渡到虚拟化、容器和云计算。对于 IaC、网络、虚拟机、负载平衡器和连接拓扑都使用高级语言进行编码,将应用开发所依靠的环境标准化。完成编码后,DevOps 能够启动、拆解和扩展基础设施,以响应不断波动的需求。这样的敏捷性能够造就更快、更简单的软件开发、测试和部署。

系统会创建包含基础设施规格的配置文件,供您轻松编辑和分发配置,同时确保您每次都能采用统一方式配置相同的环境。编程人员能够借助 IaC,创建沙盒环境,从而单独构建应用。QA 专业人员之后会利用同一个基础设施的副本来执行测试,以确保应用能够正常运行。在最后一步中,基础设施和代码的另一份副本会传到生产环节,供部署之用。

二、可变与不可变IaC的区别

简单来说,可变基础设施能够轻松改变及转变,而不可变基础设施则不能改变。

由于 IaC 成为 IT 优异实践的新标准,基础设施从传统的运营模式转向更可变的模式。这是因为 IT 部门一直在努力实现持续交付,并将版本控制和自动化测试嵌入 DevOps 流程。这么做的目标在于,IT 能够采用统一方式,每次都在完全相同的环境中部署某一产品包及其依赖项。

1、可变 IaC

可变IaC 需要不断更新,才能够持续满足不断变化的业务需求。IT 专业人员必须分别处理每一部服务器和交换机,期间需较长时间识别问题及生成解决方案。

2、不可变 IaC

不可变 IaC 代表的是经由简化的未来,要求每一个组件采用确切规格,没有偏差。一旦需要改变,基础设施便会依据新要求予以配置,旧 IaC 就会被取代。底层基础设施能够保持如此一致性,因此,构建和部署应用将更快、更稳定。

三、基础设施即代码的重要性

IaC的发展是为了帮助解决“环境切换”的问题。云应用程序通常在其发布生命周期的各个阶段都有单独的部署环境。拥有开发、测试、预生产和生产环境是很常见的。这些环境由网络资源组成,如应用程序服务器、负载均衡和数据库等。当这些不同环境之间的基础设施不同步时,就会发生环境切换问题。

如果没有IaC,基础设施管理可能是一个混乱和脆弱的过程。系统管理员手动连接到远程云厂商并使用API或网页仪表板来配置新硬件和资源。此手工流程并未提供应用程序基础设施的整体视图。管理员可能会手动更改一个环境,而忘记同步到另一个环境。这就是环境切换问题的发生原因。

环境切换问题成为一种昂贵的商业浪费。错误和失败的发生是因为团队针对预生产或开发环境进行构建,然后在部署时发现生产环境不同步,这导致耗费大量时间来调查原因和找出丢失的内容。

如果没有IaC,手动基础设施管理是一个缓慢的过程。由于环境切换问题、流量高峰或某些其它问题,我们都可以变更系统所需的基础设施,但是系统管理员无法预计手动完成配置更改的时间。这会导致系统中断和客户体验下降。有了IaC,基础设施可以自动更改配置的变化,并通过自动扩展功能对流量高峰做出反应。

以上就是关于什么是基础设施即代码、可变与不可变IaC的区别、基础设施即代码的重要性的全部内容了,希望对你有所帮助。

一站式研发项目管理平台 PingCode

一站式研发项目管理平台 PingCode

支持敏捷\瀑布、知识库、迭代计划&跟踪、需求、缺陷、测试管理,同时满足非研发团队的流程规划、项目管理和在线办公需要。

相关文章