Squadbase
Squadbase Docs

Docker

Dockerを用いたデプロイ方法について学びます。

SquadbaseはDockerを用いたデプロイをサポートしています。 Dockerはアプリケーションとその依存関係をパッケージ化することで、異なる環境でも同じように動作することを保証し、ローカル環境と本番環境の差異を最小化します。

SquadbaseはDockerを用いたアプリケーションのデリバリーにおいて、以下のような機能・運用を実現します。

  • セキュアなクラウド環境へのデプロイ
  • 組み込みのユーザー認証
  • ユーザーアナリティクス
  • ログモニタリング
  • ユーザーからのフィードバック収集

公式でサポートされていないフレームワークで構築したアプリやOSレベルのパッケージインストールしたアプリをSquadbaseにデプロイする際にもDockerは利用可能です。

Dockerfileを作成する

Dockerfileを作成して、あなたのアプリをパッケージ化します。Squadbaseでは、ビルドしたDockerイメージを用いてアプリをデプロイします。

デプロイ先の環境は、squadbase.ymlで指定するproviderによって異なります。

  • AWS: AWS Lambdaをベースにした実行環境
  • GCP: GCP CloudRunをベースにした実行環境

例として、公式サポートのフレームワークで使用しているDockerfileは以下の通りです。

Github連携を用いてデプロイする

squadbase.ymlを作成する

プロジェクトのコードベースのルートに squadbase.yml を作成します。例えばStreamlitアプリでDockerを用いてデプロイする場合には、以下のようになります。

app.py
Dockerfile
pyproject.toml
squadbase.yml

例として、最もシンプルな squadbase.yml の内容は以下の通りです。

# squadbase.yml
version: '1'
 
build:
  context: .

squadbase.ymlのカスタマイズについては、こちら をご覧ください。

GithubリポジトリをSquadbaseにインポートする

Squadbaseのダッシュボードのホーム画面から、Githubリポジトリをインポートします。インポートが完了すると、自動的にデプロイが開始されます。

プッシュしてデプロイ

アプリに変更を加えて、Githubリポジトリにプッシュしてデプロイします。プッシュが完了すると、自動的に新しいバージョンのデプロイが開始されます。

Squadbaseの機能を利用する

Squadbaseはデプロイメントだけでなく、組織向けアプリの開発・運用に便利な機能を提供しています。

ユーザー認証とメンバー管理

Squadbaseにデプロイされたアプリに、Squadbase上のチームメンバーがアクセスすると自動的にユーザー認証が行われます。アプリの公開設定がパブリックでない場合、この認証を通過したユーザーのみがアプリにアクセスできます。また、アプリへのアクセスを持つユーザーには、「プロジェクトロール」という設定値を与えることができます。

REST APIを用いて、プロジェクトロールを含むユーザー情報にアクセスすることができ、アプリの挙動をユーザーのロールに応じてカスタマイズすることができます。

Squadbaseのユーザー情報を取得するには、以下のように実装してください。

import requests
 
def get_user_info_from_cookie(cookie):
  subdomain = "your-subdomain"
 
  # Construct the URL for the POST request
  url = f"https://{subdomain}.squadbase.app/_sqcore/auth"
  token = cookie.get("__Host-squadbase-session")
  headers = {
      "Authorization": f"Bearer {token}"
  }
  response = requests.post(url, headers=headers)
  if response.status_code == 200:
      return response.json()
  else:
      return {"error": "Failed to retrieve user information"}
 
cookie = {"__Host-squadbase-session": "your-auth-token"}
user_info = get_user_info_from_cookie(cookie)
print(user_info)

ユーザーアナリティクス

Squadbaseは、ユーザーのアクセスログを収集し、ユーザーアナリティクスを提供します。SquadbaseにデプロイしたDockerアプリを、チームメンバーがどのくらい利用しているのかを把握することができます。

Squadbaseの組み込みのユーザーアナリティクスを利用するために、コードを追加する必要はありません。Dockerアプリをデプロイし、ダッシュボードからすぐにアナリティクスを確認することができます。

User Analytics

ログモニタリング

Squadbaseは、デプロイされたアプリのログを収集し、ログモニタリングを提供します。ログモニタリングを利用することで、アプリのデプロイやデプロイのバージョンごとのログを確認することができます。

Log Monitoring

フィードバック

Squadbase上にデプロイされたアプリには、自動でフィードバック用のコメントボックスが追加されます。チームメンバーはこのコメントボックスから、アプリのフィードバックを送信することができます。

Feedback