Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

[インデックス 11131] ファイルの概要

このコミットは、Goプロジェクトのダッシュボードアプリケーションのデプロイ設定ファイルである misc/dashboard/app/app.yaml を更新するものです。具体的には、アプリケーション名とバージョンを修正し、デプロイ手順に関するコメントを追加することで、デプロイプロセスをより明確かつ正確にすることを目的としています。

コミット

commit c356fc74a12d32d7d0764de0160b291117e9dc79
Author: Russ Cox <rsc@golang.org>
Date:   Thu Jan 12 11:06:09 2012 -0800

    dashboard: add deployment comment to app.yaml
    
    Also update default app and version to be correct.
    
    R=golang-dev, r
    CC=golang-dev
    https://golang.org/cl/5541044

GitHub上でのコミットページへのリンク

https://github.com/golang/go/commit/c356fc74a12d32d7d0764de0160b291117e9dc79

元コミット内容

dashboard: add deployment comment to app.yaml

Also update default app and version to be correct.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5541044

変更の背景

この変更の背景には、Goプロジェクトのダッシュボードアプリケーションのデプロイメントプロセスを改善し、より堅牢にするという意図があります。app.yaml ファイルはGoogle App Engine (GAE) アプリケーションの設定を定義するものであり、その中の applicationversion フィールドは、デプロイされるアプリケーションの識別子として非常に重要です。

元の設定では、アプリケーション名が go-build、バージョンが 1 となっていましたが、これは実際のデプロイ環境や運用上の要件と合致していなかった可能性があります。例えば、golang-org というアプリケーション名は、Go言語の公式ウェブサイトや関連サービスをホストするGAEプロジェクトの一般的な命名規則に沿っていると考えられます。また、バージョンを build に変更することで、特定のビルドバージョンを示すことができ、デプロイの管理やロールバックが容易になります。

さらに、デプロイコマンドに関するコメントを追加することで、開発者や運用担当者が appcfg.py ツールを使用してアプリケーションをデプロイする際の正確な手順を明確に示しています。特に -V test-build オプションに関する言及は、テスト環境へのデプロイ方法を具体的に指示しており、誤ったデプロイを防ぎ、開発ワークフローを効率化する目的があったと推測されます。

前提知識の解説

Google App Engine (GAE)

Google App Engine (GAE) は、Googleが提供するPlatform as a Service (PaaS) です。開発者はインフラストラクチャの管理を気にすることなく、スケーラブルなウェブアプリケーションやモバイルバックエンドを構築・デプロイできます。GAEは、アプリケーションのトラフィックに応じて自動的にリソースをスケーリングし、高い可用性を提供します。Go言語はGAEでサポートされているランタイムの一つです。

app.yaml

app.yaml は、Google App Engine アプリケーションの設定を定義するためのYAML形式のファイルです。このファイルには、アプリケーションのID、バージョン、ランタイム、URLルーティング、ハンドラ、環境変数など、GAE上でアプリケーションがどのように動作するかを制御する様々な設定が含まれます。GAEにアプリケーションをデプロイする際には、この app.yaml ファイルが必須となります。

application フィールド

app.yaml 内の application フィールドは、Google App Engine プロジェクトのIDを指定します。これは、GAE上でアプリケーションを一意に識別するためのものであり、通常はGoogle Cloud Platform (GCP) プロジェクトIDと一致します。このIDは、アプリケーションのURL(例: [version-id].[application-id].appspot.com)の一部としても使用されます。

version フィールド

app.yaml 内の version フィールドは、デプロイされるアプリケーションの特定のバージョンを識別します。GAEでは、同じアプリケーションIDに対して複数のバージョンをデプロイし、トラフィックを異なるバージョンにルーティングすることができます。これにより、新しいバージョンのテスト、A/Bテスト、または問題発生時のロールバックが容易になります。バージョンは任意の文字列で指定できますが、通常はビルド番号、日付、または意味のある名前が使用されます。

appcfg.py

appcfg.py は、Google App Engine SDKに含まれるコマンドラインツールです。このツールは、GAEアプリケーションのデプロイ、ログのダウンロード、データストアの管理など、様々な管理タスクを実行するために使用されます。アプリケーションをGAEにデプロイする際の主要なコマンドは appcfg.py update [アプリケーションディレクトリ] です。

-V オプション (for appcfg.py)

appcfg.py update コマンドの -V オプションは、デプロイするアプリケーションのバージョンを指定するために使用されます。例えば、-V test-build と指定すると、app.yaml で定義されたバージョンを上書きして、test-build という名前のバージョンとしてデプロイされます。これは、本番環境とは異なる特定のテストバージョンをデプロイしたい場合に特に有用です。

技術的詳細

このコミットにおける技術的な変更は、misc/dashboard/app/app.yaml ファイルの以下の3点に集約されます。

  1. アプリケーション名の変更:

    • 変更前: application: go-build
    • 変更後: application: golang-org この変更は、GAE上でアプリケーションを識別するプロジェクトIDを go-build から golang-org に変更することを意味します。これは、Go言語の公式プロジェクト群における命名規則の統一や、より適切なプロジェクトIDへの移行を示唆しています。これにより、アプリケーションのURLも golang-org.appspot.com のような形式に変わる可能性があります。
  2. バージョンの変更:

    • 変更前: version: 1
    • 変更後: version: build アプリケーションのバージョン識別子を 1 から build に変更しています。build というバージョン名は、継続的インテグレーション/デリバリー (CI/CD) パイプラインによって自動的にデプロイされるビルドバージョンであることを示唆している可能性があります。これにより、デプロイされたアプリケーションのバージョン管理がより明確になります。
  3. デプロイ手順に関するコメントの追加: application および version フィールドの前に、以下のコメントが追加されました。

    # Update with
    #	google_appengine/appcfg.py [-V test-build] update .
    #
    # Using -V test-build will run as test-build.golang.org.
    

    このコメントは、app.yaml ファイルを更新(つまり、アプリケーションをデプロイ)する際に使用すべき appcfg.py コマンドの具体的な例を提供しています。特に、-V test-build オプションを使用することで、test-build.golang.org というURLでアクセス可能なテストバージョンとしてデプロイできることを明記しています。これは、開発者や運用担当者がデプロイ作業を行う際のガイドラインとなり、デプロイミスを防ぎ、テスト環境へのデプロイを容易にします。

これらの変更は、Goダッシュボードアプリケーションのデプロイメント設定を最新化し、より正確で運用しやすいものにすることを目的としています。特に、アプリケーションIDとバージョンを実際の運用環境に合わせて調整し、デプロイ手順を明示することで、デプロイの信頼性と効率性を向上させています。

コアとなるコードの変更箇所

変更は misc/dashboard/app/app.yaml ファイルのみで行われています。

--- a/misc/dashboard/app/app.yaml
+++ b/misc/dashboard/app/app.yaml
@@ -1,5 +1,10 @@
-application: go-build
-version: 1
+# Update with
+#	google_appengine/appcfg.py [-V test-build] update .
+#
+# Using -V test-build will run as test-build.golang.org.
+
+application: golang-org
+version: build
 runtime: go
 api_version: 3
 

コアとなるコードの解説

上記の差分は、misc/dashboard/app/app.yaml ファイルに対する変更を示しています。

  • -application: go-build

    • この行は削除されたことを示します。以前のアプリケーションIDが go-build であったことを意味します。
  • -version: 1

    • この行も削除されたことを示します。以前のバージョンが 1 であったことを意味します。
  • +# Update with

  • +# google_appengine/appcfg.py [-V test-build] update .

  • +#

  • +# Using -V test-build will run as test-build.golang.org.

    • これらの行は新しく追加されたコメントです。app.yaml ファイルの先頭に、アプリケーションを更新(デプロイ)するための appcfg.py コマンドの例と、-V test-build オプションを使用した際の挙動(test-build.golang.org として実行されること)を説明しています。これは、この設定ファイルを使用する開発者や運用担当者への重要なガイダンスとなります。
  • +application: golang-org

    • この行は新しく追加されたことを示します。アプリケーションIDが golang-org に変更されました。これは、Goプロジェクトの公式なアプリケーションIDに合わせたものと推測されます。
  • +version: build

    • この行も新しく追加されたことを示します。アプリケーションのバージョンが build に変更されました。これは、自動ビルドプロセスによってデプロイされるバージョンであることを示す一般的な慣習です。

これらの変更により、app.yaml ファイルは、Goダッシュボードアプリケーションの現在のデプロイメント戦略と命名規則をより正確に反映するようになりました。

関連リンク

参考にした情報源リンク