学術情報処理研究
Online ISSN : 2433-7595
Print ISSN : 1343-2915
原著論文
Learning Ops: DevOps指向の情報教育用システム
亀井 仁志, 芝 昌隆, 渡部 昌尚, 大野 真伯, 末廣 紀史, 竹原 一駿, 最所 圭三
著者情報
ジャーナル オープンアクセス HTML

2025 年 29 巻 1 号 p. 268-274

詳細
Abstract

近年,大学などの高等教育機関において,プログラミングなどの情報教育が,文系理系を問わず実施されている.本論文は,DevOps実践に基づき,情報教育の受講生の学習環境(学習VM)を統一的かつ漸進的に構築するLearning Opsを提案する.Learning Opsは,DevOpsの実践に基づき開発と運用を繰り返しながら学習環境を更新することで,教員は授業進度に応じた学習環境を統一的に構築できる.また,受講生は学習環境の差異に起因するバグの発生といった混乱なく情報教育を進めることができる.本論文は,クラウド環境における学習VMの作成・削除時間を評価してLearning Opsの考慮点を明らかにした.

1  はじめに

大学など高等教育機関において,情報教育が行われている[1,2].近年,理系学部だけでなく文系学部でも情報リテラシーやPythonを用いたプログラミングなどの情報教育が行われている.

情報教育の課題の一つに学習環境の統一がある.多くの大学では,入学時に学生がBYOD(Bring Your Own Device)端末としてPCを購入して授業に用いる.これらの端末は,レポート作成やオンライン授業,プログラミングの演習などに用いられ,多数のソフトウェアが導入される.例えば,それぞれ,Microsoft Word,Microsoft Teams,gcc[3]やpython[4]が導入されている.また,単一の科目でも授業回ごとにソフトウェアを追加導入することがある.このように,受講者が履修している情報科目や授業回ごとに異なるソフトウェアが導入されたり,更新されたりするため,受講者の履修状況に応じて端末内の学習環境が異なってしまう.例えば,Pythonを用いる異なる科目を受けている受講者間で,ライブラリをインストールするタイミングが異なることがあり,同じプログラムを実行したとしても,結果が異なることが起こりうる.さらに,ソフトウェアのインストール方法が科目毎に異なる場合がある.例えばPythonの場合,標準インストーラと,よく使われるライブラリも含めて導入するAnaconda[5]があり,ライブラリのバージョンを揃える必要がある.このように,ソフトウェア間の依存関係などの影響を受けることがあり,授業時に受講者ごとに結果が異なったり導入方法を変えたりする個別対応が必要となる場合がある.

本論文では,情報教育の学習環境の統一と継続的な更新のために,DevOps指向の情報教育用システムであるLearning Opsを提案する.情報教育の科目を担当する教員が,IaC(Infrastructure as Code)により,担当科目専用に学習環境(学習VM)をコードとして記述する.CI/CD(Continuous Integration/Continuous Delivery)パイプラインにより,学習VMのテストとディプロイを自動的に実行する.Learning Opsは学習VMを用いた授業の学習結果を教員にフィードバックすることで,漸進的な学習VMのコード更新を可能にする.受講者は,学習VMの統一された環境でレポート作成やプログラミングなどの学習を行う.

一方,受講生が復習などに学習VMを利用することが考えられるため,学習VMの削除を授業終了後から可能な限り遅らせる必要がある.しかし,次の授業開始前には,新たな学習VMをディプロイする必要がある.従って,学習VMの作成と削除にかかる時間を考慮して,新たにディプロイしなければならない.

そこで,本論文では,学習VMの作成・削除時間を評価した結果を述べる.さらに,評価結果に基づいて,Learning Opsの運用上の考慮点を議論する.

2  DevOpsによる情報教育用システムの開発と運用

本章は,まず,Learning Opsの実装環境とする香川大学における教育基盤システムについて述べる.次に,情報教育用システムのDevOps実践であるLearning Opsと課題を述べる.

2.1  香川大学のハイブリッドクラウド型教育基盤システム

2018年に,香川大学はVMwareのクラスタを用いて構築したプライベートクラウドとMicrosoft Azure[6]のパブリッククラウドによるハイブリッドクラウドを構築した[7].その後,2024年に,プライベートクラウドをWindows Server[8]へ移行し,Microsoft Azureのサービスを用いた統合管理に移行した.

図1に,2024年に構築した教育基盤システムの概要を示す.プライベートクラウドは,香川県内にあるデータセンタ内に設置した5台の実機サーバに,Windows Serverを導入して構築した.香川大学で運用している教務システム(カダサポ[9])などのサービス群は,Hyper-Vによる仮想マシン(VM,Virtual Machine)で動作している.また,実機サーバの内蔵ディスクをStorage Space Direct[10]によって統合し,任意の実機サーバ上でVMを動作できるようにした.パブリッククラウドであるMicrosoft Azureのサービスを用いて学部のWebサーバやライセンス認証サーバなどが稼働している.プライベートクラウドとパブリッククラウドは,通常のアクセスパスであるSINETと,認証情報などの重要なデータが通るパスであるプライベートネットワークにより接続している.パブリッククラウドおよびプライベートクラウドで動作しているサービス群は,Microsoft AzureのAzure Monitorサービス[11]によって統合管理されている.さらに,Network Watcherサービス[12]を用いて,Microsoft Azureの仮想ネットワークを監視し,Microsoft Azureで動作しているサービスの状況を把握している.

図1  2024年に更新した香川大学の教育基盤システムの概要

本論文では,Learning Opsの実装環境としてAzure DevOpsを利用する.一般に,DevOpsを実践するには,様々なツール群を用意する必要があるが,クラウドサービスを利用した環境構築により,DevOps環境の構築にかかる負荷を軽減する.

2.2  情報教育用システムにおけるDevOpsの実践

本節は,DevOpsの概要を述べ,DevOpsを指向する情報教育用システムのLearning Opsを述べる.さらに,Azure DevOpsを用いてLearning Opsを実装する際の課題を述べる.

2.2.1  DevOps実践のLearning Ops

DevOpsは,開発(Dev,Development)と運用(Ops,Operation)を合わせた造語であり,Flickr社の「10+ Deploys Per Day: Dev and Ops Cooperation at Flickr[13]」で初めて言及された[14].Dev担当とOps担当が協調しながら情報システムを開発・運用する.DevOpsには,ツールとプラクティス(実践)や文化などに基づくDevOpsの原則がある[15].

DevOpsの実践では,継続的にソフトウェアやサービスを開発して統合し(CI,Continuous Integration,),運用システムへ導入する(CD,Continuous Delivery).この一連の流れをCI/CDと呼ぶ.CDでサービスを運用した結果を開発へフィードバックし,次の開発へつなげていく.本論文では,DevOpsを情報システムの開発手法およびツール群として議論する.

図2にCI/CDの概要を示す.DevOpsのツール群のうち,コードレポジトリとPipeline,仮想化基盤が重要である.開発者がソースコードをコードレポジトリへ格納(Push)すると,Pipelineを管理するツールが自動的にテストを実施する.問題がなければコードが統合され,新たなサービスとして公開される.この時,仮想化基盤を用いて,新たなサービスを導入したVMをディプロイすることで,不良が発生しても迅速に切り戻しできる.また,Opsによる運用結果を回収して,Devの開発者へフィードバックすることで,新たなコード開発につながる漸進的な機能開発が可能となる.

図2  CI/CDの概要

2.2.2  Azure DevOpsによるLearning Opsの実装

プログラミングといった演習科目は,ソフトウェアバージョンやOSなどを統一した学習環境を用意すると,ソフトウェアの挙動に差がなく授業しやすい.また,学習環境は,ライブラリやサンプルコードの追加など,授業進度や学生の理解度などに応じた更新が必要である.

本論文では,学習環境の統一や授業回ごとの更新のために,DevOpsを教育用システムに適用するLearning Opsを提案する.DevOpsの実践により,授業科目や授業の進度に応じた学習環境の構築が可能となる.

図3に,Azure DevOpsを用いたLearning Opsの概要を示す.情報教育を行う教員は,学習VMの環境を定義するIaCコードを作成して,Azure DevOpsのコードレポジトリへPushする.Azure Pipelinesにより,BuildとTestが実行され(CI),テスト完了後に受講者数分の学習VMがディプロイされる(CD).一方,受講生は自身が使用する学習VMにターミナルソフトを用いてアクセスし,学習VM中でプログラミングやレポートの作成を行う.また,CI実施中にエラーが発生した場合のエラーメッセージや受講生のコマンド実行結果といった学習状況などを教員へフィードバックすることで,教員が学習VMのコード開発に利用できる.

図3  Learning Opsの概要

Learning Opsにより,漸進的に学習VMを更新して実現する学習環境の例を示す.C言語やPythonの基礎的事項を学ぶ第1回目のプログラミング授業を想定する場合,標準ライブラリを導入した学習VMを作成してディプロイする.後半の授業回になると,発展的な授業に対応するため,算術関連ライブラリや機械学習ライブラリを導入した学習VMをディプロイする.教授者は統一した学習環境を提供でき,受講者はディプロイされた学習VMにアクセスすることでライブラリが揃った環境で学習できる.これにより,受講者が使用するBYOD端末間で生じる可能性のあるライブラリのバージョン差異などに起因する混乱を避けることができる.

Learning Opsでは,学習VMを提供する基盤を効率的に使用するため,既存の学習VMを削除して新たな学習VMをディプロイする必要がある.しかし,学習VMは受講生の復習のために,授業後しばらくの期間は残すなどの対応も必要となると考えられる.従って,学習VMの作成時間と削除時間の明確化が課題となる.

3  Learning Opsの評価

本章は,学習VMの作成時間と削除時間について,Azure DevOpsを用いたクラウド環境による評価と結果を用いた見積もり評価の結果を述べる.さらに,評価結果を基にLearning Opsの運用に関して議論する.

3.1  クラウド環境による評価

本節は,クラウド環境評価としてAzure DevOpsでLearning Opsを実装して評価した結果を示す.

3.1.1  評価環境

図4に,Learning Ops評価のために実装したシステム構成の概要を示す.Azure DevOpsはDevOpsをサポートするためのサービス群(ツール群)から成る.今回の評価では,コードレポジトリを提供するAzure Repos,CI/CDのPipelineを管理するAzure Pipelines,学習VMを作成するIaaSを利用する.

図4  Learning Ops評価構成の概要

学習VMを作成する場合,教員PCで学習VMの環境定義コードを作成してReposへPushすると,Pipelinesにより学習VM作成タスクが実行される.CIとしてテストに成功するとIaaSに学習VMをディプロイする.学生は,BYOD端末からディプロイされた学習VMにアクセスする.一方,学習VMを削除する場合,教員が学習VMの削除コードを作成してReposへPushする.PipelinesによりCDとして自動的に学習VMの削除タスクが実行され,ディプロイ済みの学習VMが削除される.なお,タスクで一度に作成削除される学習VMの数はコードの記述で定義できる.

3.1.2  学習VMの作成と削除タスク処理時間の計測

本評価では,1,2,4,8,16人が受講する演習科目を想定して,学習VMの作成と削除のタスク完了にかかる時間を計測する.学習VMの作成タスクと削除タスクの処理時間をクラウド環境で評価した結果を述べる.

(1)学習VM作成タスク処理の時間

学習VM作成タスクについて,図5に,作成して起動する学習VM数に対するタスク処理完了にかかる時間を示す.横軸は学習VM数を示し,縦軸はタスク処理完了時間を秒で示す.タスクを10回実行した各タスクの処理完了時間を示す.

図5  学習VM作成タスク処理時間

1つの学習VM作成タスクの学習VM数が1と2の場合,処理完了時間が50秒未満で安定している.一方,作成する学習VM数が増えるとばらつきが大きくなる傾向がある.特に,8台の学習VM作成タスクの処理完了時間の3回目に長時間かかった.それ以外のタスクでは,16台の場合も含めて,学習VM作成タスク処理の完了時間は100秒未満であった.ただし,16台の学習VM作成タスクは,他のタスクと比べて,時間がかかる傾向があった.

(2)学習VM削除タスク処理の時間

学習VM削除タスクについて,図6に,削除する学習VM数に対するタスク処理完了にかかる時間を示す.タスクを10回実施し,図5と同様に各タスクの処理完了時間を示す.

図6  学習VM削除タスク処理時間

1台の学習VM削除タスク処理完了時間は130秒程度で安定している.一方,学習VM数が2台以上になると,約130秒(短時間),約250秒(中時間),約1200秒(長時間)の3つの処理完了時間になった.これらの時間は,タスクの実行順序や削除する学習VM数との関係は見られなかった.

図7に,学習VM削除タスク処理の完了時間について,短・中・長時間の発生割合を示す.横軸はVM数を示し,縦軸は,短・中・長時間の発生割合を示す.1台の学習VMを削除する場合,前述の通り,全てのタスクが短時間(約130秒)で処理が完了している.一方,2台以上の学習VMを削除する場合,削除する学習VMの数は無関係に短・中・長時間の割合が高くなっている.例えば,長時間(約1200秒)の発生割合は,4台の学習VM削除タスクが,最も高くなっている.

図7  学習VM削除タスク処理の短・中・長時間発生割合

以上から,学習VM作成タスクの処理完了時間は,作成するVMの台数を増加させても,ほぼ一定と考えられる.一方,学習VM削除タスクの処理完了時間は,1つのタスクで削除するVMの台数が2台以上の場合,短・中・長時間の3つになり,各時間はVM数やタスク実行順序などに無関係であると推測される.

3.2  全学習VM削除タスク処理時間の見積もり

学習VM削除タスクの処理完了時間の決定が難しいことから,ディプロイされた学習VMの削除にかかる時間の見積もりを述べる.

Learning Opsの運用を考慮すると,一度のタスクで多数の学習VMを作成・削除するのではなく,複数の学習用VMを作成・削除するタスクをループ処理により実行することが考えられる.これは,学習VM作成・削除タスクは複数同時に並列実行できるが,クラウドプロバイダによっては,追加の料金がかかる場合があり,無暗に並列実行できない制限があるためである.例えば,40台の学習VMを作成・削除する場合,4台の学習VMを作成・削除するタスクを10回実行する.このとき,削除タスク完了時間が長時間に及ぶ学習VMの特定や,台数の推測が難しく,毎回のタスクの中に長時間に及ぶ学習VMが混在する可能性がある.従って,最長で約1200秒×10回の完了時間になる可能性がある.

そこで,ディプロイされた学習VM全てを削除する場合に,授業に影響せずタスクを実行するために,全ての学習VMの削除にかかる時間を見積もる.評価では,3つの削除時間の発生確率に基づく学習VM削除タスク完了時間をシミュレーションプログラムにより見積もる.

(1)全学習VM削除シミュレータ

ディプロイされた全ての学習VMの削除を実行するタスクの完了時間を見積もるシミュレータを用いて評価する.シミュレータの想定する全学習VM削除プログラムの実行モデルを図8に示す.全学習VM削除プログラムに学習VMタスクのリストを投入する.全学習VM削除プログラムのWorkerがタスクプールから学習VM削除タスクを取得して実行する.Workerが実行したタスクが終了した後,タスクプールに残タスクがある場合は,タスクを取り出して実行する.無ければWorkerは終了する.最後のWorkerが終了した時点でプログラムは終了する.例えば,1人に1台の学習VMを割り当てる場合で,40人が受講する演習では40台の学習VMが作成される.4台の学習VMを削除するタスクを2並列で実行するならば2つのWorkerが10タスクを実行する.

図8  全学習VM削除シミュレータの想定モデル

全学習VM削除プログラムのシミュレータは,「タスク並列実行数Nparallel」,「学習VM数NVM」「短時間タスク実行時間T1」,「短時間タスク発生確率P1」,「中時間タスク実行時間T2」,「中時間タスク発生確率P2」,「長時間タスク実行時間T3」,「長時間タスク発生確率P3」を引数として受け取る.タスク並列実行数Nparallelに指定された数のWorkerを起動してタスクを実行することを想定する.タスク実行時間は,短・中・長時間のタスク発生確率に基づいて決定され,短・中・長時間のタスク実行時間が各Workerの実行時間として加算される.全Workerのタスク実行が完了すると,それぞれのWorkerの実行時間を結果として出力する.最後まで動作したWorkerの実行時間が,全学習VM削除プログラムの完了時間となる.

(2)評価パラメータと評価結果

シミュレーション評価パラメータを表1に示す.学習VM削除タスクの時間は,3.1節に述べたクラウド環境における評価結果から算出した.短時間T1は136秒,中時間T2は258秒,長時間T3は1155秒とした.学習VM数NVMを40とし,複数のWorkerを起動して実行するVM削除タスクの並列数Nparallelは1から16まで,2のべき乗で増加させる.短・中・長時間の発生率は,全て同じ確率で起きる等確率,短時間が多く起きる短時間,長時間が多く起きる長時間の3ケースで評価した.

表1 VM削除時間見積もり評価パラメータ

項目 値
時間(秒) 短(T1) 136
中(T2) 258
長(T3) 1155
学習VM数(NVM) 40
学習VM削除タスク並列数(Nparallel) 1, 2, 4, 8, 16
発生率(短P1,中P2,長P3) 等確率 0.33, 0.33, 0.33
短時間 0.7, 0.2, 0.1
長時間 0.1, 0.2, 0.7

図9に,全VM削除タスク処理時間のシミュレーション評価結果を示す.横軸は発生率とWorker数(並列数)を示し,縦軸はシミュレーション評価により算出した処理時間を示す.なお,処理時間は5回シミュレーションした結果の平均値である.Worker数が1の場合,全ての学習VM削除タスクを逐次実行した結果となる.Worker数が1の場合,長時間の発生確率が高いと,35000秒(10時間)ほどかかった.短時間の発生確率が高くても,9700秒(2.7時間)ほどかかった.一方,Worker数が16で短時間の発生確率が高い場合,1400秒(24分)程度となった.また,長時間の発生確率が高くても,2500秒(43分)程度となった.このように,Worker数を増やして並列度を高くすると,長時間(1155秒)へ近づいていく.これは,長時間が,短時間や中時間より非常に長く,一度でも長時間となると,この時間より短くならないためである.

図9  全学習VMの削除処理時間シミュレーション結果

次節では,3.1節の評価とシミュレーション評価の結果に基づき,Learning Opsの運用について議論する.

3.3  Learning Opsの議論

Learning OpsはDevOps実践に基づき,情報教育の授業の受講生が利用する学習VMの開発と運用を行う.授業に必要なツールやプログラミング言語などを導入した学習VMを開発(Dev)して運用環境にディプロイする(Ops).受講生が学習VMを用いて授業を受けた結果をフィードバックして,新たな学習VMを開発する.

学習VM削除処理タスクの時間をクラウド環境で評価した結果,削除にかかる時間が実行毎に大きく異なることがわかった.そのため,受講生が授業を受けた後に,学習VMを新たにディプロイする場合,余裕を持たせて学習VM削除タスク処理を実行すべきである.

一方,クラウドサービスは,学習VM削除タスクを並列に実行するために課金が必要となることがある.そのため,予算と猶予時間に基づいて,並列実行数を決める必要がある.

図9に示す通り,短時間と長時間の差から,授業開始直前まで,前回授業の学習VMを維持する場合は,並列数を多くして対応する.本論文のシミュレーション評価の結果,16並列で学習VM削除タスクを実行すれば,授業当日に実行しても問題ないと考えられる.また,学習VM削除タスク処理時間の各時間が平均的に起きる場合でも,8並列で実行すれば,1時間弱でタスクが終了するため,問題ないと考えらえる.一方,4並列以下で実行する場合,長時間の発生確率が高い場合になると,3時間弱以上かかるなど,運用に支障が出るため,避ける方が良いと考えられる.

4  おわりに

本論文は,教育用システムにおいてDevOpsを実践するLearning Opsを提案した.学習VMをコードに記述して開発(Dev)し,授業で利用する(Ops).学習VMを授業開始までにディプロイする時間と授業後に学習VMを削除する運用を想定して,学習VM作成タスクと削除タスクにかかる時間を評価した.クラウドサービスを用いた評価の結果,学習VM作成タスクにかかる時間はほぼ一定だったが,学習VM削除タスクの時間には大きなばらつきがあった.そこで,全ての学習VMを削除する時間をシミュレーションにより評価した.評価結果に基づいて運用を議論し,Learning Opsの運用に関する考慮点を明確化した.

参考文献
 
© 2025 学術情報処理研究編集委員会

この記事はクリエイティブ・コモンズ [表示 4.0 国際]ライセンスの下に提供されています。
https://creativecommons.org/licenses/by/4.0/deed.ja
feedback
Top