🕶️

Tiltを使ったマイクロサービスの開発環境構築

2024/06/21に公開

はじめに

いくつかのフロントエンドやバックエンドのサービスから構成されるマイクロサービスを開発していると開発環境をそれぞれ建てて環境を整えていくのが煩わしくなりました。
そこでいい方法がないか探したところTiltというサービスを見つけて使ってみたところとても開発体験が良かったので紹介しようと思います。

https://tilt.dev/

Tiltとは?

Tiltは、マイクロサービス開発の効率化を目的としたツールです。ローカル開発環境でのアプリケーションのビルド、デプロイ、監視、デバッグを簡単に行えます。
主にKubertetesやDocker、Docker Composeの開発環境の構築に役立ちます。

主な特徴

  • ローカル環境での高速なデプロイ

Tiltは、開発者のローカルマシン上でDockerコンテナのビルドとKubernetesクラスターへのデプロイを迅速に行います。コードの変更を検知して、自動的にコンテナを再ビルドし、再デプロイするため変更の確認が即座に行えます。

しかし、更新するたび再ビルド、デプロイをしていると開発するには少し煩わしいです。

以下のようにlive_update機能を使えばソースコードを監視して変更があれば実行中のコンテナを瞬時に更新することができます。

Liveupdate
docker_build(
  'myregistry/myproj/backend',
  '/path/to/code',
  live_update=[sync(sync_src, sync_static)] // ←コンテナ内のソースとリンクするローカルのソース
)
  • リアルタイムのフィードバック

Tiltのダッシュボードを確認することでアプリケーションの状態やログ、エラーメッセージをリアルタイムでわかります。これにより、開発者は素早く問題を特定し、修正することができます。

ダッシュボード画面

何かエラーがあればすぐに分かるようになっています。

エラーがあった場合

  • シンプルな設定

Tiltの設定ファイル(Tiltfile)はPython風の構文で書かれていて、シンプルにアプリケーションのビルドやデプロイを定義できます。以下のようにload関数を使えば拡張機能も使うことができます。

拡張機能の使用例
load('ext://helm_remote', 'helm_remote')
helm_remote('mysql',
            repo_name='bitnami',
            repo_url='https://charts.bitnami.com/bitnami')

参考

まとめ

簡単な紹介しかできなかったのですが、Tiltを使うことでマイクロサービスの開発環境の構築が行いやすくなったなと実感しました。どこでエラーが起きたかなど各サービスのコンテナを除いてログをたどる必要もなくダッシュボードから簡単に確認できたり、コマンド一発で各環境が立ち上がったりする点は魅力的だなと思います。

Discussion