もぎーです。
先週辺りからミンミンゼミが鳴き始めていよいよ夏本番が始まるのだなと季節の変わり目を感じています。と言うかもう十分暑いですね。
さて、今回は6月にJJUGのセミナーへ行ってきたので、その内容にもあったQuarkusを紹介する記事です。
Quarkusとは
割と最近出てきたjavaのwebフレームワークです。(Springとか、Strutsとか)
公式サイトに書いてあるのですが、簡単に特徴をまとめると以下があります。
- GraalVMを使用してNativeビルドをすることでJVMが不要になり起動が高速化(約1/100)、メモリも削減(約1/10)できます
- Red Hatが主体となって開発されている
- Reactiveな形も併用することができる
- Live Reloadという、ソースの変更を検知して即反映してくれる機能があるので、開発速度を上げることができる
- ロゴがかっこいい
GraalVMの利点は特にはkubernetes(k8sというやつですね)などでコンテナオーケストレーションをする際などに顕著になります。
従来より高速なスケールアップなどが出来ると考えれば当然ですね。
Live Reloadはアクセスした際にソースが変更されているかを検知 -> 変更があれば、サーバーを止めてビルド、再デプロイ ->アクセスされたパスの処理を実行するという順番です。
動かしてみよう
公式サイトの「GET STARTED」の先にもありますが、開発環境として下記が必要です。
- JDK8+
- Maven3.5.3+ or Gradle (今回はMavenで説明します。)
- GraalVM CE 1.0.0-rc16 (公式サイトでは19.0.2と書いてあるのでそちらにも対応していそうです。)
GraalVMは最新のものを入れてもQuarkus側で対応されていない場合があるので、指定のバージョンを入れてください。
開発環境が揃ったら、下記のコマンドでプロジェクトの雛形を作成しましょう。
1 2 3 4 5 |
mvn io.quarkus:quarkus-maven-plugin:0.19.1:create \ -DprojectGroupId=org.acme \ -DprojectArtifactId=getting-started \ -DclassName="org.acme.quickstart.GreetingResource" \ -Dpath="/hello" |
次に、下記のコマンドでローカル環境を立ち上げます。
1 |
./mvnw compile quarkus:dev |
立ち上げたら下記へアクセスしてみましょう。
GreetingResource.javaに記載されているようにhelloが表示されるはずです。
http://localhost:8080/hello
最初に動かしてみるだけならこれだけです。
実際にGreetingResource.javaのreturn “hello”の部分を変更して再度アクセスしてみてください。
ファイルの変更を検知して瞬時にサーバーの再起動&反映が完了したと思います。
Quarks公式のガイドページ を見ると色々なチュートリアルがあるので見てみてください。
感想
大して触れてはいないのですが、
- GraalVMの恩恵が大きい
- Live Coding機能は使いやすそう
- Reactiveなwebアプリ作りの練習がしやすそう
- 公式ドキュメントが割と充実している気がする
- Springよりも手軽なイメージを持った
といった感じの感想ですね。
今後実績を積んでいけば主流になるのも夢ではないか・・・?
色々踏まえてQuarkusは割と期待されているのかな?と言う印象を受けました。
おまけ
JJUGのセミナーではMicrosoft AzureのAKS(Azure Kubernetes Service)について多く触れられていました。
そこでは実際にAKSを採用している話を聞けました。
具体的には、AKSを自動テストを並列実行するのに使用した話や、特定の時期にアクセスがとても多くなるサービスであればnodeの数を増やすことで簡単に対応した話です。
セミナーなどで話を聞いてくると、知ってはいるけどどう運用されてるのかはわからない技術などを実際に運用している企業の話を聞けるのでよりイメージが湧いたり、知識を深めることができるのでおすすめです。
Nativeビルドしたものと、通常のビルド(JVMが必要)なものをそれぞれnode数100でkubernetes上でスケールアップしてみてもらったのですが、確かにNativeビルドをしたものの起動速度は全然違うものでした。
また、今回は参加無料のセミナーに参加しましたが、olivaでは業務に必要な知識を学ぶためにセミナーへ参加する場合、参加費を会社で負担して勉強意欲のある社員を応援しております!
やる気のあるエンジニアを絶賛募集中です!
oliva HP のお問い合わせよりご連絡下さい。
一緒に学びながら知識・スキルを高めていきませんか?ご応募お待ちしております!