JP6676590B2 - Layer optimization device, layer optimization method, and layer optimization program - Google Patents
Layer optimization device, layer optimization method, and layer optimization program Download PDFInfo
- Publication number
- JP6676590B2 JP6676590B2 JP2017146980A JP2017146980A JP6676590B2 JP 6676590 B2 JP6676590 B2 JP 6676590B2 JP 2017146980 A JP2017146980 A JP 2017146980A JP 2017146980 A JP2017146980 A JP 2017146980A JP 6676590 B2 JP6676590 B2 JP 6676590B2
- Authority
- JP
- Japan
- Prior art keywords
- layer
- category
- unit
- classified
- tag
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、レイヤ最適化装置、レイヤ最適化方法およびレイヤ最適化プログラムに関する。 The present invention relates to a layer optimization device, a layer optimization method, and a layer optimization program.
従来、エッジコンピューティングにおけるエッジ端末上で動作するアプリケーションの元となるコンテナイメージが知られている。クラウドなどで管理するコンテナイメージを様々なエッジサーバに配信する。このようなコンテナイメージは、あるOS(Operating System)に対してアプリケーション実行に必要なミドルウェアやライブラリ、アプリケーションの実行ファイルなどをインストールして、イメージ化したものである。 2. Description of the Related Art Conventionally, a container image serving as a source of an application operating on an edge terminal in edge computing has been known. Distribute container images managed in the cloud etc. to various edge servers. Such a container image is obtained by installing middleware, libraries, application execution files, and the like necessary for executing an application in a certain OS (Operating System) and converting the image into an image.
コンテナイメージの定義手段として、レイヤにわけて構成させる方法がある。レイヤはイメージ定義ファイルで定義したイメージを作成するための手順ごとに一つのレイヤとなり、これらを積み重ねていくことで、一つのコンテナイメージとする方法がある(例えば、非特許文献1参照)。また、例えば、イメージの転送を行う場合にレイヤごとの転送が可能であり、エッジサーバに転送済のイメージに変更が生じた際に、差分があるレイヤのみ転送する方法がある。一方、イメージのレイヤ情報を統合して一つの大きなレイヤとして管理する方法も存在する(例えば、非特許文献2参照)。 As a means for defining a container image, there is a method of configuring a container image in layers. A layer is one layer for each procedure for creating an image defined in the image definition file, and there is a method of stacking these layers to form one container image (for example, see Non-Patent Document 1). Further, for example, there is a method in which image transfer can be performed for each layer, and when a change occurs in an image transferred to the edge server, only a layer having a difference is transferred. On the other hand, there is also a method of integrating layer information of an image and managing it as one large layer (for example, see Non-Patent Document 2).
しかしながら、従来の技術では、コンテナイメージを軽量化することができないという課題があった。例えば、従来の技術では、コンテナイメージを複数のレイヤに分割することでイメージの作成や配信の効率化を行うが、レイヤには上位と下位の関係が存在し下位レイヤは上位レイヤに依存しないため上位レイヤでの処理を下位レイヤは意識しない。そのため上位レイヤで削除されるファイルが下位レイヤに残った状態となることがある。 However, the conventional technology has a problem that the container image cannot be reduced in weight. For example, in the related art, the efficiency of image creation and distribution is improved by dividing a container image into a plurality of layers. However, since layers have a relationship between upper and lower layers and lower layers do not depend on upper layers. The process in the upper layer is not conscious of the lower layer. Therefore, a file to be deleted in the upper layer may remain in the lower layer.
具体例を挙げて説明すると、例えば、レイヤごとに操作が独立であるため、あるレイヤ1でファイルAをイメージ内に保存し、その上位レイヤ2で保存したファイルAを削除したとしても、レイヤ1にはファイルAの情報が残り、最終的な実行時にはファイルAは削除されているにも関わらずイメージサイズにはファイルAの容量が加算される。
For example, since the operation is independent for each layer, even if the file A is stored in the image in one
なお、レイヤを不必要に増加させた場合イメージサイズが増加し、レイヤを過剰に統合する場合、更新時に本来必要の無いミドルウェアの転送などが必要となってしまう。1つのレイヤに統合すべき処理、分割すべき処理の判断はこれまで開発者の経験やスキルに依存していた。 When the number of layers is unnecessarily increased, the image size increases. When the layers are excessively integrated, it is necessary to transfer middleware that is not originally required at the time of updating. Until now, the judgment of the processing to be integrated and the processing to be divided into one layer has depended on the experience and skills of the developer.
上述した課題を解決し、目的を達成するために、本発明のレイヤ最適化装置は、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する分類部と、前記分類部によって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合部と、前記分類部によって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置部とを有することを特徴とする。 In order to solve the above-described problem and achieve the object, the layer optimizing apparatus of the present invention performs each process included in an image definition file defining a container image serving as a source of an application for each category set in advance. A classifying unit that classifies processes into the same category by the classifying unit; an integrating unit that integrates processes so that the processes are classified into the same layer; And an arrangement section for arranging the categories so as to become higher layers.
また、本発明のレイヤ最適化方法は、レイヤ最適化装置によって実行されるレイヤ最適化方法であって、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する分類工程と、前記分類工程によって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合工程と、前記分類工程によって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置工程とを含んだことを特徴とする。 Further, the layer optimization method of the present invention is a layer optimization method executed by a layer optimization apparatus, wherein each process included in an image definition file defining a container image serving as a source of an application is set in advance. A classification step of classifying each of the categories, an integration step of integrating each processing such that the processing classified into the same category by the classification step is the same layer, and a category in which the processing is classified by the classification step, And a step of arranging so that the higher the update frequency, the higher the layer.
また、本発明のレイヤ最適化プログラムは、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する分類ステップと、前記分類ステップによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合ステップと、前記分類ステップによって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置ステップとをコンピュータに実行させる。 In addition, the layer optimization program of the present invention includes a classification step of classifying each process included in an image definition file that defines a container image that is a source of an application according to a preset category, and the classification step. An integration step of integrating the processes so that the processes classified into the categories are on the same layer; and an arrangement in which the categories whose processes are classified by the classification step are arranged so that the higher the update frequency, the higher the layer. And causing the computer to execute the steps.
本発明によれば、イメージ定義ファイルの最適化を行い、コンテナイメージを軽量化することができるという効果を奏する。 According to the present invention, there is an effect that the image definition file can be optimized and the container image can be reduced in weight.
以下に、本願に係るレイヤ最適化装置、レイヤ最適化方法およびレイヤ最適化プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態により本願に係るレイヤ最適化装置、レイヤ最適化方法およびレイヤ最適化プログラムが限定されるものではない。 Hereinafter, embodiments of a layer optimization device, a layer optimization method, and a layer optimization program according to the present application will be described in detail with reference to the drawings. The embodiment does not limit the layer optimization device, the layer optimization method, and the layer optimization program according to the present application.
[第一の実施の形態]
以下の実施の形態では、第一の実施の形態に係る配信システムの構成、レイヤ最適化装置の構成、レイヤ最適化装置における処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
[First embodiment]
In the following embodiments, the configuration of the distribution system according to the first embodiment, the configuration of the layer optimizing device, the flow of processing in the layer optimizing device will be described in order, and finally the effect of the first embodiment will be described. Will be described.
[配信システムの構成]
まず、図1を用いて、第一の実施の形態に係る配信システムについて説明する。図1は、第一の実施の形態に係る配信システムの構成の一例を示す図である。第一の実施の形態に係る配信システムは、レイヤ最適化装置10、配信サーバ20および複数のエッジ端末30A、30Bを有し、各装置は通信網40を介して接続されている。なお、複数のエッジ端末30A、30Bについて、特に区別なく説明する場合には、エッジ端末30と記載する。また、図1に示す各装置の数は、あくまで一例であり、これに限られるものではない。
[Configuration of distribution system]
First, a distribution system according to the first embodiment will be described with reference to FIG. FIG. 1 is a diagram illustrating an example of a configuration of a distribution system according to the first embodiment. The distribution system according to the first embodiment has a
レイヤ最適化装置10は、イメージ定義ファイルの入力を受け付けると、イメージ更新時の転送容量の削減とイメージ全体のイメージサイズの削減のため、主に更新頻度にもとづきイメージ定義ファイルにおける処理をカテゴリ分けし、更新頻度の高いカテゴリほど上位のレイヤに配置する。また、レイヤ最適化装置10は、同一のカテゴリにある処理はレイヤを分割することなく、同一レイヤに統合する。
When receiving the input of the image definition file, the
配信サーバ20は、エッジコンピューティングにおけるエッジ端末30上で動作するアプリケーションの元となるコンテナイメージをエッジ端末30に配信する。コンテナイメージとは、アプリケーション実行環境を内包するイメージファイルであり、例えば、アプリケーション開発者により、イメージ定義ファイルを用いて作成される。また、コンテナイメージは、複数のレイヤから構成される。各レイヤは、イメージ定義ファイルで定義される。 The distribution server 20 distributes, to the edge terminal 30, a container image that is a source of an application operating on the edge terminal 30 in edge computing. The container image is an image file containing an application execution environment, and is created by, for example, an application developer using an image definition file. Further, the container image is composed of a plurality of layers. Each layer is defined in an image definition file.
エッジ端末30A、30Bは、例えば、エッジコンピューティングアーキテクチャにおいてエッジサーバとして用いられる装置であり、アプリケーションを動作させる装置である。エッジ端末30A、30Bは、配信サーバ20から配信されたコンテナイメージを受信し、受信したコンテナイメージを基にアプリケーションを動作させる。なお、エッジアーキテクチャにおいてエッジ端末30A、30Bは、データセンタ内と比較しリソース(ディスクやネットワーク帯域)が貧弱であることが多い。そのため、ディスクを有効活用するためにはコンテナイメージを小さくする必要があり、ネットワークを有効活用するためには配信効率の良いコンテナイメージフォーマットを保つ必要がある。 The edge terminals 30A and 30B are devices used as edge servers in an edge computing architecture, for example, and are devices that operate applications. The edge terminals 30A and 30B receive the container image distributed from the distribution server 20, and operate the application based on the received container image. In the edge architecture, the edge terminals 30A and 30B often have poor resources (disks and network bandwidth) as compared with those in the data center. Therefore, it is necessary to reduce the size of the container image in order to make effective use of the disk, and it is necessary to maintain a container image format with high distribution efficiency in order to make effective use of the network.
第一の実施の形態に係るレイヤ最適化装置10では、イメージ定義ファイルの最適化を行うことで、イメージサイズの削減と、イメージ更新時の別サーバへの転送容量の削減との両立を自動で行うことを可能にした。このため、これまでアプリ開発者のコンテナイメージ構成に関する深い知識に基づいて行われていた最適化を自動で行うことができる。
The
[レイヤ最適化装置の構成]
次に、図2を用いて、図1に示したレイヤ最適化装置10の構成を説明する。図2は、第一の実施の形態に係るレイヤ最適化装置の構成例を示すブロック図である。図2に示すように、このレイヤ最適化装置10は、通信処理部11、入力部12、出力部13、制御部14および記憶部15を有する。以下にレイヤ最適化装置10が有する各部の処理を説明する。なお、レイヤ最適化装置10の各機能の一部または全てを、配信サーバ20が保持してもよい。
[Configuration of Layer Optimization Device]
Next, the configuration of the
通信処理部11は、接続される装置との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部11は、最適化されたイメージ定義ファイルに基づいて作成されたコンテナイメージを配信サーバ20に送信する。 The communication processing unit 11 controls communication relating to various types of information exchanged with a connected device. For example, the communication processing unit 11 transmits the container image created based on the optimized image definition file to the distribution server 20.
入力部12は、キーボードやマウスなどの入力デバイスであり、ユーザから各種情報の入力操作を受け付ける。出力部13は、ディスプレイなどの出力デバイスであり、各種情報を出力する。 The input unit 12 is an input device such as a keyboard and a mouse, and receives input operations of various information from a user. The output unit 13 is an output device such as a display, and outputs various information.
また、記憶部15は、制御部14による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、カテゴリ情報記憶部15aを有する。例えば、記憶部15は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。 The storage unit 15 stores data and programs necessary for various processes by the control unit 14. The storage unit 15 particularly includes a category information storage unit 15a that is closely related to the present invention. For example, the storage unit 15 is a semiconductor memory device such as a random access memory (RAM) or a flash memory, or a storage device such as a hard disk or an optical disk.
カテゴリ情報記憶部15aは、後述する分類部14bによって分類されるカテゴリに関する情報を記憶する。ここで、図3を用いて、カテゴリ情報記憶部15aに記憶される情報について説明する。図3は、カテゴリ情報記憶部に記憶される情報の一例を示す図である。図3に例示するように、カテゴリ情報記憶部15aは、カテゴリを識別する情報である「カテゴリ」と、タグの設定の有無を示す「タグ」と、各カテゴリに分類された処理を識別する情報である「処理」と、各カテゴリに付与された「点数」とを対応付けて記憶する。 The category information storage unit 15a stores information on a category classified by the classifying unit 14b described later. Here, information stored in the category information storage unit 15a will be described with reference to FIG. FIG. 3 is a diagram illustrating an example of information stored in a category information storage unit. As illustrated in FIG. 3, the category information storage unit 15a stores “category” as information for identifying a category, “tag” indicating whether a tag is set, and information for identifying a process classified into each category. And the “points” assigned to each category are stored in association with each other.
図3に例示するように、カテゴリ情報記憶部15aは、カテゴリ「カテゴリa」、タグ「無」、処理「処理A、処理B」および点数「10」を対応付けて記憶する。これは、「カテゴリa」に分類され、タグが設定されていない処理が「処理A」と「処理B」であり、点数「10」が付与されたことを意味する。 As illustrated in FIG. 3, the category information storage unit 15a stores the category “category a”, the tag “none”, the process “process A, process B”, and the score “10” in association with each other. This means that the processes that are classified into “category a” and for which no tag is set are “process A” and “process B”, and are given a score of “10”.
制御部14は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、受付部14a、分類部14b、統合部14cおよび配置部14dを有する。ここで、制御部14は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。 The control unit 14 has an internal memory for storing programs and required data defining various processing procedures and the like, and executes various processes by using these. Particularly, those closely related to the present invention include: It has a reception unit 14a, a classification unit 14b, an integration unit 14c, and an arrangement unit 14d. Here, the control unit 14 is an electronic circuit such as a CPU (Central Processing Unit) or an MPU (Micro Processing Unit), or an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
受付部14aは、イメージ定義ファイルの入力を受け付ける。また、受付部14aは、イメージ定義ファイルの入力とともに、該イメージ定義ファイルに含まれる処理に対するタグの設定を受け付けてもよい。なお、受付部14aは、タグの設定を受け付ける場合には、該タグに対応する点数も受け付ける。なお、以下の例では、タグに付与された点数が「1」である場合を例にして説明する。 The receiving unit 14a receives an input of an image definition file. Further, the receiving unit 14a may receive the setting of the tag for the process included in the image definition file as well as the input of the image definition file. In addition, when receiving the setting of the tag, the receiving unit 14a also receives the score corresponding to the tag. In the following example, a case where the score given to the tag is “1” will be described as an example.
分類部14bは、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する。例えば、分類部14bは、事前に設定されたカテゴリとして、「ディストリビューション定義」に関するカテゴリa、「ミドルウェアパッケージ取得」に関するカテゴリb、「アプリケーションビルド」に関するカテゴリc、および「環境変数等設定」に関するカテゴリdのうち、いずれかに各処理を分類する。なお、上記4つのカテゴリに分類するための条件については、どのように設定してもよく、ここでは詳しい説明を省略する。 The classifying unit 14b classifies each process included in an image definition file that defines a container image serving as a source of an application, according to a preset category. For example, the classifying unit 14b includes, as preset categories, a category a related to “distribution definition”, a category b related to “acquisition of middleware package”, a category c related to “application build”, and a category related to “setting of environment variables”. Each process is classified into any one of d. The conditions for classification into the above four categories may be set in any manner, and a detailed description thereof will be omitted.
また、分類部14bは、タグが設定されている場合には、各処理を、事前に設定されたカテゴリごとに分類し、さらに、タグの設定の有無に応じて分類する。つまり、イメージ定義ファイルの各処理にタグを付与することで、上記4つのカテゴリ以外のカテゴリに分類することができ、イメージ定義ファイルの最適化に反映することが可能である。なお、分類部14bは、各処理が分類されたカテゴリおよびタグの有無をカテゴリ情報記憶部15aに格納する。 When a tag is set, the classifying unit 14b classifies each process into categories set in advance, and further classifies according to whether or not a tag is set. That is, by assigning a tag to each process of the image definition file, the process can be classified into a category other than the above four categories, and can be reflected in the optimization of the image definition file. The classifying unit 14b stores in the category information storage unit 15a the category into which each process is classified and the presence or absence of a tag.
また、分類部14bは、各処理が分類されたカテゴリに対して、事前に設定されたカテゴリに応じた点数を付与し、タグが設定された処理が分類されたカテゴリに対しては、タグに応じた点数をさらに付与する。そして、分類部14bは、付与した点数をカテゴリ情報記憶部15aに格納する。 The classifying unit 14b assigns a score corresponding to the category set in advance to the category in which each process is classified, and assigns a tag to the category in which the process in which the tag is set is classified. A corresponding score is further given. Then, the classification unit 14b stores the assigned score in the category information storage unit 15a.
例えば、カテゴリaには、点数「10」、カテゴリbには、点数「8」、カテゴリcには、点数「4」、カテゴリdには、点数「1」が設定されているものとする。この場合には、分類部14bは、カテゴリaに対して、点数「10」を付与し、カテゴリbに対して、点数「8」を付与し、カテゴリcに対して、点数「4」を付与し、カテゴリdに対して、点数「1」を付与する。なお、点数が高く設定されているカテゴリほど更新頻度が低いことを意味している。つまり、カテゴリaが最も更新頻度が低い処理に関するカテゴリであり、カテゴリdが最も更新頻度が高い処理に関するカテゴリである。 For example, it is assumed that a score “10” is set for category a, a score “8” is set for category b, a score “4” is set for category c, and a score “1” is set for category d. In this case, the classification unit 14b assigns a score “10” to the category a, assigns a score “8” to the category b, and assigns a score “4” to the category c. Then, a score “1” is given to the category d. Note that the higher the score is set, the lower the update frequency is. That is, category a is a category related to the process with the lowest update frequency, and category d is a category related to the process with the highest update frequency.
また、例えば、分類部14bは、タグが付与された処理をカテゴリbに分類した場合には、点数「8」を付与するとともに、タグに対応する点数「1」をさらに加算し、カテゴリb(タグ設定有)に対して合計の点数「9」を付与する。 Further, for example, when the process to which the tag is assigned is classified into the category b, the classifying unit 14b assigns the score “8” and further adds the score “1” corresponding to the tag to the category b ( A total score of “9” is given to “tag setting”.
統合部14cは、分類部14bによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する。例えば、統合部14cは、分類部14bによって付与された点数が同一の処理が同一レイヤとなるように各処理を統合する。 The integrating unit 14c integrates the processes so that the processes classified into the same category by the classifying unit 14b have the same layer. For example, the integration unit 14c integrates each process such that processes having the same score given by the classification unit 14b are in the same layer.
配置部14dは、分類部14bによって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する。例えば、配置部14dは、分類部14bによって付与された点数が高いカテゴリほど上位のレイヤとなるように配置する。 The arranging unit 14d arranges the categories whose processes are classified by the classifying unit 14b such that the higher the update frequency, the higher the layer. For example, the arranging unit 14d arranges such that the higher the score given by the classifying unit 14b, the higher the layer.
ここで、図4を用いて、レイヤ最適化処理の一例を説明する。図4は、レイヤ最適化処理の一例を説明する図である。図4に示すように、イメージ定義ファイルには、処理A〜処理Fが含まれているものとする。そして、分類部14bは、処理Aおよび処理Bをカテゴリaに分類し、処理Cおよび処理Eをカテゴリbに分類し、処理Dをカテゴリcに分類し、処理Fをカテゴリdに分類する。 Here, an example of the layer optimization processing will be described with reference to FIG. FIG. 4 is a diagram illustrating an example of the layer optimization process. As shown in FIG. 4, it is assumed that the image definition file includes processes A to F. Then, the classification unit 14b classifies the processing A and the processing B into a category a, the processing C and the processing E into a category b, the processing D into a category c, and the processing F into a category d.
そして、統合部14cは、分類部14bによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する。例えば、図4の例では、統合部14cは、カテゴリaに分類された処理Aおよび処理Bがレイヤ1となるように統合し、カテゴリbに分類された処理Cおよび処理Eがレイヤ2となるように各処理を統合する。
Then, the integration unit 14c integrates the processes so that the processes classified into the same category by the classification unit 14b have the same layer. For example, in the example of FIG. 4, the integration unit 14c integrates the processing A and the processing B classified into the category a so as to form the
そして、配置部14dは、分類部14bによって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する。つまり、図4の例では、配置部14dは、例えば、更新頻度が最も高いカテゴリdに対応するレイヤ4が最上位のレイヤとなるように配置し、その次に、レイヤ3、レイヤ2の順に配置し、更新頻度が最も低いカテゴリaに対応するレイヤ1が最下位のレイヤとなるように配置する。
Then, the arranging unit 14d arranges the categories whose processes are classified by the classifying unit 14b such that the higher the update frequency, the higher the layer. That is, in the example of FIG. 4, the arrangement unit 14d arranges, for example, such that the
また、図5を用いて、タグを設定した場合におけるレイヤ最適化処理の一例を説明する。図5は、タグを設定した場合におけるレイヤ最適化処理の一例を説明する図である。図5に示すように、イメージ定義ファイルには、処理A〜処理Fが含まれており、処理Cにはタグが設定されているものとする。そして、分類部14bは、処理Aおよび処理Bをカテゴリaに分類し、処理Cをカテゴリb(タグ設定有)に分類し、処理Eをカテゴリb(タグ設定無)に分類し、処理Dをカテゴリcに分類し、処理Fをカテゴリdに分類する。 An example of a layer optimization process when a tag is set will be described with reference to FIG. FIG. 5 is a diagram illustrating an example of a layer optimization process when a tag is set. As shown in FIG. 5, it is assumed that the image definition file includes processes A to F, and a tag is set for process C. Then, the classification unit 14b classifies the processing A and the processing B into the category a, classifies the processing C into the category b (with tag setting), classifies the processing E into the category b (without tag setting), and classifies the processing D into The process F is classified into category c, and the process F is classified into category d.
そして、統合部14cは、分類部14bによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する。例えば、図5の例では、統合部14cは、カテゴリaに分類された処理Aおよび処理Bがレイヤ1となるように各処理を統合する。
Then, the integration unit 14c integrates the processes so that the processes classified into the same category by the classification unit 14b have the same layer. For example, in the example of FIG. 5, the integrating unit 14c integrates the respective processes so that the processes A and B classified into the category “a” become the
そして、配置部14dは、分類部14bによって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する。つまり、図5の例では、配置部14dは、例えば、更新頻度が最も高いカテゴリdに対応するレイヤ5が最上位のレイヤとなるように配置し、その次に、レイヤ4、レイヤ3、レイヤ2の順に配置し、更新頻度が最も低いカテゴリaに対応するレイヤ1が最下位のレイヤとなるように配置する。
Then, the arranging unit 14d arranges the categories whose processes are classified by the classifying unit 14b such that the higher the update frequency, the higher the layer. That is, in the example of FIG. 5, the arrangement unit 14d arranges, for example, such that the layer 5 corresponding to the category d having the highest update frequency is the highest layer, and then the
このように、レイヤ最適化装置10は、予め設定したカテゴリに各処理を分類し、同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合することで、レイヤが不必要に増加することを防ぎ、イメージサイズの削減を実現することが可能である。また、レイヤ最適化装置10は、更新頻度が高いカテゴリほど上位のレイヤとなるように配置するので、上位レイヤのイメージ更新時に上位のレイヤのイメージのみ転送すればよく、別サーバへの転送容量を削減することができる。
In this way, the
[レイヤ最適化装置の処理の流れ]
次に、図6を用いて、第一の実施の形態に係るレイヤ最適化装置10の処理の流れを説明する。図6は、第一の実施の形態に係るレイヤ最適化装置による処理を説明するフローチャートである。
[Processing flow of layer optimization device]
Next, the flow of processing of the
図6に示すように、レイヤ最適化装置10の受付部14aがユーザからのイメージ定義ファイルの入力を受け付けると(ステップS101肯定)、分類部14bは、イメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する(ステップS102)。なお、受付部14aは、イメージ定義ファイルの入力とともに、該イメージ定義ファイルに含まれる処理に対するタグの設定を受け付けてもよい。また、分類部14bは、タグが設定されている場合には、各処理を、事前に設定されたカテゴリごとに分類し、さらに、タグの設定の有無に応じて分類する。
As shown in FIG. 6, when the receiving unit 14a of the
そして、分類部14bは、カテゴリごとに点数を計算する(ステップS103)。例えば、分類部14bは、カテゴリに対して、カテゴリに応じた点数を付与し、タグが設定された処理が分類されたカテゴリに対しては、タグに応じた点数をさらに付与する。 Then, the classification unit 14b calculates a score for each category (Step S103). For example, the classifying unit 14b gives a score corresponding to the category to the category, and further gives a score corresponding to the tag to the category in which the process in which the tag is set is classified.
そして、統合部14cは、分類部14bによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する(ステップS104)。そして、配置部14dは、点数が高いカテゴリほど下位のレイヤとなるように配置する(ステップS105)。 Then, the integrating unit 14c integrates the processes so that the processes classified into the same category by the classifying unit 14b have the same layer (Step S104). Then, the arranging unit 14d arranges such that the higher the score, the lower the layer in the category (step S105).
[第一の実施の形態の効果]
このように、第一の実施の形態に係るレイヤ最適化装置10は、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する。そして、レイヤ最適化装置10は、同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する。そして、レイヤ最適化装置10は、処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する。このため、イメージ定義ファイルの最適化を行い、コンテナイメージを軽量化することが可能である。
[Effects of the First Embodiment]
As described above, the
つまり、レイヤ最適化装置10は、予め設定したカテゴリに各処理を分類し、同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合することで、レイヤが不必要に増加することを防ぎ、イメージサイズの削減を実現することが可能である。また、レイヤ最適化装置10は、更新頻度が高いカテゴリほど上位のレイヤとなるように配置するので、上位レイヤのイメージ更新時に上位のレイヤのイメージのみ転送すればよく、別サーバへの転送容量を削減することができる。
That is, the
このように、レイヤ最適化装置10では、イメージ定義ファイルの最適化を行うことで、イメージサイズの削減と、イメージ更新時の別サーバへの転送容量の削減との両立を自動で行うことを可能にした。このため、これまでアプリ開発者のコンテナイメージ構成に関する深い知識に基づいて行われていた最適化を自動で行うことができる。
In this way, the
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[System configuration, etc.]
Each component of each device illustrated is a functional concept, and does not necessarily need to be physically configured as illustrated. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or a part thereof may be functionally or physically distributed / arbitrarily divided into arbitrary units according to various loads and usage conditions. Can be integrated and configured. Further, all or any part of each processing function performed by each device can be realized by a CPU and a program analyzed and executed by the CPU, or can be realized as hardware by wired logic.
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。 Further, among the processes described in the present embodiment, all or a part of the processes described as being performed automatically can be manually performed, or the processes described as being performed manually can be performed. Can be automatically or entirely performed by a known method. In addition, the processing procedures, control procedures, specific names, and information including various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified.
[プログラム]
図7は、レイヤ最適化プログラムを実行するコンピュータを示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
[program]
FIG. 7 is a diagram illustrating a computer that executes a layer optimization program. The
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、例えばディスプレイ1061に接続される。
The
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、レイヤ最適化装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、装置における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
The hard disk drive 1090 stores, for example, the
また、上述した実施の形態の処理で用いられるデータは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
The data used in the processing of the above-described embodiment is stored as the
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク、WANを介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
The
10 レイヤ最適化装置
11 通信処理部
12 入力部
13 出力部
14 制御部
14a 受付部
14b 分類部
14c 統合部
14d 配置部
15 記憶部
15a カテゴリ情報記憶部
20 配信サーバ
30A、30B エッジ端末
Claims (4)
前記イメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類し、さらに、前記タグの設定の有無に応じて分類する分類部と、
前記分類部によって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合部と、
前記分類部によって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置部と、
を有することを特徴とするレイヤ最適化装置。 A receiving unit that receives input of an image definition file that defines a container image that is a source of the application, and that receives a setting of a tag for a process included in the image definition file;
Each processing included in the image definition file, and categorized by a preconfigured category, further comprising: a classifying unit for classifying in accordance with the presence or absence of setting of the tag,
An integration unit that integrates each process so that the processes classified into the same category by the classification unit are in the same layer;
An arranging unit that arranges the categories whose processes are classified by the categorizing unit, so that the higher the update frequency, the higher the layer .
A layer optimization device, comprising:
前記配置部は、前記分類部によって付与された点数が高いカテゴリほど上位のレイヤとなるように配置することを特徴とする請求項1に記載のレイヤ最適化装置。 The classifying unit assigns a score corresponding to a category set in advance to the category in which each process is classified, and assigns the tag to the category in which the process in which the tag is set is classified. The score according to is further given,
The layer optimizing device according to claim 1 , wherein the arranging unit arranges such that the higher the score given by the classifying unit, the higher the layer.
アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルの入力を受け付けるとともに、該イメージ定義ファイルに含まれる処理に対するタグの設定を受け付ける工程と、
前記イメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類し、さらに、前記タグの設定の有無に応じて分類する分類工程と、
前記分類工程によって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合工程と、
前記分類工程によって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置工程と
を含んだことを特徴とするレイヤ最適化方法。 A layer optimization method executed by a layer optimization device,
A step of receiving an input of an image definition file defining a container image serving as a source of the application, and receiving a setting of a tag for a process included in the image definition file;
Each processing included in the image definition file, and categorized by a preconfigured category, further classification step of classifying in accordance with the presence or absence of setting of the tag,
An integration step of integrating each processing so that the processing classified into the same category by the classification step is the same layer;
And arranging the categories whose processing has been classified in the classification step so that the higher the update frequency, the higher the layer.
前記イメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類し、さらに、前記タグの設定の有無に応じて分類する分類ステップと、
前記分類ステップによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合ステップと、
前記分類ステップによって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置ステップと
をコンピュータに実行させるためのレイヤ最適化プログラム。 Receiving input of an image definition file that defines a container image that is a source of the application, and receiving a tag setting for a process included in the image definition file;
Each processing included in the image definition file, a classification step classifies each preconfigured category, further be classified according to the presence or absence of setting of the tag,
An integration step of integrating the processes so that the processes classified into the same category by the classification step are in the same layer;
And an arrangement step of arranging the categories whose processes are classified by the classification step so that the higher the update frequency, the higher the layer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017146980A JP6676590B2 (en) | 2017-07-28 | 2017-07-28 | Layer optimization device, layer optimization method, and layer optimization program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017146980A JP6676590B2 (en) | 2017-07-28 | 2017-07-28 | Layer optimization device, layer optimization method, and layer optimization program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019028690A JP2019028690A (en) | 2019-02-21 |
JP6676590B2 true JP6676590B2 (en) | 2020-04-08 |
Family
ID=65478653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017146980A Active JP6676590B2 (en) | 2017-07-28 | 2017-07-28 | Layer optimization device, layer optimization method, and layer optimization program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6676590B2 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011138247A (en) * | 2009-12-28 | 2011-07-14 | Hitachi Ltd | Program influence range verification method and device |
US10002247B2 (en) * | 2015-12-18 | 2018-06-19 | Amazon Technologies, Inc. | Software container registry container image deployment |
-
2017
- 2017-07-28 JP JP2017146980A patent/JP6676590B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019028690A (en) | 2019-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11290534B2 (en) | System and method for scheduling computer tasks | |
US12086573B2 (en) | Automatic containerization of operating system distributions | |
US8954557B2 (en) | Assigning server categories to server nodes in a heterogeneous cluster | |
US9965331B2 (en) | System and method for runtime grouping of processing elements in streaming applications | |
US8793344B2 (en) | System and method for generating a response plan for a hypothetical event | |
CN109416684B (en) | Ingest manager of analysis platform | |
KR102156439B1 (en) | Cloud-edge system and method for processing data thereof | |
WO2023160033A1 (en) | Virtual network card resource configuration method and apparatus, computer device, and medium | |
CN110249312B (en) | Method and system for converting data integration jobs from a source framework to a target framework | |
US11836483B1 (en) | Compatible and secure software upgrades | |
KR102076626B1 (en) | a virtual machine replacement method in cloud computing system | |
JP6581155B2 (en) | Unnecessary file detection device, unnecessary file detection method and unnecessary file detection program | |
JP2017204161A (en) | Clustering device, clustering method, and clustering program | |
EP4012573A1 (en) | Graph reconstruction method and apparatus | |
JP6676590B2 (en) | Layer optimization device, layer optimization method, and layer optimization program | |
CN110413348B (en) | Data processing method, device, system and medium | |
US12020016B2 (en) | Rebasing image layers utilising a repository-based strategy | |
US20230334007A1 (en) | Data flow control device, data flow control method, and data flow control program | |
US20240248701A1 (en) | Full stack in-place declarative upgrades of a kubernetes cluster | |
US20240143364A1 (en) | Intelligent snapshotting of vms for container orchestration platforms | |
US20230153166A1 (en) | Systems and methods for pattern-based software applications | |
US20240323087A1 (en) | Generating optimized custom data planes | |
WO2018107860A1 (en) | Service operating method and device, and cloud computing system | |
CN118694675A (en) | Method and device for restarting hosts in batches and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181106 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190814 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191001 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191121 |
|
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: 20200310 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200312 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6676590 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |