首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将我的spray部署到生产环境中?

如何将我的spray部署到生产环境中?
EN

Stack Overflow用户
提问于 2013-07-01 10:44:18
回答 3查看 7.6K关注 0票数 23

我在想如何将我已经在本地测试过的rest api部署到云上,比如说像amazon这样的基础设施即服务(而不是像Heroku这样的平台即服务)。

我已经设置了本地环境并运行了sbt,但我的问题是,我应该如何在生产环境中部署它?

定义一个进程,让devops从git代码库中提取最新的更改,然后简单地执行sbt run,这样做合理吗?

我想知道使用scala+spray+sbt的团队是如何将其apis部署到生产环境中的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-01 15:44:09

我们服务的核心是scala + akka + spray + mongo。所以我们使用GitHub进行版本控制。在将检查的PR合并到主分支之后,Jenkins会自动测试‘n’After项目。如果所有测试都成功,那么Jenking会运行几个脚本:

带有sbt-assembly

  • Run deploy脚本的
  1. 增量项目版本(当前以shell编写,但将更改为sbt)
  2. 运行程序集任务(使用Python语言和Fabric编写),该脚本将jar部署到EC2

基本上,在第三步中,您有几个选择:

使用IO/喷雾引导文件创建一个可运行的jar

代码语言:javascript
复制
object Boot extends App {
  implicit val system = ActorSystem("ServiceName")
  val log = system.log
  val service = system.actorOf(Props[Service], name="serviceActor")
  IO(Http) ! Http.Bind(service, interface = host, port = port)
}

制作了一个可运行的jar作为Akka的微内核:

在这种情况下,您应该扩展可引导特征并覆盖startupshutdown方法:

代码语言:javascript
复制
class Kernel extends Bootable {
  // many lines of code
  def startup() {
    scheduler.start()
    SomeActorSystem.startup()
  }

  def shutdown() {
    scheduler.shutdown()
    SomeActorSystem.shutdown()
    system.shutdown()
  }
}

使用TypeSafe启动脚本的

我不能展示一个例子,但在github =上有一个很好的介绍)

我们在不同的情况下使用所有这些方法。

票数 27
EN

Stack Overflow用户

发布于 2013-07-01 15:29:38

您应该使用插件sbt-assembly构建一个jar

代码语言:javascript
复制
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.9.0")

然后,您可以使用java -jar在生产环境中运行jar。

如果你给你的项目提供版本号,这是一个相当经典的过程。

希望能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2013-07-01 15:45:04

从来没有和喷雾-阿卡一起去看职业选手。只有宠物项目。我在这里的建议应该被视为灵感。我知道我提出的一些选项在维护方面成本很高,或者容易出错。

打包

我只使用了maven-shade-plugin (没有使用sbt的经验),但我想有一个类似的解决方案。

打包问题

不过,这种方法几乎没有什么问题。Akka和许多喷雾模块使用references.conf和application.conf约定。当组装/着色所有依赖项时,资源(因为它们的名称相同)可能会被覆盖,并且您将无法启动应用程序。

我找到的快速而棘手的解决方案是将应用程序和依赖项的ref.conf复制/粘贴到由我控制的应用程序和and中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17396796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档