edXのDevOpsチームは、Open edXを世界中の誰もが利用できるようにするために、コミュニティと連携して取り組んでいます。 edx.org is 一般に公開される GPLライセンスの下で提供されています。edx-platformのソースコードに加え、プラットフォームをインストールおよびアップデートするための設定スクリプトも公開されています。 設定リポジトリ設定に使用するツールは Ansibleは、当社の運用チームにとって柔軟性とシンプルさのバランスが取れた Python ベースの構成管理ツールです。
定期的に edXがVagrantイメージをリリース edXをPCにインストールしたい場合は、 ドキュメント 仮想マシンでローカルにプラットフォームをセットアップします。
私たちは通常、edX を大規模なクラウドベースの運用サーバーに展開することに重点を置いていますが、この投稿ではまったく異なる課題、つまり Raspberry Pi で edX コースとオーサリング ソフトウェアを実行するための概念実証について説明します。
その ラズベリーパイ ARM/Linuxを搭載した低価格のコンピュータで、約35ドルで購入できます。Raspberry Piのような低価格デバイスでedXウェブサイトを運用すれば、インターネットへのアクセスが限られている地域でも移動式教室を開設できる可能性があります。Raspberry Piを使えば、ノートパソコンやデスクトップコンピュータよりも安価にこれを実現できます。
Raspberry Pi上で最小限のサイト構成は機能しますが、複数の学生を対象とする実際のコースで使用するにはまだ十分なパフォーマンスが得られていません。ただし、このプラットフォームは1人の学生であれば問題なく機能し、改善の余地があります。
ダウンロードとインストール
- ステップ 1: あらかじめ作成された Raspberry Pi イメージをダウンロードします。 edx-raspberrypi-20131228.img.gz
- ステップ 2: SDカードをフラッシュする
sshのデフォルトのユーザー名とパスワードを使用できます - user: pi パスワード:ラズベリー - ステップ 3: スーパーバイザが実行されており、LMS と CMS の両方が実行されていることを確認します。
sudo service supervisor start
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf - ステップ 4: ブラウザで LMS と Studio に接続します。
LMS on port 18000 - `http://[ip address]:18000 `
Studio on port 18010 - `http://[ip address]:18010`
username: staff@example.com password: edx
何が機能し、何が機能しないか
- Studioを使用して新しいコースを作成する
- 学生としてコースにアクセスする
Chrome devtools を使用してページのレンダリング時間を測定します。
- LMSデモコースウェアページ 約5秒
- 学生ダッシュボードページ 約5秒
以下の機能はまだサポートされていません。
- フォーラム 有効になっていないため、現在のバージョンの Mongo と互換性がない可能性があります。
- カスタム コード グレーダーは有効になっていません。
- ORA / 識別する 機械学習用が有効になっていません。
Raspberry PiでのedXの設定
Raspberry Piハードウェア
- 700MHz ラズベリーパイ / 500MB
- 8 GB SDカード
サービス構成
インストール後、Raspberry Pi 上で次のサービスが実行されます。
- Nginx/Gunicorn
- Python/Django とそれに依存するすべての Python ライブラリ
- MySQL
- モンゴ
- Memcached
edXに必要なすべてのものは/edx以下に配置されており、複数のPython仮想環境に完全に自己完結しています。Mongoは/edx/mongoにインストールされ、これは 非x86ポート ARM向けにコンパイルされています。Raspberry Pi用にすべてをゼロからコンパイルするには数日かかるため、良い出発点となるパブリックイメージが利用可能です。
本格的に使用するには、いくつかの注意点と改善が必要です。
- 不要なログ記録を排除する必要があります。ログレベルは CRITICAL に設定されていますが、追跡ログは現在 SD カードに書き込まれています。
- 全体的なパフォーマンスは理想的ではなく、より積極的なキャッシュを設定したり、追加のコード変更を行ったりしなければ、改善することは困難です。
- edx-platform リポジトリの更新には約 1 時間かかります。
Ansibleによる設定
を使用しております Ansible edX構成管理ツールを本番システム用として使用します。同じスクリプトに若干の修正を加えることで、Raspberry Piでも動作します。
AnsibleはRaspberry Pi上にセットアップされているため、edx-platformの新しいバージョンへのアップデートや設定変更が簡単です。アセットコンパイル(CoffeescriptとSass)のため、アップデートには約1時間かかりますが、この手順はアーキテクチャに依存しないため、オフラインでも実行できます。
Raspberry Piを最新のedx-platformコミットにアップデートする方法
次のコマンドを Raspberry Pi 上で直接実行して、構成または edx-platform リポジトリのバージョンを更新できます。
# Ensure that the configuration repo is on the Raspberry Pi branchsudo /edx/bin/設定jarv/raspberrypiを更新
# Raspberry Pi Ansibleプレイブックを実行する
cd /edx/app/edx_ansible/edx_ansible/playbooks/edx-east
/edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook -i localhost、-c local --tags で raspberrypi.yml をデプロイ -e "edx_platform_version=master"ヘルプとトラブルシューティング
edXに関するサポートが必要な場合は、 コミュニティメーリングリストRaspberry PiでedXを実行することについて具体的な質問がある場合は、これはプロトタイプであり、公式のメンテナンスやサポートは行われていないことにご注意ください。Raspberry Piまたは他のプラットフォームで動作する場合は、 私に教えてください — ぜひご意見をお聞かせください!


