0. はじめに
この記事では、デプロイ・リリースの手順について説明しています。
1. デプロイとは
エンジニアなら誰でも必ず経験する作業の一つとして、「デプロイ」が挙げられます。
デプロイとは、ソフトウェア開発の工程のうち、開発した機能やサービスを利用できる状態にする作業です。
参考: https://www.weblio.jp/content/%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4
デプロイの一般的な流れは、以下の通りです。
ローカル => 開発環境 => 検証環境 => 本番環境
次に、デプロイとリリースの違いについて説明してきます。
1-1. デプロイとリリースの違い
デプロイ -> 目的のアプリケーションを特定の環境で「利用できる状態」にすること
リリース -> 目的のアプリケーションを一部もしくは全部の人から使えるようにすること
参考: https://zenn.dev/bun913/articles/fa6179472f8f82
2. デプロイの種類
主要なデプロイの種類を3つ紹介します。
また、それぞれの特徴を説明していきます。
2-1. ブルーグリーン
以前のバージョンから、ほぼ同一の新しいリリースに徐々に転送するアプリケーション・リリースモデル
- 両バージョンが稼働中で実施するもの
- 稼働停止時間なしに公開できる
- ただし、テストの工程が含まれていない
2-2. カナリア
新バージョンのアプリケーションをリリースする際、最初から全てのユーザーに公開するのではなく、まずは一部のユーザー(全体の1%など)に限定公開してテストを行い、所定の基準をクリアすることができれば、一般に向けて公開する手法
- 最大のメリットは、本番環境でのテストが実施できること
- 問題があればすぐに戻せる、稼働停止時間がない
- コストや時間、労力がかかるといったデメリットがある
2-3. ローリング
古いバージョンのアプリケーションをシステムを稼働させたまま新しいバージョンに順次置き換えることでデプロイを行う手法
- 高速に実行可能というメリット
- 一時的に、既存環境と新規環境が混在してしまうというデメリット
- うまくデプロイできなかった際に、元に戻す作業が複雑になる
3. まとめ
デプロイは主に3種類あり、速さを求めると安全性が損なわれるし、安全性を重視すると時間がかかるということがわかりました!
問題は必ずといっていい程起こるため、臆せずに挑戦してみること、そして、開発体制に適したデプロイ方法を選択することが大切ですね!
何か不明点や質問等ありましたら、お気軽にコメントしていただけますと幸いです!
参考