//TIM.CHAO
主にAIによる翻訳
AI駆動開発:ゼロから作るパーソナルブランドサイト · 6

デプロイと運用:ローカルから本番へ

April 9, 20267 分で読めますAI

開発とテストが完了したら、最後のステップは本番環境へのデプロイです。デプロイは開発プロセスの終盤のように思えますが、実際には想像以上に多くの意思決定や設定が伴います。この記事では、ローカル環境から本番環境への完全なプロセスと、本番環境へのデプロイ後のメンテナンス方法について記録します。

ship skill:パッケージングとコミットの標準プロセス

このプロジェクトでは、変更を本番環境にプッシュするたびに、ship skill を使用して、コミット前の完全なチェックを行います。

ship skillが行う処理は以下の通りです:

  • git status を実行し、どのファイルが変更されたかを確認する

  • ビルドを実行し、コンパイルエラーがないか確認する

  • コミットすべきでないファイル(.envや一時ファイルなど)がないか確認する

  • 構造化されたコミットメッセージを生成する

  • 変更の概要を添えてプルリクエストを作成する

このプロセスの最大のメリットは一貫性です。大きな機能追加であれ小さな修正であれ、コミットするたびに同じチェック手順を踏みます。「ちょっとした変更だから」という理由でビルドチェックを省略し、結果として本番環境で不具合が見つかるような事態を防げます。

もう一つの利点は、コミットメッセージの品質です。ship skillが変更内容を自動的に分析するため、手書きよりも正確なメッセージが生成されます。後でgit logを確認した際、各コミットで何が変更され、なぜ変更されたのかが明確に把握できます。

land-and-deploy:デプロイの実行

PRのマージ後、land-and-deployスキルを使用してデプロイを実行します。このスキルは、マージから本番環境へのデプロイまでの全プロセスを調整します:

  1. PRのすべてのチェックが通過していることを確認

  2. PRをmainブランチにマージ

  3. Vercelの自動デプロイをトリガーする

  4. デプロイ完了を待機

  5. 本番環境での正常動作を確認

プロセス全体は自動化されていますが、各ステップには明確な確認ポイントがあります。もしあるステップで失敗した場合、プロセスは停止し、次のステップへ進みません。

Vercelプラットフォーム:自動化されたデプロイインフラ

このプロジェクトはVercelにデプロイされています。Vercelを選んだ理由は単純明快です。Next.jsをネイティブにサポートしており、追加の設定が不要だからです。

主な設定項目:

  • 自動デプロイ:mainブランチにプッシュするたびに、Vercelが自動的にデプロイを実行します。手動操作も、追加のCI/CDパイプラインも不要です

  • プレビューデプロイ:各プルリクエスト(PR)に対して自動的にプレビューURLが生成され、マージ前にオンラインでの表示を確認できます。これは多言語サイトの視覚的なチェックに特に役立ちます

  • ISR(Incremental Static Regeneration):ページは最初のリクエスト時に静的HTMLが生成され、その後は定期的に再生成されます。このサイトでは、記事ページは60秒、シリーズページは3600秒の再検証間隔に設定されています。これにより、静的ページの高速性を保ちつつ、コンテンツ更新後の変更を自動的に反映できます

  • 環境変数管理:データベース接続文字列やAPIキーなどの機密情報は、すべてVercelの環境変数管理を通じて管理されます。環境(development、preview、production)ごとに異なる値を設定できます

公開後のメンテナンス

サイトの公開は終わりではなく、新たな段階の始まりです。継続的に行われるメンテナンス作業は以下の通りです:

  • コンテンツの更新:管理画面から記事を追加または編集すると、ISRが自動的にキャッシュの更新を処理するため、再デプロイは不要です

  • パフォーマンス監視:Vercelに組み込まれたAnalyticsでCore Web Vitalsを追跡し、どのページの読み込みが遅く最適化が必要かを確認できます

  • エラー追跡:VercelのFunction Logsを使用してサーバーサイドのエラーを監視し、問題を早期に発見します

  • 依存関係の更新:npmパッケージを定期的に更新し、セキュリティホールの蓄積を防ぎます

完全なサイクル

このシリーズ全体を振り返ると——構想、設計、アーキテクチャ、実装、開発の加速、品質検証、そしてデプロイと運用——これらが一体となって、完全なソフトウェア開発サイクルを形成しています。

各段階には対応するAIツールが支援していますが、ツールはあくまで手段であり、目的ではありません。brainstorming skillはアイデアを絞り込むのを助けますが、何をするかを決めるのはあなた自身です。Serenaはコード構造を理解するのを助けますが、技術的な意思決定はあなたが行います。Playwrightはテストの自動化を助けますが、テスト戦略を決めるのはあなたです。

AIツールが変えるのは、「誰が決定を下すか」ではなく、「決定を下す効率と品質」です。それらは大量の機械的な作業を排除し、あなたが真に判断を要する部分に集中できるようにします。

このウェブサイト自体が、この働き方の産物です。ゼロから、たった一人でAIツールチェーンを用いて、設計、開発、テスト、デプロイの全プロセスを完了させました。完璧ではありませんが、動作し、利用でき、継続的にイテレーションが可能です。これこそが、AI-Driven Developmentの最もリアルな姿なのでしょう。