Open edX Insightsの開発環境

16年2015月XNUMX日 | 執筆者

本日、私たちは、 Open edX アナリティクス Devstack このプロジェクトがどのようにして実現したのか、少しお話ししたいと思います。このプロジェクトの実現に尽力してくださったフィリップ・チウ氏とブラデン・マクドナルド氏に深く感謝申し上げます。

昨年のOpen edXカンファレンスハッカソン第1回では、フィリップ・チウ( IONISx)は素晴らしいプロジェクトを提案しました: edX分析スタック全体 Dockerコンテナから。このプロジェクトの目標は、Open edX開発者のほとんどがedx-platformのパッチ開発時に使用する開発者スタック(Devstack)のようなものを開発することでした。この「Analytics devstack」には、分析システムに必要なすべての外部依存関係が、1つの便利な分離コンテナにインストールされます。 

分析 devstack コンテナ内で共存するすべてのサービスを示す図

分析 devstack コンテナ内で共存するすべてのサービスを示す図

edXの分析チームは、コードの実行に必要な依存関係がすべて含まれているElastic MapReduceクラスター(AWS上)上で開発の大部分を行っていました。しかし、このアプローチは多くのオープンソースコントリビューターにとって煩雑で、法外な費用がかかりました。そこで私たちは、トラッキングログ(クリックストリームデータ)を取り込み、処理し、結果をWebブラウザに表示できるコンテナ内に分析スタックを構築したいと考えました。 運用を (edXコースを担当する講師やコーススタッフに提供される分析ダッシュボード)。フィリップと私はその後2日間、この目標を達成するために必要なあらゆる部分をハッキングしました。最終的には、かなりの距離を進むことができました。データパイプライン(edx分析パイプライン)は完成していましたが、まだいくつかのサービスを接続する必要がありました。ハッカソンの後、私は少し時間をかけてこれを推し進め、主にDockerfileベースの設定をAnsibleのロールとプレイブックに変換しました。この追加により、Ansibleの設定を任意の場所(Dockerイメージのビルドプロセス、AMIのビルド、Vagrantイメージのプロビジョニングステップなど)で実行できるようになりました。

それから数ヶ月後、ブラデン・マクドナルド( オープンクラフト)は、分析サービスに大きく貢献したいと考えていました。また、edX分析サービスに対応する開発スタックの必要性を感じ、スタック全体を実行できる完全に機能するVagrantイメージを開発しました。その過程で、当初の取り組みで未解決だった多くの問題点を解決しました。

edX エンジニアリング チームはこの多大な貢献に非常に感銘を受け、これを既存の作業と統合して、次の機能を備えた最終製品を作成することが理にかなっていると考えました。

  • 通常の Open edX devstack にインストールするか、完全に別の仮想マシンで起動します。
  • LMS と同じマシン上で実行することで、ポート転送などの複雑な問題を心配することなく、ネットワーク構成を大幅に簡素化できます。
  • edx/configuration リポジトリと緊密に統合され、将来的にサンドボックスやその他の edX 開発環境への展開が簡素化されます。
  • 運用環境で使用されているのと同じデプロイメント ロジックを使用します。
  • これらの独立して展開可能なアプリケーション (IDA) の展開と管理をサポートする他の edX インフラストラクチャを活用します。

最終的な結果は Ansibleのロールとプレイブックのセット edx/configurationリポジトリに統合されました。開発者はわずか数コマンドで、仮想マシン内に完全な分析開発環境を構築できます。この環境内では、LMS内をクリックしたり、データパイプラインを実行したり、Insightsのページを更新したりするだけで、操作に応じてチャートが変化することを確認できます。

試してみたいですか? Analytics Devstackのドキュメントをご覧ください!

分析開発スタックをさらに改善したいですか?私たちは、以下の方法で拡張したいと考えています。

  • この環境でデータパイプラインの受け入れテストを実行できるようにしたいと考えています。現在、 S3へのハードコードされた依存関係edX エンジニアリング チームは、近い将来にこれを実行する予定です。
  • edx/edx-analytics-configuration リポジトリには分析関連の設定項目がいくつかあり、edx/configuration リポジトリにはその他の設定項目があります。この状況の複雑さを軽減するために、ロジックを一方から他方へ移動し、分析関連の運用情報を一元的に確認できるような戦略を検討したいと考えています。
  • edx-analytics-pipeline のデプロイメント手順をより慣用的なものにし、Insights や Analytics Data API などの他のサービスとの一貫性を保ちます。
  • Insightsで、常に昨日のデータを表示するのではなく、今日のデータを表示するように設定してください。一部のレポートでは、現在、翌暦日まで変更内容が表示されません。

これらすべてをまとめ上げ、私たち全員が分析スタックをより容易かつ効果的に活用できるようにしてくれたBradenとPhilippeには、感謝してもしきれません。Open edXコミュニティがOpen edX Insightsにどのような変化を起こそうとしているのか、そしてそこからどんな素晴らしいプロジェクトが生まれるのか、楽しみにしています。 2015 Open edXハッカソン!ぜひご来場ください。

Gabe Mulley は、edX 分析チームの主任ソフトウェア エンジニアです。

ローディング

もっと時間が必要ですか? 以下の記事をご覧ください。

企業学習がEdTechへ移行
論文募集で豊作
Open edX 論文募集:7月XNUMX日締め切り
Open edX の段階的な改善
Open edX カンファレンス 2026 に参加しましょう!

2026 Open edX カンファレンスでは、世界最高峰のオープンソース オンライン学習管理システムの XNUMX つである Open edX プラットフォームの革新的な使用事例を紹介し、教育設計、コース構成、生成 AI などの画期的なテクノロジーを含む Open edX プラットフォームの運用と拡張の方法における最新の進歩を紹介します。