SlideShare a Scribd company logo
copyright Fringe81 Co.,Ltd.
Scala on GAE
市ヶ谷Geek★Night#12 ScalaMatsuriの余
韻トーク〜祭りの余熱〜
2017.03.16
copyright Fringe81 Co.,Ltd.
copyright Fringe81 Co.,Ltd.
About me
@mtoyoshi
現在新規サービス立ち上げ中
GAEを利用
コミュニティアプリ「シンクル」
「今年のベストApp10選」選出
App
Engine
BigQuery
Cloud
Dataflow
Cloud
Pub/Sub
Firebase
・・・
copyright Fringe81 Co.,Ltd.
scala matsuri
懇親会での話
copyright Fringe81 Co.,Ltd.
「お仕事でScala
使われているんですか?」
copyright Fringe81 Co.,Ltd.
私「はい。それを今のプロジェクトで
はGAE上で稼働させて...」
copyright Fringe81 Co.,Ltd.
「えっ」
私「えっ」
copyright Fringe81 Co.,Ltd.
「えっ、あの・・・?」
私「あの?」
copyright Fringe81 Co.,Ltd.
「Google App Engine」
copyright Fringe81 Co.,Ltd.
GAE x Golangの事例を聞くことが増えた
copyright Fringe81 Co.,Ltd.
ScalaをGAEで動かすためには
GAE standard environment
・Java7
・jetty
copyright Fringe81 Co.,Ltd.
ScalaをGAEで動かすためには
GAE flexible environment
・Java8
・Docker基盤
※ standard envはBorgというGオリジナルコンテナ
copyright Fringe81 Co.,Ltd.
つい先日、
GAEのmeetupにて
copyright Fringe81 Co.,Ltd.
「えっ、flexible...?」
私「...」
copyright Fringe81 Co.,Ltd.
長らくベータでしたが無事、GA化
copyright Fringe81 Co.,Ltd.
akka-httpで作った
アプリケーションをデプロイする
※Playアプリケーションも稼働するはず
copyright Fringe81 Co.,Ltd.
1. プロジェクトを作っておく
copyright Fringe81 Co.,Ltd.
2.デプロイコマンドを含むcloud sdkをインストールし
ておく
先程作ったプロジェクトへの設定をしておく(gcloud
init)
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. コーディング
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
copyright Fringe81 Co.,Ltd.
5.デプロイ
% gcloud app deploy
copyright Fringe81 Co.,Ltd.
copyright Fringe81 Co.,Ltd.
注意点
https://cloud.google.com/appengine/docs/flexible/java/flexible-for-standard-users
copyright Fringe81 Co.,Ltd.
Read系は GAE standard(go)
Write系はGAE flexible(scala)
というCQRS
copyright Fringe81 Co.,Ltd.
NEWS: Java8がGAE standardでα release!
copyright Fringe81 Co.,Ltd.

More Related Content

PDF
Scalaでもgae
PDF
仕様をコードに落としこむ際気をつけたいこと
PDF
Ladder of cqrs+es
PDF
Spring social の基礎
PDF
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
PDF
Git hubenterpriseを導入してみて
PDF
Kubernetesセキュリティの歩き方
PPTX
Sumo Logic活用事例とその運用
Scalaでもgae
仕様をコードに落としこむ際気をつけたいこと
Ladder of cqrs+es
Spring social の基礎
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
Git hubenterpriseを導入してみて
Kubernetesセキュリティの歩き方
Sumo Logic活用事例とその運用

What's hot (20)

PDF
Spring I/O 2017 報告 ThymeleafのWebFlux対応
PPTX
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
PDF
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
PPTX
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
PPTX
QAエンジニアを通じて 弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
PDF
LIFULLの全社アプリケーション実行基盤 KEEL について
PDF
K8s(gke)をプロダクトに投入するまでの話
PPTX
202202 open telemetry .net handson
PDF
Kubernetesクラスタバージョンアップを支える技術
PPTX
Spring I/O 2019 報告 Spring Frameworkのロードマップと5.2の新機能
PDF
グリーのセキュリティ戦略:組織改革成功の秘訣と新たな課題への取り組み
PDF
【GCP】DDoS対策 Cloud Armor(クラウドアーマー)を試してみた
PDF
E.G.G.卒業生コメント
PDF
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
PPTX
[デブサミ秋2015] 新卒入社エンジニアが 2年間fluentdを運用して学んだ事いろいろ
PPTX
kintoneとAmazon Connectで日直の自動化など
PDF
YJTC18 A-1 大規模サーバの戦略
PPTX
ログインの全て
PPTX
Spring I/O 2015 報告
PDF
Spark meetup 2015_agenda
Spring I/O 2017 報告 ThymeleafのWebFlux対応
【CTO Night&Day 2018】CTOとしてエンジニアに対して責任を持ち続けること
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
QAエンジニアを通じて 弊社の開発環境がより良くなる日 〜 OpenSTF 編 〜
LIFULLの全社アプリケーション実行基盤 KEEL について
K8s(gke)をプロダクトに投入するまでの話
202202 open telemetry .net handson
Kubernetesクラスタバージョンアップを支える技術
Spring I/O 2019 報告 Spring Frameworkのロードマップと5.2の新機能
グリーのセキュリティ戦略:組織改革成功の秘訣と新たな課題への取り組み
【GCP】DDoS対策 Cloud Armor(クラウドアーマー)を試してみた
E.G.G.卒業生コメント
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
[デブサミ秋2015] 新卒入社エンジニアが 2年間fluentdを運用して学んだ事いろいろ
kintoneとAmazon Connectで日直の自動化など
YJTC18 A-1 大規模サーバの戦略
ログインの全て
Spring I/O 2015 報告
Spark meetup 2015_agenda
Ad

Viewers also liked (20)

PPTX
1年くらいScalaプロジェクトに関わった結果 #ichigayageek
PDF
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
PPTX
Spark GraphX で始めるグラフ解析
PPTX
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
PDF
Preparing for distributed system failures using akka #ScalaMatsuri
PDF
複数拠点における開発効率の維持・向上
PDF
Spark MLlibでリコメンドエンジンを作った話
PDF
Меню джаз-клуба EverJazz
PDF
Big Data Analytics Infrastructure for Dummies
PPTX
NJ Future Redevelopment Forum 2017 Anderson
PDF
Anomaly detection in real-time data streams using Heron
PDF
[GUIDE] Vigilance sommeil - Guide prévention et santé
PPTX
スタートアップを陰ながら支えるときに心がけるべき5ヶ条
PDF
Secure development environment @ Meet Magento Croatia 2017
PPT
NJ Future Redevelopment Forum 2017 Marchetta
PDF
Diagnóstico SEO Técnico con Herramientas #TheInbounder
PPTX
NJ Future Redevelopment Forum 2017 Kolluri
PDF
B2B Marketing and The Power of Twitter
PDF
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
PDF
Spark Security
1年くらいScalaプロジェクトに関わった結果 #ichigayageek
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
Spark GraphX で始めるグラフ解析
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Preparing for distributed system failures using akka #ScalaMatsuri
複数拠点における開発効率の維持・向上
Spark MLlibでリコメンドエンジンを作った話
Меню джаз-клуба EverJazz
Big Data Analytics Infrastructure for Dummies
NJ Future Redevelopment Forum 2017 Anderson
Anomaly detection in real-time data streams using Heron
[GUIDE] Vigilance sommeil - Guide prévention et santé
スタートアップを陰ながら支えるときに心がけるべき5ヶ条
Secure development environment @ Meet Magento Croatia 2017
NJ Future Redevelopment Forum 2017 Marchetta
Diagnóstico SEO Técnico con Herramientas #TheInbounder
NJ Future Redevelopment Forum 2017 Kolluri
B2B Marketing and The Power of Twitter
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
Spark Security
Ad

Similar to Scala on gae (20)

PPT
KobeGTUG GAE/Java
PPT
Google Product
PDF
今日から始める Go言語 と appengine
PDF
appengine ja night #24 Google Cloud Endpoints and BigQuery
PDF
Scalaでのプログラム開発
PPTX
gcp ja night #27 Google Cloud Endpoints with Golang
PDF
第1回名古屋Android勉強会Lt用資料
PPTX
Dart flightschool cloudendpoint with dart
PDF
Scalaの現状と課題
PDF
Google App Engine Java 入門
PDF
Dist 29 gcp_serverless_web_app_development
ODP
Next Language Scala
PDF
G * magazine 0
PDF
sbtマルチプロジェクトビルドの使いどころ
PDF
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
PDF
Google Compute EngineとGAE Pipeline API
PDF
Google Compute EngineとPipe API
PDF
ScalaでAndroidアプリ開発
PPT
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
PDF
Dartでサーバレスサービス
KobeGTUG GAE/Java
Google Product
今日から始める Go言語 と appengine
appengine ja night #24 Google Cloud Endpoints and BigQuery
Scalaでのプログラム開発
gcp ja night #27 Google Cloud Endpoints with Golang
第1回名古屋Android勉強会Lt用資料
Dart flightschool cloudendpoint with dart
Scalaの現状と課題
Google App Engine Java 入門
Dist 29 gcp_serverless_web_app_development
Next Language Scala
G * magazine 0
sbtマルチプロジェクトビルドの使いどころ
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Google Compute EngineとGAE Pipeline API
Google Compute EngineとPipe API
ScalaでAndroidアプリ開発
2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & ...
Dartでサーバレスサービス

More from Masaki Toyoshima (6)

PDF
Google cloudinside3
PDF
Stream processing using alpakka cloud pub sub connector
PDF
CQRS+ES on GCP
PDF
Akka Stream x Kinesis at Shinjuku reactive meetup vol2
PDF
Akka stream
PDF
Aerospike deep dive LDTs
Google cloudinside3
Stream processing using alpakka cloud pub sub connector
CQRS+ES on GCP
Akka Stream x Kinesis at Shinjuku reactive meetup vol2
Akka stream
Aerospike deep dive LDTs

Scala on gae