ICEIS2022国际学术会议文章 《将应用程序部署上云:抽象、职责分工及工具支持》 ( Lifting existing single machine applications to Cloud: abstractions, separation of responsibilities and tooling to support ) - ziliantech-org/doc-zilian-wiki GitHub Wiki

在论文中我们提出: 把应用程序部署运行在云上能够享受到众多云服务的好处,新一代的应用可以一开始就奔着云原生的目标开发,但是有众多现有的应用程序开始的时候并没有假定云环境,如何帮助把这些(众多的)现有应用部署上云是一件有意义有价值的工作。文中我们提出了一个指导性的工作流程框架,该框架总结于咨链科技公司实际工程实践,可用于整体筹划部署现有应用上云的若干重要方面。这个工作流程框架包含以下方面的内容:辨别如果重要的程序属性,使用属性检查列表来界定程序上云的复杂性;对上云的额外工作责任做良好的区分并分配相关责任给不同的专业人员,减少原应用开发人员的负担和焦虑,并能融入专业的云服务技术人员来完成尽可能多上云的额外责任;尽可能使用软件工具来实现每一步的工作,每一个责任完成都应该尽可能落实为可重复执行和复用的代码,软件工具和配置 (Responsiblity-as-code);文中还调研对比了若干能服务于上云工作流程的不同方面的开源和商业的软件工具。

The benefits from running applications on the cloud: easy to scale up, low cost from competition of many cloud vendors, and many others, are compelling reasons for more and more applications being developed and/or deployed against the cloud environment. This trend promptes application developers to rethink the structure of their applications, the runtime assumption of the applications, and what are the appropriate input/output abstractions. New generation of applications can be built from the scratch with the recent development of the cloud-native primitives. However there are many existing applications which were previously developed against single-machine environment. Some of them now are needed to be lift to the cloud so as to enjoy the benefits from cloud environment such as computation elasticity. What does a principled process look like to lift such applications to the cloud? In this paper, we present what we have learnt from helping our customers to lift their existing applications to cloud. We identify the key challenges from common questions being asked in practice, and we present our proposed methodological framework, to partially address these key challenges. The solution is comprised of various methods identifying right abstractions for cloud resources, separating the responsibilities between application developer and cloud DevOps, and how to leverage tooling to streamline the whole process. We try to design our methods as much cloud-vendor agnostic as possible. We use the lifting process of one application, a web crawler from our practice, to exemplify various aspects of the proposed methodological framework.

Full Paper Link