「ビルド」「デプロイ」「リリース」についてまとめました


概要

出席した会議で「ブルーグリーン」「イミュータブル」っていう言葉を聞き、
何のこっちゃ分からんので調べてみました。

理解が曖昧だった「ビルド」とか「デプロイ」についても再認識できました。

以下、この記事の概要とか単語などを簡単に纏めているだけです。

用語

「ビルド」とは

ソースコードをコンパイル(PCが読める文字に翻訳)して
複数ファイルをくっつけて1つの実行ファイルにまとめること

「実行ファイル」とは

拡張子が「.exe」で、それ単体で動かせるプログラムファイル
中身がバイナリ(2進数で表現されたデータ)になっている

「リリース」とは

アプリケーションを公開することで、本番環境にリリースするとユーザが利用できる
「ローンチ」とほぼ同じ意味

「デプロイ」とは

リリースの一部作業
実行ファイルを動かしたい環境において、その実行ファイルを実行すること
基本的に、アプリの一時停止やサーバ再起動が発生する
そのような「ダウンタイム」が発生しないデプロイを「ホットデプロイ」という

「デプロイ」の種類

「デプロイ」にはいくつか種類があります
ここに私が会議で耳にした用語も入っていました

  1. ブルーグリーン
  2. イミュータブル
  3. シンボリック
  4. ローリング

1. ブルーグリーンデプロイメント

・「ブルー」と「グリーン」のに2環境を準備する
・現在の本番環境を「ブルー」で動かしたまま、新環境を「グリーン」にデプロイする
・デプロイ完了後、「グリーン」に切り替えることで、旧環境から新環境へアップデート

補足)
・新環境に問題があったら「ブルー」に切り替え
・簡単にロールバック(元の状態に戻すこと)ができる、ダウンタイムもほぼ発生しない
・問題なく切り替えが出来たら今までの「ブルー」が「グリーン」になる

2. イミュータブル

・「ブルーグリーン」を利用したもの
・違いは、新環境への切り替え後問題が無ければ、旧環境を破棄すること
・よって「ブルーグリーン」とは違って、旧環境の運用コストがかからない

3. シンボリック

・運用中のサーバ上の別の場所に新しいファイルを配置
・サービスが利用するシンボリックリンクを変更すると新しいアプリに切り替え

4. ローリング

・複数あるサーバに対し、順番にロードバランサーから切り離してデプロイする手法

まとめ

かなり簡単ではありますが
「ビルド」「デプロイ」「リリース」の要点をまとめました!

初めてのqiita投稿でもあったので
レイアウト的に読みにくいかもです...

qittaの書き方もマスターしつつ、沢山アウトプットして
一人前エンジニアになるよう頑張りますー