Курс запускается одной командой Compose и ведёт студента через JupyterLab до первого вычисления, а затем по восьми модулям. VS Code в браузере доступен в том же стенде по желанию. Python, venv и расширения на хосте устанавливать не нужно.
docker compose build / up -d
├── JupyterLab :8888 — основной маршрут
└── VS Code :8889 — альтернативный интерфейс
↓ отдельные ядра, общие файлы ноутбуков
Spark → Iceberg / MinIO ← Trino
Добавлен ide с закреплёнными версиями code-server, Python/Jupyter extensions и готовой рабочей областью. Ноутбуки сохраняются на хосте; документация и src/ доступны для чтения. Порты обоих интерфейсов опубликованы на loopback; удалённый доступ описан через SSH-туннель. Сборка связана в порядке spark-master → jupyter → ide.
JupyterLab остаётся основным интерфейсом. README, START_HERE, программа, PRD, памятка, технический справочник и первый ноутбук согласованы с этим маршрутом. Для VS Code приведены выбор ядра, сохранение и ограничения совместимости браузера и средств защиты. Дополнительных профилей запуска нет.
MinIO скачивается готовым: coollabsio/minio:RELEASE.2025-04-22T22-12-26Z, digest индекса AMD64/ARM64 закреплён. Один образ с mc используется сервером и init-контейнером; ошибки создания бакета больше не скрываются. Основной registry — GHCR, резерв того же digest — Docker Hub через MINIO_REGISTRY=docker.io. Источники зависимостей и диагностика сети описаны отдельно.
Trino ограничен 2 ГиБ RAM без swap, heap — 1 ГиБ. Требования разделяют ресурсы компьютера, Docker и диск: ориентир 16 ГБ RAM компьютера, 4 CPU, 8 ГБ для Docker и 20 ГБ свободного места. Памятка объясняет продолжение занятий, сохранение состояния и осознанный сброс данных.
Добавлен tests/browser_ide.sh: открытие ноутбука, выбор ядра, вычисление, вывод, сохранение и повторное открытие. Учебный код и learning outcomes сохранены.
Evidence
Before: сборка пыталась скачать локальный de-spark-iceberg:3.5.1 и завершалась pull access denied; закреплённый MinIO из Quay возвращал 401 UNAUTHORIZED. After: окружение собрано через зависимости Compose. MinIO скачан из GHCR и резервного Docker Hub с одним digest. На отдельном стенде с пустыми volumes прошли инициализация, повторный minio-init и Spark → Iceberg → Trino smoke (1 / from_spark).
JupyterLab, Chromium, 21 октября: открыта временная копия Модуля 1, через меню выбрано Python 3 (ipykernel), выполнены все 5 кодовых ячеек без ошибок. result_sum=499999500000 отобразился в браузере, сохранился и остался после повторного открытия. Тестовое ядро и копия удалены, пользовательское ядро сохранено.
VS Code, Chromium: браузерный smoke прошёл все 5 кодовых ячеек, webview, сохранение и повторное открытие. На пользовательском Windows/Edge с Kaspersky выявлена блокировка notebook webview дополнительной политикой безопасности; сам редактор при этом открывался. В документации указан переход к JupyterLab без обязательной настройки защиты.
Trino: на трёх месяцах Taxi прошли запросы Модуля 6 и дополнительные JOIN; результаты сверены со Spark. Bronze — 9 554 778 строк, silver — 9 418 184, справочник — 265 зон. Пик Trino по cgroup — около 1,25 ГиБ, OOM и перезапусков нет. Методика и границы замера — plans/trino-memory-validation.md.
После замены MinIO на основном стенде прежняя Iceberg-таблица читалась через Trino; перед заменой сохранены архив volume и дамп PostgreSQL.
Прошли docker compose config --quiet, проверка локальных ссылок и якорей, синтаксис shell-блоков и git diff --check. В текущей правке проверены 78 ссылок/якорей и 26 shell-блоков; кодовые ячейки, выводы и метаданные исходного ноутбука не изменены.
Проверки выполнялись на Linux x86_64 с Docker Engine. Docker Desktop, ARM64, полный последовательный проход восьми модулей и общий жёсткий лимит памяти Docker 8 ГБ не проверялись. Браузерный smoke использует Linux host networking. Доступность всех источников из сетей российских провайдеров не проверялась. Результат Run All не заменяет самостоятельное задание с TODO.
Merge Danger
Door: two-way для конфигурации; откат MinIO с существующими данными требует учитывать состояние volume и backup.
Blast Radius: стенд.
Меняются сборка, поставщик и версия MinIO, бюджет Trino и маршрут документации. MinIO — историческая сторонняя сборка для учебного стенда. Лимит Trino проверен на данных курса; более тяжёлые запросы могут потребовать другого бюджета. Интерфейсы без пароля рассчитаны на одного пользователя и доступны через loopback или SSH-туннель.
## Summary
Курс запускается одной командой Compose и ведёт студента через JupyterLab до первого вычисления, а затем по восьми модулям. VS Code в браузере доступен в том же стенде по желанию. Python, venv и расширения на хосте устанавливать не нужно.
```text
docker compose build / up -d
├── JupyterLab :8888 — основной маршрут
└── VS Code :8889 — альтернативный интерфейс
↓ отдельные ядра, общие файлы ноутбуков
Spark → Iceberg / MinIO ← Trino
```
- Добавлен `ide` с закреплёнными версиями code-server, Python/Jupyter extensions и готовой рабочей областью. Ноутбуки сохраняются на хосте; документация и `src/` доступны для чтения. Порты обоих интерфейсов опубликованы на loopback; удалённый доступ описан через SSH-туннель. Сборка связана в порядке `spark-master → jupyter → ide`.
- JupyterLab остаётся основным интерфейсом. README, START_HERE, программа, PRD, памятка, технический справочник и первый ноутбук согласованы с этим маршрутом. Для VS Code приведены выбор ядра, сохранение и ограничения совместимости браузера и средств защиты. Дополнительных профилей запуска нет.
- MinIO скачивается готовым: `coollabsio/minio:RELEASE.2025-04-22T22-12-26Z`, digest индекса AMD64/ARM64 закреплён. Один образ с `mc` используется сервером и init-контейнером; ошибки создания бакета больше не скрываются. Основной registry — GHCR, резерв того же digest — Docker Hub через `MINIO_REGISTRY=docker.io`. Источники зависимостей и диагностика сети описаны отдельно.
- Trino ограничен 2 ГиБ RAM без swap, heap — 1 ГиБ. Требования разделяют ресурсы компьютера, Docker и диск: ориентир 16 ГБ RAM компьютера, 4 CPU, 8 ГБ для Docker и 20 ГБ свободного места. Памятка объясняет продолжение занятий, сохранение состояния и осознанный сброс данных.
- Добавлен `tests/browser_ide.sh`: открытие ноутбука, выбор ядра, вычисление, вывод, сохранение и повторное открытие. Учебный код и learning outcomes сохранены.
## Evidence
- **Before:** сборка пыталась скачать локальный `de-spark-iceberg:3.5.1` и завершалась `pull access denied`; закреплённый MinIO из Quay возвращал `401 UNAUTHORIZED`.
**After:** окружение собрано через зависимости Compose. MinIO скачан из GHCR и резервного Docker Hub с одним digest. На отдельном стенде с пустыми volumes прошли инициализация, повторный `minio-init` и Spark → Iceberg → Trino smoke (`1 / from_spark`).
- **JupyterLab, Chromium, 21 октября:** открыта временная копия Модуля 1, через меню выбрано `Python 3 (ipykernel)`, выполнены все 5 кодовых ячеек без ошибок. `result_sum=499999500000` отобразился в браузере, сохранился и остался после повторного открытия. Тестовое ядро и копия удалены, пользовательское ядро сохранено.
- **VS Code, Chromium:** браузерный smoke прошёл все 5 кодовых ячеек, webview, сохранение и повторное открытие. На пользовательском Windows/Edge с Kaspersky выявлена блокировка notebook webview дополнительной политикой безопасности; сам редактор при этом открывался. В документации указан переход к JupyterLab без обязательной настройки защиты.
- **Trino:** на трёх месяцах Taxi прошли запросы Модуля 6 и дополнительные JOIN; результаты сверены со Spark. Bronze — 9 554 778 строк, silver — 9 418 184, справочник — 265 зон. Пик Trino по cgroup — около 1,25 ГиБ, OOM и перезапусков нет. Методика и границы замера — `plans/trino-memory-validation.md`.
- После замены MinIO на основном стенде прежняя Iceberg-таблица читалась через Trino; перед заменой сохранены архив volume и дамп PostgreSQL.
- Прошли `docker compose config --quiet`, проверка локальных ссылок и якорей, синтаксис shell-блоков и `git diff --check`. В текущей правке проверены 78 ссылок/якорей и 26 shell-блоков; кодовые ячейки, выводы и метаданные исходного ноутбука не изменены.
Проверки выполнялись на Linux x86_64 с Docker Engine. Docker Desktop, ARM64, полный последовательный проход восьми модулей и общий жёсткий лимит памяти Docker 8 ГБ не проверялись. Браузерный smoke использует Linux host networking. Доступность всех источников из сетей российских провайдеров не проверялась. Результат `Run All` не заменяет самостоятельное задание с `TODO`.
## Merge Danger
**Door:** two-way для конфигурации; откат MinIO с существующими данными требует учитывать состояние volume и backup.
**Blast Radius:** стенд.
Меняются сборка, поставщик и версия MinIO, бюджет Trino и маршрут документации. MinIO — историческая сторонняя сборка для учебного стенда. Лимит Trino проверен на данных курса; более тяжёлые запросы могут потребовать другого бюджета. Интерфейсы без пароля рассчитаны на одного пользователя и доступны через loopback или SSH-туннель.
ddmitry
changed title from VS Code в браузере: готовое окружение для ноутбуков курса to VS Code в браузере и запуск курса с готовым MinIO2026-10-19 10:27:06 +03:00
ddmitry
changed title from VS Code в браузере и запуск курса с готовым MinIO to VS Code в браузере и маршрут прохождения курса2026-10-19 10:49:06 +03:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Курс запускается одной командой Compose и ведёт студента через JupyterLab до первого вычисления, а затем по восьми модулям. VS Code в браузере доступен в том же стенде по желанию. Python, venv и расширения на хосте устанавливать не нужно.
ideс закреплёнными версиями code-server, Python/Jupyter extensions и готовой рабочей областью. Ноутбуки сохраняются на хосте; документация иsrc/доступны для чтения. Порты обоих интерфейсов опубликованы на loopback; удалённый доступ описан через SSH-туннель. Сборка связана в порядкеspark-master → jupyter → ide.coollabsio/minio:RELEASE.2025-04-22T22-12-26Z, digest индекса AMD64/ARM64 закреплён. Один образ сmcиспользуется сервером и init-контейнером; ошибки создания бакета больше не скрываются. Основной registry — GHCR, резерв того же digest — Docker Hub черезMINIO_REGISTRY=docker.io. Источники зависимостей и диагностика сети описаны отдельно.tests/browser_ide.sh: открытие ноутбука, выбор ядра, вычисление, вывод, сохранение и повторное открытие. Учебный код и learning outcomes сохранены.Evidence
de-spark-iceberg:3.5.1и завершаласьpull access denied; закреплённый MinIO из Quay возвращал401 UNAUTHORIZED.After: окружение собрано через зависимости Compose. MinIO скачан из GHCR и резервного Docker Hub с одним digest. На отдельном стенде с пустыми volumes прошли инициализация, повторный
minio-initи Spark → Iceberg → Trino smoke (1 / from_spark).Python 3 (ipykernel), выполнены все 5 кодовых ячеек без ошибок.result_sum=499999500000отобразился в браузере, сохранился и остался после повторного открытия. Тестовое ядро и копия удалены, пользовательское ядро сохранено.plans/trino-memory-validation.md.docker compose config --quiet, проверка локальных ссылок и якорей, синтаксис shell-блоков иgit diff --check. В текущей правке проверены 78 ссылок/якорей и 26 shell-блоков; кодовые ячейки, выводы и метаданные исходного ноутбука не изменены.Проверки выполнялись на Linux x86_64 с Docker Engine. Docker Desktop, ARM64, полный последовательный проход восьми модулей и общий жёсткий лимит памяти Docker 8 ГБ не проверялись. Браузерный smoke использует Linux host networking. Доступность всех источников из сетей российских провайдеров не проверялась. Результат
Run Allне заменяет самостоятельное задание сTODO.Merge Danger
Door: two-way для конфигурации; откат MinIO с существующими данными требует учитывать состояние volume и backup.
Blast Radius: стенд.
Меняются сборка, поставщик и версия MinIO, бюджет Trino и маршрут документации. MinIO — историческая сторонняя сборка для учебного стенда. Лимит Trino проверен на данных курса; более тяжёлые запросы могут потребовать другого бюджета. Интерфейсы без пароля рассчитаны на одного пользователя и доступны через loopback или SSH-туннель.
VS Code в браузере: готовое окружение для ноутбуков курсаto VS Code в браузере и запуск курса с готовым MinIOVS Code в браузере и запуск курса с готовым MinIOto VS Code в браузере и маршрут прохождения курсаVS Code в браузере и маршрут прохождения курсаto Запуск курса: JupyterLab и VS Code в браузере