한국   대만   중국   일본 
ソフトウェアデプロイメント - Wikipedia コンテンツにスキップ

ソフトウェアデプロイメント

出典: フリ?百科事典『ウィキペディア(Wikipedia)』

ソフトウェアデプロイメント : Software deployment )または?に デプロイ とは、 ソフトウェア システムを利用可能にする活動全般を指す用語である。デプロイメント(Deployment)とは「展開、配備、配置」などの意。

一般にデプロイメントは相互に?連したいくつかの活動から構成される。それらの活動は、 ソフトウェア開?者 の側で行われるものもあれば、顧客側で行われるものも、あるいは?者が共同で行うものもある。ソフトウェアは非常に??なものがあり、ソフトウェアデプロイメントの プロセス プロシ?ジャ を正確に定義することは難しい。?って、ソフトウェアデプロイメントは、個?の事情や要求に?じてカスタマイズされる「汎用プロセス」と理解されるべきである。ソフトウェアデプロイメントに含まれる個?の活動については以下で解?する。

また、 アプリケ?ションサ?バ において、各種アプリケ?ションモジュ?ルを?際に使用される環境に配備することを アプリケ?ションデプロイメント と呼ぶ。

自動化されたデプロイメント手法を用いた(??に比べて)素早く高頻度すなわち ??的 なソフトウェア デプロイメント ??的デプロイ という。

デプロイメントの中で行われる作業 [ 編集 ]

リリ?ス
リリ?ス活動は、 ソフトウェア開?工程 の完了後に行われる。開?されたものをまとめ、顧客のサイトに送ることができる形態にする。市販される製品の場合、注文を受けて出荷されるもの(出荷?が少ない高?な製品)と見?み生産されるもの(出荷?が多い安?な製品)があり、リリ?スに際しての手?きも異なる。
インスト?ル
インスト?ル は顧客のサイトで行われる最初の作業である。通常、インスト?ラと呼ばれる?用のツ?ルを用いて行われる。作業は、ファイル群のタ?ゲットシステム上への?送と設定に分けられる。
アクティベ?ト
通常、そのソフトウェアの ?行ファイル を起動することを意味する。プロプライエタリなソフトウェアでは、 ライセンス の確認をすることで?行ファイルを起動可能にする作業をアクティベ?トまたはアクティベ?ションと呼ぶ。例えば、メ?カ?のサイトに シリアル番? などを送信することで何らかのキ?コ?ドを入手し、それを使ってアクティベ?トするなどの方式がある。
ディアクティベ?ト
アクティベ?トの逆、すなわち?行していたシステムをシャットダウンすることを意味する。例えば、同じソフトウェアの新しいバ?ジョンに更新する場合、一旦?行をやめないと更新できないことが多い。
アップデ?ト(更新)
?存のソフトウェアの新しいバ?ジョンを導入したり、パッチを適用したりする活動。
アンインスト?ル
インスト?ルの逆の活動。必要のなくなったソフトウェアをシステム上から削除する。
サポ?ト停止
古くなったソフトウェア製品は、ある時点で開?側のサポ?トが停止される。これはその製品の ライフサイクル の終了を意味する。

アップデ?ト [ 編集 ]

?にデプロイされたソフトウェアを、類似する構成のソフトウェアへ更新する活動をアップデ?トという。例えばソフトウェアを構成するデ?タベ?スのバ?ジョンアップはアップデ?トにあたる。

アップデ?トには??な手法がある。なぜならアップデ?トはデプロイ後のソフトウェアが提供する サ?ビス へ??な影響を?えるからである。影響の例を以下に?げる。

  • 一時的なサ?ビス停止: ソフトウェア更新に伴うデプロイ?みソフトウェアの一時停止
  • サ?ビスレベル低下: バグが混入したアップデ?ト版ソフトウェアのデプロイ

例えばアップデ?トが重要な?存サ?ビスに意?せず影響してしまった(デグレ?ドした)場合、アップデ?トを取り消す ロ?ルバック を行う必要がある。ロ?ルバックを考慮しないアップデ?ト手法を用いた場合、デ?タ形式の不整合や新?バ?ジョンの?列などによってロ?ルバックが困難になる可能性がある。

これらの問題を解決するための??なソフトウェアデプロイメント手法が存在する。

  • ロ?リングアップデ?ト /Rolling updates: 新バ?ジョンデプロイ → 新?バ?ジョン?行動作 → ?バ?ジョン停止による無停止アップデ?ト [1]
    • カナリアリリ?ス /Canary release: 本番環境での可用性確認を主目的として一部のユ?ザ?(カナリア)のみへアップデ?ト版を提供し順次アップデ?トをおこなう手法 [2] 。ロ?リングアップデ?トと同?の構成になる
  • Blue-Greenデプロイメント : 稼?中のソフトウェア(Blue)と同等のプロダクション構成を持つアップデ?ト版(Green)を準備してテストを行い、アップデ?ト時にDNSル?ティング等を用いてBlueからGreenへ全てのリクエストを切り替える手法 [3]

?存ソフトウェアに手を加えて(mutableな)アップデ?トをおこなった場合、問題?生時に元の構成を再現することが難しくなる。上記の手法はコ?ドによるインフラ構成( Infrastructure as Code )やコピ?インスタンスへのmutableアップデ?トと保存による、 Immutable Infrastructure が基盤となっている。バ?ジョン管理されインスタンス化可能なソフトウェアの存在が、新?バ?ジョンの同時稼?やBlue/Green 2系統のリリ?スを可能にしている。

コンテナ化されたアプリケ?ション でサ?ビスを構成する場合、 Kubernetes 等のコンテナ オ?ケストレ?ション システムを用いたアップデ?トが可能である。例えばk8sはロ?リングアップデ?トに??している [4]

脚注 [ 編集 ]

  1. ^ Rolling updates allow Deployments' update to take place with zero downtime by incrementally updating Pods instances with new ones. Kubernetes - Tutorial - Performing a Rolling Update
  2. ^ Canary release is a technique to reduce the risk of introducing a new software version in production by slowly rolling out the change to a small subset of users before rolling it out to the entire infrastructure and making it available to everybody. martinFowler.com - CanaryRelease
  3. ^ The blue-green deployment approach does this by ensuring you have two production environments, as identical as possible. At any time one of them, let's say blue for the example, is live. As you prepare a new release of your software you do your final stage of testing in the green environment. Once the software is working in the green environment, you switch the router so that all incoming requests go to the green environment - the blue one is now idle. martinFowler.com - BlueGreenDeployment
  4. ^ Perform a rolling update using kubectl. Kubernetes - Tutorial - Performing a Rolling Update

?考文? [ 編集 ]

?連項目 [ 編集 ]

外部リンク [ 編集 ]