共计 1367 个字符,预计需要花费 4 分钟才能阅读完成。
文 / 蔡超 Mobvista 汇量科技团体副总裁兼首席架构师
随着云原生技术的一直倒退,2018 年,CNCF 扩大了云原生技术的定义,以下是云原生技术的新定义:
“云原生技术有利于各组织在私有云、公有云和混合云等新型动静环境中,构建和运行可弹性扩大的利用。云原生的代表技术包含容器、服务网格、微服务、不可变基础设施和申明式 API。这些技术可能构建容错性好、易于治理和便于察看的松耦合零碎。联合牢靠的自动化伎俩,云原生技术使工程师们可能轻松地对系统作出频繁和可预测的重大变更。“
其中,像容器,微服务等概念早已深入人心,而很多开发人员都对此次提及的“不可变基础设施”这个概念有不少纳闷,下文将对这个概念进行解析。
其实不可变基础设施这个概念由来已久,并在不同的场合被很多技术专家已不同的模式提出并探讨过, 例如:
“Trash Your Servers and Burn Your Code: Immutable Infrastructure and Disposable Components”,Chad Fowler,2013
“Phoenix Server”,Martin Fowler, 2012
不可变基础设施里的“不可变”十分相似于程序设计中的“不可变”概念。程序设计中,不可变变量(Immutable Variable)就是在实现赋值后就不能产生更改,只能创立新的来整体替换旧的。因为具备这样的个性这种变量能够在并发环境下平安的应用。对于基础设施的不可变性,最根本的就是指运行服务的服务器在实现部署后,就不再进行更改。
在过来依赖传统的高可靠性基础设施的时代,服务的可靠性依赖于高可靠性的服务器。然而,这些基础设施具备很高的领有老本,并且初始化,配置的老本也十分高(对于大中型机,甚至重启都是一种侈靡的)。所以,在过后不可变基础设施的构想是难以实现的,开发人员总是须要在服务器上对运行环境做一下继续的更改,如:系统升级,配置批改,补丁等。在许多手动批改之后,服务器的不同配置的重要性或必要性变得不分明,因而更新或更改任何配置可能会产生意想不到的副作用(这就导致了 Martin Fowler 所说的 snowflake server“Phoenix Server”,2012)。
可变基础设施通常会导致以下问题:
在劫难产生的时候,难以从新构建服务。继续过多的手工操作,不足记录,会导致很难由规范初始化后的服务器来从新构建起等效的服务。
在服务运行过程中,继续的批改服务器,就犹如程序中的可变变量的值发生变化而引入的状态不统一的并发危险。这些对于服务器的批改,同样会引入中间状态,从而导致不可预知的问题。
随着 虚拟化技术以及建设在这之上的云计算基础设施 的引入,极大的升高了获取标准化基础设施的老本。同时,容器技术的引入 也让咱们能够不便地打包构建利用及其运行时的依赖环境,这样咱们就能够不便地构建不可变的、可版本化治理的服务(这里包含了标准化实例、运行环境及应用服务)。
在构建云原生时,要实现不变基础设施,咱们须要 实际以下几点:
应用云端虚拟化基础设施作为构建根底
通过容器技术来打包及整体构建服务运行环境
实现容器镜像的自动化构建及版本化治理
通过继续部署零碎,进行自动化部署
对于云计算,你想要理解更多?复制下方链接至浏览器,挖掘更多宝藏!
https://new.spotmaxtech.com/