(57)【要約】【課題】サービス提供システムにおける、ソフトウェア新規リリースおよび更新の作業時間を短縮し、商用環境、ラボ環境の環境差分による構築作業ミスを防止し、商用環境でのオペレーションミスを防止する。【解決手段】サービス提供に用いる商用サーバを有する商用環境と、商用サーバ用ソフトウェアを対象とする試験を実施する検証用サーバを有するラボ環境と、を備え、ラボ環境において、検証用サーバを用いたソフトウェアの試験を行い、試験済みのソフトウェアにより構築される検証用サーバから、商用サーバへのリリース用の仮想サーバテンプレートを作成し、商用環境において、商用サーバへのリリース用の仮想サーバテンプレートを用いたイメージコピーにより、商用サーバを構築する【選択図】  図２
2016045675.tif 000002
【特許請求の範囲】
【請求項１】
サービス提供に用いる商用サーバを有する第一の環境と、前記商用サーバ用ソフトウェアを対象とする試験を実施する検証用サーバを有する第二の環境と、を備えるシステムにおいて、
前記第二の環境において、
前記検証用サーバを用いた前記ソフトウェアの試験を行い、
試験済みの前記ソフトウェアにより構築される前記検証用サーバから、前記商用サーバへのリリース用の仮想サーバテンプレートを作成し、
前記第一の環境において、前記商用サーバへのリリース用の前記仮想サーバテンプレートを用いたイメージコピーにより、前記商用サーバを構築する
ことを特徴とするソフトウェアのリリース方法。
【請求項２】
請求項１に記載のソフトウェアのリリース方法において、
前記第二の環境において、作成した前記商用サーバへのリリース用の前記仮想サーバテンプレートのコピーを作成し、リリース後バックアップとして保管する
ことを特徴とするソフトウェアのリリース方法。
【請求項３】
請求項２に記載のソフトウェアのリリース方法において、
前記第二の環境において、
保管している前記リリース後バックアップを用いて、前記第一の環境へリリースしたソフトウェアの更新に用いる前記検証用サーバを構築する
ことを特徴とするソフトウェアのリリース方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、ソフトウェアの新規リリースおよび更新の技術に関する。
【背景技術】
【０００２】
携帯電話や通信端末(以下、携帯電話や通信端末を携帯端末という)から利用されるWebサービスの閲覧は、社会インフラシステムとして欠かせないものになっており、Webサービスを提供するWebシステムには24時間365日サービス無停止の高可用性と高い信頼性が求められている。Webサービスを提供するWebシステムは、前段にロードバランサ、または振り分け装置を設置した複数台のサーバ装置(以下、サーバ装置をサーバという)により構成される。
【０００３】
Webシステムの可用性や信頼性を向上するために、サーバで実行するソフトウェアを更新する際にはロードバランサ、または振り分け装置にてソフトウェア更新対象サーバの振り分けを抑止した後に更新を実施する。同様にサーバ用ソフトウェアを新規リリースする際には、商用環境にサーバを構築した後、ロードバランサ、または振り分け装置へ接続を行った後に振り分けを実施する。
【０００４】
これらの方法は、システムの一部のサーバが障害や処理速度低下に陥った場合でも、システム全体の処理性能低下やサービスの部分停止を回避することを狙っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2009-217395号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の、携帯端末が接続するWebシステムのように、サービスを提供するシステムを有する環境(以下、サービス提供システムを有する環境を商用環境という)でのサーバ内部のソフトウェア更新は、更新前データのバックアップ取得を実施した後に更新内容を反映する。更新内容に問題がないことを確認した後にロードバランサ、または振り分け装置によるソフトウェア更新対象サーバの振り分け抑止解除を実施する。同様に、サーバ内部のソフトウェア新規リリースは、構築したサーバをロードバランサ、または振り分け装置へ接続し、振り分けを実施する。問題が発生した場合は構築したサーバへの振り分けを抑止し、問題がなければリリース完了とする。
【０００７】
また、ソフトウェア新規リリースおよび更新の内容に問題がないことを確認するために、商用環境に反映する前に、サービス提供システムを模擬した環境(以下、サービス提供システムを模擬した環境をラボ環境という)にてソフトウェア新規リリースまたは更新を実施する。ソフトウェア新規リリースまたは更新の後、試験用の携帯端末を用いるなどにより試験を実施し、問題がないことを確認する。
【０００８】
従来方法でのソフトウェア新規リリースまたは更新作業には以下の課題があった。
【０００９】
第一の課題は、作業ミスによってサービス影響が発生した際の社会全体に対する影響が大きいため、ソフトウェア新規リリースまたは更新作業はエンドユーザの利用頻度が低い時間帯しか実施できず、作業時間を短縮する必要があるということである。
【００１０】
第二の課題は、ラボ環境と商用環境とが同一ではない可能性があるため、ラボ環境で実施した試験では問題がないが、商用環境に投入した際に問題が発生する可能性があることである。
【００１１】
第三の課題は、作業担当者が商用環境で、ソフトウェア新規リリースまたは更新作業を実施する場合、商用環境のサーバに対する設定変更を行う際にオペレーションミスが発生する可能性があることである。
【００１２】
第一の課題はネットワーク負荷を分散する(特許文献１の段落0009、0010)方法により、ソフトウェア更新に際してネットワーク負荷の低減、ソフトウェア更新作業の時間短縮を実現できる。しかし、特許文献１の技術には更新前データのバックアップ取得時間を短縮することはできない、という課題がある。バックアップデータを取得するためのデータ移動にかかる時間はバックアップデータの量に依存するために、依然として、バックアップ取得作業によって作業時間が長期化するという課題がある。
【００１３】
以上の課題は、サーバが通信端末へ提供するあらゆる通信サービス、すなわち、サービス提供システムにおいても同様に存在する。
【課題を解決するための手段】
【００１４】
サービス提供システムに対するソフトウェアの新規リリースまたは更新（これらをソフトウェアのリリースと称する）において、作業時間を短縮すること、および、商用環境とラボ環境の環境差分による構築作業ミスを防ぐこと、および、商用作業時にソフトウェア更新作業時のオペレーションミスを防ぐこと、が可能な新規リリースおよび更新の方法を提供する。
【００１５】
本明細書では、ラボ環境において、ソフトウェア新規リリースまたは更新の検証用サーバを構築して、ソフトウェア新規リリースまたは更新の対象となるソフトウェアの試験を実施して、問題がなければ商用環境へのリリース用の仮想サーバテンプレートを作成し、作成した仮想サーバテンプレートを商用環境へイメージコピーすることによって、商用環境の商用サーバに対するソフトウェア新規リリースまたは更新を行う技術が開示される。
【００１６】
なお、本明細書での検証用サーバはソフトウェアの新規リリース時には新たに構築し、更新時にはリリース用の仮想サーバテンプレートのバックアップデータからのイメージコピーによって構築する。ソフトウェアの更新時は、ラボ環境において、リリース用の仮想サーバテンプレートのバックアップデータからのイメージコピーによって構築する検証用サーバを用いて、更新対象ソフトウェアの試験を実施する。
【００１７】
すなわち、本明細書で開示されるのは、サービス提供に用いる商用サーバを有する第一の環境（例えば、商用環境）と、前記商用サーバ用ソフトウェアを対象とする試験を実施する検証用サーバを有する第二の環境（たとえば、ラボ環境）と、を備えるシステムにおいて、第二の環境において、検証用サーバを用いたソフトウェアの試験を行い、試験済みのソフトウェアにより構築される検証用サーバから、商用サーバへのリリース用の仮想サーバテンプレートを作成し、第一の環境において、商用サーバへのリリース用の仮想サーバテンプレートを用いたイメージコピーにより、商用サーバを構築するソフトウェアのリリース方法である。
【００１８】
本明細書では、さらに、第二の環境において、作成した商用サーバへのリリース用の仮想サーバテンプレートのコピーを作成し、リリース後バックアップとして保管することが開示される。
【００１９】
さらに、上記リリース方法において、第二の環境において、保管しているリリース後バックアップを用いて、第一の環境へリリースしたソフトウェアの更新に用いる検証用サーバを構築することが開示される。
【００２０】
なお、ラボ環境に存在する商用リリース用の仮想サーバテンプレートを商用バックアップとして機能させるため、商用環境に存在するサーバ、及びラボ環境に存在する商用リリース用の仮想サーバテンプレート、仮想サーバテンプレートのバックアップは作業担当者のみが操作を行い、顧客は操作を実施しない方針とする。
【００２１】
開示によれば、商用環境に存在する商用サーバのソフトウェア更新作業に必要な更新対象ソフトウェアのバックアップをラボ環境で取得することにより更新前の商用環境でのバックアップ取得作業が不要となり、作業時間の短縮が可能となる。
【００２２】
また、商用環境とラボ環境へのリリース内容および更新内容を同一にできるので、商用環境とラボ環境の環境差分を無くすことが可能になる。
【００２３】
また、商用環境へのリリースをイメージコピーによって実施することにより、商用環境でのソフトウェア新規リリースまたは更新作業の作業担当者によるオペレーションミスを最小限とすることを可能とする。
【発明の効果】
【００２４】
開示により、高可用、高信頼な、ソフトウェアの新規リリースおよび更新が可能になる。
【図面の簡単な説明】
【００２５】
【図１】従来のソフトウェア新規リリースまたは更新の方法を例示する概略ブロック図である。
【図２】本実施例における、ソフトウェア新規リリースまたは更新の方法を例示する概略ブロック図である。
【図３】動的変更ファイルが存在するサーバに対するソフトウェアの更新方法を例示するブロック図である。
【図４】従来のソフトウェア更新方法の概略を例示する動作手順図である。
【図５】本実施例のソフトウェア更新方法の概略を例示する動作手順図である。
【図６】従来の検証用サーバ、及び商用サーバのハードウェア、及びソフトウェアの、概略構成図である。
【図７】本実施例の検証用サーバ、商用リリース用仮想サーバテンプレート、及び商用サーバのハードウェア、及びソフトウェアの、概略構成図である。
【発明を実施するための形態】
【００２６】
まず、図１を用いて、従来のソフトウェア新規リリースまたは更新の方法を説明する。
【００２７】
従来のソフトウェア新規リリースまたは更新は、ラボ環境105内に、ラボ環境でのソフトウェア新規リリースまたは更新の検証に利用する検証用物理サーバ201を備え、商用環境106内に、エンドユーザへのサービス提供に用いる商用サーバ202を備える。
【００２８】
従来、検証用物理サーバ201を用いて、ソフトウェア新規リリース時のサーバの新規構築を行い、ソフトウェア更新時の更新作業を行う。ソフトウェア新規リリースまたは更新の作業担当者は、検証用物理サーバ201にてソフトウェアを構築し、試験を実施する。
【００２９】
商用サーバ202は、エンドユーザからのサービストラフィックの処理を行うサーバであり、商用環境106内に構成される。従来、商用リリース時には従来の検証用物理サーバ201でソフトウェアを作成して試験を実施し、問題がないことを確認した後に、商用サーバ202で新規リリースまたは設定変更を行う。
【００３０】
記憶装置203は、商用サーバ202にてソフトウェア更新作業を行う前に、更新前のデータを保存するバックアップ用装置である。商用リリース作業で問題が発生した場合、商用サーバ202に記憶装置203に保存したバックアップデータを用いてリストアする。
【００３１】
次に、実施例について図面を参照して説明する。
【００３２】
図２は、ソフトウェア新規リリースまたは更新の方法を例示するブロック図である。
【００３３】
本実施例のシステムは、ラボ環境105内に、ソフトウェア新規リリースまたは更新の内容の検証に利用する検証用サーバ101と、検証用サーバ101で試験を実施して問題がないことを確認した後に作成する商用リリース用データ（商用リリース用と略記）102と、ソフトウェア新規リリースまたは更新が成功した後に作成するリリース後バックアップデータ（リリース後バックアップと略記）104を備え、商用環境106内に、ソフトウェア新規リリースおよび更新の対象となる商用サーバ103を備える。
【００３４】
ラボ環境105内の検証用サーバ101と商用環境106の商用サーバ103とは、例えば、コンピュータ上に、仮想化技術により実現される仮想サーバである。商用リリース用102、及びリリース後バックアップ104は、仮想化テンプレート技術によって作成される仮想サーバテンプレートである。仮想サーバテンプレートは電源の投入、及び仮想マシン一覧からの参照を許可しない仕様として構成する仮想サーバを示す。
【００３５】
ソフトウェア新規リリースまたは更新の作業担当者は、新規リリースの場合はラボ環境105に存在する仮想環境にて、検証用サーバ101を用いて新規作成を行い、ソフトウェアを構築し、試験を実施する。更新の場合はラボ環境105に存在するリリース後バックアップ104から検証用サーバ101へのイメージコピーによって構築と試験を実施する。
【００３６】
商用リリース用102は、検証用サーバ101でソフトウェアを作成して試験を実施し、問題がないことを確認した後に、試験済みのソフトウェアにより構築される検証用サーバ101をテンプレート化することによって作成される検証用サーバ101の複製である。テンプレート化により検証用サーバ101の、商用リリース時には商用リリース用102をイメージコピーによって、物理的に離れている商用環境106の商用サーバ103へリリースする。
【００３７】
リリース後バックアップ104は、商用環境106での商用サーバ103のソフトウェア新規リリース及び更新の作業が完了した後に作成する仮想サーバテンプレートである。商用環境106での作業が完了した場合は商用リリース103をリネームし、リリース後バックアップ104としてラボ環境105内にデータを保管する。
【００３８】
商用サーバ103は、エンドユーザからのサービストラフィックの処理を行う仮想サーバであり、商用環境106内に構成される。ソフトウェア新規リリースまたは更新の作業担当者は、検証用サーバ101を仮想サーバテンプレート化した商用リリース用102のイメージコピーにより、商用サーバ103をリリースまたは更新する。仮想サーバテンプレートのイメージコピーを利用するため、商用リリース102の確実な構築が可能になる。
【００３９】
万一、リリースまたは更新後に問題が発生した場合は、当該リリースまたは更新の一つ古い状態に対応するリリース後バックアップ104を用いてリリース前の状態に戻す。リリースが成功した場合は商用環境106での作業は完了とする。
【００４０】
図３は、商用サーバ103が稼働中にサーバ内部で作成されるファイル(以下、稼働中にサーバ内部で作成されるファイルを動的変更ファイルという)が存在するサーバに対してソフトウェアの更新作業を行う方法を示す。
【００４１】
仮想サーバには3つの仮想ハードディスクが存在し、各ハードディスクにはOS301、ソフトウェア302、定義ファイル303が存在する。
【００４２】
OS301は仮想サーバにインストールするOSデータを格納する領域である。仮想サーバに対してOSを新規インストールする際には、この仮想ハードディスク内にデータを格納する。
【００４３】
ソフトウェア302は、新規リリースまたは更新の作業対象のソフトウェアが格納されるハードディスクである。ソフトウェアの新規リリースではこの仮想ハードディスクにデータを格納する。
【００４４】
定義ファイル303は、商用リリース用102と商用サーバ103との間で異なる情報を格納する仮想ハードディスクである。商用リリース用102と商用サーバ103との間で異なる情報とは、商用サーバへ流入するトラフィックを処理した結果発生するログデータやIPアドレスやMACアドレスなどのサーバごとに固有の情報を示す。商用リリース用102と商用サーバ103との間で発生した差に係る情報は定義ファイル303に格納する。
【００４５】
ソフトウェアの更新作業では、ラボ環境105内の商用リリース用102内部のソフトウェア302を、商用環境106内に存在する商用サーバ103内部のソフトウェア302に置き換えることで更新完了とする。
【００４６】
図４は、従来のソフトウェア更新の実施例を示す動作手順図である。検証用物理サーバ201は、ソースコード修正401、コンパイル402、ロードモジュール実行403、を備え、商用サーバ202は、バックアップ404、ソースコピー405、コンパイル406、ロードモジュール実行407、バックアップ削除408を備える。
【００４７】
ソフトウェア更新作業は、検証用物理サーバ201にて更新作業を実施し、問題がなければ商用サーバ202にて更新作業を行う。検証用物理サーバ201にてソースコード修正401を行い、コンパイル402、ロードモジュール実行403を行った後、更新内容に問題がないか試験を行う。問題があれば再度ソースコード修正401を行い、再度コンパイル402、ロードモジュール実行403を実施する。更新内容に問題がなければ、ソフトウェア更新作業を商用サーバ202にて作業前にバックアップ404の取得を行い、検証用物理サーバ201にて行ったソースコード修正401の内容からソースコピー405を実施し、コンパイル402、ロードモジュール実行403を実施する。ロードモジュール実行403後、問題がなければ商用サーバ202からのバックアップ削除408を実施する。
【００４８】
図５は、本実施例のソフトウェア更新の実施例を示す動作手順図である。検証用サーバ101は、ソースコード修正501、コンパイル502、ロードモジュール実行503の各ステップを備え、は仮想サーバテンプレート化504の各ステップを備え、は仮想サーバイメージコピー503、仮想サーバ起動504、ロードモジュール実行505の各ステップを備える。
【００４９】
検証用サーバ101と商用リリース用102の処理はラボ環境105で実施され、商用サーバ103の処理は商用環境106で実施される。
【００５０】
本実施例で行うソフトウェア更新作業は、検証用サーバ101の更新作業（501〜503）を実施し、問題がなければ検証用サーバ101の仮想サーバテンプレート化504を行い商用リリース用102を作成する。作成した商用リリース用102を商用サーバ103にイメージコピー505を行うことでソフトウェア更新を実現する。
【００５１】
具体的には、検証用サーバ101にてソースコード修正501を行い、コンパイル502、ロードモジュール実行503を行った後、更新内容に問題がないか試験を行う。問題があれば再度ソースコード修正501を行い、再度コンパイル502、ロードモジュール実行503を実施する。更新内容に問題がなければ、作成した検証用サーバ101の仮想サーバテンプレート化504を実施し商用リリース用102を作成する。
【００５２】
さらに、商用サーバ103へ仮想サーバイメージコピー505を行い、仮想サーバ起動506を行う。起動した商用サーバ103にてロードモジュール実行507を行うことでソフトウェア更新を実現する。
【００５３】
検証用サーバ101の仮想サーバテンプレート化504の終了後に、ステップ508においてリリース後バックアップ104を作成する。リリース後バックアップ104を作成するステップ508は、商用サーバ103でのソフトウェア更新において問題が発生しないことを確認した後に実行するのが望ましい。
【００５４】
図６は従来の検証用物理サーバ201、及び商用サーバ202の、ハードウェア、及びソフトウェア構成図である。検証用物理サーバ201は、物理ハードディスク601、OS602、ソフトウェア603、ソフトウェア604、ソフトウェア開発環境605、ソースコード606、オブジェクトモジュール607を備え、商用サーバ202は、物理ハードディスク608、OS609、ソフトウェア610、ソフトウェア611、ソフトウェア開発環境612、ソースコード613、オブジェクトモジュール614を備える。
【００５５】
図７は本実施例の検証用サーバ101、及び、商用リリース用102、商用サーバ103のハードウェア、及びソフトウェア構成図である。
【００５６】
検証用サーバ101は仮想ハードディスク701、仮想ハードディスク702、ソフトウェア703、ソフトウェア開発環境704、ソースコード705、オブジェクトモジュール706を備え。商用リリース用102は、仮想ハードディスク707、仮想ハードディスク708、ソフトウェア709、ソフトウェア開発環境710、ソースコード711、オブジェクトモジュール712を備える。商用サーバ103は、仮想ハードディスク713、仮想ハードディスク714、ソフトウェア715、ソフトウェア開発環境716、ソースコード717、オブジェクトモジュール718を備える。
【００５７】
従来のハードウェア、及びソフトウェア構成では、商用サーバ202と検証用物理サーバ201はハードウェアが異なるため、検証用物理サーバ201で作成したソースコード606を商用サーバ202へ適用し、新規リリースまたは更新するには検証用物理サーバ201で作成したソースコード606を商用サーバ202の物理ハードディスク608内にある特定の箇所に配置する必要があった。特定の箇所に配置するため、人的要因によるミスの可能性があった。また、商用サーバ202でのソフトウェア更新作業を行う前に、データのバックアップを取得する必要があり、ソフトウェア更新作業に時間を要していた。
【００５８】
本実施例のハードウェア、及びソフトウェア構成では、検証用サーバ101で作成したソースコード705の試験が終了した後、検証用サーバ101を仮想サーバテンプレート化し、商用リリース用102として保存する。商用サーバ103への配置は、商用リリース用102のイメージコピーにより完了するので、ソフトウェア更新作業時の人的要因によるミスを軽減することができる。また、検証用サーバ101内で、商用サーバ202のバックアップを取得し、リリース後バックアップ104として保存しているため、商用環境106でバックアップを取得する必要がなく、作業時間の短縮に繋がる。
【００５９】
また、検証用サーバ101、商用リリース用102、商用サーバ103はOSデータ、ソフトウェアデータをそれぞれ仮想ハードディスク単位で作成しているため、ソフトウェア更新作業時にはソフトウェアデータの格納された仮想ハードディスクのみを移行するだけでよい。
【符号の説明】
【００６０】
101：検証用サーバ、102：商用リリース用仮想サーバテンプレート、103：商用仮想サーバ、104：リリース後バックアップ仮想サーバテンプレート、105：ラボ環境、106：商用環境、201：検証用物理サーバ、202：商用物理サーバ、203：記憶装置、301：OS領域格納用仮想ハードディスク、302：ソフトウェア領域格納用仮想ハードディスク、303：定義ファイル領域格納用仮想ハードディスク。
【図１】
2016045675.tif 000003
【図２】
2016045675.tif 000004
【図３】
2016045675.tif 000005
【図４】
2016045675.tif 000006
【図５】
2016045675.tif 000007
【図６】
2016045675.tif 000008
【図７】
2016045675.tif 000009