JP2017139653A - 管理サーバーシステム、システム、システムの方法およびプログラム - Google Patents

管理サーバーシステム、システム、システムの方法およびプログラム Download PDF

Info

Publication number
JP2017139653A
JP2017139653A JP2016020050A JP2016020050A JP2017139653A JP 2017139653 A JP2017139653 A JP 2017139653A JP 2016020050 A JP2016020050 A JP 2016020050A JP 2016020050 A JP2016020050 A JP 2016020050A JP 2017139653 A JP2017139653 A JP 2017139653A
Authority
JP
Japan
Prior art keywords
address
request
server
host name
dns
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016020050A
Other languages
English (en)
Other versions
JP6643123B2 (ja
Inventor
三原 誠
Makoto Mihara
誠 三原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016020050A priority Critical patent/JP6643123B2/ja
Priority to CN201710048475.1A priority patent/CN107040580B/zh
Priority to US15/421,893 priority patent/US10348673B2/en
Publication of JP2017139653A publication Critical patent/JP2017139653A/ja
Application granted granted Critical
Publication of JP6643123B2 publication Critical patent/JP6643123B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 サービスの無停止バージョンアップを行うためのBlue−Green Deploymentにおいて、DNSの切り替え中のタイミングでは新旧どちらのサーバーに接続されるか不定の時間がある。そのため、新バージョンのHTMLから旧バージョンのAPI呼び出しが発生してしまいアプリケーションが正しく動作しない。【解決手段】 API用のホスト名とHTML用のホスト名を別々に定義しAPI用のDNS切り替えを完了させてからHTML用のDNS切り替えるという時間差での切り替えを行うことで、新バージョンのHTMLが旧バージョンのAPIを呼び出さないようにする。【選択図】 図6

Description

本発明は、Webアプリケーションサービスを備えたサーバーを管理する管理サーバーシステム、システム、システムの方法およびプログラムに関する。
近年インターネットのサーバー上から提供されるサービスの普及が進んでいる。サービスは世界各国のユーザーから利用される運用形態も考えられ、特定の期間の間にシステムを停止しサービスのメンテナンスを行うといったことが難しい。そのため、サービスを停止することなくメンテナンス作業をするよう要求が高まっている。従来技術として、特許文献1および2に開示されているようにクライアントからのリクエストをどのサーバーへ振り分けるかを制御することでサーバーのメンテナンスや切り替えをサービス無停止で実現している技術がある。
また、Webアプリケーションの技術も進み、従来型のサーバーにてHTML形式の画面生成を行いクライアントに送信していた構成から、RESTful MVCやクライアントサイドMVCといった技術に変化してきている。これら技術では、サーバーはREST I/F経由で処理を実行しクライアントにデータのみを返し、画面生成はクライアント側で実行するといった構成になる。
特許第4083049号 特開2004−295605号
サービスを停止することなくシステムを切り替えるための手法の1つとして、Blue−Green Deploymentという方法が考えられる。これは現在稼働しているシステムを稼働させた状態で、新規にシステムをもう一つ構築し、そのシステムにクライアントとの接続を切り替えるといった手法である。このBlue−Green Deploymentによるシステムの切り替えは、DNSに登録されたホスト名のIPアドレス設定を変更することでシステムの切り替えが可能になる。
ただし、この際に課題が発生する。名前解決に使用するDNSサーバーが複数ある場合、DNS間でのIPアドレスの設定同期には時差があるため、名前解決のリクエスト元が新システムのIPアドレスと旧システムのIPアドレスの両方を取得できてしまう状況が発生する。これにより、DNSに登録したホスト名のIPアドレスを切り替えたとしても、即座に全てのアクセスが新システムに対して行われるわけではなく、新旧どちらのシステムに対して行われるかが不透明な状態となる。
本発明の目的は上記課題を解決するために、新システムが提供するHTML画面を介し、旧システムに対するAPIの呼び出しが発生しないようにするシステムを提供することを目的の1つとする。
本発明を実施するための一実施形態に係る管理サーバーシステムは、名前解決のリクエストとともに受信したホスト名に対応するIPアドレスを返却するDNSサーバーと、前記DNSサーバーから返却されたIPアドレスに対応するシステムに対しクライアントからのHTMLリクエストおよびAPIリクエストの処理依頼を送信する振り分けサーバーと、通信することが可能な管理サーバーシステムであって、システム環境を構築するためのプログラムを情報処理装置に配備しシステムを構築する構築手段と、前記DNSサーバーに登録されたホスト名であるHTMLリクエストに対応したホスト名およびAPIリクエストに対応したホスト名の夫々のホスト名に対し、前記構築手段により構築されたシステムのIPアドレスを設定する設定手段と、を有し、前記設定手段は、前記構築手段により新たなシステムが構築された後、前記APIリクエストに対応したホスト名に設定されている現在のIPアドレスを前記新たなシステムのIPアドレスに書き換え始め、前記振り分けサーバーの名前解決のリクエストに対応する全ての前記DNSサーバーの書き換えが完了したことを確認したことに応じて、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とする。
本発明により、新システムが提供するHTML画面を介し、旧システムに対するAPIの呼び出しが発生しないようにすることが可能となる。
システム構成図 各装置のハードウェア構成図 各装置のソフトウェアモジュール構成図 クライアント端末からアプリケーションサーバーの接続の模式図 クライアント端末がアプリケーションを実行する際の流れの図 バージョンアップ処理のフロー図 バージョンアップ処理中のそれぞれのシステム構成図 バージョンアップ処理のフロー図 バージョンアップ処理のフロー図
以下、本発明を実施するための形態について図面を用いて説明する。
本実施例においては、インターネット上の各サーバーにアプリケーションが配備されているものとする。アプリケーションはクライアント端末と連携し、様々な機能を提供する。このような機能を提供するアプリケーションをサービスと称し、機能をクライアント端末に提供することをサービスの提供と称する。
本実施例に係るシステム構成を図1に示す。本発明のバージョンアップシステムは管理サーバー140、DNS180、振り分けサーバー130から成る。サービスはアプリケーションサーバー110/120により提供する。なお、図では夫々のサーバーが1台の情報処理装置で構成されるように描かれているが、各サーバーを構成する情報処理装置の台数を限定しているわけではないことに留意されたい。サービスはクライアント端末150より利用される。
100は、Wide Area Network(WAN100)であり、本実施例ではWorld Wide Web(WWW)システムが構築されている。101は各構成要素を接続するLocal Area Network(LAN101)である。102もLAN101と同様Local Area Network(LAN102)であるが、WAN100経由でのアクセスができない内部ネットワークの場合が多い。なお、LAN102もLAN101と同様、WAN100に直接接続されアクセスできるような構成でも良い。
アプリケーションサーバー110/120は1つまたは複数台の情報処理装置から成り、図1に示すような構成のネットワーク上に実現される。アプリケーションサーバー110が現在サービスを提供中のサーバーであり、アプリケーションサーバー120が次にサービスを提供するシステムである。また、アプリケーションサーバー110と120の切り替えは必ずしもバージョンアップのためだけにシステムを切り替えるものではない。
130は振り分けサーバーであり、複数の情報処理装置から構成されるのが一般的であるが1台であっても良い。振り分けサーバー130はクライアント端末150からのアクセスを適切なアプリケーションサーバー110に振り分けて処理をさせる機能を有する。140は管理サーバーであり、それぞれ複数の情報処理装置から構成されるのが一般的であるが1台であっても良い。管理サーバー140はアプリケーションサーバー110、120を構成するプログラムの管理、アプリケーションサーバー110、120の構築や切り替え処理を行う。
150はクライアント端末であり、パーソナルコンピューター、スマートフォンといったモバイル端末など、Webブラウザがインストールされている情報処理装置である。180はDomain Name System(DNS)であり、ネットワーク上のサーバーのホスト名を解決しアクセス先のIPアドレスを返却するシステムである。180の情報処理装置を単にDNSと称する場合と、DNSサーバーと称する場合があるが、何れも名前解決リクエストに対してIPアドレスをリクエスト元へ返却する機能を有するシステムである。Blue−Green Deploymentにおけるサービス切り替えは、DNSに登録されたホスト名に対応したIPアドレスを、アプリケーションサーバー110のIPアドレスからアプリケーションサーバー120のIPアドレスに書き換えることで実現する。振り分けサーバー130はクライアント端末150のリクエストをアプリケーションサーバーに送信するが、具体的にはクライアント端末150のリクエストに対応するデータをDNSで名前解決されたアプリケーションサーバー110または120の何れか1つへ送信する。振り分けサーバー130は、設定されている転送先ホスト名に対応したサーバーのIPアドレスをDNS180から取得し、稼働中のアプリケーションサーバー110または120の何れか1つに接続されることを意味する。
以上が、本システムを構成する各装置の説明である。なお、上述した通り各サーバーは1台で構成されていても複数台で構成されていても良いため、本願明細書ではサーバーシステムと称することでどちらの構成も含むサーバーを意図しているものとする。例えば、管理サーバーシステムと称した場合、管理サーバー140が1台の情報処理装置、および複数台の情報処置装置から構成されるサーバー群の何れか1つ任意の形態を意味していることになる。
図2は本実施例に係る、アプリケーションサーバー110、120、振り分けサーバー130、管理サーバー140、クライアント端末150、DNS180を構成する情報処理装置の一般的なハードウェア構成である。CPU231は、ROM233のプログラム用ROMに記憶された、或いはハードディスク(HD)等の外部メモリ241からRAM232にロードされたOSやアプリケーション等のプログラムを実行する。またCPU231は、システムバス234に接続される各ブロックを制御する。ここでOSとはコンピューター上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各シーケンスの処理はこのプログラムの実行により実現できる。RAM232は、CPU231の主メモリ、ワークエリア等として機能する。操作部I/F235は、操作部239からの入力を制御する。CRTコントローラ(CRTC)236は、CRTディスプレイ240の表示を制御する。ディスクコントローラ(DKC)237は各種データを記憶するハードディスク(HD)等の外部メモリ241におけるデータアクセスを制御する。ネットワークコントローラ(NC)238はWAN100もしくはLAN101、102を介して接続されたサーバーコンピューターや他の機器との通信制御処理を実行する。
尚、後述の全ての説明において、特に断りのない限りソフトウェアを実行するハード上の主体はCPU231であり、ソフトウェアの主体は外部メモリ241にインストールされたアプリケーションプログラムである。アプリケーションプログラムが各情報処理装置にインストールされることで配備され、CPU231が配備されたアプリケーションプログラムを実行することで後述する図3のソフトウェア構成を具備したシステム環境が実現する。
図3は本実施例に係る、アプリケーションサーバー110、120、振り分けサーバー130、管理サーバー140、クライアント端末150、DNS180、それぞれのソフトウェア構成を示す図である。
アプリケーションサーバー110、120はアプリケーションサービス319を持ち、アプリケーションサービス319はWebサーバーモジュール310とAPIモジュール311を持つ。Webサーバーモジュール310は、一般的にJettyやApache Tomcat等を利用し、HTMLやJavaScript(登録商標)の配信、および/またはAPIモジュール311の実行環境を提供する。アプリケーションサーバー110、120は、Webサーバーモジュール310を実行することで、HTTPに関する処理、例えば、HTML形式の表示画面の生成および生成した表示画面のクライアント端末150への提供を実現する。さらには、APIモジュール311を実行することでAPIの処理を実現する。Webサーバーモジュール310、およびAPIモジュール311ともクライアントからのリクエストに対する処理依頼を受信したことに伴い、各種処理を実行する。
振り分けサーバー130は振り分けサービス330を持ち、振り分けモジュール331と振り分け設定332を持つ。振り分けモジュール331は、クライアント端末150が振り分けサーバー130へアクセスしてきた際に用いたURLを元に、振り分け設定332に従ってアプリケーションサーバー110または120へのクライアント端末150によるアクセスを決定する。振り分け設定332の詳細は後述する。
管理サーバー140は管理サービス349を有し、管理サービス349はプログラム管理モジュール340とビルドモジュール341と配備モジュール342を持つ。プログラム管理モジュール340はアプリケーションサーバー110、120のシステム環境を構築するためのプログラムの管理を行う。ビルドモジュール341はプログラム管理モジュール340で管理されているプログラムを実行形式のモジュールに構成する。配備モジュール342はビルドモジュール341で生成した実行形式のモジュールを情報処理装置に配備し、アプリケーションサーバー110、120のシステム環境を構築することでアプリケーションサービスのバージョンアップ処理を実施する。
DNS180はDNSサービス380を持ち、DNSサービス380は名前解決のリクエストに対して、IPアドレス設定381を元にIPアドレスをレスポンスする。IPアドレス設定381の詳細に関しては後述する。クライアント端末150はアプリケーションサーバー110、120にアクセスするためのWebブラウザ350を持つ。
図4は、本実施例に係る、クライアント端末150がアプリケーションサーバー110にアクセスするための通信経路を模式的に表した図である。アプリケーションサーバー110の実施形態として、それぞれ異なるサービスを提供するアプリケーションサーバー401、402、403がある。本図では、振り分けサーバー130の動きを説明する。
アプリケーションサーバー401のホスト名は「app1.local」と「appapi1.local」の2種類を割り当てている。同様に、アプリケーションサーバー402のホスト名が「app2.local」、「appapi2.local」、アプリケーションサーバー403のホスト名が「app3.local」、「appapi3.local」である。それぞれ2種類のホスト名が割り当てられているのは、HTMLリクエストと、APリクエストを分離するためであり、その処理の詳細に関しては後述する。また、振り分けサーバー130のホスト名は「www.example.com」となっている。
クライアント端末150はWebブラウザ350にて振り分けサーバー130に割り当てられているホスト名とアクセスパスを入力する。例えば、「https://www.example.com/app1/login」といったURLである。クライアント端末150のWebブラウザ350は振り分けサーバー130へリクエストを行う。
リクエストを受信した振り分けサーバー130は振り分け設定332を参照し、振り分け先のサーバーを決定する。振り分け設定332の具体例を表1で説明する。下記設定では、「/app1」で始まるパスへのアクセスは、「https://app1.local」サーバーへ転送するといった設定がなされており、アプリケーションサーバー401へアクセスされる。また、「/appapi1」で始まるパスへのアクセスは、「https://appapi1.local」サーバーへ転送するといった設定がなされており、こちらもアプリケーションサーバー401へアクセスされる。
Figure 2017139653
図5は、本実施例に係るクライアント端末150のWebブラウザ350がアプリケーションサーバー110より画面を取得しアプリケーションを実行するまでの処理の流れを示したフローである。
クライアント端末150のWebブラウザ350は、ステップS501にてHTMLのリクエストを行う。HTMLのリクエストを受け付けた振り分けサーバー130はステップS502にて、リクエストのあったURLと振り分け設定332を元に振り分け先のアプリケーションサーバー110を決定する。「/app1」で始まるパスのURLでクライアント端末150が振り分けサーバー130にアクセスした場合は、「https://app1.local」のアプリケーションサーバー110に決定される。続いて、振り分けサーバー130は「https://app1.local」へ要求を出すためにステップS503にてDNS180に対して名前解決のリクエストを送信する。DNS180では表2に示すようにホスト名とIPアドレスが管理されており、その設定情報を元にIPアドレスがステップS504で返却される。「app1.local」の場合は「192.168.0.1」が返却される。なお、ホスト名の指定方法は本実施例に限られるものではなくURL内に含まれるホスト名の一部をDNS180に送信する形態であっても良く、ホスト名と称した場合にホスト名の中にドメイン名が含まれない場合もある。
Figure 2017139653
IPアドレスを取得した振り分けサーバー130はそのIPアドレスのサーバーに対してステップS505にてHTMLリクエストの処理依頼を行い、ステップS506で取得したHTMLデータをステップS507にてWEBブラウザ350にレスポンスする。WEBブラウザ350はレスポンスされたHTMLデータを表示する際、HTMLに記述されたJavaScript(登録商標)によってステップS511にてAPI呼び出しを行う。なおAPIの呼び出しは「https://www.example.com/appapi1/v1/function1」といった形で、画面とは違うURLのパスに対して行われる。API呼び出しのであるAPIリクエストを受けた振り分けサーバー130は、HTML取得時と同様にステップS512にて振り分け先を「https://appapi1.local」のアプリケーションサーバー110に決定する。続いて、振り分けサーバー130は「https://appapi1.local」へAPIリクエストの処理依頼を送信するためにステップS513にてDNS180に対し名前解決のリクエストを行う。表2の例では「app1.local」と「appapi1.local」は同様のIPアドレスであるため、ステップS514ではステップS504と同じ値が返る。ただし、設定値を変えることによりHTMLの取得とAPIの呼び出しのアクセス先サーバーを異なるサーバーにすることが可能となる。ステップS515からステップS517の一連の処理でWEBブラウザ350に処理結果をレスポンスする。WEBブラウザ350はステップS520において、ステップS517のAPIの処理結果をもとに画面を表示する。
次に、図6から図7を用いて本実施例のシステムにおいて、管理サーバー140の配備モジュール342がアプリケーションサーバー110から120への切り替えを行う方法を示す。なお、図6および図7では、アプリケーションサーバー110のサービスを、アプリケーションサーバー120に配備された新バージョンのサービスへバージョンアップする方法を示す。図6は配備モジュール342が行うバージョンアップ処理のフローを示し、図7はバージョンアップ処理中のシステム構成を示す。
管理サーバー140にてバージョンアップ処理が開始されたら図6の一連の処理が配備モジュール342にて実行される。ステップS601にて、図7のアプリケーションサーバー701を構築するために、まずは情報処理装置を構成する。Blue−Green Deploymentを実施する場合、仮想的な情報処理装置で構成するのが一般的である。仮想的な情報処理装置は、情報処理装置ハードウェア上に仮想的な複数の情報処理装置を生成する技術であり、仮想的な情報処理装置の生成や削除をプログラムで制御可能となる。例えば、配備のたびに仮想的な情報処理装置を必要なだけ生成し、その仮想的な情報処理装置に対してアプリケーションサービス319を構成するためのモジュールを配備しアプリケーサーバーを構築していくことが可能となる。さらには、不要になった情報処理装置を即座に削除することも可能となる。これにより、Blue−Green Deploymentを迅速かつ容易に実現可能となる。なお、本発明は仮想的な情報処理装置に限らず、物理的な情報処理装置で構成してもよい。その場合、ステップS601の処理を実施するのではなく、アプリケーションサーバー701用の情報処理装置を事前に構築しておく必要があり、それらに対して移行の処理を実施する。
配備モジュール342はステップS602にて、モジュールの配備を実施する。ステップS601にて生成された情報処理装置にWebサーバーモジュール310とAPIモジュール311を配備していく。なお、バージョンアップを想定する場合、Webサーバーモジュール310には新規のHTML画面が追加され、APIモジュール311には新規のAPIが追加され、新規のHTML画面は新規のAPIの呼び出し動作が可能となる。以上で、図7(a)に示したアプリケーションサーバー701の構築が完了する。この段階では、システムに対してバージョンアップ後のアプリケーションサーバー701が追加されただけの状態であり、アプリケーションサーバー701に振り分けサーバー130による処理依頼は送信されない。
本実施例ではDNS180はPrimary DNS702とSecondary DNS703の2台から構成されている。DNS180は可用性や性能などの理由から1台で構成されるのではなく複数で構成されるのが一般的である。Primary DNS702がメインとなるDNSであり、Secondary DNS703はPrimary DNS702と同様の設定が同期されるサブDNSとなる。振り分けサーバー130は名前解決の際Primary DNS702、Primary DNS703のどちらで名前を解決しても良い。この段階では、Primary DNS702のIPアドレス設定381には、HTML用ホストの設定もAPI用ホストの設定もアプリケーションサーバー401のIPアドレスである「192.168.0.1」が設定されている。また、Secondary DNS703の設定もPrimary DNS702との同期が完了しているので「192.168.0.1」が設定されている。この段階では、バージョンアップ前と同様、振り分けサーバー130は711、712のパスでアプリケーションサーバー401に対してリクエストの処理依頼を送信する。
次に、配備モジュール342はステップS603にてAPI用ホスト名のDNSの切り替え処理を行う。具体的にはPrimary DNS702のAPIリクエストに対応したホスト名「appapi1.local」に設定されている現在のIPアドレスを、アプリケーションサーバー701のIPアドレスの値「192.168.0.2」に書き換える。図7(b)がステップS603まで完了した状態での構成図である。この時、振り分けサーバー130は、HTMLの取得は711、712のパスでアプリケーションサーバー401に対してリクエストの処理依頼を送信する。APIの呼び出しはPrimary DNS702にてステップS513の名前解決を実施した場合、713、714のパスでアプリケーションサーバー701に対してリクエストの処理依頼を送信する。また、Secondary DNS703にてステップS513の名前解決を実施した場合は、711、712のパスでアプリケーションサーバー401に対してリクエストの処理依頼を送信する。つまり、本タイミングでは、APIの呼び出しはアプリケーソンサーバー401、701の何れか1つに送信される状態であり、どちらのAPIを呼び出すかはリクエストごとに変化する。
なお、アプリケーションサーバー701にはアプリケーションサーバー401と同じAPIが存在するため、アプリケーションサーバー401から提供されたHTMLで指定されたAPIの呼び出しは問題なく処理される。なぜなら、HTMLホストに関する切り替えはPrimary DNS702および Secondary DNS703ともアプリケーションサーバー401のBlueのIPアドレスを参照するため、クライアント端末150に表示される画面は新しいAPIに対応していない表示画面だからである。また、アプリケーションサーバー701にのみ追加されているAPIは、アプリケーションサーバー701の新規に追加されたHTMLがクライアント端末150に提供されないため使われない。
次に、配備モジュール342はステップS604にてAPI用ホスト名のDNSが同期されたかをチェックする。具体的には、Primary DNS701とSecondary DNS702に対して「appapi1.local」の名前解決を行い、ステップS604にて設定した「192.168.0.2」の値が両方のDNSから取得されたか否かを判別する。取得された値がアプリケーションサーバー401のIPアドレス「192.168.0.1」であった場合はステップS604を繰り返す。アプリケーションサーバー701のIPアドレス「192.168.0.2」であった場合は次の処理に進む。なお、DNSの構成が3台以上だった場合、IPアドレスを書き換えたDNSを除く全てのDNSのIPアドレスのチェックを行うことになる。図7(c)がステップS604の処理を抜け、S605の処理を開始する前の段階での構成図である。Primary DNS702のIPアドレス設定381がSecondary DNS703のIPアドレス設定に同期している。この時、振り分けサーバー130は、HTMLの取得を711、712のパスでアプリケーションサーバー401に対して転送する。また、APIの呼び出しは、全て713、714のパスでアプリケーションサーバー701に対して転送する。
次に、配備モジュール342はステップS605にてHTML用ホスト名のDNSの切り替え処理を行う。具体的にはPrimary DNS702のHTMLに対応したホスト名「app1.local」のIPアドレスをアプリケーションサーバー701のIPアドレスの値「192.168.0.2」に書き換える。図7(d)がステップS605まで完了した状態での構成図である。この時、振り分けサーバー130は、HTMLの取得でPrimary DNS702にてステップS503の名前解決を実施した場合は、713、714のパスでアプリケーションサーバー701に対して転送する。Secondary DNS703にてステップS503の名前解決を実施した場合は、711、712のパスでアプリケーションサーバー401に対して転送する。つまり、本タイミングでは、HTMLの取得に関して、アプリケーションサーバー401、701のどちらに転送されるかはリクエストごとに変化する。ただし、APIの呼び出しは必ずアプリケーションサーバー701に転送するため、アプリケーションサーバー701から取得された新規HTMLからの、API呼び出しは問題なく処理される。
以上で、配備モジュール342の処理は完了する。その後、さらに一定時間経過するとPrimary DNS702のIPアドレス設定381がSecondary DNS703のIPアドレス設定381に同期され、HTML用ホスト名のIPアドレス設定も「192.168.0.2」に設定される。そのため、最終的には図7(e)に示す構成となる。この段階では振り分けサーバー130は全てのリクエストを713、714のパスでアプリケーションサーバー701に対して転送する。
以上で、アプリケーションのバージョンアップ処理は完了する。API用のホスト名とHTML用のホスト名を別々に定義しAPI用のDNS切り替えを完全に完了してからHTML用のDNS切り替えを時間差で行うことで、新システムのHTML画面から、旧システムのAPIを利用することを防ぐことが可能となる。その効果の一例として以下の状況を解決することも可能となる。クライアントにはバージョンアップ後の新システムが提供したHTML形式の画面が表示されており、その画面からバージョンアップ前の旧システムのAPIが呼び出される状況である。即ち、画面取得の際にはDNSの名前解決によって新システムに振り分けられたが、その画面を介してAPIを使用した際にはDNSの名前解決によって旧システムに振り分けられるのである。この時、旧システムには、新システムで新たに提供された新機能用のAPIは存在しないため、クライアントからのリクエストは正しく処理されずユーザーには所望の結果を返すことができない。
実施例1において、振り分けサーバー130はホスト名のDNS180による名前解決の処理ステップS503、S513を毎回実施すると説明した。この場合、DNS180に対し多くの名前解決処理のリクエストが送信され負荷が高まるといった問題や、毎回名前解決をするため、その分システム全体のスループットが低下するという問題がある。そのため振り分けサーバー130はステップS504、S514で取得したIPアドレスを一定時間保持し、同じホスト名でのアクセスの場合はステップS503、S513の処理を行わず、以前取得したIPアドレスを再利用するという設定を行う場合も想定される。
この場合、ステップS604にてAPI用ホスト名のDNS同期が完了しても、振り分けサーバー130はDNSに対し名前解決のリクエストを送信せず、以前取得したIPアドレスで名前解決をする期間がある。そのため、振り分けサーバーによるアクセス先IPアドレスが新システムへすぐには切り替わらない一方で、DNSの切り替えは表示画面に関して新システムへ切り替えられてしまっている状況が発生する。その結果、特定の振り分けサーバーはDNSによる名前解決により新システムへ表示画面に関するリクエストを振り分け、別の振り分けサーバーはキャッシュしている旧システムのIPアドレスを利用し旧システムへAPIに関するリクエストを振り分けてしまう。これは、振り分けサーバー130を構成するサーバー群それぞれのIPアドレスを保持するタイミングが異なるため、新しい設定値が全ての振り分けサーバー130に反映されるまでには時差が発生するためである。これにより、新システムのHTML画面から、旧システムのAPI利用を防ぐことができない課題がある。本実施例ではこの課題を解決する方法について説明するが、説明を行わない部分については実施例1と同様である。
図8は、本実施例における図6は配備モジュール342が行うバージョンアップ処理のフローである。ステップS601からS605は図6で説明した処理と同様である。配備モジュール342はステップS801にて一定時間の待機処理を行う。例えば、振り分けサーバー130のDNS名前解決のキャッシュ時間の設定が60秒であった場合、ステップS801では60秒以上の時間何もせずに待機する。なお、本願発明ではキャッシュ時間の60秒に加え、更に一定時間の待機処理を行うことを想定しており、これにより確実に振り分けサーバー130のキャッシュが更新されることになる。結果、管理サーバー140が処理を待機している間に全ての振り分けサーバー130のDNS名前解決のキャッシュが無効になる。キャッシュが無効になれば、ステップS513の名前解決が発生するため、アプリケーションサーバー701のIPアドレスが取得されることとなる。この待機時間は、ユーザーの手により事前に設定される、もしくは振り分けサーバー130と通信を行いキャッシュ時間の設定を確認することで設定される形態を想定しているが、これに限られるモノではない。発明の本質は、バージョンアップシステムにおける全ての振り分けサーバー130のキャッシュが無効になり、振り分けサーバー130が切り替えの完了したDNS180に対して名前解決を行う状態になるまで待機することにある。
以上、一定時間の待機時間を設けることで、振り分けサーバー130で名前解決のキャッシュを持つ場合でも、新システムのHTML画面から、旧システムのAPIを利用することを防ぐことが可能となる。
本実施例ではより確実に課題を解決する別の方法について説明するが、説明を行わない部分については実施例1と同様である。図9は、本実施例における図6は配備モジュール342が行うバージョンアップ処理のフローである。ステップS601からS605は図6で説明した処理と同様である。配備モジュール342はステップS901にてアクセスログ解析処理を行う。アプリケーションサーバー401は一般的に、クライアントからのHTMLリクエスト、およびAPIリクエストの全てに対して、どのURLのパスにいつアクセスされたかのログが出力される。このログを解析し、例えば、「/app1*」のパスで始まるHTML画面へのアクセスがあり、「/appapi1*」のパスで始まるAPIの呼び出しが無い状態であることを一定時の間確認する。そして、ログに一定時間APIリクエストによるAPIの呼び出しが記録されなくなれば、振り分けサーバー130はAPIリクエストの処理依頼をアプリケーションサーバー701に送信していることとなる。
以上、アクセスログの解析を設けることで、振り分けサーバー130で名前解決のキャッシュを持つ場合でも、新システムのHTML画面から、旧システムのAPIを利用することを防ぐことが可能となる。
[その他の実施例]
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
110 アプリケーションサーバー(Blue)
120 アプリケーションサーバー(Green)
130 振り分けサーバー
140 管理サーバー
150 クライアント端末
180 DNS
401 アプリケーションサーバー(Blue)
701 アプリケーションサーバー(Green)
702 Primary DNS
703 Secondary DNS

Claims (12)

  1. 名前解決のリクエストとともに受信したホスト名に対応するIPアドレスを返却するDNSサーバーと、前記DNSサーバーから返却されたIPアドレスに対応するシステムに対しクライアントからのHTMLリクエストおよびAPIリクエストの処理依頼を送信する振り分けサーバーと、通信することが可能な管理サーバーシステムであって、
    システム環境を構築するためのプログラムを情報処理装置に配備しシステムを構築する構築手段と、
    前記DNSサーバーに登録されたホスト名であるHTMLリクエストに対応したホスト名およびAPIリクエストに対応したホスト名の夫々のホスト名に対し、前記構築手段により構築されたシステムのIPアドレスを設定する設定手段と、を有し、
    前記設定手段は、前記構築手段により新たなシステムが構築された後、前記APIリクエストに対応したホスト名に設定されている現在のIPアドレスを前記新たなシステムのIPアドレスに書き換え始め、前記振り分けサーバーの名前解決のリクエストに対応する全ての前記DNSサーバーの書き換えが完了したことを確認したことに応じて、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とする管理サーバーシステム。
  2. 前記設定手段は、全ての前記DNSサーバーに対し名前解決のリクエストともに前記APIリクエストに対応したホスト名を送信し、全ての前記DNSサーバーが前記新たなシステムのIPアドレスを返却したか否かを判別し書き換えの完了を確認することを特徴とする請求項1に記載の管理サーバーシステム。
  3. 前記振り分けサーバーは、前記DNSサーバーから返却されたIPアドレスをキャッシュする機能を有し、前記DNSサーバーに名前解決のリクエストを送信することなく、ホスト名に対応するキャッシュされたIPアドレスを読み込み、読み込まれたIPアドレスに対応するシステムに対し処理依頼を送信する振り分けサーバーであって、
    前記設定手段は、全ての前記DNSサーバーの書き換えが完了したことを確認した後、更に、前記振り分けサーバーが前記DNSサーバーに名前解決のリクエストを送信することでキャッシュしたIPアドレスを前記新たなシステムのIPアドレスに更新する処理が完了するまで待機し、その後、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とする請求項1または2に記載の管理サーバーシステム。
  4. 前記設定手段は、前記振り分けサーバーが前記DNSサーバーに名前解決のリクエストを送信することでキャッシュしたIPアドレスを前記新たなシステムのIPアドレスに更新する処理が完了するまで待機し、待機した後にさらに一定時間の待機を行い、その後、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とする請求項3に記載の管理サーバーシステム。
  5. 前記設定手段は、全ての前記DNSサーバーの書き換えが完了したことを確認した後、更に、書き換え前の前記IPアドレスに対応するシステムにおいて、APIリクエストの処理依頼を受信したことで出力するログを一定時間の間に出力されていないことを確認したことに応じて、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とする請求項1または2に記載の管理サーバーシステム。
  6. クライアントと、名前解決のリクエストとともに受信したホスト名に対応するIPアドレスを返却するDNSサーバーと、前記DNSサーバーから返却されたIPアドレスに対応するシステムに対し前記クライアントからのHTMLリクエストおよびAPIリクエストの処理依頼を送信する振り分けサーバーと、管理サーバーシステムとから構成されるシステムであって、
    システム環境を構築するためのプログラムを情報処理装置に配備しシステムを構築する構築手段と、
    前記DNSサーバーに登録されたホスト名であるHTMLリクエストに対応したホスト名およびAPIリクエストに対応したホスト名の夫々のホスト名に対し、前記構築手段により構築されたシステムのIPアドレスを設定する設定手段と、を有し、
    前記設定手段は、前記構築手段により新たなシステムが構築された後、前記APIリクエストに対応したホスト名に設定されている現在のIPアドレスを前記新たなシステムのIPアドレスに書き換え始め、前記振り分けサーバーの名前解決のリクエストに対応する全ての前記DNSサーバーの書き換えが完了したことを確認したことに応じて、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とするシステム。
  7. 前記設定手段は、全ての前記DNSサーバーに対し名前解決のリクエストともに前記APIリクエストに対応したホスト名を送信し、全ての前記DNSサーバーが前記新たなシステムのIPアドレスを返却したか否かを判別し書き換えの完了を確認することを特徴とする請求項6に記載の管理サーバーシステム。
  8. 前記振り分けサーバーは、前記DNSサーバーから返却されたIPアドレスをキャッシュする機能を有し、前記DNSサーバーに名前解決のリクエストを送信することなく、ホスト名に対応するキャッシュされたIPアドレスを読み込み、読み込まれたIPアドレスに対応するシステムに対し処理依頼を送信する振り分けサーバーであって、
    前記設定手段は、全ての前記DNSサーバーの書き換えが完了したことを確認した後、更に、前記振り分けサーバーが前記DNSサーバーに名前解決のリクエストを送信することでキャッシュしたIPアドレスを前記新たなシステムのIPアドレスに更新する処理が完了するまで待機し、その後、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とする請求項6または7に記載の管理サーバーシステム。
  9. 前記設定手段は、前記振り分けサーバーが前記DNSサーバーに名前解決のリクエストを送信することでキャッシュしたIPアドレスを前記新たなシステムのIPアドレスに更新する処理が完了するまで待機し、待機した後にさらに一定時間の待機を行い、その後、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とする請求項8に記載の管理サーバーシステム。
  10. 前記設定手段は、全ての前記DNSサーバーの書き換えが完了したことを確認した後、更に、書き換え前の前記IPアドレスに対応するシステムにおいて、APIリクエストの処理依頼を受信したことで出力するログを一定時間の間に出力されていないことを確認したことに応じて、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とする請求項6または7に記載の管理サーバーシステム。
  11. クライアントと、名前解決のリクエストとともに受信したホスト名に対応するIPアドレスを返却するDNSサーバーと、前記DNSサーバーから返却されたIPアドレスに対応するシステムに対し前記クライアントからのHTMLリクエストおよびAPIリクエストの処理依頼を送信する振り分けサーバーと、管理サーバーシステムとから構成されるシステムで実行される方法であってあって、
    構築手段は、システム環境を構築するためのプログラムを情報処理装置に配備しシステムを構築し、
    設定手段は、前記DNSサーバーに登録されたホスト名であるHTMLリクエストに対応したホスト名およびAPIリクエストに対応したホスト名の夫々のホスト名に対し、前記構築手段により構築されたシステムのIPアドレスを設定し、
    さらに、前記設定手段は、前記構築手段により新たなシステムが構築された後、前記APIリクエストに対応したホスト名に設定されている現在のIPアドレスを前記新たなシステムのIPアドレスに書き換え始め、前記振り分けサーバーの名前解決のリクエストに対応する全ての前記DNSサーバーの書き換えが完了したことを確認したことに応じて、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とする方法。
  12. 名前解決のリクエストとともに受信したホスト名に対応するIPアドレスを返却するDNSサーバーと、前記DNSサーバーから返却されたIPアドレスに対応するシステムに対しクライアントからのHTMLリクエストおよびAPIリクエストの処理依頼を送信する振り分けサーバーと、通信することが可能な管理サーバーシステムにて実行されるプログラムであって、
    システム環境を構築するためのプログラムを情報処理装置に配備しシステムを構築する構築ステップと、
    前記DNSサーバーに登録されたホスト名であるHTMLリクエストに対応したホスト名およびAPIリクエストに対応したホスト名の夫々のホスト名に対し、前記構築ステップにおいて構築されたシステムのIPアドレスを設定する設定ステップと、を含み、
    前記設定ステップは、前記構築ステップにおいて新たなシステムが構築された後、前記APIリクエストに対応したホスト名に設定されている現在のIPアドレスを前記新たなシステムのIPアドレスに書き換え始め、前記振り分けサーバーの名前解決のリクエストに対応する全ての前記DNSサーバーの書き換えが完了したことを確認したことに応じて、HTMLリクエストに対応したホスト名に設定されているIPアドレスを前記新たなシステムのIPアドレスに書き換え始めることを特徴とするプログラム。
JP2016020050A 2016-02-04 2016-02-04 管理サーバーシステム、システム、システムの方法およびプログラム Active JP6643123B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016020050A JP6643123B2 (ja) 2016-02-04 2016-02-04 管理サーバーシステム、システム、システムの方法およびプログラム
CN201710048475.1A CN107040580B (zh) 2016-02-04 2017-01-23 管理服务器系统、升级系统以及升级系统的方法
US15/421,893 US10348673B2 (en) 2016-02-04 2017-02-01 Management server system, system, method of system, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016020050A JP6643123B2 (ja) 2016-02-04 2016-02-04 管理サーバーシステム、システム、システムの方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2017139653A true JP2017139653A (ja) 2017-08-10
JP6643123B2 JP6643123B2 (ja) 2020-02-12

Family

ID=59496586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016020050A Active JP6643123B2 (ja) 2016-02-04 2016-02-04 管理サーバーシステム、システム、システムの方法およびプログラム

Country Status (3)

Country Link
US (1) US10348673B2 (ja)
JP (1) JP6643123B2 (ja)
CN (1) CN107040580B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7508284B2 (ja) * 2020-06-17 2024-07-01 キヤノン株式会社 通信装置、通信装置の制御方法及びプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH083049A (ja) 1994-04-22 1996-01-09 Senju Pharmaceut Co Ltd 表皮増殖疾患治療剤
US20030120822A1 (en) * 2001-04-19 2003-06-26 Langrind Nicholas A. Isolated control plane addressing
US7725602B2 (en) * 2000-07-19 2010-05-25 Akamai Technologies, Inc. Domain name resolution using a distributed DNS network
US7263597B2 (en) * 2001-04-19 2007-08-28 Ciena Corporation Network device including dedicated resources control plane
US7734745B2 (en) * 2002-10-24 2010-06-08 International Business Machines Corporation Method and apparatus for maintaining internet domain name data
JP4083049B2 (ja) 2003-03-27 2008-04-30 株式会社野村総合研究所 分散処理システム、リクエストの振り分け装置および方法
CN101176293A (zh) * 2004-11-05 2008-05-07 株式会社东芝 网络发现机制
US8276121B2 (en) * 2007-06-19 2012-09-25 Microsoft Corporation Selection of versioned resource among multiple compatible versions
US8782630B2 (en) * 2011-06-30 2014-07-15 International Business Machines Corporation Smart rebinding for live product install
CN104904163B (zh) * 2012-10-05 2018-04-24 甲骨文国际公司 用于在使用结构化数据对象的消息传送架构内进行通信的方法和系统
US9503387B2 (en) * 2013-08-21 2016-11-22 Cisco Technology, Inc. Instantiating incompatible virtual compute requests in a heterogeneous cloud environment
EP3018864B1 (en) * 2013-09-12 2019-08-28 Mitsubishi Electric Corporation Ip address distribution system, switch apparatus and ip address distribution method
DE102015015196A1 (de) * 2014-12-16 2016-06-16 Canon Kabushiki Kaisha Verwaltungssystem und Steuerungsverfahren für Verwaltungssystem

Also Published As

Publication number Publication date
US10348673B2 (en) 2019-07-09
JP6643123B2 (ja) 2020-02-12
CN107040580A (zh) 2017-08-11
CN107040580B (zh) 2019-10-22
US20170230327A1 (en) 2017-08-10

Similar Documents

Publication Publication Date Title
CN110417842B (zh) 用于网关服务器的故障处理方法和装置
CN106790595B (zh) 一种Docker容器主动负载均衡装置及方法
JP5288334B2 (ja) 仮想アプライアンス配備システム
JP2012173835A (ja) Webサービスシステム、サーバ管理装置およびWebサービス提供方法
CN111404628B (zh) 一种时间同步方法和装置
WO2012151993A1 (zh) 业务推送方法和装置
WO2023184925A1 (zh) 负载均衡器及其实现方法、负载均衡的方法、网关系统
US20220394785A1 (en) System and Method of Managing PNF Connectivity in a Network Slice Instance
TWI534635B (zh) 雲端服務系統及其方法
CN115190103A (zh) 基于服务网格的服务域名解析方法、装置及设备
JP2018121182A (ja) 情報処理装置、その制御方法、及び、プログラム
EP3101539B1 (en) Selection of compatible resources after updating web application servers
US20180026813A1 (en) Distributed Gateways
US10558726B2 (en) Method and apparatus for executing application
JP6643123B2 (ja) 管理サーバーシステム、システム、システムの方法およびプログラム
JP6562744B2 (ja) システム、及び制御方法
JP2015228086A (ja) 情報処理システム、情報処理装置、情報処理方法およびプログラム
JP2011210151A (ja) サーバ装置、及び情報処理システムの制御方法、並びにプログラム
CN105229990B (zh) 加载网页的方法和装置
JP2015526802A (ja) ウェブページ間で通信を行うための方法およびシステム
KR102058541B1 (ko) 서버 모니터링 방법 및 이를 이용한 서버 모니터링 시스템
JP5337899B2 (ja) ネットワークブートシステム、ネットワークブート方法、ネットワークストレージ管理装置
JP2014186473A (ja) プログラム及び装置
JP2019220077A (ja) 遠隔管理システムおよび情報処理方法
JP2018173920A (ja) 制御プログラム、制御方法および制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200106

R151 Written notification of patent or utility model registration

Ref document number: 6643123

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151