Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Scala on gae

1,011 views

Published on

scala on gae

Published in: Software
  • Be the first to comment

Scala on gae

  1. 1. copyright Fringe81 Co.,Ltd. Scala on GAE 市ヶ谷Geek★Night#12 ScalaMatsuriの余 韻トーク〜祭りの余熱〜 2017.03.16
  2. 2. copyright Fringe81 Co.,Ltd.
  3. 3. copyright Fringe81 Co.,Ltd. About me @mtoyoshi 現在新規サービス立ち上げ中 GAEを利用 コミュニティアプリ「シンクル」 「今年のベストApp10選」選出 App Engine BigQuery Cloud Dataflow Cloud Pub/Sub Firebase ・・・
  4. 4. copyright Fringe81 Co.,Ltd. scala matsuri 懇親会での話
  5. 5. copyright Fringe81 Co.,Ltd. 「お仕事でScala 使われているんですか?」
  6. 6. copyright Fringe81 Co.,Ltd. 私「はい。それを今のプロジェクトで はGAE上で稼働させて...」
  7. 7. copyright Fringe81 Co.,Ltd. 「えっ」 私「えっ」
  8. 8. copyright Fringe81 Co.,Ltd. 「えっ、あの・・・?」 私「あの?」
  9. 9. copyright Fringe81 Co.,Ltd. 「Google App Engine」
  10. 10. copyright Fringe81 Co.,Ltd. GAE x Golangの事例を聞くことが増えた
  11. 11. copyright Fringe81 Co.,Ltd. ScalaをGAEで動かすためには GAE standard environment ・Java7 ・jetty
  12. 12. copyright Fringe81 Co.,Ltd. ScalaをGAEで動かすためには GAE flexible environment ・Java8 ・Docker基盤 ※ standard envはBorgというGオリジナルコンテナ
  13. 13. copyright Fringe81 Co.,Ltd. つい先日、 GAEのmeetupにて
  14. 14. copyright Fringe81 Co.,Ltd. 「えっ、flexible...?」 私「...」
  15. 15. copyright Fringe81 Co.,Ltd. 長らくベータでしたが無事、GA化
  16. 16. copyright Fringe81 Co.,Ltd. akka-httpで作った アプリケーションをデプロイする ※Playアプリケーションも稼働するはず
  17. 17. copyright Fringe81 Co.,Ltd. 1. プロジェクトを作っておく
  18. 18. copyright Fringe81 Co.,Ltd. 2.デプロイコマンドを含むcloud sdkをインストールし ておく 先程作ったプロジェクトへの設定をしておく(gcloud init)
  19. 19. copyright Fringe81 Co.,Ltd. object Main extends App { implicit val system = ActorSystem( "my-system") implicit val materializer = ActorMaterializer() implicit val executionContext = system.dispatcher val route = path("hello") { get { complete( "hello!") } } val bindingFuture = Http().bindAndHandle(route, "0.0.0.0", 8080) sys.addShutdownHook { val awaitable = for { binding <- bindingFuture _ <- binding.unbind() _ <- system.terminate() } yield () Await.ready(awaitable, 10 seconds) } 3. コーディング
  20. 20. copyright Fringe81 Co.,Ltd. 4.各種設定ファイルを用意する runtime: custom env: flex FROM gcr.io/google_appengine/openjdk8 VOLUME /tmp ADD my.jar app.jar CMD [ "java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] app.yaml Dockerfile
  21. 21. copyright Fringe81 Co.,Ltd. 5.デプロイ % gcloud app deploy
  22. 22. copyright Fringe81 Co.,Ltd.
  23. 23. copyright Fringe81 Co.,Ltd. 注意点 https://cloud.google.com/appengine/docs/flexible/java/flexible-for-standard-users
  24. 24. copyright Fringe81 Co.,Ltd. Read系は GAE standard(go) Write系はGAE flexible(scala) というCQRS
  25. 25. copyright Fringe81 Co.,Ltd. NEWS: Java8がGAE standardでα release!
  26. 26. copyright Fringe81 Co.,Ltd.

×