Docker
Dockerを用いたデプロイ方法について学びます。
SquadbaseはDockerを用いたデプロイをサポートしています。 Dockerはアプリケーションとその依存関係をパッケージ化することで、異なる環境でも同じように動作することを保証し、ローカル環境と本番環境の差異を最小化します。
SquadbaseはDockerを用いたアプリケーションのデリバリーにおいて、以下のような機能・運用を実現します。
- セキュアなクラウド環境へのデプロイ
- 組み込みのユーザー認証
- ユーザーアナリティクス
- ログモニタリング
- ユーザーからのフィードバック収集
公式でサポートされていないフレームワークで構築したアプリやOSレベルのパッケージインストールしたアプリをSquadbaseにデプロイする際にもDockerは利用可能です。
Dockerfileを作成する
Dockerfileを作成して、あなたのアプリをパッケージ化します。Squadbaseでは、ビルドしたDockerイメージを用いてアプリをデプロイします。
デプロイ先の環境は、squadbase.ymlで指定するprovider
によって異なります。
- AWS: AWS Lambdaをベースにした実行環境
- GCP: GCP CloudRunをベースにした実行環境
例として、公式サポートのフレームワークで使用しているDockerfileは以下の通りです。
Streamlit(pip) on GCP
Streamlit(poetry) on GCP
Streamlit(uv) on GCP
Next.js on AWS
Next.js on GCP
Github連携を用いてデプロイする
squadbase.ymlを作成する
プロジェクトのコードベースのルートに squadbase.yml を作成します。例えばStreamlitアプリでDockerを用いてデプロイする場合には、以下のようになります。
例として、最もシンプルな squadbase.yml の内容は以下の通りです。
squadbase.ymlのカスタマイズについては、こちら をご覧ください。
GithubリポジトリをSquadbaseにインポートする
Squadbaseのダッシュボードのホーム画面から、Githubリポジトリをインポートします。インポートが完了すると、自動的にデプロイが開始されます。
プッシュしてデプロイ
アプリに変更を加えて、Githubリポジトリにプッシュしてデプロイします。プッシュが完了すると、自動的に新しいバージョンのデプロイが開始されます。
Squadbaseの機能を利用する
Squadbaseはデプロイメントだけでなく、組織向けアプリの開発・運用に便利な機能を提供しています。
ユーザー認証とメンバー管理
Squadbaseにデプロイされたアプリに、Squadbase上のチームメンバーがアクセスすると自動的にユーザー認証が行われます。アプリの公開設定がパブリックでない場合、この認証を通過したユーザーのみがアプリにアクセスできます。また、アプリへのアクセスを持つユーザーには、「プロジェクトロール」という設定値を与えることができます。
REST APIを用いて、プロジェクトロールを含むユーザー情報にアクセスすることができ、アプリの挙動をユーザーのロールに応じてカスタマイズすることができます。
Squadbaseのユーザー情報を取得するには、以下のように実装してください。
ユーザーアナリティクス
Squadbaseは、ユーザーのアクセスログを収集し、ユーザーアナリティクスを提供します。SquadbaseにデプロイしたDockerアプリを、チームメンバーがどのくらい利用しているのかを把握することができます。
Squadbaseの組み込みのユーザーアナリティクスを利用するために、コードを追加する必要はありません。Dockerアプリをデプロイし、ダッシュボードからすぐにアナリティクスを確認することができます。
ログモニタリング
Squadbaseは、デプロイされたアプリのログを収集し、ログモニタリングを提供します。ログモニタリングを利用することで、アプリのデプロイやデプロイのバージョンごとのログを確認することができます。
フィードバック
Squadbase上にデプロイされたアプリには、自動でフィードバック用のコメントボックスが追加されます。チームメンバーはこのコメントボックスから、アプリのフィードバックを送信することができます。