あおかびのおすなば

日々のコトとかなんか見た感想とか

ScalatraでシュッとWebアプリを作る(予定)

こんにちは.

最近寒すぎて何も出来ません.末端冷え性つらい.

さて,この記事はKMC Advent Calendar 2017 - Adventar8日目の記事です.

adventar.org

25日まで全て埋まっていて壮観ですね.

昨日の記事はnojimaさんの

BCC/BPFでシステムコールとかをいい感じにトレースする - @nojima's blogでした.

nojima.hatenablog.com

インフラレイヤーをいい感じにやるのはかっこいいですね.最近触る機会があり興味が出てきたので勉強したいです.

はじめに

KMCではたこ焼き焼いたりクレープ焼いたりしかしていないaokabiです.

ところで以下は最近のやっていき一覧です.

というわけでせっかくISUCONでWebアプリの世界を知ることが出来たので,今回はScalatraを使ってWebアプリを作成していきたいと思います.

ちなみに現在8日の21時です.どこまでできるんでしょうか?気になります.

Scalatra

ScalatraScalaのWebアプリフレームワークです.その名の通りRubySinatraをリスペクトした,スッキリとしたフレームワークですね.導入も簡単なのでさっそくやっていきましょう.

やる

と言ってもHello World!までの手順はとてもシンプルで,テンプレートが用意されているので簡単に準備は整います.大体は公式のGet Startedに従うだけです.

が,jetty:startコマンドでエラーを吐いたので,そこだけbuild.sbtに追記して修正します.

追記したのは24,26行目です.24行目でエラーが消えます.26行目はアプリがlistenするポートを変更しています.

これでHello World!は出来ました.aokabi.me/twitterで見ることが出来ます. 

Systemd

アプリを修正するたびにプロジェクトのルートディレクトリに移動してsbtコマンドから手打ちするのは嫌なので,Systemdでサービス化してしまいましょう.

serviceファイルは以下のように書きました.

簡単でとてもいいですね.

デプロイ

Vimで開発するのもいいですが,やはりIntelliJ君を使いたいですね.ローカル開発するとなると次はデプロイを楽にやりたくなります.方法は様々だと思いますがとりあえずGithubとJenkinsを使ってPushしたら自動でデプロイされるようにしましょう...

おわりに

 といったところで今回はここまで!めちゃくちゃ眠かったので許してください.

本当はいい感じのWebアプリを作るところもやりたかったのですがいい感じのアイデアが浮かばなかったです.

とはいえ此処から先もしっかり進めてその内ブログにでも書きたいと思います.

最近頑張ってちょっとずつブログを書いているのはとてもいい傾向だと思うので続けていきたいですね.

読んでいただきありがとうございました.

次回予告!

明日のKMCアドベントカレンダーtron君の「20歳になって一ヶ月」です.めでたい!!!