JP2021002325A - ルールで駆動されるソフトウェアデプロイメントエージェント - Google Patents

ルールで駆動されるソフトウェアデプロイメントエージェント Download PDF

Info

Publication number
JP2021002325A
JP2021002325A JP2020057123A JP2020057123A JP2021002325A JP 2021002325 A JP2021002325 A JP 2021002325A JP 2020057123 A JP2020057123 A JP 2020057123A JP 2020057123 A JP2020057123 A JP 2020057123A JP 2021002325 A JP2021002325 A JP 2021002325A
Authority
JP
Japan
Prior art keywords
computing system
software
network
system state
rule
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.)
Withdrawn
Application number
JP2020057123A
Other languages
English (en)
Inventor
オスマン・サルード
Sarood Osman
ランダル・ウェイン・フレイ
Wayne Frei Randall
ロバート・ジェイ.・フライデー
J Friday Robert
ケ−ミン・ロー
Keh-Ming Luoh
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.)
Juniper Networks Inc
Original Assignee
Juniper Networks 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 Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of JP2021002325A publication Critical patent/JP2021002325A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/044Network management architectures or arrangements comprising hierarchical management structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0859Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions
    • H04L41/0863Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions by rolling back to previous configuration versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/28Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices

Abstract

【課題】ソフトウェアインストールのルールベースのデプロイメントを提供する。【解決手段】コンピュータシステムのための動作パラメータが、値の履歴データベースを生成するために一定時間モニタリングされる。コンピュータシステムは、ソフトウェアインストールの複数のインスタンスを含む。複数のインスタンスの一部分は、ソフトウェアの新しいバージョンで更新される。動作パラメータは次いで、新しいバージョンがコンピュータシステムのパフォーマンスの改善または低下をもたらすかどうかを定量化するためにモニタリングされる。改善または低下は、デプロイメント後の動作パラメータの値をそれらの履歴値と比較することに基づく。インストール後の動作パラメータの評価に依存して、インストールは、低下が示された場合にロールバックされる。そうでない場合、新しいソフトウェアバージョンは、追加のインストールインスタンスに伝播される。【選択図】図5

Description

関連出願の相互参照
[0001] 本出願は、2019年6月23日出願の「Rules Engine for Software Propagation」と題する米国仮特許出願第62/865,251号の優先権を主張する。この先願の内容は、本出願の一部と見なされ、その全体が参照により本明細書に組み込まれる。
[0002] 本出願は、ワイヤレスシステムの動作の改善に関し、特にハイブリッドクラウドデプロイメントトポロジにおけるワイヤレスネットワークのセキュリティ、サービス性、および容量の改善に関する。
[0003] Wi−Fiネットワークなどのワイヤレスネットワークは、専用サーバまたはプライベートクラウド上の顧客構内にデプロイされ得る。別の典型的なデプロイメントは、顧客のオンプレミス(on-premises)Wi−Fiネットワークのための管理機能を提供するクラウドベースの実装を利用する。
[0004] 顧客のインフラストラクチャがWi−Fiネットワークの管理に使用されるとき、顧客のワイヤレスネットワークを横断するデータは顧客の構内を出ない。このトポロジは、ネットワークの動作を改善し得る情報の恩恵を受けないこともある。例えば、他の同様のWi−Fiネットワークの挙動から導出される情報は、このWi−Fiネットワークと共有されない。このデプロイメントトポロジはまた、Wi−Fiネットワークの動作へのベンダーの可視性の欠如に起因する、あまり効率的でない問題解決を経験し得る。このトポロジが使用されるとき、Wi−Fiネットワークのネットワークコンポーネント上で動作するソフトウェアおよび/またはファームウェアのアップデート、専門の技術者がWi−Fiネットワークにサービス提供するために顧客先に派遣される必要があり得る。したがって、このトポロジにおける中央管理の欠如により、動作コストが増加する。
[0005] 複数の顧客Wi−Fiネットワークからのデータを管理および受信するクラウドベースの実装は、クラウド実装によって管理されるネットワークの各ネットワークの動作を最適化するために、複数の顧客からの、システムレベルエクスペリエンス(SLE:system level experience)データを含むデータを利用できるという利点を有する。
[0006] 開示される実施形態のうちの1つまたは複数内の一例となる2つの例示的なデプロイメントを示す図。 [0007] 開示される実施形態のうちの少なくとも一部のコンポーネントを示す概略図。 [0008] 履歴の動作パラメータ値、例えばSLEと、新しいソフトウェアのインストールに起因するそれら値の可能な変化とを示すグラフ。 [0009] 開示される実施形態のうちの1つまたは複数で実装され得る一例のプロセスのフローチャート。 [0010] 開示される実施形態のうちの1つまたは複数で実装され得るプロセスのフローチャート。 [0011] 開示される実施形態のうちの一部で実装される例示的なデータ構造を示す図。 [0012] 開示される実施形態のうちの1つまたは複数で実装される例示的なメッセージ部分を示す図。 [0013] 開示される実施形態のうちの1つまたは複数で行われるプロセスのフローチャート。 [0014] 開示される実施形態のうちの1つまたは複数で行われるプロセスのフローチャート。 [0015] 開示される実施形態のうちの1つまたは複数で実装され得るルールを構成するための一例のユーザインターフェースを示す図。 [0016] 開示される実施形態のうちの1つまたは複数で実装される一例のユーザインターフェースの図。 [0017] 本明細書に説明される技法(例えば方法)のうちのいずれか1つまたは複数を行い得る一例の機械のブロック図を例示する図。
詳細な説明
[0018] 上述のように、顧客のWi−Fi実装を管理するために集中型ネットワーク管理システムを使用することは、顧客およびベンダーの両方にいくつかの利益を提供する。例えば、ベンダーは、Wi−Fi管理の最良慣行に関係する実質的な知識を蓄積し、それらの中央ネットワーク管理システムを介して習得されたそれらの教えを、顧客のWi−Fiエクスペリエンスを改善するために適用することができる。さらに、ベンダーは、顧客のWi−Fiネットワーク内で動作するネットワークコンポーネントのソフトウェアおよび/またはファームウェアのアップグレードを直接管理することができる。したがって、顧客は、公に利用可能である新しいソフトウェアまたはファームウェアリリースと、彼らのWi−Fiネットワーク内での実装との間のラグが低減されることにより恩恵を受け得る。しかしながら、一部の顧客は、彼らのWi−Fiネットワークへのアクセスをベンダーに提供することに抵抗がある。例えば、多くの顧客ネットワークは機密データを通信し、それを妥協することは、顧客への相当なビジネスリスクを表す。このリスクを緩和するために、顧客が、彼らのネットワーク上のアクセス制御を維持し、ベンダーによる彼らのWi−Fiネットワークへの多くのタイプのアクセスを防止することは珍しくない。1つの例では、多次元からネットワークのパフォーマンスを記述するシステムレベルエクスペリエンス(SLE)パラメータのモニタリングを防止するようにアクセスが制限される。ベンダーによるこのタイプの情報へのアクセスがないことは、ベンダーが顧客のWi−Fiネットワークの最良の管理法に関して適切な判定を行えることを抑える可能性がある。例えば、ベンダーが、Wi−Fiネットワークの特定の領域におけるジッタまたはパケット損失の統計などのパラメータへのアクセスを有さない場合、ネットワークの受信機および/または送信機の最良のチューニング法をベンダーが必ずしも十分に決定できるわけではない。
[0019] 必要とされるものは、顧客のWi−Fiネットワーク(単数または複数)のセキュリティを妥協することなく、当該ネットワーク(単数または複数)を中央管理する能力を提供するセキュアなシステムである。開示される実施形態は、データプライバシーについての顧客の懸念を晴らしながらベンダーによる顧客のWi−Fiネットワークをモニタリングする能力の改善を提供する。特に、開示される実施形態は、顧客のネットワーク内にネットワーク管理エージェントをデプロイする。ネットワーク管理エージェントは、顧客のネットワークにおける、アクセスポイントなどのネットワークデバイスを管理する。いくつかの実施形態では、ネットワーク管理エージェントは、顧客のネットワーク内のネットワークデバイス上で動作するソフトウェア/ファームウェアのためのソフトウェア/ファームウェアアップデートをダウンロードする。ダウンロードは、通常ネットワークデバイスのベンダーによって提供される、インターネットベースのサービスとの通信を介して達成される。ネットワーク管理エージェントはまた、ソフトウェア/ファームウェアアップデートのデプロイメントがいかに統制および/または管理されるかを定義するルールを、ベンダーから電子的に受信する。エージェントは、顧客のネットワーク内でベンダーによって提供されたルールを評価する。ルールは、顧客ネットワークの1つまたは複数の動作パラメータを参照し得る。さらに、ルールは、顧客が顧客の環境の外にさらすことを望まない、顧客のネットワーク内のデータを参照し得る。ネットワーク管理エージェントが顧客の環境内で動作しているので、ネットワーク管理エージェントは、通常であれば顧客の環境の外のデバイスには利用不可能となる顧客のネットワーク環境への可視性を有する。したがって、ネットワークエージェントは、顧客の環境外で評価されることができない、ベンダーによって指定されたルールを評価することができる。さらに、ネットワークエージェントに顧客環境内でルールを評価させることによって、評価を行う必要がある顧客のデータのプライバシーは、ベンダーへの開示から保護される。顧客のデータが顧客環境を出ないので、この情報の他の任意の開示のリスクも最小限にされる。エージェントは、少なくとも一部の実施形態では、ソフトウェア/ファームウェアデプロイメントプロセス上でベンダーにステータス情報を提供する。このステータス情報は、顧客へのセキュリティリスクを表すことになる任意の顧客プライベートデータの詳細を明らかにすることなくベンダーに提供される。例えば、特定のソフトウェアデプロイメントルールが満足されるかどうかを決定するために評価される動作パラメータ値の特定の値は、顧客環境外のエンティティのステータスアップデートに含まれない。代わりに、機密の顧客のデータを明らかにしない高レベルのステータスインジケーション(ユーザ名または特定のネットワークパフォーマンスパラメータなど)が提供される。
[0020] 開示される実施形態の少なくとも一部は、Wi−Fiネットワークに関係するデータを分類する。例えば、データは、いくつかの実施形態では、ユーザデータ(例えばユーザに送られたりユーザから送られたりするデータ)、ワイヤレス端末データ(例えば端末のロケーション、端末のモビリティ等)、顧客のネットワークにおけるIPアドレス、動作データ(RSSI、容量、スループット等)、異なるデバイス上のアプリケーションソフトウェアのバージョン(例えば各AP上で動作するソフトウェアのバージョン等)、ソフトウェアステータスデータ(例えば様々なソフトウェアモジュールのステータス等)、HWステータス(例えばCPU利用率、メモリ利用率、サーバ温度等)などのカテゴリに分類される。
[0021] ベンダーまたは別の場合顧客環境の外に、ユーザデータ、内部ネットワークIPアドレス等のような情報をさらすことは、セキュリティリスクを提示し得る。しかしながら、HWステータス、顧客のWi−Fiネットワーク上の特定サーバの温度、CPU利用率、メモリ利用率、ネットワーク利用率等のような情報を提示することは、あったとしても最小限のセキュリティリスクしか提示しない。
[0022] 開示される実施形態の一部は、顧客のネットワークを通して流れるデータにタグ付けし、それを適宜カテゴリ化する。例えば、データは、機密または機密でないとしてカテゴリ化されることができる。機密情報は、適宜タグ付けされ、顧客構内内に囲われる。同様に、以下により詳細に説明されるように、リスクがより低いまたは全くない情報が、ベンダーのクラウドと共有され、顧客のWi−Fiネットワークの動作を改善するために利用される。
[0023] 図1は、開示される実施形態のうちの1つまたは複数内の一例となる2つの例示的なデプロイメント102a−bを示す。デプロイメント102a−bの各々は、顧客のオンプレミスネットワーク106内に物理的に位置する1つまたは複数のアクセスポイント(それぞれ104a−bおよび104c−d)を直接制御するように構成される。上述のように、一部の解決法では、ネットワークコンポーネントの製造元またはベンダーが顧客のWi−Fiネットワークを直接管理する場合、ベンダーは、一部の顧客によって機密性が高いとタグ付けされたデータセットへのアクセスを取得し得る。これは望ましくないこともある。
[0024] 図1を再度参照すると、デプロイメント102a−bによって示される構成は、セキュリティの懸念により、ベンダーが顧客のネットワークへの直接アクセスおよび制御を有することを防止しようと試みる顧客によって選ばれ得る。これらの顧客は、図1に示される構成をデプロイすることを選び、この構成は、顧客によって制御されるセキュアにされたデータセンターにインストールされたコンピューティングリソースに依存する。
[0025] 図1のデプロイメント構成では、デプロイメント102a−bの製造元またはベンダーは、デプロイメント102a−bが依存するハードウェアリソース、例えばサーバ1(108a)およびサーバ2(108b)への制限付きアクセス(および認証を介したアクセス)を有する。例示された構成では、ベンダーは、AP104a−dへのアクセスも、顧客のオンプレミスネットワーク106上のいずれの他のサーバまたはアプリケーションへのアクセスも有さない。さらに別の実施形態によれば、ベンダーは、顧客のデータセンター内のサーバ(単数または複数)108a−b上で動作するアプリケーションへのアクセスが限定され得る。このアクセスは、例えばSSHなどの、セキュアにされていないネットワーク上でセキュアにネットワークサービスを動作させるための暗号ネットワークプロトコル、または他の任意のリモートコマンドラインログインおよびリモートコマンド実行プログラムを使用して容易にされ得る。例えば、Diamond Technologies社からのデータ収集ソフトウェアなどのハードウェアステータスコレクタからのハードウェア情報が、サーバ(単数または複数)108a−b上で動作するエージェントを介してネットワーク管理システム112に送られ得るか、または代替的にSSHサービスを介してアクセスされ得る。
[0026] 開示される実施形態の一部では、セキュアにされた顧客のネットワーク(例えばサーバ(単数または複数)108a−b)と外部世界との間の接続のみが、(ベンダーのクラウド(図示せず)における)ネットワーク管理システム112と顧客のセキュアにされたデータセンターにおけるサーバ108a−b上にデプロイされたエージェントとの間の単一のセキュアにされた接続を介する。ベンダーのクラウドにおけるネットワーク管理システム112と顧客構内のエージェントとの間の接続は、この接続を介するすべてのデータフローをモニタリングおよび制御することを容易にする単一のセキュアにされたデータ接続である。
[0027] 開示される実施形態は、複数の動作モードを提供する。第1の動作モードは、顧客構内のデバイスにデプロイされる必要がある新しいソフトウェアバージョンをベンダーが有するモードである。この動作モードは、以下に説明されるソフトウェア分散の実施形態の一部としてより詳細に説明される。
[0028] 別の動作モードは、Wi−Fiネットワークのステータスをモニタリングすることに関係する。これらの実施形態では、サーバ108a−bのうちの1つまたは複数上で実行されるエージェントが、ネットワークについてまたはネットワークのユーザについての機密情報を妥協することなく製造元が顧客のネットワークへの可視性を得るのを助けることができる情報を収集する。エージェントが収集し、ベンダーのネットワーク管理システム112に伝達される、例示的ないくつかのタイプの情報は、テレメトリ、接続性、またはイベントを含む。
[0029] テレメトリ情報は、各サーバ108a−b上のソフトウェアモジュールによって収集されるステータスデータを含み得る。例えば、ステータスエンジンは、管理されている1つまたは複数のネットワークコンポーネントからハードウェアおよび/またはソフトウェアステータス情報を収集し、情報をネットワーク管理システム112に伝達し得る。この情報は、これらに限定されないが、CPU利用率、メモリ利用率、および/または温度を含む。いくつかの実施形態では、テレメトリ情報は、連続して収集され、ネットワーク管理システム112に周期的に送られる。代替的に、情報は、所定のしきい値と比較され、データが所定のしきい値を超えた場合にのみ、ネットワーク管理システム112に送られ得る。
[0030] 接続性イベントは、ネットワーク管理システム112への接続性を失ったエージェントが、ネットワーク管理システム112との通信を再確立できたらすぐにネットワーク管理システム112に通知するメッセージである。
[0031] イベントデータは、エージェントを動作させるサーバ上で予期していないイベントが起こったときにネットワーク管理システム112に通知することに関係する。予期していないイベントの一例は、顧客のIT技術者がサーバ108a−bのいずれかで動作するサービスをディセーブルにする(または停止する)ことに起因し得る。そのようなイベントが起こったとき、エージェント(図示せず)は、いくつかの実施形態では、そのようなイベントをネットワーク管理システム112に通知し、ベンダーを促して、顧客にコンタクトして顧客のデータセンター内のデプロイメント102a−bのうちの1つまたは複数の現在の構成を理解させ得る。
[0032] エージェントは、ネットワーク管理システム112の単一のデバイスと通信するように構成され得るので、顧客のネットワークのためのファイアウォールまたは他のアクセスデバイスは次いで、単一のアクセスポイントのみをオープンにするように構成され、したがってセキュリティリスクを低減する。すべてのトラフィックを単一の通信チャネルを通るように方向付けることによって、顧客は、通信リンクをより容易にモニタリングし、一般的な低セキュリティリスクデータとしてマークされたデータ以外のデータ/情報を含む任意の通信データパケットを止めることができる。
[0033] 顧客構内上の機器のIPアドレス、デバイス間で交換されたデータ、オンプレミスのWTのロケーション、および機密情報としてマークされた他の任意のデータなどのセキュアにされたデータが、顧客のデータセンターを出ることはない。
[0034] 本トポロジは、ネットワーク管理システム112が顧客のデータセンター内のシステム102a−bに送ることを可能にされたデータも限定する。特に、データは、新しいソフトウェアバージョンおよび関連するデプロイメントルールファイルをダウンロードすることに限定される。この動作は、以下の第2章でより詳細に説明される。
[0035] 開発プロセスは、ソフトウェアコードをデータベースリポジトリにサブミットするチェックインプロセスを含み得る。自動化されたソフトウェアビルドプロセスが、チェックインされたソフトウェアコードに基づいて生じ得る。一部の実施形態は、ジェンキンスと呼ばれるツールを利用し得る。ジェンキンスは、連続的なインテグレーションを伴い、連続的なデリバリの技術的側面を容易にする、ソフトウェア開発プロセスの非人間部分を自動化するオープンソースの自動化サーバである。新しいソフトウェアバージョンは、通常、バグフィックス、新機能、既存機能のエンハンスメント、テストコード等を含む。新しいソフトウェア変更は、クラウドに常駐するアプリケーションビルドサーバ上で起こるビルドプロセスに組み込まれる。アプリケーションの新しいイメージが作成されると、イメージは、ストレージサーバに、例えばAmazon S3ストレージクラウド、または代替的にはクラウド内のストレージにアップロードされる。
[0036] いくつかのケースでは、デプロイメントエンジニアがデプロイメントのためのスケジュールおよびルールを決定し、スケジュールおよびルールをシステムにサブミットする。次のものは、限定ではなく、デプロイメントエンジニアが利用し得るルールの例であり、特定の時間に新しいソフトウェアバージョンをデプロイする、特定のAP上にのみ新しいソフトウェアバージョンをデプロイする、Wi−Fiネットワークの特定のサブセグメントのみを制御するための新しいソフトウェアバージョンを使用する、特定のサーバ上の特定のソフトウェアモジュールのみをアップデートする等がある。以下でより詳細に説明されるように、システムは、条件付き漸進的なデプロイメントルールセット(conditional progressive deployment rule set)も適応させる。
[0037] ルールおよび新しいソフトウェアバージョンは、ローカルキュー/ストレージ設備に、またはS3などのクラウドベースのストレージに記憶される。Apache Kafka(登録商標)環境が、ソフトウェアおよび/またはルールファイルをターゲットサーバにストリーミングするために使用され得る。ストレージ設備環境は、フォールトトレラント耐久手段に新しいソフトウェアバージョンなどの記録のストリームを記憶する。1つの好ましい実施形態によれば、新しいソフトウェアバージョンは、Amazon S3ストレージなどのクラウドストレージにアップロード(ストリーミング)される。しかしながら、特定のストレージ設備(オンプレミス、クラウドベース、オンプレミスおよびクラウドベースのハイブリッド等)は、任意のストレージ設備を用いて動作することができる、ここに開示される実施形態の動作に必須ではない。
[0038] ネットワーク管理システム112は、いくつかの実施形態では、様々な顧客環境にわたる選択的なデプロイメントのために複数の異なるソフトウェアバージョンを記憶する。したがって、図1は単一の顧客における2つのデプロイメントに関して説明されているが、ネットワーク管理システム112は、無限数の異なる顧客をサポートするように設計されており、各顧客は、彼ら自身のデプロイメントルールセットおよびソフトウェアバージョンライブラリを維持する。これは、異なるハードウェアバージョン、異なる動作環境、例えばWi−Fiネットワークによって使用される同じ周波数帯域上の軍用通信チャネルおよび気象レーダに曝される等、などの異なる環境における幅広い顧客要件を満たすフレキシビリティを提供する。
[0039] デプロイメントルールは、ネットワーク管理システム112によってサーバ108a−bのうちの1つまたは複数上で動作するエージェントに伝達される。ルールが、特定の時間に現場全体に新しいソフトウェアバージョンをデプロイするなどの単純なルールである場合、いくつかの実施形態では、ネットワーク管理システム112は、サーバ108a−bのうちの1つまたは複数上で動作するエージェントに、新しいソフトウェアがデプロイメントのために利用可能であることを通知する。さらに、通知は、ネットワーク管理システム112内でファイルが記憶されているロケーションおよびファイルの名前を示し得る。いくつかの実施形態では、このメッセージを受信すると、エージェントは、ネットワーク管理システム112内のストレージエリアにアクセスする。セキュリティの理由により、いくつかの実施形態は、ネットワーク管理システム112を通して流れるように新しいソフトウェアバージョンへのアクセスを実施する。これらの実施形態では、エージェントは、一般に、S3ストレージなどのインターネットベースのストレージに直接アクセスしない。いくつかの実施形態では、ソフトウェア/ファームウェアは、KafkaフォールトトレラントストレージにおけるS3ストレージ、または他の任意のストレージに常駐する。クラウドベースのストレージは、帯域幅、ダウンロード容量の動的適応に関していくつかの利点を提供し、それは、いくつかの実施形態では、アップデートされたソフトウェアについてのピーク顧客要求(例えば新しいソフトウェアまたはファームウェアバージョンがリリースされた直後など)に対処する必要があり得る。
[0040] 図2は、開示される実施形態のうちの少なくとも一部のコンポーネント200を示す概略図である。図2は、エンタープライズネットワーク201を示す。この場合ではワイヤレスアクセスポイントとして例示される複数のネットワークコンポーネント202a−dが、エンタープライズネットワーク201内にある。ワイヤレスアクセスポイントは、エージェントモジュール204と通信している。エージェントモジュール204は、本開示全体を通してエージェントモジュールに起因する機能を実行するように、1つまたは複数のハードウェアプロセッサなどのハードウェア処理回路を構成する命令を表す。エージェントモジュール204は、インストールエンジン206、ルールエンジン208、モニタリングエンジン210、およびステータスエンジン212を含む。インストールエンジン206、ルールエンジン208、モニタリングエンジン210、およびステータスエンジン212の各々は、それぞれのエンジンの各々に起因する機能を実行するようにハードウェア処理回路を構成する命令のグループを表す。エージェントモジュール204は、いくつかの実施形態では、ファイアウォール214を介してエンタープライズの外の他のネットワークからセキュアにされたエンタープライズネットワーク内で実行される。ファイアウォール214は、ネットワーク管理モジュール216を含む、エンタープライズネットワーク201の外からの、少なくともネットワークコンポーネント202a−dへのアクセスをブロックするように構成される。ファイアウォール214は、エージェントモジュール204とネットワーク管理モジュール216との間の限定されたネットワーク接続性を提供するように構成される。例えば、いくつかの実施形態では、ファイアウォール214は、エージェントモジュール204を動作させるコンピュータの限定数のネットワークポートへのアクセスを提供するように構成される。ファイアウォール214はまた、いくつかの実施形態では、限定されたセットのプロトコルを介したエージェント204へのアクセスを提供するようにも構成される。いくつかの実施形態では、ファイアウォール214は、エージェントモジュール204および/またはエージェントモジュール204を実行するコンピューティングデバイスが、エンタープライズネットワーク外のデバイスとの通信を開始することのみを可能にするように構成される。例えば、ファイアウォール214は、いくつかの実施形態では、エージェントモジュール204が、httpまたは他のプロトコルを介してネットワーク管理モジュール216およびその対応するIPアドレスとは通信するが、エンタープライズネットワーク201外の任意の他のデバイスとは通信しないことを可能にするように構成される。
[0041] ネットワーク管理モジュール216は、ルール編集モジュール218およびステータスユーザインターフェース220を含む。ルール編集モジュール218は、ファイアウォール214を介してエージェントモジュール204にダウンロードされるルールを作成および管理するためのユーザインターフェースを提供する。いくつかの実施形態では、ルールは、httpプロトコルを使用してエージェントモジュール204によってフェッチされ、そのhttpプロトコルは少なくともいくつかの実施形態ではエージェントモジュール204とネットワーク管理モジュール216との間のファイアウォール214によって選択的にイネーブルにされる。ルールは、エージェントモジュール204によってモニタリングされるエンタープライズネットワーク201内の動作パラメータを識別する。ルールはまた、モニタリングされた動作パラメータに適用すべき基準を識別し、基準を満たしたかどうかに基づいてソフトウェアインストールのインストールまたは除去を条件付ける。
[0042] ステータスユーザインターフェースは、エンタープライズネットワーク内でのソフトウェアのインストールに関係するステータス情報を表示する。ステータスユーザインターフェース220は、いくつかの実施形態では、ステータスエンジン212からステータス情報を受信する。例えば、ステータスエンジン212は、いくつかの実施形態では、エンタープライズネットワーク201内に存在するネットワークコンポーネントを識別する情報、それらのネットワークコンポーネントにインストールされた現在のソフトウェアバージョン、およびネットワークコンポーネントの各々についての直近のインストールステータスを生成する。例えば、ネットワークコンポーネントについての直近のインストールステータスは、いくつかの実施形態では、試行されたソフトウェアインストールの直近のバージョン、およびその試行が成功であったかどうか、またはある時間期間の後にインストールが前バージョンにロールバックされたかを示す。最近のインストールに関係するエラー情報もいくつかの実施形態では提供される。ステータスUI220は、ステータスエンジン212によって生成されたステータス情報を管理者に伝達するユーザインターフェースを提供する。いくつかのケースでは、ステータスUI220は、ステータスエンジン212から受信された情報を集約し、ステータスエンジン212によって提供された情報と比べて情報の使いやすさが改善されたサマリ情報を提示する。いくつかの実施形態では、ステータスUI220はまた、ユーザインターフェースを介してネットワーク管理者に情報を提示する前に、複数のエージェントモジュール204にわたるステータス情報も集約している。
[0043] 図2に示された様々なモジュールに図2では様々な機能が起因するが、モジュールの各々内の機能の特定の編成は、開示される主題に必須ではなく、他の実施形態では、図2に関して説明されたものとは異なるように機能が区分され得る。
[0044] ネットワーク管理サーバ112は、少なくとも一部の実施形態では、新しいダウンロードルールファイルの利用可能性(例えばファイルロケーションおよびファイルの名前)を、(サーバ(単数または複数)108a−bのいずれかなどのコンピュータ上で動作する)エージェントに通知する。これに応答して、エージェントは、いくつかの実施形態では、ストレージ(ローカルストレージ、Kafka、またはS3などのクラウドストレージのいずれか)から新しいダウンロードルールファイルをフェッチする。この実施形態によれば、ダウンロードルールファイルの解釈は、ネットワーク管理システム112/ネットワーク管理モジュール216というよりむしろ(システム102の)エージェントによって行われる。
[0045] 顧客ネットワークのネットワークデバイスへの新しいソフトウェアバージョンのデプロイメントを制御するルールの第1の実施例が上述された。新しいソフトウェアデプロイメントの第2の実施例は、顧客ネットワーク上のデバイスのサブセットに、新しいソフトウェアバージョンをルールを介してデプロイする。ルールエンジン208は、そのようなルールを実行するように構成され、ネットワークデバイスの定義されたサブセットをアップデートする。ルールエンジン208は、複数の異なるタイプのソフトウェア/ファームウェアアップデートをトラッキングし、ソフトウェア/ファームウェアアップデートの異なるタイプを、対応するデバイスタイプと対応付けるように構成される。さらに、いくつかのアップデートは、特定のネットワークデバイス上にインストールされたソフトウェア/ファームウェアの一部分のみをアップデートし得る。例えば、いくつかの実施形態では、ネットワークデバイス上で動作する選択アプリケーションは、ネットワークデバイス上で動作する他のアプリケーションに影響することなくアップデートされ得る。
[0046] 新しいSWのデプロイメントルールファイルについての第3の実施例は、新しいSWバージョンの条件付き漸進的なデプロイメントのためのルールを含む。これらの実施形態は、ソフトウェアインストールインスタンスのサブセットに新しいソフトウェアをデプロイし、新しいSWバージョンの影響をモニタリングする。特に、システムは、新しいSWがデプロイされたインスタンスの挙動をモニタリングし、インスタンスの動作パラメータを、ソフトウェアの前バージョン(単数または複数)がインストールされた他のインスタンスの動作パラメータと比較する。代替的に、開示される実施形態の少なくとも一部は、新しいソフトウェアがインストールされたインスタンスのパフォーマンスをモニタリングし得、それを、前のSWバージョンを使用したときの当該インスタンスの履歴のパフォーマンスと比較する。
[0047] システムの履歴の挙動、および特にこの挙動に関連するSLEが測定される。システムはこの履歴SLEを使用し、しきい値少なくとも第1の基準および第2の基準を決定する。第1の基準は、ソフトウェアインストールのモニタリングされたインスタンスが、例えば、モニタリングされたインスタンスにインストールされたソフトウェアの前バージョンのパフォーマンスと比べてパフォーマンスの全体的な低下を反映する方法で機能しているかどうかを示すように定義される。第2の基準は、ソフトウェアインストールのモニタリングされたインスタンスが許容可能なパフォーマンスレベルで機能しているときを示すように定義される。
[0048] 第1および第2の基準を決定するために、1つまたは複数の動作パラメータの平均値および/または中央値が、動作パラメータ値の履歴データセットを展開するために時間期間にわたって記録され得る。第1の基準は、1つまたは複数の動作パラメータが、それらの履歴平均値からの特定数の分散または標準偏差内で動作しているかどうかをテストするために定義され得る。同様に、第2の基準は、1つまたは複数の動作パラメータが、それらの履歴平均値からの第2の特定数の分散または標準偏差内で動作しているかどうかを決定するために定義され得る。モニタリングされる動作パラメータに依存して、明確な数値変化は、低下(例えばCPU利用率)または改善(例えばスループット)のいずれかを示し得る。したがって、ルールエンジンは、測定された動作パラメータの各動作パラメータの特性に基づいて第1および第2の基準を定義するように構成され得、その結果、全体的な低下が検出されるときに第1の基準を満たし、全体的な改善が検出されるときに第2の基準を満たす。
[0049] 図3は、履歴の動作パラメータ値、例えばSLEと、新しいソフトウェアのインストールに起因するそれらの値の可能な変化とを示すグラフである。図3は、1つまたは複数の動作パラメータを表す履歴の平均値305を示す。時間T1は、新しいソフトウェアバージョンが複数のインスタンスの一部分(例えばサブセグメント)にインストールされたグラフの位置を示す。グラフ300は、時間T1でのインストールの3つの可能な結果を示す。これらの結果は、310、320、および330として示される。結果310は、T1でのインストールより前のパフォーマンスと比較したパフォーマンスの相対的な改善を例示する。したがって、開示される実施形態が、動作パラメータをモニタリングし、310と同様の改善を検出した場合に、開示される実施形態は、新しいソフトウェアバージョンのデプロイメントを、複数のインスタンス環境における追加のインスタンス(例えば図1のサーバ1およびサーバ2は複数のインスタンス環境における2つのインスタンスを例示する)にさらに伝播することを決定し得る。結果320は、時間T1でのインストール後の、動作パラメータの相対的に小さいまたはごくわずかな変化を示す。開示される実施形態の一部は、結果320と相似または同様の結果を経たとき、単に動作パラメータをモニタリングし続け得る。結果330は、T1および新しいソフトウェアのインストールより前のパフォーマンスと比較したときの、パフォーマンスの相対的な低下を例示する。開示される実施形態の一部は、結果330によって例示されたもののような低下を検出した際にインスタンスへの新しいソフトウェアのインストールをロールバックし得る。
[0050] 以下に説明されるように、開示される実施形態は、1つまたは複数の第1の基準、およびパフォーマンスの低下(例えば結果330)を示す動作パラメータ値についてテストする対応する第1のしきい値を定義し得る。開示される実施形態はさらに、1つまたは複数の第2の基準、およびパフォーマンスの相対的な改善(例えば結果310)を示す動作パラメータ値についてテストする対応する第2のしきい値を定義し得る。
[0051] 図4および図5に関して以下に説明される実施形態は、一般に、ルールベースのデプロイメント能力を対象とする。図4のプロセス400は、ハードウェア処理回路によって行われ得る。例えば、以下に説明される命令1224は、1つまたは複数のハードウェアメモリ(例えば以下に説明される1204および/または1206)に記憶され、プロセス400に関して以下に説明される機能のうちの1つまたは複数を実行するようにハードウェア処理回路(例えば以下に説明されるハードウェアプロセッサ1202)を構成し得る。
[0052] 開示される実施形態は、特定のソフトウェアインストールの複数のインスタンスを含むシステムへの新しいソフトウェアバージョンの条件付き漸進的デプロイメントを提供する。例えば、図1に関して上述されたシステム102a−bは、システム102aのサーバ上へのソフトウェアインストールの第1のインスタンスと、システム102bの第2のサーバ上にインストールされた同じソフトウェアの第2のインスタンスとを含み得る。
[0053] 開始動作401の後、プロセス400は動作402に移動する。動作402において、複数の動作パラメータの履歴記録が記憶される。例えば、システム102aおよび/または102bなどのシステムが、動作パラメータの値についてモニタリングされる。動作パラメータは、例えば、CPUまたは他のハードウェアプロセッサ利用率、メモリ利用率、レイテンシ、スループット、ロケーション精度ジッタ、および実施形態ごとに変わり得る他の動作パラメータを含み得る。
[0054] 動作404において、複数の動作パラメータのうちの1つまたは複数についての第1および第2の基準が決定される。いくつかの実施形態では、第1および第2の基準のうちの1つまたは複数は、動作パラメータの絶対的限度に関係する。例えば、動作パラメータのうちの1つまたは複数は、定義された限度を有し得、それを超えると、モニタリングされたシステムの動作が妥協されると最終的に想定される。例えば、95%を上回るCPU利用率は、いくつかの実施形態ではそのような絶対的限度の一例であり得る。
[0055] いくつかの実施形態では、第1および第2の基準は、履歴記録に基づく。例えば、第1および第2の基準は、履歴標準と比較したときのシステムパフォーマンスからの偏差を評価し得る。しきい値を超える負の偏差は、任意の新しいソフトウェアがシステムパフォーマンスに悪影響を及ぼし、ロールバックされるべきであることを示し得る。
[0056] 第1および第2の基準の各々は、それぞれ第1および第2のしきい値に依存し得る。上述のように、いくつかの実施形態では、第1の基準は、第1の基準を満たしたときにソフトウェアインストールのデプロイメントのロールバックを引き起こすのに十分な低下が検出されるように定義される。1つまたは複数の第1の基準は、新しいソフトウェアインストールの1つまたは複数の動作パラメータを1つまたは複数の対応するしきい値と比較し得る。上述のように、しきい値は、それらの動作パラメータに関する、ソフトウェアの前バージョンの履歴のパフォーマンスに基づき得る。
[0057] いくつかの態様では、例えば、第1のしきい値は、動作パラメータについての平均値または中央値を上回る第1の数の分散または標準偏差に設定され得る。第2のしきい値は、動作パラメータについての平均値または中央値を上回る、または下回る第2の数の分散または標準偏差に設定され得る。第1および第2のしきい値は、いくつかの実施形態では同様の方式で、複数の動作パラメータの各々について設定され得る。上述のように、開示される実施形態は、しきい値の各々についての基準を定義し得る。開示される実施形態は、しきい値が、いくつかの動作パラメータの場合には特定の動作パラメータの特定値がしきい値を上回ることが望ましいが(例えばスループット)、他の動作パラメータでは、特定のしきい値を下回ることが望ましいこともある(例えばCPU利用率、接続時間、ロケーションジッタ等)ことを示し得るものとして、基準に関して説明される。基準を参照することによって、以下の説明は、この問題を回避し、代わりに、しきい値に基づく、またはしきい値に関係する特定の基準を単に参照する。特定のしきい値またはそれらを計算するための方法は、いくつかの実施形態では、条件付きデプロイメントルールに含まれる。
[0058] 動作406では、ソフトウェアの新しいバージョンが時間T1において複数のインスタンスの一部分にデプロイされる。新しいソフトウェアデプロイメントのパフォーマンスは次いで、新しいソフトウェアバージョンの影響を評価するためにモニタリングされる。いくつかの態様では、システムは、新しいソフトウェアがデプロイされたインスタンスの挙動をモニタリングし、新しいソフトウェアの動作パラメータ、例えばSLEを、前のソフトウェアインストールおよび/または複数のインスタンスの他の部分へのソフトウェアインストールの動作パラメータと比較する。
[0059] 特に、動作408では、タイマーがセットされる。タイマーは、以下でより詳細に説明されるように、新しいソフトウェアがインストールされた経過時間を決定するために使用され得、条件付きデプロイメントはその経過時間に依存する。
[0060] 動作410では、複数のインスタンスの一部分の動作パラメータがモニタリングされる。動作パラメータをモニタリングすることは、周期的間隔または経過時間間隔で動作パラメータを収集または測定することを含み得る。動作410は、新しいソフトウェアバージョンをインストールした後のネットワークの特定のサブセグメントの動作パラメータ(単数または複数)をモニタリングすることを含み得る。
[0061] 判定動作412は、モニタリングされた動作パラメータ(単数または複数)が、それらのそれぞれの第1のしきい値(単数または複数)に基づいてそれぞれの第1の基準を満たすかどうかを決定する。いくつかの態様では、判定動作412は、特定の動作パラメータが、そのそれぞれの第1のしきい値よりも大きいかどうかを決定する。したがって、プロセス400は、動作パラメータ(例えばシステムレベルエクスペリエンスを示す)に関する履歴情報を使用し、上述のように第1および第2のしきい値を決定する。第1のしきい値は、不成功のソフトウェアアップグレードとして示すSLE/パフォーマンス悪化を示すように設定され得る(例えば、新しいソフトウェアバージョンが旧ソフトウェアバージョンよりも最悪のSLE/パフォーマンスを提供する)。第2のしきい値は、新しいソフトウェアインストールに基づく所望のシステムレベルエクスペリエンスおよび/またはパフォーマンスの改善を示し得る。
[0062] 判定動作412が、モニタリングされた動作パラメータがそれらのそれぞれの第1のしきい値ベースの基準を満たしていないことを決定した場合、プロセス400は、判定動作412から動作422に移動し、ソフトウェアインストールをロールバックする。動作422は、新しいソフトウェアインストールをアンインストールし、ソフトウェアインストールの以前にインストールされたバージョンを再インストールし得る。
[0063] 第1のしきい値(単数または複数)に基づいて、モニタリングされた動作パラメータ(単数または複数)がそれらの第1の基準を満たしていないことを、システムが検出した場合(モニタリングされたインスタンスがパフォーマンスの低下を示していない)、プロセス400は判定動作414に移動し、各々が上述の第2のセットのしきい値に基づく第2のセットの基準に関して動作パラメータを評価する。部分についてのモニタリングされた動作パラメータが、それぞれ第2のしきい値(単数または複数)に基づく1つまたは複数の第2の基準を満たしている場合(モニタリングされたインスタンスがパフォーマンスの改善を示している)、プロセス400は、判定動作414から動作416に移動し、ソフトウェアデプロイメントの範囲を複数のインスタンスの追加の部分まで拡大する。新しいソフトウェアが改善(第2の基準を満たす)も悪化(第1の基準を満たす)も示さない場合、新しいデプロイメントルールファイルにおけるルールが、複数のインスタンスの追加の部分までデプロイメントを拡大するべきか、より長い時間期間にわたって新しいソフトウェアインストールのパフォーマンスをモニタリングし続けるべきかを指定し得る。しかしながら、新しいソフトウェアバージョンを含む部分が、第1の基準によって示されるSLE悪化を呈する場合、新しいソフトウェアバージョンはロールバックされ、旧ソフトウェアバージョンに置き換えられる。動作ステップ416で新しいソフトウェアバージョンを伝播した後、判定動作418は、新しいソフトウェアがまだインストールされていない複数のインスタンスデプロイメントの他の部分(複数インスタンス)があるかをチェックする。判定動作418が、新しいソフトウェアがまだインストールされていない他のインスタンスがあることを決定した場合、プロセス400は動作410に戻る。代替的に(図示せず)、プロセスは、動作408に戻り、新しいSWを追加のネットワークセグメントにデプロイしようと試みる前にタイマーをリセットし得る。判定動作418が、ルールファイルに基づいて、新しいSWバージョンが、必要なデバイスのすべてに伝播されたことを決定した場合に、プロセスは終了する。
[0064] 動作412および414に戻り、動作が、新しいSWバージョンが相当または顕著な動作パラメータの悪化も引き起こさず、システムの相当または顕著な動作パラメータの改善ももたらさなかったと決定した場合、動作は判定動作420に続き、タイマーが満了したかどうかを決定する。タイマーが満了していない場合、プロセス400は動作410に戻り、システムのパフォーマンスをモニタリングし続ける。
[0065] しかしながら、判定動作420が、タイマーが満了し、新しいSWバージョンが意図した改善を提供しなかったと決定した場合、プロセス400は動作422に進み、新しいソフトウェアバージョンがロールバックされる。代替的に(図示せず)、判定動作412および判定動作414が、新しいSWバージョンが相当または顕著な動作パラメータの悪化も引き起こさず、システムの相当または顕著な動作パラメータの改善ももたらさなかったと決定した場合、動作は、新しいSWをロールバックすることなくENDに続く。
[0066] 1つの例示的な使用では、プロセス400は、特定のエリアにおけるワイヤレス端末(WT)の(ロケーションエンジン(LE)によって行われる)ロケーション検出におけるジッタをモニタリングし、記録する。新しいロケーションエンジン(LE)ソフトウェアバージョンが作られたとき、プロセス400は、新しいソフトウェアバージョンをインストールし得、ジッタのロケーション測定に寄与したLEおよび/またはAPのSWの旧バージョンを置き換える。新しいソフトウェアは、影響を受けたエリアにおけるWTのロケーションを推定し、当該WTのロケーションに関連するロケーションジッタをモニタリングする。サーバ上のエージェント、例えばシステム102aおよび102bが、新しいソフトウェアバージョンのデプロイメント前とデプロイメント後にロケーションジッタを比較し、ジッタが新しいソフトウェアバージョンによって低減されたかどうかを決定する。ジッタが低減された場合、低減の大きさが評価される。第1のしきい値より多くジッタが改善した(低減された)場合、プロセス400は、新しいロケーションエンジンのソフトウェアバージョンを複数のインスタンスの追加の部分に伝播し得る。
[0067] 図5は、開示される実施形態のうちの1つまたは複数で実装され得るプロセス500のフローチャートである。プロセス500は、上述のプロセス400の部分で生じる動作を説明し得る。例えば、プロセス500は、いくつかの実施形態では、判定動作414および416の処理を増補するように適用され得る。
[0068] 図5のプロセス500は、ハードウェア処理回路によって行われ得る。例えば、以下に説明される命令1224は、1つまたは複数のハードウェアメモリ(例えば以下に説明される1204および/または1206)に記憶され、プロセス500に関して以下に説明される機能のうちの1つまたは複数を実行するようにハードウェア処理回路(例えば以下に説明されるハードウェアプロセッサ1202)を構成し得る。
[0069] いくつかの開示される実施形態は、新たにインストールされたソフトウェアによって実現される改善の異なるレベルを区別する、複数のしきい値および/または基準を含み得る。したがって、以下のプロセス500によって説明されるように、開始動作501の後、プロセス500は動作502に移動する。動作502では、1つまたは複数の動作パラメータが1つまたは複数のそれぞれの第1のレベルの基準を満たす場合、プロセス500は、判定動作502から動作506に移動し、複数のインスタンスのセットにおける第1の割合のインスタンスにソフトウェアインストールを伝播する。判定動作502は、ソフトウェアのロールアウトが第1の割合だけ増加され得ることを示す動作パラメータ値についてチェックする。いくつかの態様では、動作506は、新しいソフトウェアを複数のインスタンスのうちの残りのすべてのインスタンスにロールアウトする。
[0070] 改善が、判定動作502のレベル1の基準によって示されるものよりも少ないが、判定動作504によって評価される第2のレベルの基準を満たす場合、プロセス500は動作508に進み、ここにおいて、動作は、新しいSWバージョンを、第2の割合の残りのインスタンスに伝播する。いくつかの態様では、動作508の第2の割合は、動作506の第1の割合よりも少ない。したがって、結果が良いほど、開示される実施形態は、より迅速および積極的に新しいソフトウェアを追加のインスタンスにロールアウトし得る。
[0071] モニタリングされた動作パラメータが、判定動作502の改善基準も判定動作504の改善基準も満たさない場合、プロセス500は動作510に進み、新しいソフトウェアバージョンが、第3の割合の残りのインスタンスに伝播され、第3の割合は、第1の割合および第2の割合よりも少ない。動作510を完了した後、プロセス500は終了動作512に移動する。パフォーマンスの改善が生じたことを示す、図4の第2の基準が既に満たしているようにプロセス500が構造化されることに留意されたい。図4の第1および第2の基準が、図5に関して上述されたレベル1およびレベル2の基準とは別個であり異なり得ることに留意されたい。
[0072] プロセス500によって評価される動作パラメータの1つの例として、測定されたロケーションジッタが第2のしきい値より多いが第1のしきい値より少なく改善されたら、システムは、新しいソフトウェアのデプロイメントを拡大し続けるべきかを決定する前に、追加の時間期間にわたってロケーションジッタをモニタリングし続ける。しかしながらロケーションジッタが悪化(増加)した場合、開示される実施形態は、新しいLEソフトウェアバージョン(または新しいAP SWバージョン)をロールバックし、それを旧バージョンに置き換え得る。
[0073] 機能のさらに別の例示的な使用にしたがって、開示される実施形態は、特定の1つまたは複数のAPに関連するワイヤレス端末(WT)のシステムレベルエクスペリエンスをモニタリングおよび記録し得る。例えば、測定および記録されたSLEパラメータは、これらに限定されないが、接続時間、スループット、カバレッジ、容量、ローミング、接続の成功、AP利用可能性等を含み得る。
[0074] 新しいソフトウェアバージョンが、上記SLE(単数または複数)に影響する1つまたは複数のモジュール、例えばAPソフトウェアについて作られたとき、開示される実施形態は、ルールによって定義された命令にしたがって、特定の1つまたは複数のソフトウェアモジュールを修正する。開示される実施形態は次いで、ルールにしたがってSLEパラメータをモニタリングする。
[0075] 新しいソフトウェアバージョンによって統制されたエリアにおけるWTについてのSLEは、測定され、旧SLE測定値と比較される。例えばモニタリングエンジン210は、新しいソフトウェアバージョンのデプロイメント前とデプロイメント後のSLEを比較し、SLEが新しいソフトウェアバージョンによって改善されたかどうかと、そうであればそれがどのくらいかを決定する。
[0076] 上記説明はワイヤレス、特にWi−Fiネットワークを参照して説明されているが、当業者は、本システムが、これらに限定されないが、ワイヤードネットワーク、光ネットワーク、および他の自動化された大規模ソフトウェアデプロイメントを含む他の任意のシステムに適用可能であることを認識するべきである。
[0077] 図6は、開示される実施形態のうちの一部で実装される例示的なデータ構造を示す。図6のデータ構造が関係型データベーステーブルとして示されているが、当業者であれば、開示される実施形態が、リンクリスト、アレイ、ツリー、グラフなどの従来のメモリ構造、または非構造化データ記憶、階層データ記憶、または他の任意のデータ編成アーキテクチャを含むように、様々なデータ構造編成を利用することを理解するであろう。
[0078] 図6は、ルールテーブル602、動作パラメータテーブル612、ルール基準マッピングテーブル622、基準テーブル632、およびソフトウェアテーブル642を示す。ルールテーブル602は、ルール識別子フィールド604、インストール/アンインストールフラグフィールド606、およびソフトウェアバージョン識別子フィールド608を含む。ルール識別子フィールド604は、単一のルールを一意に識別する。インストール/アンインストールフラグフィールド606は、識別されたルールが、ソフトウェアのインストールを条件付けるのか、ソフトウェアのアンインストール/ロールバックを条件付けるのかを示す。ソフトウェアバージョン識別子フィールド608は、ルールが関係するソフトウェアバージョンを識別する。
[0079] 動作パラメータテーブル612は、ルールテーブル602中のルールによって参照される動作パラメータを識別する。動作パラメータテーブル612は、動作パラメータ識別子フィールド614、フレンドリ名フィールド616、およびモニタリング間隔フィールド618を含む。動作パラメータ識別子フィールド614は、単一の動作パラメータを一意に識別する。フレンドリ名フィールド616は、人間によって容易に読み取られる/識別される文字列を定義する(例えば「秒あたりのパケットエラー」)。モニタリング間隔フィールド618は、動作パラメータについての周期的なモニタリング間隔を定義する。例えば、いくつかの実施形態では、CPU利用率は第1の間隔(例えば5秒)でモニタリングされるが、ネットワーク利用率は第2の間隔(例えば30秒)でモニタリングされる。間隔は、いくつかの実施形態では、動作パラメータをモニタリングするコストに基づいて割り当てられる。例えば、コンピューティングリソースの点で、モニタリングするのにあまりコストがかからない動作パラメータが、いくつかの実施形態では、モニタリングするのにより多くコンピュータリソースを消費する他の動作パラメータよりも頻繁にモニタリングされる。いくつかの実施形態は、どのくらいの頻度で動作パラメータが変化しやすいかに基づいて間隔を割り当てる。これらの実施形態では、ゆっくり変化する動作パラメータが、より動的な動作パラメータほど頻繁ではなくモニタリングされる。
[0080] ルール基準マッピングテーブル622は、特定のルールによって参照または呼び出された基準を識別する。ルール識別子フィールド624は、特定のルールを一意に識別し、ルール識別子フィールド604と相互参照され得る。基準idフィールド626は、ルール識別子フィールド624によって識別されたルールによって評価された基準を識別する。単一のルールがルール基準マッピングテーブル622にいくつかのエントリを含むことができることに留意されたい。基準テーブル632は、基準idフィールド634および基準フィールド636を含む。基準idフィールド634は、基準を一意に識別し、基準idフィールド626と相互参照され得る。基準フィールド636は、基準自体を定義する。例えば、基準フィールド636は、1つの関係演算子(例えば、=、<、>、<=、>=、!=等)および少なくとも2つの被演算子を含む。いくつかの実施形態では、1つの被演算子は定数である。1つの被演算子は、動作パラメータテーブル612によって定義されたものなどの動作パラメータ識別子を介して識別された、動作パラメータ値である。いくつかの実施形態では、第2の被演算子は、動作パラメータ値の履歴測定値である。例えば、動作パラメータテーブルにリストにされた1つの動作パラメータは、所定の持続時間内のドロップされたパケットの数などの、ルートまたはソース動作パラメータであり得る。動作パラメータテーブルにリストにされた第2の動作パラメータは、例えば、所定の持続時間でのドロップされたパケットの数の履歴平均値であり得る。基準フィールド636によって定義された基準は、例示的な実施形態では、これらの2つの動作パラメータの両方を識別する。したがって、基準は、1つの演算子と、この演算子に基づいて評価される2つの被演算子を定義することができる。評価の結果は、基準を満たすかどうかを示す(例えば、基準を満たすことを真値が示す)。追加の基準は、「and」演算子または「or」演算子のいずれかを使用して、他の基準をつなぐように定義され得る。したがって、このタイプの基準では、被演算子は、(基準IDを介して識別された)基準であり、演算子は、論理and演算子または論理or演算子である。いくつかの実施形態では、排他的orもサポートされる。
[0081] ソフトウェアテーブル642は、ソフトウェアバージョン識別子フィールド644およびソフトウェア命令フィールド646を含む。ソフトウェアバージョン識別子フィールド644は、ソフトウェアのバージョンを記憶する。ソフトウェア命令フィールド646は、ソフトウェアの特定のバージョンに含まれる命令を定義するデータを記憶する。
[0082] 図7は、開示される実施形態のうちの1つまたは複数で実装される例示的なメッセージ部分を示す。図7は、ルールメッセージ部分701、ソフトウェアデータメッセージ部分721、およびステータスメッセージ部分731を示す。ルールメッセージ部分701は、メッセージ識別子フィールド702、メッセージタイプフィールド704、ルールの数フィールド706、ルール識別子フィールド708、ルールタイプフィールド710、ソフトウェアバージョンフィールド712、基準の数フィールド714、および1つまたは複数の基準フィールド7161・・・716nを含む。メッセージ識別子702は、メッセージを一意に識別する。メッセージタイプフィールド704は、メッセージがルールメッセージであることを(例えば所定の識別子を介して)示す。ルールの数フィールド706は、何個のルールがルールメッセージ部分701によって定義されているかを示す。メッセージフィールドのグループ719は、ルールの数フィールド706によって定義されたルールごとに1回繰り返す。ルール識別子フィールド708は、ルールメッセージ部分701に含まれるルールを識別する。ルールタイプフィールド710は、ルールのタイプを示す。例えば、いくつかの実施形態では、タイプは、ルールがソフトウェアのインストールを制御するのか、ネットワークコンポーネントデバイスからのソフトウェアの除去を制御するのかを示す。ソフトウェアバージョンフィールド712は、ルールによって制御されるソフトウェアのバージョンを示す。換言すれば、ルールは、ソフトウェアバージョンフィールド712によって識別されたソフトウェアのバージョンについてのインストール基準または除去基準を定義する。基準の数フィールド714は、ルールに含まれる基準の数を定義する。基準の数フィールド714のあとに、基準の数フィールド714によって定義された数の基準フィールドを有する、1つまたは複数の基準フィールド7161・・・716nがある。
[0083] ルールメッセージ部分701は、メッセージ識別子フィールド722、メッセージタイプフィールド724、ソフトウェアバージョンフィールド726、およびソフトウェアデータフィールド728を含む。メッセージ識別子フィールド722は、メッセージを一意に識別する。メッセージタイプフィールド724は、このメッセージをソフトウェアデータメッセージとして識別する。ソフトウェアバージョンフィールド726は、ルールメッセージ部分701によって通信されるソフトウェアのバージョンを定義する。ソフトウェアデータフィールド728は、ソフトウェア自体に含まれる命令を定義する。例えば、ソフトウェアデータフィールド728は、いくつかの実施形態では、実行可能なファイルを定義する。
[0084] ステータスメッセージ部分731は、メッセージ識別子フィールド732、メッセージタイプフィールド734、およびステータス情報フィールド736を含む。メッセージ識別子フィールド732は、メッセージを一意に識別する。メッセージタイプフィールドは、例えば規定の識別子を介して、ステータスメッセージとしてメッセージを識別する。ステータス情報フィールド736は、ステータス情報を定義する。開示される実施形態のうちの1つまたは複数では、ルールメッセージ部分701またはソフトウェアデータメッセージ部分721に含まれる1つまたは複数のフィールドは、ネットワーク管理モジュール216によってエージェントモジュール204に送信される。開示される実施形態のうちの1つまたは複数では、ステータスメッセージ部分731のフィールドのうちの1つまたは複数は、エージェントモジュール204によってネットワーク管理モジュール216に送信される。
[0085] 図8は、開示される実施形態のうちの1つまたは複数で行われるプロセスのフローチャートである。以下に説明される機能のうちの1つまたは複数は、いくつかの実施形態では、ハードウェア処理回路(例えば1202)によって行われる。例えば、メモリ(例えば1204、1206)に記憶された命令(例えば1224)は、図8およびプロセス800を参照して以下に説明される1つまたは複数の機能を実行するようにハードウェア処理回路(例えば1202)を構成する。いくつかの実施形態では、プロセス800は、図2に関して上述された、エージェントモジュール204を実行するコンピューティングシステムまたはデバイスによって行われる。
[0086] プロセス800は、開始動作802で始まり、次いで動作805に移動する。動作805では、ルールを定義するデータが受信される。いくつかの実施形態では、データは、ルールメッセージ部分701に関して上述されたフィールドのうちの1つまたは複数を含むルールメッセージなどのルールメッセージの一部として受信される。ルールは、モニタリングするための動作パラメータ、およびモニタリングされた動作パラメータに適用するための基準を定義する。ルールは、定義された基準を満たしたかどうかに基づいて、アクセスポイント(例えば202a−d)などの、ネットワークコンポーネントにおけるソフトウェアバージョンのインストールまたは除去を条件付ける。例えば、上述のように、ルールは、1つの演算子および2つの被演算子を含む基準を定義する。被演算子は、定数または同時(contemporaneous)動作パラメータのうちの1つまたは複数、もしくは動作パラメータの履歴集約(平均値、中央値、正規化値等)を含み得る。複数の基準が、論理or論理and演算子を指定する追加の基準を介してつなぎ合わされ得、被演算子が動作パラメータとして指定される。
[0087] 動作810において、受信されたルールによって定義された動作パラメータはモニタリングされる。モニタリングは、いくつかの実施形態では、周期的に行われる。いくつかの実施形態では、各動作パラメータは、個別に割り当てられたモニタリング間隔を有する。動作810のモニタリングは、いくつかの実施形態ではモニタリングエンジン210に含まれる命令によって行われる。モニタリングされた動作パラメータは、様々な実施形態では、CPU利用率、メモリ利用率、I/Oチャネル利用率、ネットワーク利用率、レイテンシ、スループット、またはこれらの動作パラメータのうちの任意のものの履歴の平均値もしくは中央値のうちの1つまたは複数を含む。動作810のモニタリングは、いくつかの実施形態では、履歴ログファイルに1つまたは複数の動作パラメータの周期的な測定値を記憶することを含む。これらの周期的な測定値は、いくつかの実施形態では、これらの動作パラメータの履歴の集約表示を生成するために使用され、それらは、いくつかの実施形態では、特定の動作パラメータ(例えばCPU利用率など)の改善または低下が、ソフトウェアまたはファームウェアの特定のバージョンのインストール後に生じたかどうかを評価するために依存される。
[0088] 動作パラメータのモニタリングは、1つまたは複数の意図したターゲットネットワークコンポーネントに適用される。例えば、いくつかの実施形態では、エージェントモジュール204は、いくつかの実施形態において、エージェントが管理を担う1つまたは複数のネットワークコンポーネントのリストを維持し、管理は、開示される実施形態にしたがうソフトウェアインストールの管理を含む。
[0089] 動作820は、ルールによって定義された基準を満たしているかどうかを評価する。換言すれば、動作820は、ルールによって指定された基準を、動作810でモニタリングされた動作パラメータの同時および/または履歴値に適用する。動作820の実行は、少なくともいくつかの実施形態では、真値または偽値のいずれかをもたらす。
[0090] 動作830では、ルールによって指定されたアクションは、基準が真と評価した場合に行われ、基準が偽値と評価した場合には実行されない。動作830は、基準を満たし、ルールが(例えばメッセージルールタイプフィールド710および/またはインストール/アンインストールフラグフィールド606によって指定された)インストールタイプルールである場合に、ソフトウェアのインストールを行う。
[0091] 動作840において、ステータス情報は、制限付きアクセス制御されたネットワーク経路を介して(例えばファイアウォールを介して)提供される。ステータス情報は、ルールが実行されたかどうかと、そうである場合にはルールを実行した結果とを、直接または間接的に示す。例えば、ステータス情報は、特定のバージョンのソフトウェアが、インストールされた、または1つまたは複数のネットワークコンポーネントから除去されたことを示し得る。動作840の後、プロセス800は終了動作845に移動する。
[0092] いくつかの実施形態は、ソフトウェアのための実行可能イメージを定義するデータを含む、ソフトウェアの1つまたは複数のバージョンを受信することを含む。例えば、いくつかの実施形態は、ソフトウェアデータメッセージ部分721に関して上述されたフィールドのうちの1つまたは複数を受信することを含む。ソフトウェアが受信された後、実行可能イメージのコピーおよび/または他の付属ファイルが、エンタープライズネットワーク(例えば201)内にソフトウェアを成功裏にインストールするのに必要である。ソフトウェアの記憶されたコピーは次いで、評価が、ネットワークコンポーネント上にソフトウェアがインストールされるべきであることを示すときに使用される。
[0093] 上述のように、プロセス800は、いくつかの実施形態では、エージェントおよび/またはエージェントモジュール204によって行われる。エージェントモジュール204とネットワーク管理モジュール216との間の通信は、少なくとも一部の実施形態では、ファイアウォールまたは他のアクセス制御デバイスによって制限される。制限は、ネットワーク管理モジュール216またはエンタープライズネットワーク外の他のデバイスが、AP202a−dなどの、開示される実施形態によってアップデートされるネットワークコンポーネントにアクセスすることを防止する。制限はまた、エンタープライズネットワーク外のデバイスが、エンタープライズネットワーク内の動作パラメータをモニタリングすることを防止する。このモニタリングは、ソフトウェアの特定のバージョンがエンタープライズネットワーク内のパフォーマンスを改善しているかどうか、または、例えば、パフォーマンス問題がソフトウェア/ファームウェアの特定のバージョンのインストール後に識別された場合に、インストールがロールバックされるほうがよいかを決定するために使用される。
[0094] 図9は、開示される実施形態のうちの1つまたは複数で行われるプロセスのフローチャートである。以下に説明される機能のうちの1つまたは複数は、いくつかの実施形態では、ハードウェア処理回路(例えば1202)によって行われる。例えば、メモリ(例えば1204、1206)に記憶された命令(例えば1224)は、図9およびプロセス900を参照して以下に説明される1つまたは複数の機能を実行するようにハードウェア処理回路(例えば1202)を構成する。いくつかの実施形態では、プロセス900は、図2に関して上述された、エージェントモジュール204を実行するコンピューティングシステムまたはデバイスによって行われる。
[0095] 開始動作902の後、プロセス900は動作905に移動する。動作905において、入力がユーザインターフェースを介して受信される。入力は、顧客環境へのソフトウェアのデプロイメントのためのルールを定義する。ルールは、モニタリングするための動作パラメータ、およびモニタリングされた動作パラメータに適用するための基準を定義する。ルールは、定義された基準に基づいてネットワークコンポーネントにおけるソフトウェアまたはファームウェアのインストールまたは除去を条件付ける。
[0096] 動作910において、ルールを定義するデータが、アクセス制限されたネットワーク経路を介して、顧客環境で動作するエージェントに送信される。上述のように、いくつかの実施形態では、ルール編集モジュール218および/または構成エンジン219は、顧客環境(例えば106または201)内のエージェントモジュール(例えば204)にデータを通信する。
[0097] 動作920では、ステータス情報がエージェントから受信される。いくつかの実施形態では、エージェントは、デプロイメントに関する情報を通信する。例えば、ステータス情報は、いくつかの実施形態では、成功したソフトウェアのデプロイメントの数、失敗したソフトウェアのデプロイメントの数、保留中のソフトウェアのデプロイメントの数のうちの1つまたは複数を示す。インストールが失敗したときに、いくつかの実施形態では、失敗を引き起こす特定のデプロイメントルールのインジケーションが提供され得る。例えば、インストールによりCPU利用率の増加が引き起こされた場合、これは、いくつかの実施形態ではステータス情報において示される。動作920の後、プロセス900は終了動作945に移動する。
[0098] 図10は、開示される実施形態のうちの1つまたは複数で実装され得るルールを構成するための一例のユーザインターフェースを示す。いくつかの実施形態では、図10に示されたユーザインターフェース1000は、図2に関して上述された、ルール編集モジュール218によって表示される。したがって、いくつかの実施形態では、ネットワーク管理システム112は、いくつかの実施形態では、ユーザインターフェース1000を表示するために、ルール編集モジュール218に含まれる命令を動作させる。ユーザインターフェースは、別のデバイス上に、ウェブ技術を介して表示され得る。例えば、ユーザインターフェース1000は、ネットワーク管理システム112上で動作するウェブサーバによって提供され、ネットワーク管理モジュール216によって提供され得る。
[0099] ユーザインターフェース1000は、ルール名を定義するためのフィールド1002を含む。ユーザインターフェースはまた、動作パラメータリストボックス1005を含む。動作パラメータリストボックス1005は、選択のための動作パラメータのリストを提供する。選択された動作パラメータは、(フィールド1002によって名前がつけられた)定義されたルールについての第1の被演算子である。ユーザインターフェース1000はまた、演算子選択ラジオボタン1008a−bも含む。示されているように、演算子選択ラジオボタンは、選択された動作パラメータ(演算子)が、ルールが実行されたときに第2の被演算子よりも多いとみなされるか少ないとみなされるかを、ユーザが構成することを可能にする。
[00100] ユーザインターフェース100はまた、ラジオボタン1010a−bを介して第2の演算子を選択する。第2の演算子は、ラジオボタン1010bおよび編集ボックス1012を介して指定される、定数であり得る。代替的に、第2の演算子は、ラジオボタン1010aの選択を介して履歴値に設定され得る。
[00101] ユーザインターフェース1000はまた、履歴値がラジオボタン1010aを介して選択されたとき、第2の被演算子を定義する。まずユーザインターフェース1000は、ラジオボタン1014a−bを介して、履歴値自体または履歴値の割合と比較をする。したがって、例えば、ルールは、ソフトウェアアップデートのインストール後に測定されたレイテンシが、以前のレイテンシ測定値の105%よりも少なくあるべきであることを示し得る。パーセント値は、ラジオボタン1014bおよび編集ボックス1015を介して選択される。
[00102] ユーザインターフェース1000はまた、第2の演算子として使用する履歴パラメータ値のタイプの選択を提供するように構成される。ラジオボタン1016a−bはまた、履歴パラメータの中央値または平均値を選択する。編集ボックス1018も、履歴パラメータを選択する。典型的に、編集ボックス1018での履歴パラメータ選択は、1005で選択された動作パラメータと同等となり、いくつかの実施形態ではそのようなデフォルト値に設定され得る。ユーザインターフェース1000はまた、ルールによって考慮される履歴データの時間枠の選択を提供するように構成される。例えば、ラジオボタン1020a−cは、ラジオボタン1020aを介して以前のソフトウェア/ファームウェアアップデート以後の時間枠を、ラジオボタン1020bおよび編集ボックス1022を介して時間数を、またはラジオボタン1020cおよび編集ボックス1024を介して日数を選択する。ルール追加ボタン1042は、ユーザインターフェース1000によって定義されたルールを保存し、ボタン1044は、ルールデータを保存することなくユーザインターフェース1000を退出する。
[00103] 図11は、開示される実施形態のうちの1つまたは複数で実装される一例のユーザインターフェース1100である。ユーザインターフェース1100は、ソフトウェアまたはファームウェアインストールファイルを識別するためのフィールド1102を含む。ファイルは、ブラウズボタン1104を介して選択され得る。ユーザインターフェース1100はまた、ラジオボタン1106a−bを介してデプロイメントストラテジを選択する。ラジオボタン1106aは、すべての適格なデバイスへのデプロイメントを設定し、ラジオボタン1106bの選択は、漸進的なロールアウトを提供する。漸進的なロールアウトは、少なくとも2段階からなる。その段階のうちの第1の段階から次の段階に移動することは、ルールセットボックス1110bを介して定義された漸進的なロールアウトルールセットによって制御される。漸進的なロールアウトはグループで行われる。グループサイズは、グループサイズ編集ボックス1108を介して設定される。フィールド1102によって定義されたソフトウェアビルドは、単一のグループにおける各デバイスに無条件にデプロイされる。漸進的ロールアウトルールセットは、次いで、ソフトウェア/ファームウェアビルドが次の段階(第2のグループのデバイス)にインストールされたかを決定するために評価される。ロールバックルールセットボックス1110aによって定義されたロールバックルールセットは、インストールがソフトウェアビルドの前バージョンにロールバックされるかどうかを決定する。いくつかの実施形態では、ルールセットの各々は、上から下に、ルールが真と決定されるまで、または下に達するまで評価される。いくつかの実施形態では、ロールバックルールセットボックス1110aまたはルールセットボックス1110bのいずれかで定義されたルールが真と評価した場合に、アクションが生じる。したがって、ロールバックルールセットボックス1110aによって定義されたロールバックルールにおいて、ロールバックルールセットボックス1110aにリストされた任意のルールが真と評価した場合に、ロールバックが行われる。すべてのルールが実行され、いずれも真値と評価しなかった場合、ロールバックは行われない。いくつかの実施形態では、ロールバックルールセットボックス1110aにおいて定義されたルールは、周期的に評価される。持続期間は、いくつかの実施形態(図示せず)では構成可能である。
[00104] 追加ボタン1112dまたは1114dのうちの1つの選択は、いくつかの実施形態ではユーザインターフェース1000を表示し得る。
[00105] 図12は、本明細書に説明される技法(例えば方法)のうちのいずれか1つまたは複数を行い得る一例の機械1200のブロック図を例示する。機械(例えばコンピュータシステム)1200は、ハードウェアプロセッサ1202(例えば中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、ハードウェアプロセッサコア、またはそれらの任意の組合せ)、メインメモリ1204、およびスタティックメモリ1206を含み得、その一部または全部は、インターリンク(例えばバス)1208を介して互いに通信し得る。
[00106] メインメモリ1204の特定の例は、ランダムアクセスメモリ(RAM)、および、いくつかの実施形態ではレジスタなどの半導体にストレージロケーションを含み得る、半導体メモリデバイスを含む。スタティックメモリ1206の特定の例は、半導体メモリデバイス(例えば電気的にプログラム可能な読取り専用メモリ(EPROM)、電気的に消去可能なプログラム可能な読取り専用メモリ(EEPROM(登録商標)))およびフラッシュメモリデバイス、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、RAM、ならびにCD−ROMおよびDVD−ROMディスクなどの不揮発性メモリを含む。
[00107] 機械1200はさらに、ディスプレイデバイス1210、入力デバイス1212(例えばキーボード)、およびユーザインターフェース(UI)ナビゲーションデバイス1214(例えばマウス)を含み得る。一例では、ディスプレイデバイス1210、入力デバイス1212、およびUIナビゲーションデバイス1214は、タッチスクリーンディスプレイであり得る。機械1200は、追加的に、大容量記憶装置(例えばドライブユニット)1216、信号生成デバイス1218(例えばスピーカ)、ネットワークインターフェースデバイス1220、およびグローバル測位システム(GPS)センサ、コンパス、加速度計、または他のセンサなどの1つまたは複数のセンサ1221を含み得る。機械1200は、1つまたは複数の周辺デバイス(例えばプリンタ、カードリーダ等)を通信または制御するための、シリアル(例えばユニバーサルシリアルバス(USB))、パラレル、または他のワイヤードまたはワイヤレス(例えば赤外線(IR)、近距離通信(NFC)等)接続などの、出力コントローラ1228を含み得る。いくつかの実施形態では、ハードウェアプロセッサ1202および/または命令1224は、処理回路および/またはトランシーバ回路を備え得る。
[00108] 記憶デバイス1216は、本明細書に記載の技法または機能のうちのいずれか1つまたは複数を具現化する、またはそれによって利用されるデータ構造または命令1224(例えばソフトウェア)の1つまたは複数のセットを記憶した機械可読媒体1222を含み得る。命令1224はまた、機械1200によるその実行中、メインメモリ1204内、スタティックメモリ1206内、またはハードウェアプロセッサ1202内に、完全または少なくとも部分的に常駐し得る。一例では、ハードウェアプロセッサ1202、メインメモリ1204、スタティックメモリ1206、または記憶デバイス1216のうちの1つまたは任意の組合せは、機械可読媒体を成し得る。
[00109] 機械可読媒体の特定の例は、半導体メモリデバイス(例えばEPROMまたはEEPROM)およびフラッシュメモリデバイス、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、RAM、ならびにCD−ROMおよびDVD−ROMディスクなどの不揮発性メモリを含み得る。
[00110] 機械可読媒体1222が単一の媒体として例示されているが、「機械可読媒体」という用語は、1つまたは複数の命令1224を記憶するように構成された単一の媒体または複数の媒体(例えば集中型または分散型データベース、および/または関連するキャッシュならびにサーバ)を含み得る。
[00111] 機械1200の装置は、ハードウェアプロセッサ1202(例えば中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、ハードウェアプロセッサコア、またはそれらの任意の組合せ)、メインメモリ1204およびスタティックメモリ1206、センサ1221、ネットワークインターフェースデバイス1220、アンテナ1260、ディスプレイデバイス1210、入力デバイス1212、UIナビゲーションデバイス1214、大容量記憶装置1216、命令1224、信号生成デバイス1218、ならびに出力コントローラ1228のうちの1つまたは複数であり得る。装置は、本明細書に開示の方法および/または動作のうちの1つまたは複数を実行するように構成され得る。装置は、本明細書に開示の方法および/または動作のうちの1つまたは複数を実行し、および/または本明細書に開示の方法および/または動作のうちの1つまたは複数の一部分を実行するための機械1200のコンポーネントとして意図され得る。いくつかの実施形態では、装置は、電力を受け取るためのピンまたは他の手段を含み得る。いくつかの実施形態では、装置は電力調整ハードウェアを含み得る。
[00112] 「機械可読媒体」という用語は、機械1200による実行のための命令を記憶、符号化、または搬送することが可能で、機械1200に、本開示の技法のうちのいずれか1つまたは複数を実行させる、またはそのような命令によって使用またはそれらに関連するデータ構造を記憶、符号化、または搬送することが可能である、任意の媒体を含み得る。非限定的な機械可読媒体の例は、ソリッドステートメモリおよび光ならびに磁気媒体を含み得る。機械可読媒体の特定の例は、半導体メモリデバイス(例えば電気的にプログラム可能な読取り専用メモリ(EPROM)、電気的に消去可能なプログラム可能な読取り専用メモリ(EEPROM))およびフラッシュメモリデバイス、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ランダムアクセスメモリ(RAM)、ならびにCD−ROMおよびDVD−ROMディスクなどの不揮発性メモリを含み得る。いくつかの例において、機械可読媒体は、非一時的機械可読媒体を含み得る。いくつかの例では、機械可読媒体は、一時的な伝播信号ではない機械可読媒体を含み得る。
[00113] 命令1224はさらに、いくつかの転送プロトコル(例えばフレームリレー、インターネットプロトコル(IP)、送信制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)等)のうちのいずれか1つを利用するネットワークインターフェースデバイス1220を介した伝送媒体を使用して通信ネットワーク1226上で送信または受信され得る。例示的な通信ネットワークは、とりわけ、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パケットデータネットワーク(例えばインターネット)、モバイル電話ネットワーク(例えばセルラネットワーク)、基本電話(POTS)ネットワーク、およびワイヤレスデータネットワーク(例えばWi−Fi(登録商標)として既知の米国電気電子技術者協会(IEEE)802.11規格ファミリ、WiMax(登録商標)として既知のIEEE802.16規格ファミリ)、IEEE802.15.4規格ファミリ、ロングタームエボリューション(LTE(登録商標))規格ファミリ、ユニバーサルモバイル電気通信システム(UMTS)規格ファミリ、ピアツーピア(P2P)ネットワークを含み得る。
[00114] 一例では、ネットワークインターフェースデバイス1220は、通信ネットワーク1226に接続するための、1つまたは複数の物理的ジャック(例えばイーサネット(登録商標)、同軸、または電話ジャック)もしくは1つまたは複数のアンテナを含み得る。一例では、ネットワークインターフェースデバイス1220は、単入力多出力(SIMO)、多入力多出力(MIMO)、または多入力単出力(MISO)技法のうちの少なくとも1つを使用してワイヤレスに通信するための1つまたは複数のアンテナ1260を含み得る。いくつかの例では、ネットワークインターフェースデバイス1220は、複数ユーザMIMO技法を使用してワイヤレスに通信し得る。「伝送媒体」という用語は、機械1200による実行のための命令を記憶、符号化、または搬送することが可能である任意の無形媒体を含み、そのようなソフトウェアの通信を容易にするためのデジタルまたはアナログ通信信号もしくは他の無形媒体を含むと解釈されるものである。
[00115] 本明細書に説明される実施例は、論理、またはいくつかのコンポーネント、モジュール、もしくはメカニズムを含み得るか、またはそれらに作用し得る。モジュールは、指定された動作を行うことが可能な有形のエンティティ(例えばハードウェア)であり、ある特定の方式で構成または配列され得る。一例では、回路が、モジュールとして特定の方式で(例えば、内部的に、または他の回路などの外部エンティティに対して)配列され得る。一例では、1つまたは複数のコンピュータシステム(例えばスタンドアロンクライアントまたはサーバコンピュータシステム)もしくは1つまたは複数のハードウェアプロセッサの全体または一部は、指定された動作を実行するように動作するモジュールとしてファームウェアまたはソフトウェア(例えば命令、アプリケーション部分、またはアプリケーション)によって構成され得る。一例では、ソフトウェアは、機械可読媒体に常駐し得る。一例では、ソフトウェアは、基礎をなすモジュールのハードウェアによって実行されると、指定された動作をハードウェアに実行させる。
[00116] 実施例1は、第1のデバイスによって、前記第1のデバイスと第2のデバイスとの間の制限付きアクセス制御されたネットワーク経路を介して、コンピューティングシステム状態を識別するルールおよび前記コンピューティングシステム状態を参照する基準を受信することと、前記第1のデバイスによって、前記コンピューティングシステム状態をモニタリングすることと、前記第1のデバイスによって、および前記モニタリングに基づいて、前記基準を満たしていることを決定することと、前記決定することに基づいて、ネットワークコンポーネントにおいてソフトウェアをインストールまたは除去することと、前記第1のデバイスによって、前記第2のデバイスに、前記制限付きアクセス制御されたネットワーク経路を介して、前記インストールまたは除去のインジケーションを提供することと、を備える方法である。
[00117] 実施例2では、実施例1の主題は任意選択で、前記制限付きアクセス制御されたネットワーク経路を介して、前記第2のデバイスから、前記ソフトウェアのコピーを受信することと、前記第1のデバイスにおいて前記ソフトウェアの前記コピーをステージングすることとを含み、前記インストールまたは除去が、前記基準を満たすことに応答して、前記ステージングされたコピーに基づいて第1のネットワークコンポーネントに前記ソフトウェアをインストールすることをさらに備える。
[00118] 実施例3では、実施例2の主題は任意選択で、前記制限付きアクセス制御されたネットワーク経路が、ファイアウォールによって制御され、前記ファイアウォールが、前記第2のデバイスによる前記第1のネットワークコンポーネントへのアクセスをブロックするように構成されることを含む。
[00119] 実施例4では、実施例3の主題は任意選択で、前記ファイアウォールが、エンタープライズネットワークへのアクセスを制限し、前記第1のデバイスが、前記エンタープライズネットワークの前記コンピューティングシステム状態をモニタリングし、前記第2のデバイスが、前記ファイアウォールによって前記コンピューティングシステム状態をモニタリングすることを防止されることを含む。
[00120] 実施例5では、実施例3〜4のうちのいずれか1つまたは複数の実施例の主題は任意選択で、前記ファイアウォールが、前記第2のデバイスによる前記モニタリングされたコンピューティングシステム状態へのアクセスをブロックするようにさらに構成されることを含む。
[00121] 実施例6では、実施例1〜5のうちのいずれか1つまたは複数の実施例の主題は任意選択で、前記モニタリングされたコンピューティングシステム状態が、CPU利用率、メモリ利用率、I/Oチャネル利用率、またはネットワーク利用率のうちの1つまたは複数を含むことを含む。
[00122] 実施例7では、実施例1〜6のうちのいずれか1つまたは複数の実施例の主題は任意選択で、前記基準が、コンピューティングシステム状態の同時測定値と前記コンピューティングシステム状態の履歴測定値との関係を定義することを含む。
[00123] 実施例8では、実施例7の主題は任意選択で、コンピューティングシステム状態を周期的にモニタリングすることと、前記周期的にモニタリングすることに基づいて前記コンピューティングシステム状態のインジケーションを記憶することと、前記コンピューティングシステム状態の複数の記憶されたインジケーションに基づいて前記コンピューティングシステム状態の前記履歴測定値を生成することとを含む。
[00124] 実施例9は、ハードウェア処理回路と、命令を記憶する1つまたは複数のハードウェアメモリとを備えるシステムであり、前記命令は、第1のデバイスによって、前記第1のデバイスと第2のデバイスとの間の制限付きアクセス制御されたネットワーク経路を介して、コンピューティングシステム状態を識別するルールおよび前記コンピューティングシステム状態を参照する基準を受信することと、前記第1のデバイスによって、前記コンピューティングシステム状態をモニタリングすることと、前記第1のデバイスによって、前記基準を満たしていることを決定することと、前記決定することに基づいて、ネットワークコンポーネント上にソフトウェアをインストールまたは除去することと、前記第1のデバイスによって、前記第2のデバイスに、前記制限付きアクセス制御されたネットワーク経路を介して、前記インストールまたは除去することのインジケーションを提供することと、を備える動作を行うように前記ハードウェア処理回路を構成する。
[00125] 実施例10では、実施例9の主題は任意選択で、前記動作が、前記第2のデバイスから、前記制限付きアクセス制御されたネットワーク経路を介して、前記ソフトウェアのコピーを受信することと、前記第1のデバイスにおいて前記ソフトウェアの前記コピーをステージングすることとをさらに備え、前記条件付けられたインストールまたは除去を前記行うことが、前記評価することに応答して、前記ステージングされたコピーに基づいて第1のネットワークコンポーネントに前記ソフトウェアをインストールすることをさらに備える。
[00126] 実施例11では、実施例10の主題は任意選択で、前記制限付きアクセス制御されたネットワーク経路が、ファイアウォールによって制御され、前記ファイアウォールが、前記第2のデバイスによる前記第1のネットワークコンポーネントへのアクセスをブロックするように構成されることを含む。
[00127] 実施例12では、実施例11の主題は任意選択で、前記ファイアウォールが、エンタープライズネットワークへのアクセスを制限し、前記第1のデバイスが、前記エンタープライズネットワークの前記コンピューティングシステム状態をモニタリングし、前記第2のデバイスが、前記ファイアウォールによって前記コンピューティングシステム状態をモニタリングすることを防止されることを含む。
[00128] 実施例13では、実施例11〜12のうちのいずれか1つまたは複数の実施例の主題は任意選択で、前記ファイアウォールが、前記第2のデバイスによる前記モニタリングされたコンピューティングシステム状態へのアクセスをブロックするようにさらに構成されることを含む。
[00129] 実施例14では、実施例9〜13のうちのいずれか1つまたは複数の実施例の主題は任意選択で、前記モニタリングされたコンピューティングシステム状態が、CPU利用率、メモリ利用率、I/Oチャネル利用率、またはネットワーク利用率のうちの1つまたは複数を含むことを含む。
[00130] 実施例15では、実施例9〜14のうちのいずれか1つまたは複数の実施例の主題は任意選択で、前記基準が、コンピューティングシステム状態の同時測定値と前記コンピューティングシステム状態の履歴測定値との関係を定義することを含む。
[00131] 実施例16では、実施例15の主題は任意選択で、前記動作が、コンピューティングシステム状態を周期的にモニタリングすることと、前記周期的にモニタリングすることに基づいて前記コンピューティングシステム状態のインジケーションを記憶することと、前記コンピューティングシステム状態の複数の記憶されたインジケーションに基づいて前記コンピューティングシステム状態の前記履歴測定値を生成することとをさらに備えることを含む。
[00132] 実施例17は、命令を備える非一時的コンピュータ可読記憶媒体であり、前記命令は、実行されると、第1のデバイスによって、前記第1のデバイスと第2のデバイスとの間の制限付きアクセス制御されたネットワーク経路を介して、コンピューティングシステム状態を定義するルールおよび前記コンピューティングシステム状態を参照する基準を受信することと、前記第1のデバイスによって、前記ルールによって識別された前記コンピューティングシステム状態をモニタリングすることと、前記第1のデバイスによって、前記基準を満たしていることを決定することと、前記決定することに基づいて、第1のネットワークコンポーネント上にソフトウェアをインストールまたは除去することと、前記第1のデバイスによって、前記第2のデバイスに、前記制限付きアクセス制御されたネットワーク経路を介して、前記インストールまたは除去することのインジケーションを提供することと、を備える動作を行うようにハードウェア処理回路を構成する。
[00133] 実施例18では、実施例17の主題は任意選択で、前記制限付きアクセス制御されたネットワーク経路を介して、前記第2のデバイスから、前記ソフトウェアのコピーを受信することと、前記第1のデバイスにおいて前記ソフトウェアの前記コピーをステージングすることとを含み、前記インストールまたは除去は、前記評価することに応答して、前記ステージングされたコピーに基づいて前記第1のネットワークコンポーネントに前記ソフトウェアをインストールすることを備える。
[00134] 実施例19では、実施例18の主題は任意選択で、前記制限付きアクセス制御されたネットワーク経路が、ファイアウォールによって制御され、前記ファイアウォールが、前記第2のデバイスによる前記第1のネットワークコンポーネントへのアクセスをブロックするように構成されることを含む。
[00135] 実施例20では、実施例19の主題は任意選択で、前記ファイアウォールが、エンタープライズネットワークへのアクセスを制限し、前記第1のデバイスが、前記エンタープライズネットワークの前記コンピューティングシステム状態をモニタリングし、前記第2のデバイスが、前記ファイアウォールによって前記コンピューティングシステム状態をモニタリングすることを防止されることを含む。
[00136] 適宜、「モジュール」という用語は、有形のエンティティを包含し、特定の方式で、または本明細書に記載の任意の動作の一部または全部を実行するように動作するように、物理的に構築された、特定的に構成された(例えばハードワイヤード)、または一時的(temporarily)(例えば一時的(transitorily))に構成(例えばプログラム)されたエンティティであると理解される。モジュールが一時的に構成された実施例を考慮すると、モジュールの各々は、どの時点でもインスタンス化される必要はない。例えば、モジュールが、ソフトウェアを使用して構成された汎用ハードウェアプロセッサを備える場合、汎用ハードウェアプロセッサは、異なる時間でそれぞれ異なるモジュールとして構成され得る。ソフトウェアは、これに応じて、ハードウェアプロセッサを、例えば、1つの時間インスタンスで特定のモジュールを成し、異なる時間インスタンスで異なるモジュールを成すように構成し得る。
[00137] 様々な実施形態は、ソフトウェアおよび/またはファームウェアにおいて完全または部分的に実装され得る。このソフトウェアおよび/またはファームウェアは、非一時的コンピュータ可読記憶媒体に含まれる命令の形態をとり得る。それらの命令は次いで、本明細書に記載の動作の実行を可能にするために1つまたは複数のプロセッサによって読み取られ、実行され得る。命令は、これらに限定されないが、ソースコード、コンパイル型コード、解釈型コード、実行可能コード、静的コード、動的コード、および同様のものなどの任意の好適な形態であり得る。このようなコンピュータ可読媒体は、これらに限定されないが、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ等のような、1つまたは複数のコンピュータによって読取り可能な形態で情報を記憶するための任意の有形の非一時的媒体を含み得る。

Claims (20)

  1. 第1のデバイスによって、前記第1のデバイスと第2のデバイスとの間の制限付きアクセス制御されたネットワーク経路を介して、コンピューティングシステム状態を識別するルールおよび前記コンピューティングシステム状態を参照する基準を受信することと、
    前記第1のデバイスによって、前記コンピューティングシステム状態をモニタリングすることと、
    前記第1のデバイスによって、および前記モニタリングに基づいて、前記基準を満たしていることを決定することと、
    前記決定することに基づいて、ネットワークコンポーネントにおいてソフトウェアをインストールまたは除去することと、
    前記第1のデバイスによって、前記制限付きアクセス制御されたネットワーク経路を介して、前記第2のデバイスに、前記インストールまたは除去のインジケーションを提供することと
    を備える、方法。
  2. 前記制限付きアクセス制御されたネットワーク経路を介して、前記第2のデバイスから、前記ソフトウェアのコピーを受信することと、前記第1のデバイスにおいて前記ソフトウェアの前記コピーをステージングすることとをさらに備え、前記インストールまたは除去は、前記基準を満たすことに応答して、前記ステージングされたコピーに基づいて第1のネットワークコンポーネントに前記ソフトウェアをインストールすることをさらに備える、請求項1に記載の方法。
  3. 前記制限付きアクセス制御されたネットワーク経路は、ファイアウォールによって制御され、前記ファイアウォールは、前記第2のデバイスによる前記第1のネットワークコンポーネントへのアクセスをブロックするように構成される、請求項2に記載の方法。
  4. 前記ファイアウォールは、エンタープライズネットワークへのアクセスを制限し、前記第1のデバイスは、前記エンタープライズネットワークの前記コンピューティングシステム状態をモニタリングし、前記第2のデバイスは、前記ファイアウォールによって前記コンピューティングシステム状態をモニタリングすることを防止される、請求項3に記載の方法。
  5. 前記ファイアウォールは、前記第2のデバイスによる前記モニタリングされたコンピューティングシステム状態へのアクセスをブロックするようにさらに構成される、請求項3に記載の方法。
  6. 前記モニタリングされたコンピューティングシステム状態は、CPU利用率、メモリ利用率、I/Oチャネル利用率、またはネットワーク利用率のうちの1つまたは複数を含む、請求項1に記載の方法。
  7. 前記基準は、コンピューティングシステム状態の同時測定値と前記コンピューティングシステム状態の履歴測定値との関係を定義する、請求項1に記載の方法。
  8. コンピューティングシステム状態を周期的にモニタリングすることと、前記周期的にモニタリングすることに基づいて前記コンピューティングシステム状態のインジケーションを記憶することと、前記コンピューティングシステム状態の複数の記憶されたインジケーションに基づいて前記コンピューティングシステム状態の前記履歴測定値を生成することとをさらに備える、請求項7に記載の方法。
  9. ハードウェア処理回路と、
    命令を記憶する1つまたは複数のハードウェアメモリと
    を備え、前記命令は、
    第1のデバイスによって、前記第1のデバイスと第2のデバイスとの間の制限付きアクセス制御されたネットワーク経路を介して、コンピューティングシステム状態を識別するルールおよび前記コンピューティングシステム状態を参照する基準を受信することと、
    前記第1のデバイスによって、前記コンピューティングシステム状態をモニタリングすることと、
    前記第1のデバイスによって、前記基準を満たしていることを決定することと、
    前記決定することに基づいて、ネットワークコンポーネント上のソフトウェアをインストールまたは除去することと、
    前記第1のデバイスによって、前記第2のデバイスに、前記制限付きアクセス制御されたネットワーク経路を介して、前記インストールまたは除去することのインジケーションを提供することと
    を備える動作を行うように前記ハードウェア処理回路を構成する、システム。
  10. 前記動作は、前記第2のデバイスから、前記制限付きアクセス制御されたネットワーク経路を介して、前記ソフトウェアのコピーを受信することと、前記第1のデバイスにおいて前記ソフトウェアの前記コピーをステージングすることとをさらに備え、前記条件付けられたインストールまたは除去を前記行うことは、前記評価することに応答して、前記ステージングされたコピーに基づいて第1のネットワークコンポーネントに前記ソフトウェアをインストールすることをさらに備える、請求項9に記載のシステム。
  11. 前記制限付きアクセス制御されたネットワーク経路は、ファイアウォールによって制御され、前記ファイアウォールは、前記第2のデバイスによる前記第1のネットワークコンポーネントへのアクセスをブロックするように構成される、請求項10に記載のシステム。
  12. 前記ファイアウォールは、エンタープライズネットワークへのアクセスを制限し、前記第1のデバイスは、前記エンタープライズネットワークの前記コンピューティングシステム状態をモニタリングし、前記第2のデバイスは、前記ファイアウォールによって前記コンピューティングシステム状態をモニタリングすることを防止される、請求項11に記載のシステム。
  13. 前記ファイアウォールは、前記第2のデバイスによる前記モニタリングされたコンピューティングシステム状態へのアクセスをブロックするようにさらに構成される、請求項11に記載のシステム。
  14. 前記モニタリングされたコンピューティングシステム状態は、CPU利用率、メモリ利用率、I/Oチャネル利用率、またはネットワーク利用率のうちの1つまたは複数を含む、請求項9に記載のシステム。
  15. 前記基準は、コンピューティングシステム状態の同時測定値と前記コンピューティングシステム状態の履歴測定値との関係を定義する、請求項9に記載のシステム。
  16. 前記動作は、コンピューティングシステム状態を周期的にモニタリングすることと、前記周期的にモニタリングすることに基づいて前記コンピューティングシステム状態のインジケーションを記憶することと、前記コンピューティングシステム状態の複数の記憶されたインジケーションに基づいて前記コンピューティングシステム状態の前記履歴測定値を生成することとをさらに備える、請求項15に記載のシステム。
  17. 命令を備える非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されると、
    第1のデバイスによって、前記第1のデバイスと第2のデバイスとの間の制限付きアクセス制御されたネットワーク経路を介して、コンピューティングシステム状態を定義するルールおよび前記コンピューティングシステム状態を参照する基準を受信することと、
    前記第1のデバイスによって、前記ルールによって識別された前記コンピューティングシステム状態をモニタリングすることと、
    前記第1のデバイスによって、前記基準を満たしていることを決定することと、
    前記決定することに基づいて、第1のネットワークコンポーネント上のソフトウェアをインストールまたは除去することと、
    前記第1のデバイスによって、前記第2のデバイスに、前記制限付きアクセス制御されたネットワーク経路を介して、前記インストールまたは除去することのインジケーションを提供することと
    を備える動作を行うようにハードウェア処理回路を構成する、非一時的コンピュータ可読記憶媒体。
  18. 前記制限付きアクセス制御されたネットワーク経路を介して、前記第2のデバイスから、前記ソフトウェアのコピーを受信することと、前記第1のデバイスにおいて前記ソフトウェアの前記コピーをステージングすることとをさらに備え、前記インストールまたは除去は、前記評価することに応答して、前記ステージングされたコピーに基づいて前記第1のネットワークコンポーネントに前記ソフトウェアをインストールすることを備える、請求項17に記載の非一時的コンピュータ可読記憶媒体。
  19. 前記制限付きアクセス制御されたネットワーク経路は、ファイアウォールによって制御され、前記ファイアウォールは、前記第2のデバイスによる前記第1のネットワークコンポーネントへのアクセスをブロックするように構成される、請求項18に記載の非一時的コンピュータ可読記憶媒体。
  20. 前記ファイアウォールは、エンタープライズネットワークへのアクセスを制限し、前記第1のデバイスは、前記エンタープライズネットワークの前記コンピューティングシステム状態をモニタリングし、前記第2のデバイスは、前記ファイアウォールによって前記コンピューティングシステム状態をモニタリングすることを防止される、請求項19に記載の非一時的コンピュータ可読記憶媒体。
JP2020057123A 2019-06-23 2020-03-27 ルールで駆動されるソフトウェアデプロイメントエージェント Withdrawn JP2021002325A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962865251P 2019-06-23 2019-06-23
US62/865,251 2019-06-23
US16/728,464 US11206185B2 (en) 2019-06-23 2019-12-27 Rules driven software deployment agent
US16/728,464 2019-12-27

Publications (1)

Publication Number Publication Date
JP2021002325A true JP2021002325A (ja) 2021-01-07

Family

ID=70008415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020057123A Withdrawn JP2021002325A (ja) 2019-06-23 2020-03-27 ルールで駆動されるソフトウェアデプロイメントエージェント

Country Status (6)

Country Link
US (3) US11206185B2 (ja)
EP (1) EP3758295A1 (ja)
JP (1) JP2021002325A (ja)
CN (2) CN112202590B (ja)
AU (1) AU2020201178A1 (ja)
CA (1) CA3072907A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11206185B2 (en) 2019-06-23 2021-12-21 Juniper Networks, Inc. Rules driven software deployment agent

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10985969B2 (en) 2019-02-19 2021-04-20 Juniper Networks, Inc. Systems and methods for a virtual network assistant
US11012326B1 (en) 2019-12-17 2021-05-18 CloudFit Software, LLC Monitoring user experience using data blocks for secure data access
US11422830B1 (en) * 2020-03-05 2022-08-23 C/Hca, Inc. Decentralized mobile device control
US20210349705A1 (en) * 2020-05-05 2021-11-11 International Business Machines Corporation Performance sensitive storage system upgrade
US11816461B2 (en) * 2020-06-30 2023-11-14 Paypal, Inc. Computer model management system
US11599837B2 (en) * 2020-12-30 2023-03-07 Microsoft Technology Licensing, Llc Method and system for selection of users in feature rollout
US20220276948A1 (en) * 2021-02-26 2022-09-01 Shopify Inc. System and method for optimizing performance of online services
US20220413991A1 (en) * 2021-06-25 2022-12-29 Microsoft Technology Licensing, Llc Techniques for Improved Statistically Accurate A/B Testing of Software Build Versions
US20230020899A1 (en) * 2021-06-30 2023-01-19 Juniper Networks, Inc. Virtual network assistant with location input
US11770290B2 (en) 2021-08-13 2023-09-26 Juniper Networks, Inc. Network management actions based on access point classification
US20230056727A1 (en) * 2021-08-23 2023-02-23 Dell Products, L.P. Managing the degradation of information handling system (ihs) performance due to software installations
US11829743B2 (en) 2021-09-29 2023-11-28 Microsoft Technology Licensing, Llc Method and system for providing customized rollout of features
US11789856B2 (en) * 2021-09-30 2023-10-17 Snap Inc. Application launch support
US20230105023A1 (en) * 2021-10-04 2023-04-06 Target Brands, Inc. Deployment migration tool with decoding capabilities
WO2022126034A1 (en) * 2021-12-27 2022-06-16 Innopeak Technology, Inc. Tracking of device updates and troubleshooting devices
CN114756275A (zh) * 2022-04-12 2022-07-15 鼎捷软件股份有限公司 版本管理系统以及版本管理方法
CN115134238B (zh) * 2022-08-30 2023-01-10 太平金融科技服务(上海)有限公司深圳分公司 业务系统发布方法、装置、计算机设备和存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9087319B2 (en) * 2002-03-11 2015-07-21 Oracle America, Inc. System and method for designing, developing and implementing internet service provider architectures
US8161162B1 (en) 2004-06-30 2012-04-17 Kaseya International Limited Remote computer management using network communications protocol that enables communication through a firewall and/or gateway
US20170344703A1 (en) 2006-12-29 2017-11-30 Kip Prod P1 Lp Multi-services application gateway and system employing the same
EP2015541B1 (en) 2007-05-10 2010-05-05 Research In Motion Limited System and method for device management
US8209738B2 (en) * 2007-05-31 2012-06-26 The Board Of Trustees Of The University Of Illinois Analysis of distributed policy rule-sets for compliance with global policy
US9262145B2 (en) * 2011-10-31 2016-02-16 Hewlett Packard Enterprise Development Lp Remote software deployment across a network
US9311066B1 (en) 2012-06-25 2016-04-12 Amazon Technologies, Inc. Managing update deployment
US9094473B2 (en) 2013-02-28 2015-07-28 International Business Machines Corporation Installation of an asset from a cloud marketplace to a cloud server in a private network
US9231946B2 (en) * 2014-02-07 2016-01-05 Oracle International Corporation Mobile cloud service architecture
US20160055077A1 (en) * 2014-08-25 2016-02-25 General Electric Company Method, device, and program storage device for autonomous software product testing
US20160164957A1 (en) * 2014-12-04 2016-06-09 Jaan Leemet Host Optimization For Network Accessible Software
US9952850B2 (en) 2015-07-28 2018-04-24 Datadirect Networks, Inc. Automated firmware update with rollback in a data storage system
US10097621B2 (en) * 2015-09-11 2018-10-09 At&T Intellectual Property I, L.P. Application deployment engine
US10496398B2 (en) 2017-07-25 2019-12-03 Aurora Labs Ltd. Hot updates to ECU software using tool chain
US10289403B1 (en) 2018-03-29 2019-05-14 Microsoft Technology Licensing, Llc Enhanced server farm patching system for enabling developers to override off-peak patching schedules
US20190138295A1 (en) 2018-12-28 2019-05-09 Intel Corporation Delivery of firmware updates in a low-power mesh network
US11206185B2 (en) 2019-06-23 2021-12-21 Juniper Networks, Inc. Rules driven software deployment agent

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11206185B2 (en) 2019-06-23 2021-12-21 Juniper Networks, Inc. Rules driven software deployment agent
US11777802B2 (en) 2019-06-23 2023-10-03 Juniper Networks, Inc. Rules driven software deployment agent

Also Published As

Publication number Publication date
US11206185B2 (en) 2021-12-21
CA3072907A1 (en) 2020-12-23
US11777802B2 (en) 2023-10-03
AU2020201178A1 (en) 2021-01-14
EP3758295A1 (en) 2020-12-30
CN112202590A (zh) 2021-01-08
US20200403855A1 (en) 2020-12-24
CN117278404A (zh) 2023-12-22
US20220094592A1 (en) 2022-03-24
CN112202590B (zh) 2023-09-08
US20230403194A1 (en) 2023-12-14

Similar Documents

Publication Publication Date Title
JP2021002325A (ja) ルールで駆動されるソフトウェアデプロイメントエージェント
CN111527478B (zh) 云设备协同实时用户体验和性能异常检测的系统和方法
US10740149B2 (en) Serverless computing architecture
US10628251B2 (en) Intelligent preventative maintenance of critical applications in cloud environments
US10992554B2 (en) Intelligent data analytics collectors
US9342381B2 (en) Method and system for establishing a DLP-compliant environment
US10638409B2 (en) Wi-Fi roaming management
US20190182105A1 (en) System facilitating prediction, detection and mitigation of network or device issues in communication systems
US9921877B2 (en) Intelligent auto-scaling
US20160259708A1 (en) Collaborative collection of diagnostics data of software programs
EP4066441B1 (en) Management of iot devices in wireless communication networks
US10904086B1 (en) Device capabilities management from a service provider environment
US9607275B2 (en) Method and system for integration of systems management with project and portfolio management
US20150277892A1 (en) Multi-phase software delivery
US11379777B2 (en) Estimating a result of configuration change(s) in an enterprise
US20150052251A1 (en) System and method for managing multi-process priority and parameter conflict in a self organizing network controller
WO2023109340A1 (zh) 基站版本升级方法、基站、网络设备及存储介质
US10911363B2 (en) Method and apparatus for performing file shaping
Sarathchandra Magurawalage Network-aware resource management for mobile cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210407

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20210416