我正在考虑如何将我已经在本地测试过的rest api部署到云端的流程,让我们说基础架构即服务(不像像Heroku这样的服务平台)就像亚马逊一样.
我的本地环境设置已经启动并运行但我的问题是我应该如何在生产环境中部署它?
定义一个进程,其中devops从git repo中提取最新的更改然后只执行sbt run是否合理?
我想知道使用scala + spray + sbt的团队如何将他们的api部署到生产环境中.
4le*_*x1v 27
我们服务的核心是scala + akka + spray + mongo.所以我们使用GitHub进行版本控制.在将已检查的PR合并到主分支之后,Jenkins自动测试'n'构建项目.如果所有测试都成功,那么Jenking会运行几个脚本:
基本上在第三步,您有几个选择:
使用IO/Spray启动文件创建一个可运行的jar:
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)
}
Run Code Online (Sandbox Code Playgroud)
制作一个可运行的jar作为Akka的微内核:
在这种情况下,您应该扩展Bootable trait和override startup
和shutdown
方法:
class Kernel extends Bootable {
// many lines of code
def startup() {
scheduler.start()
SomeActorSystem.startup()
}
def shutdown() {
scheduler.shutdown()
SomeActorSystem.shutdown()
system.shutdown()
}
}
Run Code Online (Sandbox Code Playgroud)
使用TypeSafe启动脚本:
无法显示示例,但它在github上有一个很好的介绍=)
我们在不同的情况下使用所有这些方式.
归档时间: |
|
查看次数: |
7527 次 |
最近记录: |