构建云实例的启动脚本

打造云实例启动脚本的指南

分离首次启动与重启

在初始探索阶段之后,您的大多数机器学习任务通常会打包成镜像并部署在本地或云服务器上。这将有助于快速迭代,构建支持 MLOps 管道运行的基础架构,包括数据科学家、数据、软件、云工程师等全体开发团队的参与。

示例图显示将机器学习任务典型部署到服务器上(VM=虚拟机)。作者提供的图片

启动脚本用于在云服务器实例启动时执行自动配置或其他任务。在 AWS EC2 中被称为“用户数据”,在 Google Cloud Engine 中被称为“启动脚本”,在 Azure Virtual Machine 中被称为“自定义脚本扩展”。启动脚本中的内容可以是安装程序、元数据设置、环境变量等。其主要目的是每个实例在启动时都配置好,并随时准备为项目中的应用程序或相邻服务提供服务。

与我们编写的所有脚本一样,我们应该始终使它们整洁、结构化和集中化,以便可以重复使用作为模板。这将使您在项目中管理多个实例中的多个应用程序更加轻松。在接下来的几节中,我将展示您如何做到这一点。

在开始之前,您可能会问,这篇文章针对数据科学团队中的哪个角色?答案是取决于情况。在一个成熟团队(并有充足预算)的公司中,云或 DevOps 工程师负责部署工作。在其他情况下,角色是模糊的,甚至包括数据科学家或机器学习工程师在内的人员都会承担这些广义角色。

尽管后续部分专门针对 AWS EC2 的用户数据,但可以轻松地将其适应其他使用相同概念的提供商。

1) 首次启动与重启的启动脚本

在实例首次启动时使用启动脚本是相当直观的,但重启呢?如果我们使用按需实例,并且它们不适用于生产环境(例如开发、暂存、SIT、UAT),那么在周末或办公时间之后让它们运行将毫无经济意义…