如果你正在学习或刚开始接触DevOps和基础设施自动化,这篇文章将帮助你详细了解不可变基础设施(Immutable infrastructure)模型。
创新互联是一家企业级云计算解决方案提供商,超15年IDC数据中心运营经验。主营GPU显卡服务器,站群服务器,西信服务器托管,海外高防服务器,大带宽服务器,动态拨号VPS,海外云手机,海外云服务器,海外服务器租用托管等。
在进入技术解释之前,首先,你应该对可变和不可变这两个词的字面意思有一个清晰的认识。
现在让我们看一个真实世界的例子,即一所房子。在一所房子里,有一些你可以改变的对象(可变的),也有一些必须被替换的对象(不可变的),如果它们发生了什么变化。例如,你可以给一扇门涂上不同的颜色,更换门把手,给它一个不同的外观。在这里门是一个可变的对象。同时,一个洗脸盆是一个不可变的对象。如果你想改变脸盆的颜色,你需要用一个新的脸盆来替换它。这一点也适用于地砖。
在IT界,我们在软件工程和DevOps中都有可变性和不可变性的概念。在软件工程中,这一概念被应用于面向对象的编程,而在DevOps中,它被应用于基础设施自动化。在本指南中,我们将从DevOps的角度重点讨论不可变的基础设施。
要理解不可变的基础设施,首先,你应该知道服务器的生命周期。
下面是一个带有应用程序的服务器的简略的生命周期(仅供参考,各组织的流程有所不同)。
正如你所看到的,上面提到的步骤是一个可变的模型。这是因为我们正在根据要求对服务器进行修改。因此,当你使用Ansible、Puppet或Chef等配置管理工具来管理服务器时,你遵循的是可变模式。
「不可变」,就像它的字面意思一样,不可变的基础设施是一个概念,在你部署服务器之后,你不会对它做任何改变。意思是说,服务器在部署的时候已经预先配置好了配置、安装好了工具和应用程序。服务器出现的那一刻,应用程序就开始运行。
如果您想进行任何更改,则应销毁现有服务并用新服务替换。更改可能是打补丁、应用程序升级、服务器配置更改等。
图片
你可以为大多数现代应用遵循不可变的基础设施模型,包括数据库集群。
例如,如果你有应用程序在自动缩放组中运行,而你遵循的是不可变的服务器部署模型。每当你想部署新的代码时,你需要销毁现有的虚拟机,这样由自动缩放启动的新虚拟机就会下载最新的代码。另一种方法是,你需要用带有代码的最新镜像来改变启动模板。
在一个不可变的模型中,在配置方面应遵循标准的最佳实践。
例如,使用配置存储或服务发现工具,将经常改变的配置外部化。一个典型的例子是Nginx的upstream配置。
这样一来,你就不必为小的变化和配置而重新生成服务器。
如果你知道容器,它是不可变基础设施的最好例子。除了外部化的配置,对容器的任何改变都会导致重建。
那么,不可变的基础设施模式如何用在CI/CD过程?
当你在虚拟机环境的CI管道中遵循不可变的基础设施模式时,可部署的工件将是一个虚拟机镜像或一个docker镜像。
例如,一旦CI完成,利用Docker或packer等工具,你可以把程序代码塞到容器或虚拟机镜像(AWS AMI)中,并使用它在相关环境中进行部署。
当涉及到部署时,你可以遵循蓝绿部署或金丝雀部署。让我们来看看这两种方法。
在不可改变的基础设施模型中,虚拟机或容器镜像的创建和修补起到了关键作用。你需要利用CI/CD工具,制定良好的镜像生命周期管理。
在云和容器环境中,首先我们需要一个基础镜像。之后基于这个基础镜像创建应用镜像。在实际的项目环境中,这个过程会比较复杂。
下面我们来聊一下这一切在实际项目环境中是如何发生的,以及如何根据公司的安全策略建立应用程序镜像。
因此,这里列出了在安全的项目环境中遵循的通用镜像生命周期管理(虚拟机和容器)步骤。
注意:该列表是为了给你一个关于镜像生命周期管理的总体情况。它在每个组织中都是不同的。
图片
我们已经看了不可变的基础设施的关键概念。
作为一名DevOps工程师,你应该在构建和部署不可变镜像时遵循所有标准的最佳实践,以减少攻击面。
如果你正在使用容器或容器编排工具(如Kubernetes),你已经在遵循应用程序部署的不可变模式。
原文:https://devopscube.com/immutable-infrastructure/
译者:秦晓辉
网站标题:DevOps/SRE必懂概念:不可变基础设施
本文网址:http://www.shufengxianlan.com/qtweb/news40/222490.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联