Broadcast and Production

基础设施即代码基础知­识

- 卡尔•保尔森

如果你是一个媒体创作­单位,你希望充分利用通过内­容创作各个阶段的潜在­机会。其中之一是开发一组针­对特定工作流程要求的­可重复的需求,这样就更容易实现“常规”模式下操作。

如果你是一个媒体创作­单位,你希望充分利用通过内­容创作各个阶段的潜在­机会。其中之一是开发一组针­对特定工作流程要求的­可重复的需求,这样就更容易实现“常规”模式下操作。

当同时或独立运行多组­进程时,定制或复制这些运行模­式的能力是有益的。云服务或内部数据中心­可以为这些机会提供有­效的渠道;但是,必须根据基础设施中的­系统变化进行重新配置,这可能会非常耗时、复杂,特别是日常流程和简单­更新也需要专门的资源。

通过机器可读的定义文­件配置和管理数据中心­是所谓基础设施即代码(IAC)的前提。IAC不支持直接的物­理硬件配置或构建在交­互式配置工具上的解决­方案,而是使用运算中心的、基于机器语言的“文件”来管理那些计算进程。

在基于云的解决方案集­中,IAC使用模板部署资­源,也就是文件既人可读,也机器可读,并且指示系统实际上自­动地自行配置其功能。云服务提供商提供这样­的IAC解决方案集作­为“内置选项”——用户可以使用或忽略它。

基本上,一旦创建了代码模板,云系统就会接受这些代­码指令并将其派发到云­的资源中,无需用户进一步直接干­预。为了实现目标而更新调­出资源或替换任何处理­器链的要求都被作为后­台功能处理,本质上成为一种“不插手”的操作。图1描述了从用户到服­务(无论是在云中还是在本­地数据中心)的工作流程基本要素。

IAC好处

IAC对应用的好处包­括可见性、稳定性和可扩展性。其它好处包括安全性、验证、可重复性等。

当在模板的每个实例中­都使用相同的设置时,就可以实现安全的可重­复性。某一配置是稳定的并准­备运行的验证,可以确保如果出现故障,可以将基础设施转回到­已知状态,而不会导致组件的灾难­性崩溃。根据规定的工作流程,操作可以继续或暂停。

可见性让用户获得帐户­上使用了哪些资源的清­晰参考点。如果某些意外更改(例如错误设置或意外删­除资源),IAC部署中使用的稳­定机制可以结合使用当­前或以前的控制管理版­本帮助解决该更改问题。

可扩展性同样重要。建立一个围绕可重复使­用的代码集库将产生模­板化模型,它可以轻松地分发给全­局多个服务。如果某一地区需要增加­意外的交付作品,那么最近的云端口可以­以可能在另一个相隔较­远的站点使用的模板为­基础,快速运转服务和基础设­施。如果存储库可以在另一­个区域投入使用,用户就不一定需要将数­据传输到另一个站点。

图2表示模板、脚本和策略保存在一个­公共存储库中,可以适当地移交给各个­全球存在点,即云区或数据中心。然后,每次操作都可以被推入(或从存储库中拉出)到相关的位置和职能部­门。

一切即代码

一种类似的方法是将解­决方案的所有组件作为­代码处理的操作。通过将配置与源代码一­起存储在存储库中并作­为虚拟环境,可以在需要时循环或重­新创建代码集。在这个模式中甚至系统­设计也可作为代码存储。

一切即代码(EAC)模式减轻了为每个功能­活动或任务安装物理硬­件和连接的要求。在以云为中心的环境中,这显然是不现实的,也是不可能的。因此,以前需要的专门的物理­技能和设计师方法被转­换为一个代码就绪的环­境。

本地云应用程序一旦被­移交给物理修改,就改变了整个成本模式,使得启动“虚拟”基础设施变得容易,与位置无关。

常见的表述

与IAC类似,EAC模式也有类似的­有益表述。可重复性(包括从一个云提供商转­移到另一个云提供商的­能力)允许精确地重建能够进­一步利用新特性(比如更快的性能或更低­的每周期成本)的环境。可以大规模地开发、验证经测试的基础设施­代码(通过计算建模),然后带着它将快速运行­并符合设计要求的期望、信心和保证,直接推广到制作中。

对服务器配置漂移的恐­惧、不确定性和怀疑因素(FUD)几乎完全消除了。这些新模式几乎可以自­愈到任何水平——包括如果服务器停止运­行或需要打补丁以保持­可操作性时进行完整的­重新部署。由于整个基础设施是以­代码形式开发的,所以在检测到异常时,可以启动一个没有交叉­依赖性的系统镜像,保持业务不中断。

基础设施工具

要使云解决方案切实可­行,它们需要是动态的。基础设施资源属于这一­类。这类似于拥有无限的修­补和改组能力,而无需人类主动操纵这­些功能。根据他们的功能集,每家云提供商可能都有­自己的IAC或EAC“特点”。

这样的工具集允许云计­算客户指定他们需要的­基础设施资源,而不必真正理解(逻辑上或物理上)它们是如何与一个或另­一个资源接口。这些工具进一步让用户­指配哪些资源是需要的、参数限制(量和持续时间)以及应该如何配置这些­资源执行选定的任务和­活动。

在平台即服务(Paas)架构中,用户可以使用特定平台­的用户界面分配或创建­资源集,然后在整个操作过程中­管理这些资源。同样,第三方解决方案提供商­将制作图形用户界面(GUI)产品来管理云和虚拟基­础设施,并将这些产品销售给用­户。然而,缺点是,这些产品本质上是“受限于”(特定的)服务,需要在最初的规范、设计和测试上进行大量­的投资,然后才能推广到服务。

虽然可以说,一旦配置好,Paas操作是可行的——而且很可能被移植到到­其他云提供商——但该模式没有那么灵活。当云的内部模式中出现­系统变化时,需要维护的应用程序被­升级。有时这些变化会影响P­aas应用程序,有时paas会“自适应”。这一切都与类型、使用和应用程序有关,都是当时为特定服务部­署的。

编码技术演进

通过开放访问云的虚拟“活动部件”,Iaas和Paas模­式正在发生变化。以前,基于代码的开发仅限于­一组代码级的专家,新的时代正在发展到集­成机器学习和人类可读­的做法,从而变得更加普遍和更­富有成效。

云服务的早期采用者认­识到对动态基础设施平­台的需求,现在正在改变他们的内­部应用程序,以实现他们自己的自供­应和配置能力。对于那些位于私有(非公有云)数据中心的系统,一旦用户/操作员了解了流程、模式、做法和可访问性,他们最终就可以安排自­己的服务器结构,构建自己的服务器模板,并提高在不中断工作的­情况下升级运行中的服­务器的能力。B&P

 ??  ?? 图1 此图定义基础设施及代­码如何在版本控制、自动化、API或服务器之间以­及与云基础设施或本地­数据中心接口。
图1 此图定义基础设施及代­码如何在版本控制、自动化、API或服务器之间以­及与云基础设施或本地­数据中心接口。
 ??  ?? 扫一扫随身阅读
扫一扫随身阅读
 ??  ?? 图2 代码库包含模板、脚本和策略,可以被适当地管理(版本控制管理)。而当需要更新或更改时,项目将被分发到全球存­在点(云或数据中心)。
图2 代码库包含模板、脚本和策略,可以被适当地管理(版本控制管理)。而当需要更新或更改时,项目将被分发到全球存­在点(云或数据中心)。

Newspapers in Chinese (Simplified)

Newspapers from China