メインコンテンツまでスキップ

アプリのデプロイ手順

ここでは、フロントエンドアプリケーションを配備したとき、バックエンド側で必要になる作業手順を説明します。

アカウントの登録

  1. Front-end アプリケーションの開発者は、Deploy 用の Github アカウントを用意する
  2. Community Siteで、デプロイ情報を知らせる
  3. (Hexabase のリポジトリに、Github アカウントを追加する)
  4. Front-end アプリケーションのサブリポジトリを作成する
  5. Community Siteで、サブリポジトリと配信用 URL を知らせる
  6. (Hexabase が、サブリポジトリと配信用 URL を DNS に登録する)

デプロイ情報のテンプレート

- application_name: test
- repository_URL: ?
- framework: nuxtjs/nextjs/sveltekit
- server port: 3000
- (sub)domain_name: test.hexabase.com
- api_servers:
- deployments
- test:
- staging: e.g: https://api.hexabase.com
- production:
- environment_variable:
- buildtime: required?
- yes: .env_stg/env_prod please prepare
- runtime: required?
- yes: .env_stg/env_prod please prepare -> infra will register to k8s
- circleCI (CI):
- deploy_branch:
- staging:
- production:
- approval: required?
- notifications: required?
- channel_to_notify:
- deadline
- date:
- others:
- pre-build-check:
- frameworks:
- nuxt:
- local:
- build: `nuxt build` or `nuxt export` command has no error?
- IP whitelist:
- environment: stg/prod
- address:
- reference project:

本番環境へのデプロイ

  1. Front-end アプリケーションの開発者は、Front-end アプリケーションのサブリポジトリで、'master'ブランチに code をプッシュする
  2. CircleCIが変更点をキャッチ
  3. CircleCIがコンテナをビルドし、コンテナレジストリにプッシュする(次は今月中にコンテナをdockerhubにプッシュする)。
  4. dockerhubがコンテナに対して脆弱性スキャンを実施し、脅威を検出する(今月中に対応予定)
  5. CircleCIがlinker-prodにデプロイする。

基本的な手順 (Hexabase の内部動作)

  1. Kubernetesが、設定準備とインストール
  2. CircleCIに、プロジェクトとリポジトリをインストール
  3. CircleCIは、設定ファイルをセッティング
  4. CircleCIが、ビルド+デプロイを必要なチャンネルに自動通知(パートナー、社内slackチャンネル)
  5. CircleCIは、選択したクラスタに自動ローリングアップデートを適用

注意事項

フロントエンドアプリケーションを開発する場合、process.env を使わないでください。あなたのアプリケーションをデプロイするときに問題になる場合があります。フロントエンドアプリケーションの実行環境などを切り替えたい場合は、process.env 以外の手段を検討してください。たとえば、Nuxt.jsの場合 nuxt.config.js が利用できます。

参考:ステージング環境へのデプロイ

  1. front-end アプリケーションの開発者が、作業ブランチをdeployにコミット/マージする (パートナーのみ)
  2. CircleCIが変更点をキャッチ
  3. CircleCIがコンテナをビルドし、コンテナレジストリにプッシュする(次は今月中にコンテナをdockerhubにプッシュする)。
  4. dockerhubがコンテナに対して脆弱性スキャンを行い、脅威を検出する(今月中に対応予定)。
  5. CircleCIがlinker-stgにデプロイする。