米陸軍サイバー学校がGitLabで「コードとしてのコースウェア」を実現した方法

  • コラボレーションの向上
  • CI統合の強化
  • 簡単なテンプレート作成
Industry政府機関
従業員数200名以上
地域フォートゴードン、ジョージア州(アメリカ合衆国)
ソリューションGitLab Ultimate

GitLab Ultimateがチームにもたらすメリットについてご覧ください

無料トライアルを開始

米陸軍サイバー学校は、Gitと継続的インテグレーション(CI)を使用したソフトウェア開発の構築を目指し、 GitLabのオールインワンソリューションで成功を収めました

米陸軍サイバー学校は、GitLabの継続的インテグレーション・デリバリー(CI/CD)、DevOps、 ソースコード管理(SCM)を活用して、安全で協力的なコースウェアを構築しました。

10の異なることを教える代わりに、1つのことだけを学べばよいため、 長期的に見てはるかに簡単になります。

- Chris Apsey, 大尉, 米陸軍
米陸軍サイバー専門機関

米陸軍サイバー学校は、 すべての米陸軍17シリーズ兵士の機能訓練と教育を担当しています。米陸軍サイバー学校は、 防御的サイバースペース作戦(DCO)、攻撃的サイバースペース作戦(OCO)、電子戦(EW)、 サイバースペースの計画、統合、同期に関連する必要な知識、スキル、能力を学生に提供しています。

Git導入をゼロから実現

2014年に設立された後、フォートゴードンの米陸軍サイバー学校は、 学校のソフトウェア開発プロセスをゼロから構築する任務を負いました。 管理や更新すべきレガシーシステムはありませんでしたが、同時に作業の基盤となるものも何もありませんでした。 インストラクター、コンテンツ、従うべきプレイブックが一切ない状態でした。

チームがプログラムのコンテンツ作成を開始した際、データは主に個人のパソコンで作成・保存されていました。 しかし、このアプローチは、人員の入れ替わりで個人が組織を離れる際にデータが失われるという問題を すぐに引き起こしました。その他にも、初期には、Zipファイルをメール送信したりホワイトボードを使ったりと、 非効率で極めて手動的なプロセスが使われていました。チームが協力し、 プロジェクト進捗を追う方法も不足していました。チームが貢献できる共通のリポジトリがなければ、 学校は外部に開発を依頼した貴重なコンテンツを失うリスクを抱えていました。

増大する課題に対処するため、学校はソフトウェア開発を行う他のチームからインスピレーションを得て、 独自の状況に適したGitベースのソリューションの模索を始めました。目標は、チームに「コードとしての コースウェア(Courseware as Code)」を提供し、従来のドキュメント形式(プレゼンテーション、ワープロ文書、スプレッドシートなど) でのコンテンツ保守をマークダウン言語とCIパイプラインに置き換えるDevOpsの原則(CI/CDなど)を 使用することでした。

Christopher Apsey大尉とそのチームは、開発者が単一の情報体系で協力できる1つのソフトウェアツール、 学生とスタッフがGitを使用するためのプラットフォーム、そしてCIパイプラインにアクセスする方法を探していました。GitHub、Gogs、Node Kitten、Giteaを 調査した結果、統合CIを含む他のプラットフォームにはない様々なサービスを提供するGitLabを最終的に選択しました。 GitLabの協力機能により、コースウェアと認定評価が確立されました。

ZipドライブからCIパイプラインへ

米陸軍サイバー学校は、GitLabインスタンスを使用してプログラミング試験を管理・採点しています。 これは陸軍の17シリーズ開発者向けの最初の認定評価です。CIパイプラインは試験の採点に使用され、 テスト結果を要約するGitLabページでホストされるインタラクティブなJavaScriptウェブサイトです。 このプロセスは、自動化と協力を通じて採点と認定を合理化するために積極的に開発されています。

コードとしてのコースウェアの展開を成功させるため、学校がGitLabで管理している技術コンテンツの ほぼすべてがマークダウン言語で記述されています。これにはテンプレート、講座コンテンツ、 スライド、配布資料が含まれます。すべてのコンテンツ制作はCI駆動で行われ、 ソフトウェア開発と同じ方法で完了されています。誰かが文書に変更を加えると、 それは記録され、信頼できる唯一の情報源としてGitLab内に保存されます。

キャリア成功のためのSCM、CI/CD、DevOps

GitLabの自動化ワークフローの実装により、米陸軍サイバー学校は複数のインストラクター、 複数の貢献者、地理的に分散したクラスのためのコースウェアを確立し、以前に経験していた 多くの課題を解決しました。GitLabを使用して6つの講座が作成され、 インストラクターと学生の間で4,000回以上のマージが行われています。

全員が中央リポジトリ内で貢献するため、誰も政府の機密情報を持って学校を離れることはありません。 これは以前は情報流出のリスクでした。学校はまた、現場から知識をリアルタイムに提供 できる卒業生からも恩恵を受けています。卒業生は、 コースリポジトリに直接マージリクエストを提出することで、現在の学生の学習教材を 形作ることが奨励されています。

DevOps、SCM、CI/CDがしっかりと確立されたことで、すべての貢献者は協力的で透明な環境で 作業しています。課題、ボード、エピック、チェックリストは、学生の参加を増やすための データツールとして頻繁に使用されています。これらのGitLab機能により、インストラクターは 学生の進捗を簡単に追跡できます。従来のドキュメント形式は、GitLabの追跡可能な プロジェクトリポジトリに置き換えられました。「今では『誰が何をしているのか?誰が価値を 追加しているのか?誰がチームプレーヤーで、誰がサボっているのか?』をすべてGitLabの コミット履歴内で確認できます」とApsey大尉は述べています。

試験は、学生の試験ファイルからのシードを使用してグループレベルのテンプレートで作成されます。 試験テンプレートにはマージリクエストと課題が含まれているため、新しいプロジェクトが作成されると 学生は独自のリポジトリを持ちます。「学生を開発者としてリポジトリに追加し、 任意のブランチにコミットしてdevelopにマージするか、developに直接コミットできます。 会話と採点を行うのは、そのオープンなMRからです」と米陸軍のシニア開発者である Jessie Lass大尉は述べています。

レビューサイクル時間は以前は3年かかっていましたが、GitLabの非同期協力により はるかに高速になりました。「GitLabでは人々をタグ付けして、1週間以内にフィードバックを 得ることができました。完全に正式化されたレビューサイクルとは言えませんが、 確実に年単位から月単位になりました」とサイバースペース作戦将校のBenjamin Allison大尉は 述べています。

GitLabの使用は試験の内部開発を改善しただけでなく、学生がGitに習熟することも支援しています。 「私の希望は、これらの候補者を認定した後、健全な専門的開発ワークフローがどのようなものかを 少し経験してもらうことです。そうすれば、チームに参加したときに実際に働く準備ができています」と Jessie Lass大尉は述べています。

ケーススタディに記載されている情報や関係者はすべて、発表時点のものです。