JP7069672B2 - アプリケーションの更新方法およびプログラム - Google Patents

アプリケーションの更新方法およびプログラム Download PDF

Info

Publication number
JP7069672B2
JP7069672B2 JP2017233505A JP2017233505A JP7069672B2 JP 7069672 B2 JP7069672 B2 JP 7069672B2 JP 2017233505 A JP2017233505 A JP 2017233505A JP 2017233505 A JP2017233505 A JP 2017233505A JP 7069672 B2 JP7069672 B2 JP 7069672B2
Authority
JP
Japan
Prior art keywords
container
application
update
update management
host
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.)
Active
Application number
JP2017233505A
Other languages
English (en)
Other versions
JP2019101866A (ja
Inventor
俊介 永江
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.)
Konica Minolta Inc
Original Assignee
Konica Minolta 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 Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2017233505A priority Critical patent/JP7069672B2/ja
Priority to CN201811448175.3A priority patent/CN109871222B/zh
Priority to US16/207,504 priority patent/US20190171443A1/en
Publication of JP2019101866A publication Critical patent/JP2019101866A/ja
Application granted granted Critical
Publication of JP7069672B2 publication Critical patent/JP7069672B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Description

本開示は、アプリケーションの更新方法およびプログラムに関し、特に、プロセスを実行する仮想的な環境を構成するコンテナにインストールされたアプリケーションの更新方法およびプログラムに関する。
従来、仮想マシンを利用したサービスの提供について種々検討されている。たとえば、特開2012-252704号公報(特許文献1)は、2つの仮想マシンテンプレートを介して交互にシステムを更新することを開示する。
特開2012-252704号公報
特許文献1に記載のシステムの更新は、第一仮想マシンテンプレートを電源オフ状態に設定した後、第二仮想マシンテンプレートを電源オン状態に設定する手順を含む。したがって、ユーザーが比較的長い間仮想マシンによるサービスを利用できない、という事態が生じ得る。
本開示は、係る実情に鑑み考え出されたものであり、その目的は、ユーザーが仮想マシンによるサービスを利用できない時間を短縮することである。
本開示のある局面に従うと、ユーザーのプロセスを実行する仮想的な環境を構成するコンテナを2以上収容する情報処理装置において、コンテナにインストールされたアプリケーションを更新する方法が提供される。2以上のコンテナは、第1のアプリケーションをインストールされた第1のコンテナと、情報処理装置の各コンテナにインストールされたアプリケーションの更新を管理する更新管理コンテナと、2以上のコンテナのそれぞれのアドレスを管理するアドレス管理コンテナとを含む。方法は、更新管理コンテナが、情報処理装置において第2のコンテナを作成するステップと、更新管理コンテナが、第2のコンテナに更新後の第1のアプリケーションをインストールするステップと、更新管理コンテナが、第2のコンテナにおける、更新後の第1のアプリケーションの動作を確認するステップと、更新管理コンテナが、更新後の第1のアプリケーションの動作の確認後、アドレス管理コンテナに、第1のアプリケーションに対応するアドレスの変更を通知するステップとを備える。アドレスの変更は、第1のコンテナのアドレスから第2のコンテナのアドレスへの変更である。
情報処理装置において、2以上のコンテナのそれぞれはホストOS(オペレーティングシステム)上で動作してもよい。情報処理装置は、ホストOS上でコンテナの作成および削除を実行するシステムマネージャーをインストールされていてもよい。更新管理コンテナが第2のコンテナを作成するステップは、更新管理コンテナが、ホストOSに、コンテナの作成を依頼するステップと、ホストOSが、更新管理コンテナからの作成の依頼に応じて、システムマネージャーに、コンテナの作成を依頼するステップと、システムマネージャーが、ホストOSからの作成の依頼に応じて、第2のコンテナを作成するステップとを含んでいてもよい。
方法は、更新管理コンテナが、アドレス管理コンテナにアドレスの変更を通知した後、ホストOSに、第1のコンテナの削除を依頼するステップと、ホストOSが、更新管理コンテナからの削除の依頼に応じて、システムマネージャーに、第1のコンテナの削除を依頼するステップと、システムマネージャーが、ホストOSからの削除の依頼に応じて、第1のコンテナを削除するステップとをさらに備えていてもよい。
方法は、更新管理コンテナが、更新後の第1のアプリケーションのマニュアルを取得するステップをさらに備えていてもよい。更新管理コンテナは、マニュアルに従って、更新後の第1のアプリケーションの動作を確認してもよい。
方法は、更新管理コンテナが、更新後の第1のアプリケーションの動作の確認後、第1のコンテナに対して、第1のアプリケーションに対するユーザーからのリクエストを第2のコンテナに転送することを指示するステップをさらに備えていてもよい。
更新管理コンテナは、第1のコンテナによって構成されていてもよい。第1のアプリケーションは、情報処理装置の各コンテナにインストールされたアプリケーションの更新を管理するためのアプリケーションであってもよい。
本開示の他の局面に従うと、コンピューターのプロセッサーに、上記方法を実行させるように構成されたプログラムが提供される。
本開示によれば、更新管理コンテナは、第1のコンテナにインストールされた第1のアプリケーションが更新される場合、新たに第2のコンテナを作成し、当該第2のコンテナに更新後の第1のアプリケーションをインストールする。更新後の第1のアプリケーションの動作の確認後、更新管理コンテナは、アドレス管理コンテナに、第1のアプリケーションに対応するアドレスの変更を通知する。この変更により、第1のアプリケーションに対応するアドレスは、第1のコンテナのアドレスから第2のコンテナのアドレスへと変更される。
ユーザーは、更新後の第1のアプリケーションが第2のコンテナにインストールされている間、第1のコンテナにインストールされた更新前の第1のアプリケーションを利用できる。これにより、ユーザーが第1のアプリケーションのサービスを利用できない時間が短縮される。
情報処理装置を含むネットワークシステムの概略的な構成を示す図である。 情報処理機器100のハードウェアブロック図である。 サーバー部20の機能的な構成を階層的に示すブロック図である。 サーバー部20における、アプリケーション更新時の処理の概要を説明するための図である。 サーバー部20におけるアプリAの更新時の処理の流れを模式的に示す図である。 アプリAの更新時に、サーバー部20において実行される処理シーケンスである。 更新管理コンテナ110によるアプリケーションについてのマニュアルの取得についてのシーケンスを表わす図である。 リクエストの転送が指示される状況を説明するための図である。 旧コンテナに対する切替モードの設定のシーケンスを示す図である。 サーバー部20における、更新管理コンテナ110の更新を模式的に示す図である。 更新管理コンテナの更新のシーケンスを示す図である。
以下に、図面を参照しつつ、ユーザーのプロセスを実行する仮想的な環境を構成するコンテナを包含するサーバーの実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
[1.サーバーの構成]
本実施の形態では、サーバーは、情報処理装置の一部として構成される。図1は、情報処理装置を含むネットワークシステムの概略的な構成を示す図である。
図1に示されるように、ネットワークシステム1000において、情報処理機器100は、ネットワークNを介して端末500と通信する。ネットワークNは、LAN(ローカルエリアネットワーク)であってもよいし、グローバルネットワークであってもよい。端末500は、たとえば、パーソナルコンピューター、スマートフォン、または、タブレット端末である。
一例として、情報処理機器100は、サーバーとMFP(Multi-Functional Peripheral:画像形成装置)とがそれぞれの筐体を連結して一体に構成された機器として実現される。情報処理機器100は、プリンター部10と、サーバー部20と、操作パネル30とを備える。操作パネル30は、プリンター部10およびサーバー部20のユーザーインターフェースとして利用される。
図2は、情報処理機器100のハードウェアブロック図である。以下、プリンター部10とサーバー部20のそれぞれの構成を説明する。
(プリンター部10)
プリンター部10は、プリンター部10全体を制御するためのCPU(Central Processing Unit)190と、記憶部191とを含む。記憶部191は、たとえば、不揮発性メモリーによって実現される。記憶部191に格納される情報は、CPU190によって実行されるプログラム、および、当該プログラムの実行に利用されるデータを含んでいてもよい。
プリンター部10は、さらに、画像処理部151と、画像形成部152と、画像読取部153と、内部インターフェース180とを含む。画像処理部151は、入力された画像データを処理することにより、たとえば出力される画像の拡大・縮小等の処理を実行する。画像処理部151は、たとえば画像処理用のプロセッサーおよびメモリーによって実現される。画像形成部152は、トナーカートリッジ、記録用紙を収容するための用紙トレイ、および、感光体等の、記録用紙に画像を形成するためのハードウェア資源、ならびに、記録用紙を搬送するためのハードウェア資源によって実現される。画像読取部153は、スキャナー等の、原稿の画像データを作成するように構成されたハードウェア資源によって実現される。画像処理部151、画像形成部152、および、画像読取部153のそれぞれの機能は、画像形成装置においてよく知られたものであるから、ここでは詳細な説明は繰返さない。
内部インターフェース180は、サーバー部20との通信のインターフェースとして機能し、たとえばLAN(Local Area Network)カードによって実現される。
(サーバー部20)
サーバー部20は、サーバー部20全体を制御するためのCPU250と、ネットワーク通信部260と、記憶部270と、内部インターフェース280とを含む。
ネットワーク通信部260は、グローバルネットワークを介して端末500等の外部機器との間でデータの送受信を実行するように構成された、ハードウェア資源によって実現される。当該ハードウェア資源の一例は、ネットワークカードである。CPU250は、ネットワーク通信部260を介して外部機器と通信する。
記憶部270は、たとえば、不揮発性メモリーによって実現される。記憶部270に格納される情報は、CPU250によって実行されるプログラム、および、当該プログラムの実行に利用されるデータを含んでいてもよい。
CPU250は、さらに、操作パネル30を制御するように構成されている。操作パネル30は、制御用回路350と、有機EL(Electro Luminescence)ディスプレイ等によって実現される表示部360と、タッチセンサー等によって実現される操作部370と、非接触カードリーダー等によって実現されるカードリーダー380とを含む。
制御用回路350は、CPU250からの制御信号に従って、表示部360の表示動作を制御する。操作部370は、入力された情報を制御用回路350へ出力する。制御用回路350は、操作部370から入力された情報に応じた信号をCPU250へ出力する。制御用回路350は、CPU250からの制御信号に応じて、カードリーダー380によって読み込まれたデータをサーバー部20に転送する。
[2.サーバーの機能的な構成]
図3は、サーバー部20の機能的な構成を階層的に示すブロック図である。サーバー部20の機能的な構成は、たとえば、CPU250が所与のプログラムを実行することによって実現される。
図3に示すように、サーバー部20は、例えばLinux(登録商標)サーバーとして機能する。サーバー部20は、物理マシン101上で稼働するホストOS(オペレーティングシステム)102と、ホストOS102上で動作するシステム管理ソフトウェア104とを有する。物理マシン101は、たとえば、CPU250および記憶部270によって実現される。ホストOS102上で動作するユーザープロセスのそれぞれは、各ユーザープロセスが対応するコンテナ内に閉じ込められている。システム管理ソフトウェア104は、コンテナ管理用の制御プログラムの一例である。代表的なコンテナ管理用の制御プログラムはDOCKER(登録商標)である。
ホストOS102の内部は、物理リソースを管理する「カーネル空間」と、ユーザープロセスを実行する「ユーザー空間」とに分けられる。コンテナ型の仮想化では、ユーザー空間が複数に分けられ、それぞれのユーザープロセスから見えるリソースが制限される。このように、単一のユーザープロセス、あるいはいくつかのユーザープロセスをまとめて閉じ込めたユーザー空間が「コンテナ」である。
一例では、コンテナ型の仮想化において、すべてのプロセスはサーバー部20にインストールされたホストOS102上で直接動作する。コンテナ内のプロセスは実際の貨物輸送のコンテナのように隔離された空間に入っているので、あるコンテナの内部から他のコンテナの内部を見ることはできない。この隔離された空間を作り出すのはホストOSのカーネルの機能である。ホストOSを通して使用できるコンピュータのリソースをコンテナごとに隔離して、ホストOS上で直接動作するプロセスや他のコンテナから独立した空間を作り出すことにより、リソースが分割、分配、制限される。コンテナの起動は、OSから見ると単にプロセスが起動しているだけであるため、通常のプロセスが起動するのとほとんど差がなく、非常に速く起動することができる。他の例では、コンテナ型の仮想化において、各コンテナ内のプロセスが、それぞれのコンテナ内のOS上で動作していてもよい。
サーバー部20において、LXD(Linux Container Daemon)103は、管理者に対して、アプリケーションを利用するシステムの設定全般を実施するための、管理画面を提供する。当該管理画面からはユーザーアカウントの追加削除など各種の設定が行える。LXD103は、サーバー部20において、コンテナを作成し、コンテナを削除する。LXD103は、さらに、サーバー部20のCPU使用率、メモリ使用率、起動コンテナ数を始めとしたリソース情報のほか、コンテナが正常に作成/削除されたかのログ情報を一元的に管理、閲覧する機能を提供する。これにより、システムの管理運用や障害発生時のトラブル解析を容易にする。LXD103は、システムマネージャーの一例である。
図3では、システム管理ソフトウェア104上に5つのコンテナ(更新管理コンテナ110,プロキシコンテナ120,DNSコンテナ130,Appコンテナ140,Appコンテナ150)が示されている。更新管理コンテナ110,プロキシコンテナ120,DNSコンテナ130,Appコンテナ140,Appコンテナ150のそれぞれは、アプリケーションを利用したサービスを提供する。サーバー部20は、個々のコンテナによるサービスを提供してもよいし、2以上のコンテナのサービスを連携させることによるサービスを提供してもよい。
更新管理コンテナ110は、サーバー部20内の各コンテナにインストールされたアプリケーションの更新を管理する。更新管理コンテナ110によって提供されるサービスは、Registration Serviceとも呼ばれる。
プロキシコンテナ120は、サーバー部20内の各コンテナへのリクエストを、各コンテナのアドレスに変換する。プロキシコンテナ120は、たとえば、CPU250がNginx(登録商標)等のWebサーバーアプリケーションを実行することによって実現される。
DNS(Domain Name Service)コンテナ130は、プロキシコンテナ120からの依頼に応じて、各コンテナへのリクエストを各コンテナのアドレスに変換する。
プロキシコンテナ120およびDNSコンテナ130は、サーバー部20内の各コンテナのアドレスを管理する。したがって、プロキシコンテナ120およびDNSコンテナ130は、アドレス管理コンテナの一例である。
Appコンテナ140およびAppコンテナ150のそれぞれは、ユーザーにサービスを提供するためのアプリケーションをインストールされている。図3では、Appコンテナ140およびAppコンテナ150のそれぞれにインストールされたアプリケーションの種類を区別するために、「アプリケーション[1]」および「アプリケーション[2]」の標記が利用されている。サーバー部20に含まれるAppコンテナの数は、図3に示された「2」に限定されない。
[3.アプリケーション更新時の処理の概要]
図4は、サーバー部20における、アプリケーション更新時の処理の概要を説明するための図である。図4には、3つの状態A~Cが示されている。状態Aでは、Appコンテナとして、「Appコンテナ150」が示されている。以下、図4を参照して、Appコンテナ150にインストールされているアプリケーションの更新時の処理の流れを概略的に説明する。
更新管理コンテナ110は、Appコンテナ150にインストールされているアプリケーション(仮に、「アプリA」とする)の更新を検知すると、状態Bとして示されるように、新しいコンテナ(Appコンテナ160)を作成する。更新管理コンテナ110は、たとえば、外部の装置(「アプリA」を管理するサーバー)からの通知によって、当該アプリケーションの更新を検知する。
更新管理コンテナ110は、更新後のアプリAをAppコンテナ160にインストールし、更新後のアプリAの動作を確認する。更新後のアプリAが正常に動作することを確認すると、更新管理コンテナ110は、プロキシコンテナ120およびDNSコンテナ130に、Appコンテナ150のアドレスからAppコンテナ160のアドレスに、アプリAのアドレスが変更されたことを通知する。これにより、プロキシコンテナ120およびDNSコンテナ130のそれぞれは、それぞれの内部に格納されたアプリケーションとコンテナのアドレスとの対応関係を変更する。アプリAのサービスを提供するコンテナが、Appコンテナ150からAppコンテナ160へと変更される。
その後、更新管理コンテナ110は、状態Cとして示されるように、Appコンテナ150を削除する。
サーバー部20では、更新管理コンテナ110がAppコンテナ160の作成およびアプリAのサービスの接続先の切替(プロキシコンテナ120およびDNSコンテナ130におけるアドレス設定の変更)を管理する。これにより、サーバー部20が顧客のオンプレミス内で配置された場合であっても、上記コンテナの作成および接続先の切替が簡易にかつ低コストで実現される。
サーバー部20では、アプリAの更新が通知された後、更新後のアプリAをインストールされたAppコンテナ160の正常な動作が確認されるまでは、更新前のアプリAをインストールされたAppコンテナ150がサービスを提供する。これにより、ユーザーがアプリAのサービスを利用できない時間が短縮され得る。
[4.アプリケーション更新時の処理の模式的な流れ]
図5は、サーバー部20におけるアプリAの更新時の処理の流れを模式的に示す図である。図5に示された4つの段階([1]~[4])に従って、アプリAの更新時の処理の流れを説明する。
段階[1](新コンテナ作成)は、更新管理コンテナ110が、Appコンテナ160を作成する段階を表わす。段階[1]では、アプリAのサービスは、Appコンテナ150からユーザー900へ提供されている。本明細書では、「ユーザー900」による処理は、ユーザー900が操作する端末による処理を意味する。
段階[2](コンテナ作成完了)は、更新管理コンテナ110が、Appコンテナ160の作成を完了した段階を表わす。
段階[3](接続先切替)は、更新管理コンテナ110が、Appコンテナ160にインストールされたアプリAの正常な動作を確認した後、プロキシコンテナ120およびDNSコンテナ130に、アプリAのアドレスを、Appコンテナ150のアドレスからAppコンテナ160のアドレスに変更することを通知する段階を表わす。
段階[4](旧コンテナ削除)は、更新管理コンテナ110が、Appコンテナ150をサーバー部20から削除する段階を表わす。プロキシコンテナ120およびDNSコンテナ130が段階[3]においてアプリAに対応するアドレスをAppコンテナ150のアドレスからAppコンテナ160のアドレスへと変更しているので、段階[4]では、アプリAのサービスは、Appコンテナ160からユーザー900へ提供される。
[5.アプリケーション更新時の処理シーケンス]
図6は、アプリAの更新時に、サーバー部20において実行される処理シーケンスである。図6中の「S1」等の符号に従って、処理シーケンスを説明する。
更新管理コンテナ110は、アプリAの更新の通知を受信すると、ステップS1にて、ホストOS102に、新しいコンテナの作成を依頼する。ホストOS102は、ステップS1.1にて更新管理コンテナ110からの依頼を受信すると、ステップS1.1.1にて、LXD103に、新しいコンテナの作成を依頼する。
ステップS1.1.1.1にて、LXD103は、図4等に示されたように、ホストOS102上に新しいコンテナ(Appコンテナ160)を作成する。LXD103は、Appコンテナ160の作成を完了すると、当該完了をホストOS102に通知する。ホストOS102は、LXD103から当該通知を受けると、更新管理コンテナ110にAppコンテナ160の作成の完了を通知する。
ステップS2にて、更新管理コンテナ110は、Appコンテナ160に、更新後の(新バージョンの)アプリAのインストールを開始する。ステップS3にて、更新管理コンテナ110は、当該インストールの進捗を監視する。ステップS4は、更新管理コンテナ110が、更新後のアプリAのインストールの完了を確認したタイミングを表わす。
ステップS5にて、更新管理コンテナ110は、更新後のアプリAが正常に動作するかを確認する。たとえば、更新管理コンテナ110は、予め定められたリクエストをAppコンテナ160に送信し、Appコンテナ160から予め定められた応答を得られたことを条件として、更新後のアプリAが正常に動作すると判断する。
更新後のアプリAが正常に動作すると判断すると、ステップS6にて、更新管理コンテナ110は、プロキシコンテナ120(およびDNSコンテナ130)に、アプリAに対応するアドレス(接続先)の設定の切替を依頼する。プロキシコンテナ120(およびDNSコンテナ130)は、当該依頼に応じて設定を切り替える。プロキシコンテナ120(およびDNSコンテナ130)において設定が切り替えられることにより、アプリAのサービスの提供元が、Appコンテナ150からAppコンテナ160へと切り替えられる。
ステップS7にて、更新管理コンテナ110は、ホストOS102に、Appコンテナ150の削除を依頼する。更新管理コンテナ110からの依頼に応じて、ステップS7.1にて、ホストOS102は、LXD103に、Appコンテナ150の削除を依頼する。当該依頼は、たとえばバッチファイル(batファイル)の実行によって実現される。ホストOS102からの依頼に応じて、ステップS7.1.1.1にて、LXD103は、Appコンテナ150を削除する。
図6では、期間DAが、Appコンテナ150がアプリA(更新前)のサービスを提供する期間を表わす。期間DBが、Appコンテナ160がアプリA(更新後)のサービスを提供する期間を表わす。期間DXは、更新管理コンテナ110が、プロキシコンテナ120(およびDNSコンテナ130)に設定の切替を依頼してから、プロキシコンテナ120(およびDNSコンテナ130)において設定の切替が完了するまでの期間を表わす。
図6に示されるように、サーバー部20では、アプリAの更新時に、アプリAのサービスが提供されない期間は期間DXによって示される。一方、アプリAの更新時に、Appコンテナ150においてアプリケーションの更新が行なわれた場合、アプリAのサービスが提供されない期間は、期間DXだけでなく期間DAも含む。サーバー部20では、Appコンテナ160が作成され、当該Appコンテナ160に更新後のアプリケーションがインストールされることにより、アプリAのサービスが提供されない期間が短縮される。
[6.インストール監視用のマニュアルの取得]
図6のステップS3において説明されたように、更新管理コンテナ110は、アプリケーションのインストールの進捗を監視する。更新管理コンテナ110は、アプリケーションの更新時にマニュアルを取得し、当該マニュアルに従って上記インストールの進捗を監視してもよい。図7は、更新管理コンテナ110によるアプリケーションについてのマニュアルの取得についてのシーケンスを表わす。図7は、図6に示されたシーケンスのうち、ステップS3に関連した部分のみを示す。図7内の「S0」等の符号に従って、シーケンスを説明する。
図7の例では、ステップS0にて、ユーザー900が、更新管理システム104Aに、サーバー部20内のアプリAの更新を依頼する。より具体的には、ユーザー900は、端末を利用して、更新管理システム104Aに上記依頼を送信する。更新管理システム104Aは、サーバー部20内に配置されていてもよいし、サーバー部20外であってもよい。
ステップS0における依頼に応じて、ステップS0.1にて、更新管理システム104Aは、更新管理コンテナ110に、ログ監視マニュアルを送信する。ログ監視マニュアルは、アプリAのインストールの進捗の監視に利用される。ログ監視マニュアルは、たとえば、インストールに関するログファイルとインストール状況とを関連付ける。
ステップS3にて、更新管理コンテナ110は、Appコンテナ160に対する、更新後のアプリケーションのインストールの進捗を監視する。一例では、更新管理コンテナ110は、Appコンテナ160に、インストールに関するログを要求する。Appコンテナ160は、更新管理コンテナ110にログファイルを送信する。更新管理コンテナ110は、上記ログ監視マニュアルを参照することにより、Appコンテナ160から受信したログファイルに基づいてインストールの進捗状況を特定する。
特定された進捗状況が再インストールを要する状況であれば、ステップS3.1にて、更新管理コンテナ110は、Appコンテナ160に対して、更新後のアプリケーションを再インストールする。
特定された進捗状況がAppコンテナ160の再構築を要するものであれば、ステップS3.2にて、更新管理コンテナ110は、ホストOS102に対して、新しいコンテナの作成を依頼する。ステップS3.2の依頼に応じて、ホストOS102は、ステップS1.1.1(図6)と同様に、LXD103に新しいコンテナの作成を依頼する。その後、LXD103は、ステップS1.1.1.1(図6)と同様に、ホストOS102上に新しいコンテナを作成する。
特定された進捗状況が、Appコンテナ160において更新後のアプリケーションのインストールが正常に完了した状況であれば、図6のステップS4以降に制御が進められる。
図7に示されるように、更新管理コンテナ110が、マニュアルを取得し、当該マニュアルに従ってインストールの進捗を管理することにより、アプリケーションのインストールにおけるエラーが確実に検知される。特に、サーバー部20では、複数のコンテナのそれぞれに、ホストOS102とは別のOSが存在する。したがって、複数のコンテナのそれぞれが、互いに別の空間を構成する。したがって、各コンテナへのアプリケーションのインストールにおいて、ホストOS102がエラーを検知することが困難な場合がある。図7の例では、更新管理コンテナ110が、上記マニュアルを取得して、インストールの進捗を管理するため、確実にエラーが検知される。
[7.旧コンテナから新コンテナへのリクエストの転送]
サーバー部20において、新しいコンテナへのアプリケーションのインストールが完了すると、更新管理コンテナ110は、更新前のコンテナにリクエストの転送を指示してもよい。これにより、更新前のコンテナへのリクエストが処理されないままコンテナが切替られて、ユーザーと更新前のコンテナとの間のセッションが途切れる、という事態が回避され得る。
図8は、リクエストの転送が指示される状況を説明するための図である。図8に示された「A1」等の符号に従って、リクエストの転送に関連した処理を説明する。
「A1:切替モードに設定」では、「A1:切替モードに設定」として示されるように、更新管理コンテナ110は、旧コンテナ(Appコンテナ150)を切替モードに設定する。
その後、Appコンテナ150は、「A2:新リクエスト」として示されるように、ユーザー900からのリクエストを受けると、「A3:転送」として示されるように、新コンテナ(Appコンテナ160)に当該リクエストを転送する。
Appコンテナ160は、「A4:レスポンス」として示されるように、転送されたリクエストに対するレスポンスをAppコンテナ150に送信する。Appコンテナ150は、「A5:レスポンス」として示されるように、Appコンテナ160からのレスポンスをユーザー900へ送信する。
Appコンテナ150は、切替モードに設定された後、予め定められた期間ユーザーからリクエストを受けなければ、その旨を更新管理コンテナ110へ通知する。更新管理コンテナ110は、Appコンテナ150からの通知を受けると、図6のステップS6として説明されたように、プロキシコンテナ120(およびDNSコンテナ130)に、アプリケーションに対応するアドレス(接続先)の設定の切替を依頼する。
図9は、旧コンテナに対する切替モードの設定のシーケンスを示す図である。図9は、図6に示されたシーケンスのうち、ステップS6に関連した部分のみを示す。図9に示された「S5.1」等の符号に従って、シーケンスを説明する。
図9の例では、更新管理コンテナ110は、ステップS5(図6)において更新後のアプリAが正常に動作することを確認した後、ステップS5.1を実行する。ステップS5.1にて、更新管理コンテナ110は、Appコンテナ150に、切替モードに移行することを指示する。
その後、ステップS5.2にてユーザー900からリクエストを受けると、ステップS5.3にて、Appコンテナ150は、当該リクエストをAppコンテナ160へ転送する。図9のステップS5.2は、図8の「A2」に対応する。図9のステップS5.3は、図8の「A3」に対応する。Appコンテナ160は、当該リクエストに対するレスポンスをAppコンテナ150に送信する。Appコンテナ150は、Appコンテナ160からのレスポンスをユーザー900に送信する。
切替モードに設定された後、予め定められた期間ユーザー900からのリクエストを受けなければ、ステップS5.4にて、Appコンテナ150は、更新管理コンテナ110にその旨を通知する。図9では、当該通知が「終了通知」として示されている。
更新管理コンテナ110は、Appコンテナ150から「終了通知」を受けると、ステップS6にて、プロキシコンテナ120(およびDNSコンテナ130)に、アプリケーション(アプリA)に対応するアドレスの設定の切替を依頼する。ステップS7にて、プロキシコンテナ120(およびDNSコンテナ130)は、アプリAに対応するアドレスの設定を切り替える。
[8.更新管理コンテナの更新]
図10は、サーバー部20における、更新管理コンテナ110の更新を模式的に示す図である。図10中の「B1」等の符号に従って、更新管理コンテナ110の更新の流れを説明する。
更新管理コンテナ110は、「B1:新管理コンテナ作成」として記載されるように、当該更新管理コンテナ110にインストールされたアプリケーションの更新時期が到来したことを検知すると、他のコンテナにインストールされたアプリケーションの更新と同様に、新しいコンテナを作成する。図10において、新しく作成されたコンテナは、更新管理コンテナ110Aとして示されている。
「B2:新管理コンテナ作成完了」として記載されるように、新しいコンテナの作成が完了すると、更新管理コンテナ110は、当該新しいコンテナに、更新後のアプリケーションをインストールする。インストールされるアプリケーションは、各コンテナのアプリケーションの更新を管理するためのアプリケーションである。
その後、「B3:接続先切替」として記載されるように、更新管理コンテナ110は、プロキシコンテナ120(およびDNSコンテナ130)に、更新管理コンテナに対応するアドレスの設定の切替を依頼する。
その後、「B4:削除依頼」として記載されるように、更新管理コンテナ110は、ホストOS102に対して、更新管理コンテナ110の削除を依頼する。これに応じて、「B5:削除実行」として示されるように更新管理コンテナ110が削除される。その後、サーバー部20では、更新管理コンテナ110Aによって、各コンテナにインストールされたアプリケーションの更新が管理される。
図11は、更新管理コンテナの更新のシーケンスを示す図である。図11中の「S1」等の符号に従って、シーケンスを説明する。
更新管理コンテナ110は、当該更新管理コンテナ110にインストールされたアプリケーションの更新の通知を受信すると、ステップS1にて、ホストOS102に、新しいコンテナの作成を依頼する。ホストOS102は、ステップS1.1にて更新管理コンテナ110からの依頼を受信すると、ステップS1.1.1にて、LXD103に、新しいコンテナの作成を依頼する。
ステップS1.1.1.1にて、LXD103は、ホストOS102上に新しいコンテナ(更新管理コンテナ110A)を作成する。LXD103は、更新管理コンテナ110Aの作成を完了すると、当該完了をホストOS102に通知する。ホストOS102は、LXD103から当該通知を受けると、更新管理コンテナ110に更新管理コンテナ110Aの作成の完了を通知する。
ステップS2にて、更新管理コンテナ110は、更新管理コンテナ110Aに、更新後の(新バージョンの)アプリケーションのインストールを開始する。ステップS3にて、更新管理コンテナ110は、当該インストールの進捗を監視する。ステップS4は、更新管理コンテナ110が、更新後のアプリケーションのインストールの完了を確認したタイミングを表わす。
ステップS5にて、更新管理コンテナ110は、更新後のアプリケーションが正常に動作するかを確認する。たとえば、更新管理コンテナ110は、予め定められたリクエストを更新管理コンテナ110Aに送信し、更新管理コンテナ110Aから予め定められた応答を得られたことを条件として、更新後のアプリケーションが正常に動作すると判断する。
更新後のアプリケーションが正常に動作すると判断すると、ステップS6にて、更新管理コンテナ110は、プロキシコンテナ120(およびDNSコンテナ130)に、更新管理コンテナに対応するアドレス(接続先)の設定の切替を依頼する。プロキシコンテナ120(およびDNSコンテナ130)は、当該依頼に応じて設定を切り替える。プロキシコンテナ120(およびDNSコンテナ130)において設定が切り替えられることにより、更新管理コンテナのサービスの提供元が、更新管理コンテナ110から更新管理コンテナ110Aへと切り替えられる。
ステップS7にて、更新管理コンテナ110は、ホストOS102に、当該更新管理コンテナ110の削除を依頼する。更新管理コンテナ110からの依頼に応じて、ステップS7.1にて、ホストOS102は、LXD103に、更新管理コンテナ110の削除を依頼する。当該依頼は、たとえばバッチファイル(batファイル)の実行によって実現される。ホストOS102からの依頼に応じて、ステップS7.1.1.1にて、LXD103は、更新管理コンテナ110を削除する。
今回開示された各実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合わせても、実施することが意図される。
10 プリンター部、20 サーバー部、30 操作パネル、100 情報処理機器、101 物理マシン、104 システム管理ソフトウェア、104A 更新管理システム、110,110A 更新管理コンテナ、120 プロキシコンテナ、130 DNSコンテナ、140,150,160 Appコンテナ。

Claims (4)

  1. ユーザーのプロセスを実行する仮想的な環境を構成するコンテナを2以上収容する情報処理装置において、コンテナにインストールされたアプリケーションを更新する方法であって、
    前記2以上のコンテナは、第1のアプリケーションをインストールされた第1のコンテナと、前記情報処理装置の各コンテナにインストールされたアプリケーションの更新を管理する更新管理コンテナと、前記2以上のコンテナのそれぞれのアドレスを管理するアドレス管理コンテナとを含み、
    前記方法は、
    前記更新管理コンテナが、前記情報処理装置において第2のコンテナを作成するステップと、
    前記更新管理コンテナが、前記第2のコンテナに更新後の前記第1のアプリケーションをインストールするステップと、
    前記更新管理コンテナが、前記第2のコンテナにおける、前記更新後の第1のアプリケーションの動作を確認するステップと、
    前記更新管理コンテナが、前記更新後の第1のアプリケーションの動作の確認後、前記アドレス管理コンテナに、前記第1のアプリケーションに対応するアドレスの変更を通知するステップとを備え、
    前記アドレスの変更は、前記第1のコンテナのアドレスから前記第2のコンテナのアドレスへの変更であり、
    前記情報処理装置において、前記2以上のコンテナのそれぞれはホストOS(オペレーティングシステム)上で動作し、
    前記情報処理装置は、前記ホストOS上でコンテナの作成および削除を実行するシステムマネージャーをインストールされており、
    前記更新管理コンテナが前記第2のコンテナを作成するステップは、
    前記更新管理コンテナが、前記ホストOSに、コンテナの作成を依頼するステップと、
    前記ホストOSが、前記更新管理コンテナからの作成の依頼に応じて、前記システムマネージャーに、コンテナの作成を依頼するステップと、
    前記システムマネージャーが、前記ホストOSからの作成の依頼に応じて、前記第2のコンテナを作成するステップとを含み、
    前記方法は、
    前記更新管理コンテナが、前記アドレス管理コンテナにアドレスの変更を通知した後、前記ホストOSに、前記第1のコンテナの削除を依頼するステップと、
    前記ホストOSが、前記更新管理コンテナからの削除の依頼に応じて、前記システムマネージャーに、前記第1のコンテナの削除を依頼するステップと、
    前記システムマネージャーが、前記ホストOSからの削除の依頼に応じて、前記第1のコンテナを削除するステップとをさらに備え、
    前記更新管理コンテナは、前記第1のコンテナによって構成され、
    前記第1のアプリケーションは、前記情報処理装置の各コンテナにインストールされたアプリケーションの更新を管理するためのアプリケーションである、方法。
  2. 前記更新管理コンテナが、前記更新後の第1のアプリケーションのマニュアルを取得するステップをさらに備え、
    前記更新管理コンテナは、前記マニュアルに従って、前記更新後の第1のアプリケーションの動作を確認する、請求項に記載の方法。
  3. 前記更新管理コンテナが、前記更新後の第1のアプリケーションの動作の確認後、前記第1のコンテナに対して、前記第1のアプリケーションに対するユーザーからのリクエストを前記第2のコンテナに転送することを指示するステップをさらに備える、請求項1または請求項に記載の方法。
  4. コンピューターのプロセッサーに、請求項1~請求項のいずれか1項に記載の方法を実行させるように構成されたプログラム。
JP2017233505A 2017-12-05 2017-12-05 アプリケーションの更新方法およびプログラム Active JP7069672B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017233505A JP7069672B2 (ja) 2017-12-05 2017-12-05 アプリケーションの更新方法およびプログラム
CN201811448175.3A CN109871222B (zh) 2017-12-05 2018-11-30 应用的更新方法以及记录介质
US16/207,504 US20190171443A1 (en) 2017-12-05 2018-12-03 Method of Updating Application and Recording Medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017233505A JP7069672B2 (ja) 2017-12-05 2017-12-05 アプリケーションの更新方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019101866A JP2019101866A (ja) 2019-06-24
JP7069672B2 true JP7069672B2 (ja) 2022-05-18

Family

ID=66657632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017233505A Active JP7069672B2 (ja) 2017-12-05 2017-12-05 アプリケーションの更新方法およびプログラム

Country Status (3)

Country Link
US (1) US20190171443A1 (ja)
JP (1) JP7069672B2 (ja)
CN (1) CN109871222B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10776099B2 (en) * 2019-01-29 2020-09-15 Salesforce.Com, Inc. Release orchestration for cloud services
US10768923B2 (en) 2019-01-29 2020-09-08 Salesforce.Com, Inc. Release orchestration for performing pre release, version specific testing to validate application versions
US11003434B2 (en) * 2019-01-29 2021-05-11 Salesforce.Com, Inc. Cloud services release orchestration with a reusable deployment pipeline
JP2021033469A (ja) * 2019-08-20 2021-03-01 ファナック株式会社 情報処理装置及びプログラム
CN110912734B (zh) * 2019-10-31 2022-07-22 北京浪潮数据技术有限公司 云管理平台实现容器应用多维度灰度发布方法及装置
EP4060482A4 (en) * 2019-11-15 2024-01-17 Lg Electronics Inc SEAMLESS CONTAINER UPDATES IN A CONTAINER-BASED VEHICLE SYSTEM
JP7460564B2 (ja) 2021-02-16 2024-04-02 Kddi株式会社 コンテナ環境構築システム、方法およびプログラム
WO2023248282A1 (ja) * 2022-06-20 2023-12-28 日本電信電話株式会社 コンテナ基盤クラスタのアップデート方法、コンテナ基盤クラスタのアップデートシステム、更新管理装置、及びアップデート制御プログラム
WO2024057408A1 (ja) * 2022-09-13 2024-03-21 日本電信電話株式会社 制御装置、制御方法、及びプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140304698A1 (en) 2012-06-18 2014-10-09 Tellabs Operations, Inc. Methods and Apparatus for Performing In-Service Software Upgrade for a Network Device Using System Virtulization
US20150089577A1 (en) 2013-09-20 2015-03-26 Open Text S.A. System and method for updating downloaded applications using managed container
JP2016048833A (ja) 2014-08-27 2016-04-07 日本電信電話株式会社 ネットワークシステム及びそのバージョン変更方法
US20160205518A1 (en) 2015-01-14 2016-07-14 Kodiak Networks Inc. System and Method for Elastic Scaling using a Container-Based Platform
US20170090897A1 (en) 2015-09-26 2017-03-30 Cisco Technology, Inc. In-service upgrade of kernel loadable modules
WO2017130030A1 (en) 2016-01-29 2017-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Rolling upgrade with dynamic batch size

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5873097A (en) * 1993-05-12 1999-02-16 Apple Computer, Inc. Update mechanism for computer storage container manager
US8407696B2 (en) * 2007-06-04 2013-03-26 International Business Machines Corporation Method for delivering, testing, and applying software patches or other changes to a conventionally installed application in virtual application containers
TW201250482A (en) * 2011-06-02 2012-12-16 Hon Hai Prec Ind Co Ltd System and method for updating virtual machine templates
CN104410672B (zh) * 2014-11-12 2017-11-24 华为技术有限公司 网络功能虚拟化应用升级的方法、转发业务的方法及装置
CN104503882B (zh) * 2014-12-25 2018-10-19 北京京东尚科信息技术有限公司 容器管理方法及装置
CN106341438B (zh) * 2015-07-10 2020-02-18 阿里巴巴集团控股有限公司 请求处理方法和装置
CN107196982B (zh) * 2016-03-14 2021-01-22 阿里巴巴集团控股有限公司 一种用户请求的处理方法和装置
CN105893133A (zh) * 2016-03-31 2016-08-24 乐视控股(北京)有限公司 基于容器技术的应用服务无缝迁移方法和系统
CN106020930B (zh) * 2016-05-13 2019-07-23 深圳市中润四方信息技术有限公司 一种基于应用容器的应用管理方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140304698A1 (en) 2012-06-18 2014-10-09 Tellabs Operations, Inc. Methods and Apparatus for Performing In-Service Software Upgrade for a Network Device Using System Virtulization
US20150089577A1 (en) 2013-09-20 2015-03-26 Open Text S.A. System and method for updating downloaded applications using managed container
JP2016048833A (ja) 2014-08-27 2016-04-07 日本電信電話株式会社 ネットワークシステム及びそのバージョン変更方法
US20160205518A1 (en) 2015-01-14 2016-07-14 Kodiak Networks Inc. System and Method for Elastic Scaling using a Container-Based Platform
US20170090897A1 (en) 2015-09-26 2017-03-30 Cisco Technology, Inc. In-service upgrade of kernel loadable modules
WO2017130030A1 (en) 2016-01-29 2017-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Rolling upgrade with dynamic batch size

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
中井 悦司,第1章 プログラマのためのコンテナインフラ環境とは? いっきに押さえるDockerの基礎からKubernetesまで,Software Design,2017年02月18日,No. 316,pp. 18-23
加藤 大受 Daiju KATO,テスト自動化の見取り図,ソフトウェア・テストPRESS,2006年08月25日,Vol. 3,pp. 2-14

Also Published As

Publication number Publication date
CN109871222A (zh) 2019-06-11
US20190171443A1 (en) 2019-06-06
CN109871222B (zh) 2022-10-18
JP2019101866A (ja) 2019-06-24

Similar Documents

Publication Publication Date Title
JP7069672B2 (ja) アプリケーションの更新方法およびプログラム
US8417796B2 (en) System and method for transferring a computing environment between computers of dissimilar configurations
US6971095B2 (en) Automatic firmware version upgrade system
JP4533780B2 (ja) 画像形成システム、画像形成装置、端末装置及び端末装置のドライバの更新方法
JP7158864B2 (ja) システムおよびそれを用いる方法
WO2010116473A1 (ja) 管理サーバ、ブートサーバ、ネットワークブートシステム、ネットワークブート方法、ブートイメージ選択プログラムおよびブートイメージ提供プログラム
US20100245897A1 (en) Electronic apparatus and image forming system
US9600751B2 (en) Image forming apparatus and control method thereof with a determination whether an application relates to a dynamic update for reflecting change of the network setting without rebooting the apparatus
JP2009122986A (ja) 情報処理システム、情報処理プログラム、および情報処理装置
JP2015125472A (ja) 管理装置、管理装置の制御方法及びプログラム
JP2016018339A (ja) システム、及びシステムの制御方法
JP6613690B2 (ja) ネットワーク装置設定方法、情報処理装置及びbiosプログラム
JP2018200536A (ja) 画像形成システム、サーバー、及びファームウェア更新制御方法
JP5766065B2 (ja) 管理システム、サーバ装置、管理方法およびコンピュータプログラム
JP4962595B2 (ja) 情報処理プログラム、情報処理装置、および情報処理システム
JP6973063B2 (ja) 画像処理システムおよび情報処理機器
JP4378338B2 (ja) 情報処理装置、デバイス設定方法、記憶媒体、プログラム
JP6016855B2 (ja) インストーラープログラム、ドライバープログラムおよび画像形成装置
JP2015121887A (ja) 情報処理装置及びその制御方法、およびプログラム
KR20140062241A (ko) Pc의 원격 복구 구성 장치, 원격 복구 시스템 및 원격 복구 방법
JP2020052777A (ja) ネットワークデバイス、方法、及びプログラム
JP2014120064A (ja) 情報処理装置、情報処理方法、情報処理システムおよびプログラム
JP7106870B2 (ja) プログラム更新システム、及びプログラム更新方法
JP6953828B2 (ja) 情報処理装置及びプログラム
JP7019968B2 (ja) 情報処理プログラム、情報処理装置および情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211215

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: 20220405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220418

R150 Certificate of patent or registration of utility model

Ref document number: 7069672

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150