Середовище розробки для Open edX Insights

16 вересня 2015 | за

Сьогодні ми раді оголосити про випуск Відкрийте edX Analytics Devstack і хочу приділити трохи часу, щоб пояснити, як виник проект. Велика вдячність Філіпу Чіу та Брейдену Макдональду за їхні героїчні зусилля, спрямовані на реалізацію цього проекту.

На минулорічній першій конференції Open edX Hackathon Філіп Чіу (з IONISx) запропонував чудовий проект: запустити весь стек аналітики edX з контейнера Docker. Метою цього проекту було розробити щось на зразок стеку розробника (Devstack), який використовується більшістю розробників Open edX, коли вони розробляють патчі для платформи edx. Цей «стек розробників аналітики» містив би всі зовнішні залежності, необхідні аналітичним системам, встановлені в одному зручно ізольованому контейнері. 

Діаграма, на якій показано всі служби, які співіснують у контейнері аналітики devstack

Діаграма, на якій показано всі служби, які співіснують у контейнері аналітики devstack

Команда аналітики edX виконувала більшу частину нашої розробки на кластерах Elastic MapReduce (на AWS), які зручно включають усі залежності, необхідні для запуску нашого коду. Однак цей підхід є громіздким і непомірно дорогим для багатьох учасників відкритого коду. Замість цього ми хотіли створити стек аналітики всередині контейнера, який міг би завантажувати журнали відстеження (дані кліків), обробляти їх і відображати результати на Insights (панель аналітики, яка надається викладачам і персоналу курсів, які працюють над курсами edX). Наступні два дні ми з Філіпом провели, зламуючи всі біти, які мали статися для досягнення цієї мети. Зрештою, ми зайшли досить далеко. Ми змогли запустити конвеєр даних (edx-analytics-pipeline), але потрібно було підключити деякі служби. Після хакатону я витратив трохи часу на просування цього, здебільшого шляхом перетворення конфігурації на основі Dockerfile на ролі ansible і playbooks. Це доповнення дозволило нам запускати конфігурацію ansible будь-де, де ми вибрали (зокрема, під час процесу створення образу докера, збірки AMI або етапу підготовки бродяжого образу).

Перемотайте кілька місяців вперед і Брейден Макдональд (з OpenCraft) прагнув зробити значний внесок у аналітичні служби. Він також побачив потребу в еквіваленті devstack для аналітичних служб edX і розробив повністю функціональний бродячий образ, який може запускати весь стек. Роблячи це, він з’ясував купу деталей, які залишилися невідомими після початкових зусиль.

Команда інженерів edX була настільки вражена цим величезним внеском, що ми подумали, що має сенс об’єднати його з наявною роботою та створити кінцевий продукт, який міг би:

  • Бути інстальованим у звичайний стек розробників Open edX або розгорнутим на цілком окремій віртуальній машині.
  • Працюйте на тій же машині, що й LMS, що значно спрощує конфігурацію мережі, не турбуючись про переадресацію портів та інші подібні ускладнення.
  • Бути тісно інтегрованим із репозиторієм edx/configuration, що дозволить у майбутньому спростити розгортання в пісочниці та інших середовищах розробки edX.
  • Використовуйте ту саму логіку розгортання, яка використовується у виробництві.
  • Скористайтеся перевагами іншої інфраструктури edX, яка підтримує розгортання та керування цими програмами, які можна розгортати незалежно (IDA).

Чистий результат є набір ролей і п'єс які були об’єднані в сховище edx/configuration. Тепер за допомогою лише кількох команд розробники можуть створювати повне аналітичне середовище розробки у віртуальній машині. У цьому середовищі ви можете клацати в LMS, запускати конвеєр даних, а потім оновлювати сторінку в Insights, щоб побачити зміни діаграм відповідно до ваших дій!

Хочете спробувати? Перегляньте документацію на Analytics Devstack!

Хочете зробити стек розробників аналітики ще кращим? Ми сподіваємося розширити його в такі способи:

  • Ми хотіли б мати можливість запускати приймальні тести конвеєра даних у цьому середовищі. В даний час є деякі жорстко закодовані залежності від S3. Команда інженерів edX планує зробити це найближчим часом.
  • У нас є деякі конфігураційні матеріали, пов’язані з аналітикою, у сховищі edx/edx-analytics-configuration та інші речі в сховищі edx/configuration. Ми хотіли б розробити стратегію, щоб зменшити складність цієї ситуації, переходячи від однієї логіки до іншої, щоб у вас було одне місце, куди можна було б знайти оперативні речі, пов’язані з аналітикою.
  • Зробіть процедуру розгортання edx-analytics-pipeline більш ідіоматичною та узгодженою з іншими службами, такими як Insights і Analytics Data API.
  • Дозволити Insights відображати сьогоднішні дані замість того, щоб завжди відображати дані за вчорашній день. Деякі звіти наразі не відображають жодних змін до наступного календарного дня.

Я не можу достатньо подякувати Брейдену та Філіппу за те, що вони об’єднали все це разом і зробили для всіх нас можливим легшу та ефективнішу роботу над аналітичним стеком. Ми з нетерпінням чекаємо, щоб побачити, які зміни спільнота Open edX має на увазі для Open edX Insights, і які цікаві проекти будуть розроблені з 2015 Open edX Hackathon! Сподіваємося побачити вас там.

Гейб Маллі є головним інженером-програмістом у команді edX Analytics.

Loading

Час для більшого? Перегляньте статті нижче.

Корпоративне навчання переходить до Ed Tech
Виклик документів дає чудовий урожай
Конкурс Open edX для доповідей: закінчується 7 грудня
Поступові вдосконалення Open edX
Приєднуйтесь до конференції Open edX 2026!

На конференції Open edX 2026 року будуть представлені інноваційні сценарії використання однієї з найкращих у світі систем керування онлайн-навчанням з відкритим кодом, платформи Open edX, а також відкриються останні досягнення в дизайні навчання, групі курсів і методах роботи та розширення платформи Open edX. , включаючи проривні технології, такі як генеративний ШІ.