Смотрим на GigaIDE Cloud для Jupyter
В GitVerse неделю назад выкатили новую версию GigaIDE Cloud — рабочую станцию разработчика по запросу, сделанную на базе Visual Studio Code. В мире (например, Microsoft) уже давно пробуют подходы к этой истории, например, чтобы что-то сделать быстро сделать или протестировать, либо вообще дать временный доступ, скажем, разработчику в подрядчике.
GigaIDE Cloud — разработка СберТеха на основе Visual Studio Code. Есть еще GigaIDE Desktop, она на основе JetBrains Idea, но не является темой для изучения в этой заметке.
Процесс следующий — разработчик запускает GigaIDE Cloud из любого репозитория на GitVerse или на основе одного из нескольких шаблонов популярных фреймворков. Далее идет обращение к ресурсному провайдеру облака, где разворачивается контейнер с выбранным сайзингом, и все это подключается к репозиторию. Когда-то мне нужно было быстро попробовать Jupyter Notebook со средой. GigaIDE выложили пример, попробовать разобрать который мне показалось любопытным. Он включает в себя создание и настройку virtual env, я же еще добавлю свой собственный Jupyter-сервер и соберу руками, потому что почему бы и нет.
Начинаю с открытия репозитория, справа вверху уже есть плашка для GigaIDE.

Из однозначно и сразу полезных фишек — автоматическая остановка пространства. Пространство — это фактически контейнер в облаке, на котором поднято то, что выбрано.По умолчанию есть два варианта контейнера, с 2 и 4 vCPU. Мне достаточно двух, как и, кажется, любой непродакшн-истории.

Пока пространство создается, видим, что внутрь интегрирован GigaCode. Воспользуемся позже, посмотрим, что умеет.

После того, как все настроилось и загрузилось, попадаем в знакомый интерфейс.

Заберу в demo.ipynb контент из примера и уберу приветствия, оставив первый блок про слайдер. Jupyter-ноутбуки я писал довольно давно, поэтому тут как раз и спрошу у GigaCode, а что внутри этого ноутбука происходит. В этом плане ИИ-ассистенты — отличные помощники.

A screenshot of a phone
AI-generated content may be incorrect.
Если же спросить про то, с чего будет уместно начать изучение Jupyter, GigaCode посоветует начать со сложения. Вполне логично, особенно учитывая то, что для более сложных операций часто требуются дополнительные зависимости.
Их мы и установим.
В терминале выполним:
#!/bin/bash
sudo apt-get update
sudo apt -y install python3.11-venv
python3 -m venv ~/workspace/.venv
source ~/workspace/.venv/bin/activate
pip install ipykernel sympy sympy_plot_backends matplotlib numpy ipython ipywidgets --force
pip install ipykernel -U --user --force-reinstall
code-server --install-extension ms-toolsai.jupyter
После того, как все зависимости заехали к нам в среду, можем запустить виртуальную среду и увидеть заветный слайдер.

На этом можно было бы и закончить заметку, но виртуальной средой можно в каком-то сценарии и не обойтись, а покрутить, как это в облаке работает — тоже было интересно. Поднимем в облаке инстанс Jupyter-сервера.
Блиц:
Перехожу в консоль Cloud.ru.
Создаю в личном кабинете Artifact Registry. URI понадобится далее.
Чтобы добраться до реестра, создаю в личном кабинете ключ доступа.
У меня нет под рукой Linux, но все прекрасно работает на WSL с последней Ubuntu.
Jupyter Server возьму из репозитория Cloud.ru, соберу и положу в реестр.
git clone
https://gitverse.ru/sc/cloudru/evo-containerapp-jupyter-server-sample.git
docker build --platform linux/amd64 -t jupyter-server -f dist/jupyter-server/Dockerfile .
docker login cr.cloud.ru
-u
docker tag jupyter-server
docker push
Теперь, в Container Apps в панели Cloud.ru можно поднять из реестра контейнер с Jupyter Server.

Если все хорошо, и Jupyter Server открывается по ссылке на этой странице, можно копировать и запускать из GigaIDE Cloud наш ноутбук.

Получилось.

Общее время, затраченное на настройку базового сетапа — примерно 5 минут, на сетап с сервером — 20 минут. Получили рабочее место разработчика, подняли примерно за 1,15 рублей в час Jupyter Server и запустили ноутбук. Пока поднимал всё вручную, обнаружил, что уже есть все нужные шаблоны со всеми нужными зависимостями.