关于如何在生产环境中运行 Clojure 项目及相应的管道几乎没有在线资料。如果能更多讨论和评论您做了什么,而不仅仅是可能做什么,那就太好了。
我的当前设置
我们的基础设施基于基于 Kubernetes 运行的微服务架构,背后是 Istio 和 Istio gateway。
- CI 是通过 Jenkins 自动化的,Jenkins 会运行代码分析和测试,并产生放送到 sonarqube 的工件。
- 每个 Dockerfile 编译一个 jar 文件,并有一个入口点在生产中执行 jar 文件,当 CD 将新代码发布到 Kubernetes 时。
- 我们使用嵌入的 httpkit 为 Web 服务提供支持。
- 一些服务由 mount 或组件库(数据库、Web 服务器、RabbitMQ 等)管理。
- 我们的配置文件由 yogthos/config 库在 edn 文件和 lein 的配置文件中处理。
- 没有日志库,由 Google Stackdriver 处理。(为什么这些服务这么贵? :x)
我们以前没有使用过 Java 产品,所以可能有一些更好的服务或者部署代码到生产环境的做法。目前,我们的机制运行得很好。我认为这种内容能够让人们在阅读一些成功(或失败)的使用案例后更加舒服地做出选择。