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


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

Vol.193
AI時代にこそ必要なビジョンメイキングーーAIが変える“働く意味“と“組織のあり方“









