• 2021.09.10
  • Vol.129
  • WEB
  • Vol.129
  • WEB
  • 2021.09.10

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

開発を終えて、いざ本番環境へデプロイ! ディレクターやエンジニアが何気なく使っている言葉ですが、デプロイってどういう意味なのでしょうか。 ビルドやリリースとの違いは、どういったところにあるのでしょうか。

FRONT END ENGINEER

Y.F.

プログラムが動く原理

プログラムが動く原理

言葉の説明の前に、プログラムやソフトウェアはそもそもどのようにして動いているのでしょうか。
プログラミング言語はヒトが読める文字、数字、記号を用いて記述しますが、コンピューターは電気信号のオン(1)とオフ(0)の切り替えによって膨大な計算をしています。
そのためプログラムを実行するにはコンピューターが読めるように変換をする必要があります。その変換の作業を「コンパイル(compile)」と呼び、コンパイルされた言語を「アセンブリ言語(assembly language)」と呼びます。

なお、JavaScriptやPythonなどの一部のプログラミング言語は、コンパイルなしでプログラムを実行することができます。こういった言語は翻訳を意味する「インタプリタ言語(interpretive language)」と呼ばれ、実行と同時にコンパイルを実施してコンピューターに命令をしています。

ビルド

さて、プログラムは記述をしてコンパイルすることでコンピューターに命令できるようになりますが、そのままでは実行できません。
実行するために必要な作業が「ビルド(build)」です。
ビルドをすることで、コンパイルされたファイルを連結したり、起動用のコードを追加して実行ファイルを作成することができます。

なお、コンパイルの工程を含めてビルドと呼ぶこともあります。

デプロイとリリース

ビルドをすることでファイルは実行できるようになりましたが、WebアプリケーションなどはWebサーバー上など、実際に実行する環境に配置し、実行できる状態にすることが必要となります。
この「実行ファイルを実行環境に配置し、利用可能な状態にする」ことを「デプロイ(deploy)」と呼びます。
もともと英単語のdeployは、「配置する」「展開する」という意味があります。
ソフトウェアのインストールや公開までを含んだ意味の広い言葉で、開発環境からステージング環境への反映も、ステージング環境から本番環境への反映もデプロイと呼ばれることがあります。

そして「リリース」は製品やサービスとして公開し、ユーザーが使える状態にする工程を指します。
デプロイの後、サービスの公開前には動作確認などをするので、デプロイはリリース作業の一部と言えます。

なお、通常Webアプリケーションをデプロイする際、サーバーを再起動してプログラムを反映させる必要があります。
サーバーを再起動させずにデプロイしたプログラムを反映できる機能を「ホットデプロイ」と呼びます。
また、GitHub ActionsCircleCIなどを用いて、自動で継続的なデプロイを行う仕組みもあります。
プロジェクトの仕様や規模に合わせて、効率的なデプロイ方法を選ぶとよいでしょう。

まとめ

プログラムの実行の仕組みから、ふだん何気なく使っている言葉の意味をあらためて確認してみました。
IT技術は日々進化し、複雑化していますが、基礎を振り返るのも大事ですね。

TAGS

RECENT POSTS

TRENDING

INDEX

画面を回転してください | 株式会社BOEL

画面を回転してください