こんばんわ、hisayukiです。
最近バタついていて、月1回は書こうとしているブログすらギリギリになってました・・・
世間もバタついていて、弊社もフルリモートでお仕事しております。
というわけで、今回の本題に入っていきます。
What’s Kotless?
Create and deploy serverless application using Kotlin only.
https://site.kotless.io/
KotlinだけでServerlessApplicationを
環境構築からDeployまでやっちゃおうぜ!
コンセプトとしてはこんな感じです。
なんとKotlinを開発したJetBrainsから発表された公式Frameworkなんです。
なぜKotlessをやってみたか?
もともと見つけたのはこちらの記事
なにこれ面白そう!!ってなったので早速やってみることに
しかし興味を持ったものの、調べても全然情報がない・・・
こちらの記事も詳しい事は書いてなく、続きは書籍でって感じでした
なんとQiitaの記事も0・・・
とはいえ、公式ページはあるしGetStartedもあるので英語を翻訳しながらやってみました。もっと幅広くの人に知ってもらいたいと思ったので。自分がQiitaの記事を書いたら一番乗りだと思ったのでw
AWSリソースの自動生成
Gradleへの記述でTerraformが動く
Gradleへの記述でAWSリソースが自動生成される
これがメイン機能の1つですね
手元にTerraformを入れていなくても、Gradleのタスク起動と同時にダウンロードしてくれる。
つまり利用者はTerraformを意識しなくてもIaCができてることになる
Kotlessのみで作れるAWSリソースは以下のとおり
- IAM
- Route53
- Lambda
- API Gateway
書くのはGradleなのでAWS CDKみたいにKotlinで書いてるって感じはあんまりしないですw
Kotlin ScriptでGradleを書くなら、たしかにKotlinだけで書いているというのは間違いではないw
作成リソースは柔軟にできる
見ての通り、永続化層は自動生成できません。
ただ、足りないリソースをTerrafromの記述で書いてGradleの読み込ませて実行させる機能はあります。
まぁでもここまで来るとKotlinだけってのは無理で、tfファイルを書く必要あります。
つまり柔軟にしようと思ったらTerraformの知識が必要です。
このあたりは今はそうなだけかもなので、今後Gradleへの記述で作れるようになることを期待。
結論
今後に期待かなぁ・・・
- 実践導入するには敷居がちょっと高い
- 国内外関係なく情報量が少ない
- 柔軟に使うにはTerraformの知識が必要
- jarファイルJVM系が持つコールドスタート対応は必要
- 今はAWSしか選択できない
試みとしては面白いし、実際Kotlinだけで書ききることも可能。
個人的にはKotlinはScriptも吐き出せるので、JSでLambdaを作ってくれたら尚よかったなぁと。
あとはせっかくTerraformの実行をラップしてるので、他のリソースもGradleから作れるようになったら嬉しい。
あとは今の段階ではAWSしか選択できないという点ですね。
ただ、Terraformが幅広く対応はしてるのでここは追々増えてくのかなと
今回やってみた手順としてはQiitaにまとめたのでこちらに
まとめ
結論にも書きましたが、試みとしては面白いのでこれからに期待という感じですね。
市場にどの程度広がるかも重要ですが、JetBrainsが開発しているという点でも期待はできます。
途中でも書きましたがIaC環境を別途用意しなくても、同じプロジェクト内で管理できるのは利点かなって思いました。
コメント