ビルド、デプロイ、リリースの違い


プログラムが動く原理
言葉の説明の前に、プログラムやソフトウェアはそもそもどのようにして動いているのでしょうか。
プログラミング言語はヒトが読める文字、数字、記号を用いて記述しますが、コンピューターは電気信号のオン(1)とオフ(0)の切り替えによって膨大な計算をしています。
そのためプログラムを実行するにはコンピューターが読めるように変換をする必要があります。その変換の作業を「コンパイル(compile)」と呼び、コンパイルされた言語を「アセンブリ言語(assembly language)」と呼びます。
なお、JavaScriptやPythonなどの一部のプログラミング言語は、コンパイルなしでプログラムを実行することができます。こういった言語は翻訳を意味する「インタプリタ言語(interpretive language)」と呼ばれ、実行と同時にコンパイルを実施してコンピューターに命令をしています。
ビルド
さて、プログラムは記述をしてコンパイルすることでコンピューターに命令できるようになりますが、そのままでは実行できません。
実行するために必要な作業が「ビルド(build)」です。
ビルドをすることで、コンパイルされたファイルを連結したり、起動用のコードを追加して実行ファイルを作成することができます。
なお、コンパイルの工程を含めてビルドと呼ぶこともあります。
デプロイとリリース
ビルドをすることでファイルは実行できるようになりましたが、WebアプリケーションなどはWebサーバー上など、実際に実行する環境に配置し、実行できる状態にすることが必要となります。
この「実行ファイルを実行環境に配置し、利用可能な状態にする」ことを「デプロイ(deploy)」と呼びます。
もともと英単語のdeployは、「配置する」「展開する」という意味があります。
ソフトウェアのインストールや公開までを含んだ意味の広い言葉で、開発環境からステージング環境への反映も、ステージング環境から本番環境への反映もデプロイと呼ばれることがあります。
そして「リリース」は製品やサービスとして公開し、ユーザーが使える状態にする工程を指します。
デプロイの後、サービスの公開前には動作確認などをするので、デプロイはリリース作業の一部と言えます。
なお、通常Webアプリケーションをデプロイする際、サーバーを再起動してプログラムを反映させる必要があります。
サーバーを再起動させずにデプロイしたプログラムを反映できる機能を「ホットデプロイ」と呼びます。
また、GitHub ActionsやCircleCIなどを用いて、自動で継続的なデプロイを行う仕組みもあります。
プロジェクトの仕様や規模に合わせて、効率的なデプロイ方法を選ぶとよいでしょう。
まとめ
プログラムの実行の仕組みから、ふだん何気なく使っている言葉の意味をあらためて確認してみました。
IT技術は日々進化し、複雑化していますが、基礎を振り返るのも大事ですね。
RECENT POSTS
Vol.203
デザイン経営とは何か|組織の判断軸が、企業価値をつくる
Vol.202
採用はなぜ機能しなくなったのか|不確実な時代の組織と意思決定の再設計
Vol.201
ブランディング会社の選び方|失敗しない5つの判断軸
Vol.200
デザイン経営とは|中小企業・スタートアップの実践ステップ
Vol.199
リブランディングで競争力を取り戻す|中小企業のブランドマネジメント実践ガイド
Vol.198
親子関係から地域コミュニティへ──多様性を育み、関係をデザインする教育の未来









