Смотрим на 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.

A screenshot of a computer  AI-generated content may be incorrect.

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

A screenshot of a computer  AI-generated content may be incorrect.

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

5a9ef78046b34d1cd4b3fce352784052.png

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

427529e8f80460421c0210420a9fe403.png

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

A screenshot of a phone  AI-generated content may be incorrect.

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

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

A screen shot of a computer  AI-generated content may be incorrect.

На этом можно было бы и закончить заметку, но виртуальной средой можно в каком-то сценарии и не обойтись, а покрутить, как это в облаке работает — тоже было интересно. Поднимем в облаке инстанс 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 -p
docker tag jupyter-server .cr.cloud.ru/jupyter-server
docker push .cr.cloud.ru/jupyter-server

Теперь, в Container Apps в панели Cloud.ru можно поднять из реестра контейнер с Jupyter Server.

e2b796664da1c932a02c13785d2e295c.png

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

1f5f2eb8ddbca7388d14376ff97868ae.png

Получилось.

6a02aea7578b15d52b955f09590971c7.png

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

© Habrahabr.ru