一句话:提出“代码内基础设施”概念,并实现面向 Kotlin 的可扩展、云无关 serverless 框架 Kotless。
云技术的普及催生了大量依赖云环境运行的应用,这些应用通常需要大量云基础设施。现有基础设施即代码(Infrastructure as Code)方法要求开发者用独立语言并行编写基础设施规格,增加了维护负担。本文提出“代码内基础设施”(Infrastructure in Code)概念,主张直接从应用代码本身推导基础设施,而无需单独规格。作者讨论了可归入该概念的现有方案及其局限,并实现了 Kotless——一个可扩展、云无关的 Kotlin serverless 框架,支持两类云厂商、三种 DSL 和两种运行时。最后通过将一个已有应用迁移到 serverless 环境,展示了 Kotless 的实用性与效率。
The popularity of cloud technologies has led to the development of a new type of applications that specifically target cloud environments. Such applications require a lot of cloud infrastructure to run, which brought about the Infrastructure as Code approach, where the infrastructure is also coded using a separate language in parallel to the main application. In this paper, we propose a new concept of Infrastructure in Code, where the infrastructure is deduced from the application code itself, without the need for separate specifications. We describe this concept, discuss existing solutions that can be classified as Infrastructure in Code and their limitations, and then present our own framework called Kotless — an extendable cloud-agnostic serverless framework for Kotlin that supports two cloud providers, three DSLs, and two runtimes. Finally, we showcase the usefulness of Kotless by demonstrating its efficiency in migrating an existing application to a serverless environment.
DOI 原文 ·
@inproceedings{paperbot6495,
title = {Infrastructure in Code: Towards Developer-Friendly Cloud Applications},
author = {Vladislav Tankov and Dmitriy Valchuk and Yaroslav Golubev and Timofey Bryksin},
booktitle = {ASE},
year = {2021},
doi = {10.1109/ase51524.2021.9678943}
}