Защо трябва да използвате Jupyter Notebook
Бележник на Юпитер
е доста изящен инструмент, който можете да използвате в ежедневните си дейности. За да обясним предимствата на Jupyter Notebook, ще споделим как го използваме за решаване на редовните ни пъзели на
Изяснение
.
Но преди да се потопим в нашата конкретна употреба, нека разберем малко контекста около Jupyter Notebooks.
Какво е тетрадка Jupyter?
Jupyter Notebook е уеб приложение с отворен код, което позволява на потребител, научен изследовател, учен или анализатор да създава и споделя документа, наречен
Бележник,
съдържащи активни кодове, документация, графики, диаграми и визуализации.
Jupyter Notebook предоставя поддръжка за 40+ езика за програмиране на потребителите, включително най-често използваните езици за програмиране –
Python
,
Р
,
Джулия
за да назовем няколко. Той позволява на потребителя да изтегли бележника в различни файлови формати като PDF, HTML, Python, Markdown или .ipynb файл.
Какво прави Jupyter Notebook де факто стандарт за анализ?
Поради поддръжката на многопрограмиране на Jupyter Notebook, огромната наличност на функции и бързо нарастващата популярност сред общността, той се превърна в стандарт за всички видове анализи, визуализации, бързо създаване на прототипи, машинно обучение и различни кодови практики.
Кой използва Jupyter Notebooks?
Всеки човек, който е учен по данни, инженер по данни, анализатор на данни, учен по машинно обучение, учен изследовател, научни изследователи или общ потребител, който иска да извършва каквито и да е научни изчисления, обработка на данни или работа, свързана с визуализация, може да използва Jupyter Тетрадка.
Базова архитектура зад преносимия компютър на Jupyter
Фигура: [1] Изображение, изобразяващо основните компоненти на преносимия компютър Jupyter
Как работи Jupyter Notebook – потребител, взаимодействащ с компонента на Jupyter Notebook, изпълнява кода и съхранява изходния код заедно с бележки за маркиране в редактируем документ, наречен бележник.
Когато потребителят запише файла на своя бележник, той се изпраща от потребителския браузър към сървъра на бележника. След това се записва на диска като a
JSON файл
с a
.ipynb
разширение. Сървърът на Jupyter Notebook отговаря за запазването, зареждането и редактирането на потребителските бележници, ако ядрото все още не присъства.
Бележник на Юпитер @
Изяснение
Ние, от Elucidata, работим по този проект, за да разработим нови функции и услуги в допълнение към традиционен преносим компютър Jupyter, за да улесним нашите крайни потребители да имат най-доброто потребителско изживяване.
Работихме върху създаването на Jupyter Notebook с чисто нов и елегантен потребителски интерфейс и нови персонализирани функционалности. Ние не оставяме нищо необърнато, за да го направим най-доброто изживяване с преносим компютър, което потребителят може да има.
Ние сме посветени на този проект, за да го направим това, което учен по данни, инженер по данни или учен по данни би искал от нашата платформа.
Нашите случаи на употреба
Въведехме преносимите компютри Jupyter в екосистемата на нашата платформа –
ПолиTM
, за да поддържа манипулацията, визуализацията и програмирането на крайния резултат на вградените работни процеси. По-късно използвахме функционалността на Jupyter Notebook и я комбинирахме с архитектурата на JupyterHub, за да разширим функционалностите за следните случаи на употреба:
Проект
: Влезте
ПолиTM
, потребителят може да отиде до неговия/нейния проект и оттам може да отвори своя запазен Jupyter Notebook или да създаде нов Jupyter Notebook, или дори да качи съществуващ Jupyter Notebook. Project е най-широко използваната функция на Jupyter Notebook за отваряне, създаване, модифициране и дори изтриване в PollyTM
Шаблони
: Създадохме и някои общи шаблони за бележници, за да поддържаме всички случаи на употреба
Анализ
: Анализът е ключов момент при намирането на ценни прозрения от огромните набори от геномни и метаболомични данни, качени на нашата платформа за изпълнение на различни вътрешни компилации и работни процеси. Чрез интегрирането на Jupyter Notebook предлагаме на нашите крайни потребители и нашите вътрешни специалисти по данни удобен интерфейс за интерактивно изпълнение на код, изследване на изхода и визуализиране на данни – всичко това от една среда за разработка, базирана на облак. Заедно с това добавихме персонализираната функционалност на нашата платформа API, която работи безпроблемно за извличане на набор от данни от нашата облачно управлявана среда директно в бележника.
Нашите вътрешни работни процеси за изграждане
: Докато разширявахме платформата, въведохме нови възможности, наречени работни потоци. С упоритите усилия на нашия инженерен екип & в сътрудничество с екипа за наука за данни, ние успяхме да изградим работни потоци, които са поредица от алгоритми, работещи по определен начин за постигане на конкретна цел
Учен по данни
s може да кодира експеримента с помощта на нашия хостван Jupyter Notebook
Софтуерни инженери
може да кодира различни функции с помощта на Jupyter Notebook
Нашата система за бележници Jupyter
Поддържането на такива случаи на употреба изисква доста мащабируема и поддържаща инфраструктура. Нека разгледаме някои от компонентите на нашата система Jupyter Notebook.
Докер
:
Docker играе ключова роля в инфраструктурата и безкрайната поддръжка за нашите интерактивни бележници. Всички наши преносими компютри Jupyter работят в затворена среда, с всички налични предварително конфигурирани функционалности и библиотечни пакети, които крайният потребител може да изисква в ежедневната си задача
JupyterHub
:
JupyterHub
е архитектура от високо ниво, която управлява удостоверяване на потребителя, маршрутизиране, генериране на докер за бележник, откриване на бележници и изтриването им, когато вече не се използват.
Защо избрахме JupyterHub + Docker?
Не искахме нашите потребители да се борят за правилните инсталации на версията на пакета и тяхното управление на зависимости за работа. Искахме всеки потребител, т.е. специалисти по данни, инженери по данни или анализатори на данни, да има идентична възпроизводима среда със същата библиотека и същите набори от данни. Всъщност една и съща версия на всичко.
Ако им позволим да инсталират на собствените си модули, това ще доведе до различни версии на средата в зависимост от работния процес, който използват за инсталатора на пакета.
Напълно хоствана среда гарантира, че всеки има една и съща безпроблемна начална точка.
UI интерфейс
: Преработихме потребителския интерфейс на Jupyter Notebook. Използвахме CSS и JS с библиотеки като JQuery, за да му дадем перфектен и чист потребителски интерфейс. Това е интуитивен потребителски интерфейс с минималистична естетика. Това изисква обмислен UX дизайн, който улеснява извършването на трудните неща. По-долу е изгледът на нашия бележник.
Поли iPython Jupyter
Изчисляване
: Екземплярите на виртуалната машина на потребителя поддържат изчислението на ядро, с 2 GB RAM и 100 GB блоково съхранение, но според наличността и използването на клъстера изчислителната мощност ще се увеличи. Нашият клъстер е
Автомащабиране
активирано, което позволява създаване на нови потребителски модули в движение въз основа на високи заявки. Внедрихме цялата ни инфраструктура за преносими компютри в Google Cloud.
Софтуер за управление на клъстери
:
Ние използваме
Kubernetes
за управление на нашите изчислителни екземпляри и клъстер. Kubernetes гарантира, че модулите в работещо състояние няма да се изключат поради грешка, поддържайки висока наличност. С Kubernetes сме в състояние да управляваме над 1000 потребителски пакета, без да губим данни
Внедряване
:
Ние използваме
Шлем
(мениджър на пакети) за Kubernetes за автоматизиране на нашия процес на внедряване. Helm гарантира, че правилният докер образ е разгърнат и запазен за бъдеща употреба, за да се избегне повторно изтегляне на изображението и да се намали времето за хвърляне на хайвера
Съхранение
:
Ние използваме
Amazon S3
като система за съхранение на Notebook на потребителите и техните многократно използвани скриптове в Jupyter Notebook. Така всеки потребителски проект има структура на директория в S3 за съхраняване, управление, създаване или изтриване на техния бележник. Те могат да стартират неговия интерактивен бележник отвътре
нашата платформа
. Следва моментна снимка на хранилището на проекти на потребителите в S3.
Изглед на S3 хранилище на Elucidata Polly
Ето кратка карта на технологичния стек
Технически пакет Elucidata Jupyter Notebook
Какво научихме?
Намалете човешката поддръжка:
Лесно е да се мащабират големи сценарии без много човешка намеса, което ще избегне всякакви затруднения. С Helm ние също така намалихме тесните места, пред които са изправени нашите инженери по време на внедряването
Страхотна инфраструктура:
С тази разработка имаме стабилна инфраструктура, която може да обработва големи потребителски заявки, множество съдържащи се среди, позволявайки на множество докер контейнери да работят в един екземпляр и дават възможност на потребителя да изпълнява задачата си
Открийте нови възможности: По време на нашето развитие и интегриране на Jupyter Notebook ние открихме няколко нови възможности, върху които работихме, за да предоставим по-добри функции и добро потребителско изживяване на нашите крайни потребители
Препратки
За допълнителни справки вижте следните полезни връзки или насрочете демонстрация с нас, за да станете свидетели на това в действие
Насрочете демонстрация
Компоненти на преносим компютър Jupyter
Latest: Какво е тетрадка за копирна лаборатория?
Next: Защо Jupyter е предпочитаният компютърен преносим компютър за специалистите по данни