ソフトウェアの展開

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

ソフトウェアの展開は、ソフトウェアシステムを使用できるようにするすべてのアクティビティです。[1]

一般的な展開プロセスは、相互に関連するいくつかのアクティビティで構成され、それらの間で遷移が発生する可能性があります。これらのアクティビティは、プロデューサー側またはコンシューマー側、あるいはその両方で発生する可能性があります。すべてのソフトウェアシステムは固有であるため、各アクティビティ内の正確なプロセスまたは手順を定義することはほとんどできません。したがって、「展開」は、特定の要件または特性に従ってカスタマイズする必要がある一般的なプロセスとして解釈する必要があります。[2]

歴史

コンピューターが非常に大きく、高価で、かさばる場合(メインフレームミニコンピューター)、ソフトウェアはメーカーによってハードウェアと一緒にバンドルされることがよくありました。ビジネスソフトウェアを既存のコンピューターにインストールする必要がある場合は、システムアーキテクトまたはコンサルタントによる費用と時間のかかる訪問が必要になる場合があります今日のエンタープライズソフトウェアの複雑なオンプレミスインストールの場合、これが当てはまる場合があります。

しかし、 1980年代のマイクロコンピュータの新時代に向けたマスマーケットソフトウェアの開発に伴い、新しい形式のソフトウェア配布が行われました。 最初にカートリッジ、次にコンパクトカセット、次にフロッピーディスク、次に(1990年代以降)光メディアインターネットフラッシュドライブこれは、ソフトウェアの展開を顧客に任せることができることを意味しました。ただし、時間の経過とともに、顧客によるソフトウェアの構成が重要であり、これには理想的にはユーザーフレンドリーなインターフェイスが必要であることがますます認識されています(たとえば、顧客がWindowsでレジストリエントリを編集する必要はありません)。

インターネット以前のソフトウェア展開では、展開(およびそれらの密接に関連するいとこである新しいソフトウェアリリース)は、必然的に費用がかかり、頻度が低く、かさばる問題でした。したがって、インターネットの普及により、エンドツーエンドのアジャイルソフトウェア開発が可能になったと言えます。確かに、サービスとしてのクラウドコンピューティングソフトウェアの出現は、ソフトウェアがインターネットを介して数分で多数の顧客に展開できることを意味しました。これは、通常、展開スケジュールが顧客ではなくソフトウェアサプライヤによって決定されることも意味します。このような柔軟性により、特にリスクの少ないWebアプリケーションの場合、実行可能なオプションとして継続的デリバリーが台頭しました。

展開アクティビティ

リリース
リリースアクティビティは、完了した開発プロセスの後に続き、展開プロセスではなく開発プロセスの一部として分類される場合があります。これには、システムを組み立てて、本番環境で実行されるコンピューターシステムに転送するためのシステムを準備するためのすべての操作が含まれます。したがって、システムが許容可能なパフォーマンスで動作するために必要なリソースを決定し、展開プロセスの後続のアクティビティを計画および/または文書化する必要がある場合があります。
インストールとアクティベーション
単純なシステムの場合、インストールには、ソフトウェアを(手動または自動で)実行するための何らかの形式のコマンド、ショートカット、スクリプト、またはサービスを確立することが含まれます。複雑なシステムの場合、システムの構成が必要になる場合があります。エンドユーザーにその使用目的について質問したり、構成方法を直接尋ねたり、必要なすべてのサブシステムを使用できるようにしたりします。アクティベーションとは、ソフトウェアの実行可能コンポーネントを初めて起動するアクティビティです(デジタル著作権管理の機能であるソフトウェアライセンスに関するアクティベーションという用語の一般的な使用法と混同しないでください)。システム。)
サーバーへの大規模なソフトウェア展開では、ユーザーが使用するソフトウェアのメインコピーである「本番環境」が本番環境の本番サーバーにインストールされる場合があります。展開されたソフトウェアの他のバージョンは、テスト環境開発環境、および障害復旧環境にインストールされる場合があります。
複雑な継続的デリバリー環境やサービスシステムとしてのソフトウェアでは、システムの異なる構成バージョンが、異なる内部または外部の顧客の本番環境に同時に存在する場合もあります(これはマルチテナントアーキテクチャとして知られています)。さまざまな顧客グループに並行して段階的に展開され、1つ以上の並行展開をキャンセルする可能性があります。たとえば、Twitterは、新機能とユーザーインターフェイスのA / Bテストに後者のアプローチを使用することが知られています変更します。「非表示のライブ」グループは、青緑色の展開を目的として、本番ロードバランサーにまだ接続されていないサーバーで構成される本番環境内に作成することもできます
非アクティブ化
非アクティブ化はアクティブ化の逆であり、システムのすでに実行されているコンポーネントをシャットダウンすることを意味します。多くの場合、他の展開アクティビティを実行するには非アクティブ化が必要です。たとえば、更新を実行する前にソフトウェアシステムを非アクティブ化する必要がある場合があります。使用頻度の低いシステムや廃止されたシステムをサービスから削除する方法は、多くの場合、アプリケーションの廃止またはアプリケーションの廃止と呼ばれます。
アンインストール
アンインストールはインストールの逆です。不要になったシステムの削除です。また、アンインストールされたシステムの依存関係を削除するために、他のソフトウェアシステムの再構成が必要になる場合もあります
アップデート
更新プロセスにより、ソフトウェアシステムの全部または一部の以前のバージョンが新しいリリースに置き換えられます。これは通常、非アクティブ化とそれに続くインストールで構成されます。Linuxなどの一部のシステムでは、システムのパッケージマネージャーを使用している場合、通常、古いバージョンのソフトウェアアプリケーションもプロセスの自動部分としてアンインストールされます。(これは、ソフトウェアパッケージがこの制限を回避するように特別に設計されていない限り、Linuxパッケージマネージャーは通常、ソフトウェアアプリケーションの複数のバージョンの同時インストールをサポートしていないためです。)
組み込みの更新
アップデートをインストールするためのメカニズムは、一部のソフトウェアシステムに組み込まれています(または、LinuxAndroidiOSなどの一部のオペレーティングシステムの場合は、オペレーティングシステム自体に組み込まれています)。これらの更新プロセスの自動化は、完全自動からユーザーが開始および制御するものまで多岐にわたります。Norton Internet Securityは、ウイルス対策定義とシステムの他のコンポーネントの両方の更新を取得してインストールするための半自動方式を備えたシステムの例です。他のソフトウェア製品は、更新が利用可能になる時期を決定するためのクエリメカニズムを提供します。
バージョン追跡
バージョン追跡システムは、ユーザーがソフトウェアシステムの更新を見つけてインストールするのに役立ちます。例:ソフトウェアカタログには、ローカルシステムにインストールされている各ソフトウェアパッケージのバージョンやその他の情報が格納されています。ボタンを1回クリックすると、ブラウザウィンドウが起動し、アプリケーションのアップグレードWebページが表示されます。これには、ログインが必要なサイトのユーザー名とパスワードの自動入力が含まれます。Linux、Android、iOSでは、バージョントラッキングの標準化されたプロセス(公式にサポートされている方法でインストールされたソフトウェアパッケージの場合)がオペレーティングシステムに組み込まれているため、このプロセスはさらに簡単です。したがって、ログイン、ダウンロード、実行の手順を個別に行う必要はありません。プロセスは完全に自動化されるように構成できます。一部のサードパーティソフトウェアは、特定のWindowsソフトウェアパッケージの自動バージョン追跡とアップグレードもサポートしています。

展開の役割

ソフトウェア製品の複雑さと多様性により、展開プロセスを調整およびエンジニアリングするための特殊な役割の出現が促進されています。デスクトップシステムの場合、エンドユーザーは、ソフトウェアパッケージを自分のマシンにインストールするときに、「ソフトウェアデプロイヤー」になることもよくあります。エンタープライズソフトウェアの展開にはさらに多くの役割が含まれ、これらの役割は通常、アプリケーションがテスト(実稼働前)環境から実稼働環境に進むにつれて変化します。エンタープライズアプリケーションのソフトウェア展開に関係する一般的な役割には、次のものがあります。

も参照してください

参考文献

  1. ^ Roger S. Pressmanソフトウェアエンジニアリング:実践者のアプローチ(第8版)
  2. ^ Rees-Carter、Stephen(2018年7月13日)。「Ubuntu18.04にAnsibleをインストールして設定する方法」DigitalOcean2019年6月9日にオリジナルからアーカイブされました2019年6月8日取得構成管理システムは、管理者や運用チームが多数のサーバーを簡単に制御できるように設計されています。これらを使用すると、1つの中央の場所から自動化された方法で多くの異なるシステムを制御できます。

外部リンク