開発の基本概念

リリース りりーす

デプロイバージョン管理ソフトウェア開発リリースノートCI/CDQA
リリースについて教えて

簡単に言うとこんな感じ!

料理でいう「いざ、提供!」のタイミングだよ。キッチンで作り上げた料理(ソフトウェア)をお客さんのテーブル(本番環境・ユーザー)に届ける瞬間のことなんだ。「バージョン1.0を世の中に出す」みたいに使うよ!


リリースとは

リリース(Release) とは、開発が完了したソフトウェアやアプリケーション、システムの新バージョンを、ユーザーが実際に使える状態にして提供することを指します。単に「完成した」だけでなく、テストを通過し、品質が確認され、正式に公開・配布できる状態になったことを意味します。

ビジネスの現場では「来月リリース予定です」「今回のリリースで〇〇機能が追加されます」といった形でよく使われます。プロジェクトの節目となる重要なイベントであり、スケジュール管理・品質管理・関係者への告知 など多くの調整が必要になります。

リリースは一度きりではなく、機能追加・バグ修正・セキュリティ対応などを目的として繰り返し行われます。そのため、現代のシステム開発では リリースを安全かつ迅速に繰り返せる仕組み(CI/CD) を整えることが重要な課題となっています。


リリースの種類と特徴

種類別名・略称内容主な目的
メジャーリリースv1.0 → v2.0大規模な機能追加・仕様変更新機能の提供・UI刷新など
マイナーリリースv1.0 → v1.1中規模の機能追加・改善機能拡張・使い勝手向上
パッチリリースv1.1.0 → v1.1.1バグ修正・軽微な修正不具合解消・安定化
ホットフィックス緊急パッチ重大な障害への緊急対応システム停止・セキュリティ穴の即時修正
ベータリリースβ版一般公開前の試験提供ユーザーからのフィードバック収集

バージョン番号の読み方(セマンティックバージョニング)

バージョン番号には意味があります。1.4.2 という番号は次のように読みます。

  1   .   4   .   2
  ↑       ↑       ↑
メジャー  マイナー  パッチ

「メジャー.マイナー.パッチ」

これを セマンティックバージョニング(SemVer) と呼び、変更の大きさをバージョン番号で表す世界標準のルールです。発注側も「バージョンが 2.x.x → 3.x.x になるならメジャーリリース=大きな変更あり」と読めると便利です。

リリースの流れ(典型的なステップ)

開発完了

コードレビュー(他のエンジニアによるチェック)

テスト環境での動作確認(QA)

ステージング環境で最終確認(本番に近い環境)

リリース判定会議(Go / No-Go)

本番環境へのデプロイ(実際の反映作業)

リリース完了・監視

歴史と背景

  • 1960〜70年代: ソフトウェアはCD-ROMやフロッピーディスクなど物理メディアで配布。リリース=物理的な出荷作業だった
  • 1990年代: インターネット普及でダウンロード配布が始まる。Windowsなどのメジャーリリースが社会的イベントに
  • 2000年代初頭: Webサービスの台頭。サーバー側を更新すれば即ユーザーに届く形が一般化。「Webのリリース」という概念が定着
  • 2000年代後半: アジャイル開発の普及により、数週間単位の スプリントリリース が主流になり始める
  • 2010年代: CI/CD(継続的インテグレーション/継続的デリバリー) が広まり、1日に何度もリリースする企業が登場
  • 現在: クラウドネイティブマイクロサービスの普及で、システム全体ではなく 機能単位のリリース が当たり前になっている

リリースとデプロイ——似てるけど違う?

「リリース」と デプロイ(Deploy) は混同されがちですが、厳密には異なります。

リリース(Release) 「世に出す」という意思決定・判断 ビジネス的判断・QA承認を含む リリースノートの作成・告知も含む 「いつ・何を・誰に」の管理 デプロイ(Deploy) 「システムに反映する」技術的作業 サーバーへのファイル転送・更新 データベースの変更適用 自動化ツールが実行する作業 含む リリースの中にデプロイが含まれる関係

つまり、デプロイはリリースの一部(技術的な反映作業) です。「デプロイは完了したけどリリースは来週」という場合、技術的な準備はできているが、告知・公開はまだ、という意味になります。発注者側は「リリース」という言葉で話し、エンジニアが「デプロイ」と言ったとき、同じ意味かどうか確認する習慣を持つと安心です。


リリースにまつわるよくある実務のポイント

場面注意すること
リリース日程の調整業務繁忙期・決算期・大型連休直前は避けるのが無難。障害が出たときに対応できる人員がいる日を選ぶ
リリースノートの確認「何が変わったか」を記した文書。変更点・影響範囲・対応バージョンを必ず確認する
ロールバック計画リリース後に問題が出たとき、前のバージョンに戻せる(ロールバックできる)かを事前に確認する
段階的リリース全ユーザーに一度に提供せず、一部のユーザーから順に展開する手法(カナリアリリース)。リスクを分散できる
リリース判定(Go/No-Go)テスト結果・品質基準を満たしているか関係者で確認する会議。「Go」なら予定通りリリース

関連する規格・RFC

リリース管理そのものに対する標準IETFプロトコルは存在しませんが、ソフトウェアバージョン管理に関する業界標準として以下が参照されます。

規格・仕様内容
セマンティックバージョニング 2.0.0バージョン番号の付け方のルール(MAJOR.MINOR.PATCH形式)。事実上の業界標準

関連用語

  • デプロイ — ソフトウェアをサーバーや環境に配置・反映する技術的作業
  • CI/CD — テスト〜デプロイを自動化し、リリースを素早く安全に繰り返す仕組み
  • バージョン管理 — ソースコードの変更履歴を管理し、過去のバージョンに戻せるようにする仕組み
  • ステージング環境 — 本番に近い環境でリリース前の最終確認を行う検証用環境
  • ロールバック — 問題が発生したとき、前の安定したバージョンに戻す操作
  • アジャイル開発 — 短い期間で開発とリリースを繰り返す開発手法
  • リリースノート — リリース時に「何が変わったか」をまとめた公式の変更記録文書
  • カナリアリリース — 一部のユーザーだけに先行提供してリスクを確認する段階的リリース手法