Запуск IPython Notebook в Google App Engine

Можно ли запустить сервер ноутбуков IPython в Google App Engine (GAE)?

Я понимаю, что GAE запрещает запуск некоторых библиотек на своих серверах. Я также прочитал пару тем SO, где пользователи пытались запустить ipdb (отладчик) в GAE. Я также понимаю, что IPython не будет работать на GAE из коробки. Я готов потратить некоторое время на то, чтобы понять внутреннее устройство IPython и портировать его для работы в GAE, но я не понимаю его различные зависимости и заблокированы ли какие-либо из этих зависимостей в GAE.

Если вы уже пробовали это, не могли бы вы поделиться своим опытом. Если нет, то знаете ли вы, возможно ли это вообще?


person Chandan Gupta    schedule 08.09.2014    source источник


Ответы (2)


Заставить сервер ноутбуков IPython работать только на App Engine, вероятно, невозможно. Для каждого ноутбука потребуется собственное ядро ​​iPython, которое должно либо работать непрерывно, либо иметь возможность сохранять свое состояние между запросами. Теоретически вы могли бы использовать комбинацию классов серверов, где клиенты могли бы работать на масштабируемых внешних интерфейсах, а ядра могли работать на постоянных внутренних серверах. Но для этого вам придется заменить все кишки ZeroMQ+Tornado. (Я не очень хорошо знаком с внутренностями сервера iPython, но такое впечатление у меня сложилось из общения с разработчиками iPython на конференциях, а также небольшого чтения.)

Compute Engine более правдоподобен, очевидным образом: просто запустите сервер, как на любом компьютере с Linux. Перенос только веб-клиента в App Engine и использование пула ядер, работающих на GCE, может быть путем к успеху в зависимости от того, чего вы пытаетесь достичь, но все равно будет крупным проектом предлагать его в качестве управляемого, масштабируемого оказание услуг.

Вот тред на эту тему двухлетней давности: https://groups.google.com/forum/#!topic/sage-notebook/re2bUt4vCxA

А вот (старый?) проект с участием как GAE, так и AWS, хотя только на этой странице кажется, что он использует GAE только для интерфейса обслуживания, а не для клиента ноутбука: https://notebookcloud.appspot.com/docs

person Dan Sanderson    schedule 09.09.2014
comment
Спасибо, Дэн. Мне нужно разместить блокнот IPython для экспериментов. Я пытался понять, можно ли это сделать в App Engine, приложив некоторые усилия. Судя по вашему ответу, это будет крупный проект. Сейчас я планирую разместить IPython на локальном сервере. Я мог бы углубиться во внутренности IPython позже для академического интереса. - person Chandan Gupta; 10.09.2014
comment
Если это только для вашего собственного использования и не нужно масштабировать до тысяч пользователей, вы можете попробовать просто запустить его на экземпляре Compute Engine. Обязательно защитите его паролем. ipython.org/ipython-doc/1/interactive/public_server.html - person Dan Sanderson; 10.09.2014
comment
Это в основном для моего собственного использования и некоторых других. Ссылка, которую вы разместили, была очень полезной. - person Chandan Gupta; 11.09.2014

Старый вопрос и ответ движка приложения (нет) остаются в силе. Но на случай, если кто-то вернется к этому, самый простой способ запустить iPython (локально или через GCE) в наши дни — через докер. В наши дни запустить мой iPython так же просто, как перейти в нужный каталог и ввести «docker-compose up». Я использую python 3.x, и мой yml для создания докеров прост:

nb:
  image: andaag/sklearn_notebook3
  ports: 
    - "8888:8888"
  volumes: 
    - "/:/ml"

Вот и все! потяните изображение andaag, и все готово. Конечно, можно найти или испечь собственное изображение.

Повеселись!

person Don    schedule 25.03.2015