DOU Labs: як EPAM створив DLab — інструментальний сервіс для фахівців Data Science

У рубриці DOU Labs ми запрошуємо IT-компанії ділитись досвідом власних цікавих розробок та внутрішніх технологічних ініціатив. Питання і заявки на участь надсилайте на editors@dou.ua .

Я — Software Engineering Manager та внутрішніх керівник проектів EPAM Big Data Competency Center. Вже більше 10 років я працюю в ІТ-індустрії на проектах з різних бізнес-доменів: retail, finance, travel & hospitality, e-commerce тощо. У цій статті хочу більш докладно розповісти про проект — DLab. Його призначення підкреслює гасло: «Let your data scientist think about data and nothing but data».

Ідея

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

Сьогодні більшість компаній, котрі еволюціонують у «digital», частіше вдаються до аналізу внутрішніх та зовнішніх даних. Різноманіття вхідних даних та їхні обсяги, захист даних, наявність «sensitive» інформації, відсутність обчислювальних потужностей, інструментарію та можливості «експерементувати» з даними, не боячись «покласти» інфраструктуру та втратити дані, — унеможливлюють будь-яку аналітику та ускладнюють роботу data science та machine learning експертам.

Власне з цих та інших причин ми витворили DLab — інструментальний акселератор у вигляді self-service для Data Scientist-ів, котрий допомагав би їм швидко розгортати потужні аналітичні «пісочниці» в «клаудах» без жодних DevOps-навиків. При потребі користувачі можуть додавати обчислювальні потужності, використовувати зручний інтерфейс для встановлення додаткових бібліотек та залежностей, взаємодіяти в межах команди та водночас не перейматися за безпеку середовища та даних.

Наш продукт є крос-платформеним та може встановлюватись на Amazon, MS Microsoft та Google Cloud. Завдання DLab — забезпечити можливість data scientist-ам брати участь у проектах на стадії аналізу, пришвидшувати прийняття аналітичних рішень, не чекаючи моменту, коли остаточна інфраструктура буде доступною та архітектура буде узгоджена.

Чому вирішили зробити продукт open-source? За своєю суттю, DLab — такий собі оркестратор або панель керування, що поєднує безліч інструментів. Всі інструменти, технології та фреймворки, які увібрав у собі DLab, є у відкритому доступі: MongoDB, Docker, Angular, Jupyter, Zeppelin, RStudio, Git, LDAP, Python, Spark, Scala тощо. Ми вирішили розробити DLab як систему з відкритим кодом і під відкритою ліцензією (Apache 2.0 ), щоб допомогти іншим розробникам, data scientist-ам, фахівцям з machine learning зосередитись на обробці даних, тренуванні моделей та дослідженні даних, не переймаючись комерційною стороною продукту та проблемами ліцензування.

Команда

Розробка DLab стартувала в грудні 2016 року, коли наші колеги з EPAM Data Practice побачили потребу в такому рішенні. Зараз у команді працює три devops-інженери, front-end розробник, java-розробник, інфраструктурний архітектор і проектний менеджер. Вся команда знаходиться у Львові. Більшість вимог та побажань була сформована спеціалістами Data Science та Machine Learning, також ми тісно співпрацювали з фахівцями з інших галузей. Продукт є вже достатня зрілим (10 релізів за 1 рік), але водночас «живим» — він постійно вдосконалюється.

Проектна команда DLab

Можливості сервісу

DLab — це self-service, кінцевими користувачами якого є безпосередньо Data Scientists. Альо і працівники суміжних спеціалізацій або просто члени однієї команди, наприклад QA/QC інженери чи інші фахівці, які працюють з даними, також можуть вільно ним користуватися. Розгорнувши продукт у хмарі (Amazon, MS Azure та незабаром у GCP), вони отримують робоче середовище з пробачимо та зрозумілим веб-інтерфейсом.

Ключові можливості DLab:

DLab дає можливість ефективної роботи як для індивідуальних користувачів, так і для команд, надаючи спільний та водночас закритий від інших репозиторій. Безпека даних, захищений доступ, «сек'юрний» периметр гарантують будь-якому розробнику ті, що його дані «не витечуть» на зовні.

Що всередині

Щоб зрозуміти, як працює DLab, пропонуємо розглянути діаграму з логічною архітектурою та головними компонентами сервісу (на прикладі AWS реалізації):

На діаграмі представлені основні компоненти DLab. Так виглядає розгорнута інфраструктура та візуалізована взаємодія між елементами системи.

Головні компоненти сервісу:

Self-service node (SSN)

Створення Self-Service node — це перший крок для розгортання сервісу DLab. Саме SSN є базовою нодою, з якої починається встановлення середовища. Вона містить такі ключові сервіси та компоненти:

Edge node

Створити Edge node — це наступний крок, який користувачеві потрібно зробити після входу в DLab. Він використовується як проксі-сервер та шлюз SSH для користувача. Завдяки Edge node користувачі можуть отримати доступ до Notebook через HTTP і SSH. Edge Node має попередньо встановлений веб-проксі-сервер HTTP.

Notebook node

Наступний крок — налаштування Notebook node (або Notebook server). Це сервер з попередньо встановленими програмами та бібліотеками для обробки даних, очищення та перетворення даних, математичного моделювання, Machine Learning тощо.
Аналітичні інструменти DLab, які інсталюються на Notebook node:

Також Apache Spark встановлюється для кожного з аналітичних інструментів, зазначених вище.

Data engine cluster

Після розгортання Notebook node користувач може створити для нього такі кластери:

Досвід використання DLab

Ми вже встановили DLab для кількох клієнтів EPAM, протестували його на внутрішніх проектах в середовищах AWS і Azure. Зараз активно розробляється та тестується інтеграція з GCP.

Крім встановлення та налаштування DLab замовнику, ми проводимо воркшопи та тренінги. Команда неодноразово робила Proof Of Concept, інтегровуючи DLab в екосистему замовника, або ж на ізольованому середовищі. Подібні консультації, тренінги та загалом спілкування з замовниками — надзвичайно корисні, оскільки нерідко трапляється ситуація, коли замовник постійно отримує величезний потік даних (з сайтів, внутрішніх та зовнішніх сховищ та сервісів, різноманітних логів, відгуків користувачів в соціальних мережах, баз даних тощо), проте не завжди розуміє, як і яку користь ці дані можуть йому принести.

Ми завжди отримуємо зворотній зв'язок від аналітиків та machine learning експертів наших клієнтів, які використовують DLab для внутрішніх потреб. Такі фідбеки зазвичай переростають у реалізацію нового функціоналу або ж у покращення того, що вже існує.


Якщо вас зацікавила розробка DLab і ви хочете приєднатися до проекту на волонтерських засадах, ознайомтеся, будь ласка, із файлом — CONTRIBUTING.md . Ми співпрацюватимемо зі спеціалістами з будь-якими знаннями та вміннями, які готові удосконалювати веб-інтерфейс, документацію, код, писати тести або ж просто вносити пропозиції та реалізовувати їх у середовищі DLab.

Докладну інформацію про архітектуру, можливості та особливості розгортання DLab можна знайте в корені проекту чи в навчальних відео на DLab Community . Також ви можете завітати на сайт проекту — .

Опубліковано: 18/01/18 @ 12:06
Розділ Різне

Рекомендуємо:

Життя в Новій Зеландії: про пошук роботи, дорогому житлі та уявної свободи
DOU Проектор: CleanCity - своєчасне вивезення сміття у містах
Ruby для початківців: чим цікавий цей мову і як його ефективно вивчати
Information Security дайджест #7: наскільки ви довіряєте вендорам?
QA дайджест #32: ТОП 10 інструментів автоматизації тестування 2018, антипаттерны в тестах і навантажувальне тестування