paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Infrastructure as code for dynamic deployments

面向动态部署的基础设施即代码
FSE Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering2022匹配度 3/10 · 该论文属于DSL/基础设施配置领域,讨论动态IaC的建模与联合分析测试,虽涉及程序化建模与分析,但与用户核心关注的LLM/Agent、静态分析交叉、浮点程序分析及贝叶斯程序分析均无直接关联。引用 18 inbox
Daniel Sokolowski
crossref: 2026-09-12

AI 速览

一句话:指出现有静态 IaC 无法表达基础设施的动态变化,主张让动态行为进入 IaC 程序并支持联合分析测试。

现代 DevOps 组织需要在频繁变更下保持软件稳定,并希望根据负载灵活、及时地重配置基础设施,例如高效使用按量付费资源。基础设施即代码(IaC)用于自动化基础设施,但现有静态 IaC 只支持部署后不再变化的基础设施。若要动态变化,静态 IaC 程序必须被更新并重新运行(如 CI/CD 流水线),或配置外部编排器(如自动扩缩容器或 Kubernetes operator)。这两种做法都没有把动态行为捕获在 IaC 程序中,因而无法将基础设施配置与其动态行为联合分析、测试。摘要主要阐明问题与动机,未给出方法与评估结果。

问题
静态 IaC 只能描述部署后不变的基础设施,而现代 DevOps 需要随时间动态重配置;现有 CI/CD 重跑或外部编排器方案未在 IaC 中表达动态行为,导致无法联合分析与测试基础设施配置及其动态行为。
方法
摘要未给出具体方法细节;从标题与问题陈述看,工作方向是面向动态部署的基础设施即代码,使动态行为可由 IaC 程序表达。
评估
摘要未说明评估方式与结果,仅指出既有方案无法将基础设施配置与其动态行为联合分析与测试。
原文摘要(Abstract)

Modern DevOps organizations require a high degree of automation to achieve software stability at frequent changes. Further, there is a need for flexible, timely reconfiguration of the infrastructure, e.g., to use pay-per-use infrastructure efficiently based on application load. Infrastructure as Code (IaC) is the DevOps tool to automate infrastructure. However, modern static IaC solutions only support infrastructures that are deployed and do not change afterward. To implement infrastructures that change dynamically over time, static IaC programs have to be (updated and) re-run, e.g., in a CI/CD pipeline, or configure an external orchestrator that implements the dynamic behavior, e.g., an autoscaler or Kubernetes operator. Both do not capture the dynamic behavior in the IaC program and prevent analyzing and testing the infrastructure configuration jointly with its dynamic behavior.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot7135,
  title = {Infrastructure as code for dynamic deployments},
  author = {Daniel Sokolowski},
  booktitle = {FSE},
  year = {2022},
  doi = {10.1145/3540250.3558912}
}