什么是基础架构即代码和平台即代码?看完就清楚了

 人工智能技术     |      2020-04-18 12:06

导读:使用基础架构即代码(IaC),您可以编写一个关于基础架构计算、存储和网络需求的声明性语句,然后执行该语句。这与平台或代码(PaC)有什么不同?任何应用程序的技术堆栈都分为三层,即

使用基础架构即代码(IaC),您可以编写一个关于基础架构计算、存储和网络需求的声明性语句,然后执行该语句。这与平台或代码(PaC)有什么不同?

任何应用程序的技术堆栈都分为三层,即基本层,包括裸机实例、虚拟机、网络、防火墙、安全等。平台层包含操作系统、运行时环境、开发工具等。当然,也有包含应用程序代码和数据的应用层。除了部署代码,典型的技术操作和维护团队还负责基本层和平台层的部署、监控和管理。

云计算的兴起首先抽象了基础层。借助基础架构即服务(IaaS)模式,IT/运营团队可以通过云立即配置云基础架构。AWS、微软Azure、谷歌GCE和阿里云都提供广泛的IaaS服务,如AWS EC2。上面是平台即服务(PaaS)模型。基础设施提供商在云上提供平台层,包括云操作系统、开发工具、数据库管理等。你所熟悉的诸如AWS Beanstalk、Azure CDN和谷歌应用引擎等PaaS服务也很受欢迎。

事实上,运营和维护团队还构建了自己的PaaS平台,整合了所选的功能子集,使其与现有基础架构兼容,或者能够定制工作流。如果你使用集装箱化或微服务模式,这可能会让你变得迟钝和笨拙。

在基于微服务的应用程序的构建中,对规模、一致性、可重复性、可共享性和可审计性的需求迫使操作和维护团队考虑采用新的方法来处理基础层和平台层。正是为了回应这些担忧,基础架构即代码(IaC)和平台即代码(PaC)的概念应运而生。

基础设施就是代码

基础架构是通过软件而不是物理硬件配置或其他工具来管理和配置基础架构的代码。使用IaC,您可以编写和执行关于基础架构计算、存储和网络要求的声明性语句。然后,自动化引擎(如AWS云格式和地形格式等工具)将通过抽象的IaaS应用编程接口捕获声明/代码,为您进行配置。

因此,供应基础设施的速度将显著提高,无论是输送管道的自然组成部分,还是对特定事件的自动扩展。如果您使用开发、质量保证、试运行、生产和其他环境,用相同的代码库启动基础架构可以确保一致性,并通过减少错误配置、停机等风险节省大量时间和可能的麻烦。变革管理也变得非常重要和简单。您可以编写代码来更新基础架构,并拥有完整的版本控制。

这对云上的容器化应用程序有着特殊的影响:

集装箱化和微服务启动了数百个小型应用程序,而不是像以前的开发示例那样使用几个大型实例。在这样的规模下,开发过程会有一个时间延迟,这将严重影响敏捷性。在云部署中,成百上千个应用程序的可重复性对于提供一致的客户体验至关重要。云计算的支付机制使其能够根据需要谨慎地动态扩展和缩减基础设施,这在这种规模上几乎不可能手动管理。使用基础架构作为代码,云本地应用程序可以大规模地拥有一致、可靠和版本化的基础架构。然而,IaC本身并不能提供应用程序生命周期管理的最佳体验。该平台仍需由运营和维护团队进行配置和管理。IaC是通过使用抽象作为基础层API的包装来实现的,因此开发人员需要为每个抽象提供一个新的CLI。


  • 共2页:
  • 上一页
  • 1
  • 2
  • 下一页