混合云和多云管理不再难:基础架构即代码来帮忙

简介:

随着运维流程变得越来越灵活,IT团队面临着越来越大的复杂度。当应用动态改变时,可以使用敏捷或者持续应用开发。但是当IT资源本身动态变化的时候怎么办呢?

多云和混合云是这一新的、动态的IT大格局的一部分——并且带来了新的风险。要解决这里的问题,一些企业使用了基础架构即代码方案。

配置管理(CM)在大规模IT基础架构里一直是必需配置。有一些CM工具,来自于云供应商,比如Amazon Web Services或者Microsoft Azure,或者来自于虚拟化或私有云软件供应商,比如OpenStack或者VMware。

基础架构即代码通过为应用程序创建虚拟托管模型来扩展了CM。这样虚拟的托管模型散布在多个云环境和数据中心平台里。

虽然基础架构即代码是CM的一种扩展,它其实是作为DevOps的扩展才开始流行起来。用户无法在还没有搭建好的服务器或者云服务上部署应用程序。因此,DevOps工具和脚本必须包含这些配置任务。这使得DevOps脚本和工具是和配置绑定的;如果从一个云平台改变到另一个平台,用户就必须更改脚本。基础架构即服务提供了一种方式,将应用程序的虚拟世界和底层资源,包括云,隔离开。有更多的托管方案存在,基础架构即代码就会更加有价值。

基础架构即代码模型为部署描述创建了中间层;用户将应用程序部署到基础架构即代码所创建的抽象的托管模型里,基础架构即代码随后将其适配到当前使用的任意云,多云或者混合配置环境里。基础架构的变动在应用程序和运维层是不可见的,并且添加新的云供应商仅需要在基础架构即代码里完成其定义即可。

但是,基础架构即代码的用户需要注意如下三大重要步骤:

1.将基础架构即代码从DevOps中隔离

IT团队能够将基础架构即代码部署到定义了配置脚本的任何环境里,并且使得应用程序能够适配几乎所有公有云服务或者数据中心平台。

IT团队需要基于哪种基础架构即代码将部署配置,来定义IT资源的抽象模型。基础架构即代码工具和实践变化很大。一些用户为每个应用程序都构建了基础架构即代码,而另外的用户为每种类型的云托管环境,比如基础架构即服务,平台即服务或者Docker,构建通用的模型。

总的来说,最好减少创建出的抽象托管模型的数量,因为当添加新的托管选择时,你必须调试每个模型。工具允许的情况下,考虑层级构建模型,这样部署应用组件——或者某个应用的一部分——的基础架构即代码模型,可以在部署整个应用程序的模型里直接引用。

2.为使用的所有云或者数据中心环境保护对基础架构即代码的支持

一旦你理解了所需模型,要确保它们能够支持计划使用的特定的云供应商和数据中心的配置。几乎所有基础架构即代码工具,比如Chef和Puppet,都让用户为任何环境定义自己的配置规则,但是流行的公有云,私有云和平台方案——比如hypervisor,容器系统和服务器操作系统——都作为基础架构即代码工具集的一部分提供。还可能有社区的支持,其他用户将他们的配置规则贡献出来。从已经能够工作的配置上开始开发,比从头开始构建自己的要更加容易。

3.将事件流从基础架构推广到部署工具

完成基础架构即代码方案中最微妙,困难和重要的事情是,处理基础架构即代码和其他工具集成的事件流;大多数情况下,这意味着使用DevOps工具。应用程序生命周期运营管理需要根据情况选择合适的软件——这些条件就是基础架构即代码里的事件。这些事件,通过托管资源生成,充当干什么事情的信号。他们通常激活一个自动化流程,比如通过在别的地方托管来替换发生故障的应用程序组件。

基础架构即代码事件和流程紧密链接,这也是为什么大多数计划使用混合或者多云部署的企业会研究其DevOps工具对基础架构即代码的支持,而并不使用单独的工具。基础架构即代码和DevOps的集成确保事件触发流程的正确设计和实现。

将基础架构即代码集成进DevOps还能够帮助用户避免常识性错误。如果已经有了特定的工具,并且如果基础架构即代码集成进了DevOps的话,使用基础架构即代码计划托管资源就会更为容易。这是因为虚拟化整个部署流程以及基础架构即代码的资源角色会更加容易一些。DevOps工具和包会公布其支持的公有云服务,如果DevOps工具包含基础架构即代码组件,用户就知道该工具能够和列出的公有云一起工作。

要更加高效,基础架构即代码必须和DevOps紧密合作,但是同时又保持自己的特性。如果不仔细的话,就会开发出界线模糊的配置和部署实践,并且逐渐侵蚀资源的独立性——这其实是基础架构即代码的最大优势所在。在多云和混合云的部署里,维护敏捷基础架构至关重要,因此这应该成为特定的目标。


本文作者:佚名

来源:51CTO

相关文章
|
3月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
101 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
2月前
|
敏捷开发 缓存 中间件
.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素
本文深入探讨了.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素,并通过企业级应用和Web应用开发的实践案例,展示了如何在实际项目中应用这些模式,旨在为开发者提供有益的参考和指导。
44 3
|
3月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
125 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
2月前
|
存储 负载均衡 Kubernetes
混合云和多云策略:混合云架构设计详解
混合云和多云策略:混合云架构设计详解
117 1
|
2月前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
178 10
|
3月前
|
设计模式 人工智能 算法
编程之旅:从代码到架构的感悟
【9月更文挑战第33天】在编程的世界里,代码不仅是实现功能的工具,更是连接思想与现实的桥梁。本文将通过个人的编程经历,分享从编写第一行代码到设计系统架构的旅程,探索编程背后的哲学和技术演变。我们将一起思考,如何在代码的海洋中找到自己的航向,以及在这个过程中如何不断成长和适应变化。
|
3月前
|
机器学习/深度学习 大数据 PyTorch
行为检测(一):openpose、LSTM、TSN、C3D等架构实现或者开源代码总结
这篇文章总结了包括openpose、LSTM、TSN和C3D在内的几种行为检测架构的实现方法和开源代码资源。
112 0
|
4月前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
123 4
|
5月前
|
XML 开发框架 .NET
.NET框架:软件开发领域的瑞士军刀,如何让初学者变身代码艺术家——从基础架构到独特优势,一篇不可错过的深度解读。
【8月更文挑战第28天】.NET框架是由微软推出的统一开发平台,支持多种编程语言,简化应用程序的开发与部署。其核心组件包括公共语言运行库(CLR)和类库(FCL)。CLR负责内存管理、线程管理和异常处理等任务,确保代码稳定运行;FCL则提供了丰富的类和接口,涵盖网络、数据访问、安全性等多个领域,提高开发效率。此外,.NET框架还支持跨语言互操作,允许开发者使用C#、VB.NET等语言编写代码并无缝集成。这一框架凭借其强大的功能和广泛的社区支持,已成为软件开发领域的重要工具,适合初学者深入学习以奠定职业生涯基础。
124 1
|
5月前
|
设计模式 算法 PHP
深入理解PHP中的数组操作探索编程之美:从代码到架构的思维转变
【8月更文挑战第24天】在PHP编程中,数组是基础且强大的数据结构。本文将通过浅显易懂的方式,介绍如何在PHP中高效地操作数组,包括创建、遍历、排序和过滤等常见任务。无论你是初学者还是有经验的开发者,这篇文章都会带给你新的启示。 【8月更文挑战第24天】在编程的世界中,代码不仅仅是冰冷的字符排列,它承载着思想、解决问题的智慧和创新的灵魂。本文将通过个人的技术感悟,带领读者从编写单一功能的代码片段出发,逐步深入到整个软件架构的设计哲学,探索如何将代码块转化为高效、可维护和可扩展的系统。我们将一起见证,当代码与架构思维相结合时,如何引发技术实践的革命性飞跃。