部署应用程序所面临的主要挑战之一是为其安装所需的依赖。在很多情况下,特别是在现代的微服务架构中,即便只是开发一个微服务,也需要部署多个依赖项,它们或者是数据库,或者是其他微服务。尽管部署应用程序本身很简单,但是在搭建完整的应用程序环境时,识别和部署其依赖通常会面临各种错误以及令人沮丧的反复尝试,这往往是因为不完整或过时的操作说明导致的。
为了解决这个问题,为依赖的描述和安装制定规约通常是有价值的。就像使用
npm install
来安装所有必需的JavaScript依赖一样,最终很可能会出现一个类似
npm
的包管理工具来为Kubernetes中的应用提供类似的服务,但在此之前的最佳实践是在团队内部制定规约来解决这类问题。
在每个项目仓库的根目录下创建一个setup.sh脚本就是一个这样的规约,该脚本用来确保在特定的命名空间中正确地创建应用所需的依赖。安装脚本可能如下所示:
然后可以将如下代码添加到package.json来与npm进行集成:
通过这个脚本,新的开发者可以通过
npm run setup
轻松地为应用安装依赖。很显然这个集成是针对Node.js和npm的,更普遍的做法是将其集成到开发语言特定的构建工具中。例如,在Java中可以将其集成到Maven的pom.xml中。