什么是基础架构即代码和平台即代码?看完就清楚了「建议收藏」

什么是基础架构即代码和平台即代码?看完就清楚了「建议收藏」比如你熟悉的AWSBeanstalk,Azure CDN,Google App Engine之类的PaaS服务也广受欢迎。

使用基础设施即代码(IaC),捏可以编写有关基础设施计算,存储和网络要求的声明性说明,然后执行该声明。这与平台即代码(PaC)有什么不同?

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

什么是基础架构即代码和平台即代码?看完就清楚了「建议收藏」

云计算的兴起,首先让基础层得以抽象化。借助基础架构即服务(IaaS)模型,IT/运维团队只需通过云即可立即配置云基础架构。AWS、微软Azure、谷歌GCE,阿里云等都提供广泛的IaaS服务,如AWS EC2。在其上的是平台即服务(PaaS)模型。基础设施提供商在云上提供平台层,包括云操作系统,开发工具,数据库管理等。比如你熟悉的AWS Beanstalk,Azure CDN,Google App Engine之类的PaaS服务也广受欢迎。

实际上,运维团队还自己构建PaaS平台,将选定的功能子集整合到与其现有的基础架构兼容,或具有自定义工作流程的功能。如果你使用容器化或微服务范式,这可能会让你变得乏味且笨拙。

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

基础架构即代码

基础架构即代码通过软件而不是物理硬件配置或其他工具来管理和配置基础架构。使用IaC,你可以编写有关基础设施的计算,存储和网络要求的声明性说明并执行。然后,自动化引擎(如AWS Cloud Formation和Terraform之类的工具)将通过抽象的IaaS API捕获声明/代码来为你配置它。

结果,无论是交付管道的自然组成部分,还是为了响应特定事件而自动扩展,供应基础设施的速度都将显著提高。如果你使用dev,QA,staging,prod等多种环境,则使用同一代码库启动基础结构可确保一致性,并通过减少错误配置,停机等风险等来节省大量时间和可能的麻烦。变更管理也变得非常重要,而且更简单。你可以编写代码来更新基础结构,并具有完整的版本控制。

这对云上的容器化应用程序特别有影响。

  • 容器化和微服务启动了数百个小型应用程序,而不是像以前的开发范例中那样使用少数大型实例。在这样的规模下,开发过程将存在时间滞后,从而严重影响敏捷性。
  • 在多云部署中,数百/数千个应用程序的可重复性对于交付一致的客户体验至关重要。
  • 云计算的付费机制,使其谨慎地根据需要动态扩展和缩减基础架构,在这种规模上几乎无法手动进行管理。

使用基础架构即代码,云本机应用程序可以大规模地具有一致,可靠且受版本控制的基础架构。但是,仅IaC并不能提供最佳的应用程序生命周期管理经验。该平台仍需要由运维团队进行配置和管理。IaC是通过将抽象作为基础层API的包装程序来实现的,因此,开发人员将需要为每个抽象提供新的CLI。

为了获得流畅的开发人员体验,仅IaC还远远不够。我们需要平台即代码。

平台即代码

平台即代码(PaC)是平台层的抽象。PaC允许将有关平台层的声明性说明,包括应用程序的开发和操作所需的操作系统和其他工具写入代码并执行。

本质上,PaC允许开发人员定义自己的平台。也就是说,为应用程序提供定制的执行环境。对于每个应用程序来说,这可能是不同的环境,它们有多少个。如果Kubernetes是你选择平台,则可以像编写应用程序代码一样为平台元素编写YAML声明。

与IaC不同,PaC通过抽象实现为Kubernetes API扩展,而不是通过k8s API编写包装器。因此,PaC抽象成为一流的实体,允许开发人员使用kubectl和YAML提供声明性指令。

自动化所节省的时间和精力不言而喻。但是,在Kubernetes上PaC的真正价值在于,即使开发人员正在为其K8s集群创建自定义平台堆栈,它也将具有可重复性和可控制性。这将确保应用程序的开发/生产的奇偶性。所有平台元素,例如YAML文件,管理员清单等都是可共享的。使用Kubernetes Operators还可以在多云环境中一致地部署。

平台即代码范例,已实现了大规模,高效,一致,可重复的企业应用交付。通过通用语言进行协作,使开发(Dev)和运维(Ops)更加紧密。最重要的是,它为下一代开发生命周期工具铺平了道路。它提供了迭代开发,优化的工作流,轻量级的客户端工具,可用于生产的CI/CD管道和以应用程序为中心的部署自动化。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4083.html

(0)
上一篇 2024-07-18
下一篇 2022-12-15

相关推荐

  • 关于Queries_per_sec 性能计数器[通俗易懂]

    关于Queries_per_sec 性能计数器[通俗易懂]【问题描述】 Queries_per_sec (QPS)是数据库两个比较重要的性能计数器指标。我们经常要求开发告知这个参数,以评估数据库的一个负载情况。下面的这段代码连上服务器,做一个简单的查询: u

    2023-01-25
    137
  • xtrabackup 实现MySQL数据库备份「建议收藏」

    xtrabackup 实现MySQL数据库备份「建议收藏」mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了。这…

    2023-03-22
    147
  • Python字符串分割

    Python字符串分割在编程中,字符串分割是一项非常基础而又重要的操作。Python作为一门强大的编程语言,在字符串分割方面也有其独特的方式和特性。在这篇文章中,我们将会探讨Python中字符串分割的相关知识,并详细介绍它的用法和实际应用。

    2024-05-17
    57
  • 使用ElasticSearch赋能HBase二级索引 | 实践一年后总结[通俗易懂]

    使用ElasticSearch赋能HBase二级索引 | 实践一年后总结[通俗易懂]前言: 还记得那是2018年的一个夏天,天气特别热,我一边擦汗一边听领导大刀阔斧的讲述自己未来的改革蓝图。会议开完了,核心思想就是:我们要搞一个数据大池子,要把公司能灌的数据都灌入这个大池子,然后让别

    2023-02-15
    145
  • 使用brew安装Python3指南

    使用brew安装Python3指南Python是一门非常受欢迎的编程语言,可以用于开发Web应用程序、科学计算、数据分析以及人工智能等多个领域。如果你还没有安装Python3,本文将介绍如何使用Homebrew在macOS上安装Python3。

    2024-05-21
    68
  • Python开发工程师 | 使用Spyder | 设置中文为默认语言

    Python开发工程师 | 使用Spyder | 设置中文为默认语言作为一名Python开发工程师,你是否在寻找一款兼具IDE与文本编辑器的Python集成开发环境呢?本文将介绍一款名为Spyder的Python集成开发环境,同时探讨如何在Spyder中设置中文为默认语言。

    2024-06-19
    50
  • 服务器上的mysql拒绝访问_拒绝时最常使用的方法有什么

    服务器上的mysql拒绝访问_拒绝时最常使用的方法有什么场景 在Windows7中打开任务管理器–服务下 找到mysql的服务点击启动时提示: 拒绝访问 这是因为权限不够导致的不能启动sql服务。 点击 任务管理器右下角的服务 在这里就可以正常启动服务

    2022-12-18
    169
  • 提升Python性能的30个关键参数

    提升Python性能的30个关键参数Python 是一种解释型语言,具有高度的互动性和易读性。但是,这也让 Python 在执行大量计算密集型和IO密集型任务时表现不佳。

    2023-12-11
    113

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注