<
  • Главная
Статьи

Робота з блокнотом IPython в хмарному середовищі IBM Bluemix

  1. Що для цього потрібно
  2. Крок 2. Огляд коду
  3. Крок 3. Перенесення додатка в середу Bluemix
  4. Крок 4. Установка пароля
  5. Крок 5. Розгортання додатки
  6. Крок 6. Робота з блокнотом IPython
  7. наступні кроки
  8. Обмеження і альтернативи
  9. Ресурси для скачування

Увійдіть в IBM Bluemix ™.
Ця хмарна середовище містить безкоштовні служби, інструменти часу виконання і інфраструктуру, які допоможуть вам швидко створити і розгорнути своє наступне мобільне або веб-додаток.

IPython Notebook - це веб-середовище для інтерактивних обчислень і відтворюваних досліджень. В блокнот можна записати код за допомогою веб-браузера, виконати його одним натисканням кнопки і прямо в браузері побачити результат.

Жорстка зворотний зв'язок між кодуванням і дослідженням - а також можливість включати прямо в блокнот текст Markdown, веб-медіа та інтерактивні віджети - роблять IPython потужною платформою для гри з даними і перевірки нових ідей.

Увійдіть в IBM Bluemix   ™

Bluemix спрощує розгортання примірника IPython Notebook для імпровізованого використання. У цій статті описані дії, необхідні для роботи з сервером блокнота і декількома популярними пакетами Python для наукових обчислень: NumPy, Pandas і matplotlib.

Крім того, ми встановимо пароль для сервера блокнота в якості основного заходу безпеки. Нарешті, ми наведемо деякі відомості про те, що можна (а що не можна) робити зі своїм блокнотом.

Зайти на досвідчений сервер отримати код

Примітка. Досвідчений сервер налаштований з порожнім паролем і загальнодоступний. Не використовуйте його для реальної роботи!

Що для цього потрібно

Крок 1. Отримання коду

Клонуйте вихідний код проекту parente | ipython-on-bluemix на IBM DevOps Services:

git clone https://hub.jazz.net/git/parente/ipython-on-bluemix

Якщо ви плануєте пізніше пограти з проектом (наприклад, додати в середу блокнота додаткові бібліотеки для наукових обчислень), то можете замість цього завести обліковий запис DevOps Services і скопіювати репозиторій. Потім клонують власну копію командою git clone https://hub.jazz.net/git/ your DevOps Services username / ipython-on-bluemix.

Крок 2. Огляд коду

Щоб запустити код, його не обов'язково розуміти. Якщо ви хочете просто отримати працюючий блокнот, то можете пропустити цей крок.

Якщо ж ви придивіться до коду, то помітите, що його не так багато. Файл manifest.yml містить інструкції для Bluemix про те, як розгорнути свій екземпляр блокнота IPython. У ньому зазначено назву програми, кількість виділеної пам'яті, ім'я хоста і т.п.

--- applications: - name: ipython memory: 1G instances: 1 host: ipython - $ {random-word} domain: mybluemix.net path:. buildpack: https://github.com/joshuamckenty/heroku-buildpack-python

Файл requirements.txt містить список бібліотек, які встановлює buildpack. Сюди можна додавати бібліотеки або видаляти їх звідси.

ipython [notebook] numpy pandas matplotlib

Нарешті, Procfile інструктує Bluemix про те, як запускати додаток, коли воно зібрано.

web: ipython profile create; echo "c.NotebookApp.password = '$ (python -c' from IPython.lib import passwd; import os; print passwd (os.environ.get (" PASSWORD "," ")) ')'" >> ~ / .ipython / profile_default / ipython_notebook_config.py; ipython notebook --port = $ VCAP_APP_PORT --ip = $ VCAP_APP_HOST --no-mathjax

Це найскладніша частина рішення. (Вона ж сама заплутана, тому що повинна складатися з одного рядка. Тут вона наводиться з розривами рядків тільки для наочності.) Ось, що робить цей код.

  1. Створює профіль користувача IPython.
  2. Генерує хеш безпеки змінної середовища PASSWORD і вставляє його в профіль.
  3. Запускає сервер блокнота з використанням відомостей про хості і номер порту, представлених Bluemix.

Крок 3. Перенесення додатка в середу Bluemix

Увійдіть в Bluemix за допомогою інструменту командного рядка cf і перенесіть туди свій блокнот.

Виконайте наступні команди в локальній оболонці командного рядка, відповідаючи по ходу справи на будь-які запити:

cd ipython-on-bluemix cf api https://api.ng.bluemix.net cf login cf push --no-start

Крок 4. Установка пароля

Тепер, коли Bluemix відомо про ваш додатку, можна налаштувати пароль для нього за допомогою наступної команди в операційній системі * nix або OS X. підкоманду запропонує вам ввести пароль і потім повторить його для команди cf:

cf set-env ipython PASSWORD $ (echo -n "Password:" && read -s PASSWORD && echo $ PASSWORD)

Якщо ваша оболонка не підтримує команду read (наприклад, в Windows) або якщо вас не хвилює присутність пароля в історії введення з консолі, то ви можете замість цього безпосередньо ввести його. Припустимо, мій пароль - mysecretpassword:

cf set-env ipython PASSWORD mysecretpassword

Примітка. cf може запропонувати вам використовувати команду cf push, щоб гарантувати набуття чинності змін змінної середовища. На даному етапі цього не потрібно, тому що додаток ще не запущено.

Крок 5. Розгортання додатки

Тепер, коли середовище додатка встановлена ​​і налаштована, можна розгорнути програму за допомогою наступної команди.

cf start ipython

Ця команда може виконуватися протягом деякого часу, поки Bluemix побудує і встановить залежності, перераховані у файлі requirements.txt. Хід виконання можна контролювати за допомогою наступної команди.

cf logs --recent ipython

Іноді buildpack працює так довго, що Bluemix вважає це помилкою установки, навіть якщо процес завершується успішно. Якщо ви побачите на консолі таке повідомлення про помилку, виконайте команду cf logs кілька разів, щоб перевірити, чи просувається процес установки програми. Якщо процес йде, то нехай триває до тих пір, поки в журналі подій чи не з'явиться наступний рядок.

Successfully installed ipython numpy pandas matplotlib tornado pyzmq jinja2 python-dateutil pytz pyparsing nose backports.ssl-match-hostname markupsafe six Cleaning up ...

Потім виконайте наступні команди, щоб додаток працювало правильно.

cf stop ipython cf start ipython

Щоб переконатися, що сервер блокнота працює правильно, можна запросити його статус.

cf app ipython

Відповідь має вказувати, що екземпляр додатку знаходиться в стані running.

Showing health and status for app ipython in org [email protected] / space dev as [email protected] ... OK requested state: started instances: 1/1 usage: 1G x 1 instances urls: ipython- unspecious-subconsul.mybluemix.net state since cpu memory disk # 0 running 2014-05-28 9:10:09 PM 0.4% 149.1M of 1G 282.5M of 1G

Крок 6. Робота з блокнотом IPython

Тепер ваш екземпляр блокнота IPython нормально працює. Увійдіть в нього через браузер по URL, вказаною у відповіді на останню команду, виконану на кроці 5. Наприклад, в нашому прикладі виведення в кінці кроку 5 вказано URL https://ipython-unspecious-subconsul.mybluemix.net.

У відповідь на запит сервера блокнота введіть пароль, заданий на кроці 4. Якщо ви пропустили цей крок, то пароль буде порожнім, так що просто натисніть клавішу Enter:

На сторінці панелі інструментів виберіть New notebook, щоб відкрити порожній блокнот в новій вкладці браузера:

На сторінці панелі інструментів виберіть New notebook, щоб відкрити порожній блокнот в новій вкладці браузера:

У першій клітинці нового блокнота напишіть% matplotlib inline і натисніть кнопку Run на панелі інструментів.

Зробіть те ж саме з наступними трьома блоками коду, вставляючи кожен з них в окрему клітинку і виконуючи цей осередок.

import matplotlib.pyplot as plt import numpy as np x = np.arange (0, 4 * np.pi, 0.05) y = [np.sin (i) for i in x] plt.plot (x, y)

В кінці ви повинні побачити простий графік синусоїди:

наступні кроки

Простий графік, отриманий в кінці кроку 6, - лише мала дещиця того, що можна робити з ноутбуком IPython. Ось деякі ідеї для подальшого вивчення.

  • відвідайте сайт nbviewer або поройтесь в загальнодоступних блокнотах, щоб більше дізнатися про можливості цього середовища. Будь знайдений блокнот можна завантажити, а потім перенести на панель інструментів сервера свого блокнота, щоб пограти з ним.
  • Встановіть якісь додаткові пакети, такі як scikit-learn (машинне навчання), nltk (обробка природної мови) або PyMC (Байєсова статистичне моделювання). Їх можна додати в свій файл requirements.txt і розгорнути блокнот заново. Інакше, їх можна встановити прямо в інтерфейсі блокнота, вставивши в осередок код типу! Pip install scikit-learn. (Див. Додаткові відомості про цей підхід в розділі Обмеження і альтернативи ).
  • Підключіть до свого екземпляру блокнота служби Bluemix, щоб інтерактивно вивчати їх API. Про те, як додати служби в додаток і отримати доступ до їх API, див. В документації Bluemix .
  • Справтеся в меню Help блокнота комбінації клавіш для підвищення своєї кваліфікації.

Обмеження і альтернативи

Ця стаття вчить розгортати екземпляр блокнота IPython в хмарному середовищі Bluemix. Хоча це відносно простий процес, результат має свої обмеження.

Перейменування блокнота на даний момент не працює, тому що метод HTTP, який використовується сервером IPython Notebook, не обробляється маршрутизатором Bluemix.

Середа Bluemix оптимізована для розміщення веб-серверів з інтенсивним введенням-висновком без супроводу стану і очікує від додатків саме такої поведінки. Наприклад, Bluemix обмежує простір пам'яті програми граничним значенням, зазначеним у файлі manifest.yml. При виконанні в блокноті обчислень, які споживають більше пам'яті, ніж виділено в Bluemix, Bluemix може зупинити і перезапустити сервер. Те ж саме Bluemix може зробити, якщо середнє завантаження ЦП підніметься вище порога, налаштованого постачальником - наприклад, при виконанні обчислень з інтенсивним споживанням ресурсів ЦП. Те ж може статися при спробі установки додаткових пакетів за допомогою команди pip, як зазначено в розділі наступні кроки .

Нарешті, дисковий простір, виділене сервера блокнота, ефемерне і не буде зберігатися довго.

Якщо ви плануєте використовувати блокнот IPython всерйоз, то ці обмеження можна подолати, розгорнувши долгоживущий екземпляр в середовищі IBM SoftLayer. Ще краще використовувати для цього образ контейнера Docker, який виключає потребу в побудові і установці всіх необхідних залежностей. Чекайте нових статей на цю цікаву тему!

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью