关于如何在生产环境中运行 Clojure 项目以及相应的流水线的在线资料几乎为零。关于你具体是如何做的,而不仅仅是能够做什么,更多地展开讨论和评论将是非常有益的。
我的当前设置
我们的基础设施基于基于 Kubernetes 的微服务架构,后端是 Istio 和 Istio Gateway。
- CI 是自动化的,通过 Jenkins 运行代码分析和测试,生成到 sonarqube 进行分析的艺术品。
- 每个 Dockerfile 编译一个 jar 文件,并具有一个入口点,用于在 CD 将新代码发布到 Kubernetes 时代码库文件在生产环境中执行该 jar 文件。
- 我们为网络服务使用内嵌的 httpkit。
- 一些服务由 mount 或组件库(数据库、网络服务器、rabbitmq 等)管理。
- 我们的配置文件由 yogthos/config 库中的 edn 文件和 lein 的配置文件处理。
- 没有日志记录库,由 Google Stackdriver 处理。(为什么这些服务这么贵?:x)
我们没有任何 Java 产品的先前经验,所以我们可能有一些更好的方法来部署代码到生产环境。目前,我们的机制运行得很好。我认为这种内容可以让人们在阅读一些成功的(或失败)用例后对他们的选择更加安心。