Login

Про Jelastic простими словами, або Чому вам варто спробувати цю платформу

PaaS та інфраструктура для людей — одна з небагатьох тем, що мене дійсно турбують та де я бачу багато простору для інновацій. Переконаний, що робота з інфраструктурою має бути простою та зрозумілою для більшості розробників, а сучасний стан справ просто жахливий — усе неймовірно ускладнено та абсолютно не пристосовано для людей. Jelastic намагається вирішити цю проблему.

В інтернет-просторі дуже мало немаркетингових матеріалів про Jelastic, тому я, як користувач з досвідом, хочу заповнити цей вакуум. Я опишу базові можливості платформи та поділюся своїм досвідом користування. Матеріал буде цікавим розробникам та інфраструктурним інженерам.

Вперше про Jelastic я почув на конференції JavaDay у 2014 році. CEO компанії, Руслан Синицький, виступав з keynote на відкритті, а в ендорсери компанія тоді підписала одного з авторів Java — Джеймса Гослінга. На самій конфі я не надто зрозумів, що воно взагалі таке. У пам’яті залишилося лише порівняння з AWS, твердження «Ви не платите за ресурси, які не використовуєте», а також «Ми почали підтримувати Docker, коли це ще не було мейнстрімом». Я тоді не дуже знався в інфраструктурі, контейнерах та клаудах, тому на мене виступ не справив враження, але саму назву компанії я запам’ятав.

Декілька років потому, коли я вже став досить непогано розбиратися в клаудних справах, у мене з’явилась задача десь хостити стартап, над яким я тоді працював. AWS хотілось, тим більше що я тоді вже вмів ним користуватись, але було шкода грошей. Я перебирав інші рішення та раптом згадав про Jelastic. Після швидкого пошуку я вирішив підключитися до провайдера в Нідерландах (там була найнижча ціна), і ми поїхали. Стартап проіснував недовго, але, маючи досвід, пізніше я переніс значну частину інфраструктури одного з моїх клієнтів на Jelastic. У продакшені воно працює вже понад три роки.

Що таке Jelastic простими словами

Це система керування інфраструктурою (віртуальними машинами та контейнерами) з великою кількістю вже налаштованих та готових до користування аплікейшенів.

Одним з основних внутрішніх термінів Jelastic є «контейнер». Це не Docker-контейнер, а контейнер, зроблений за допомогою технології Virtuozzo. Я не надто розуміюсь на віртуалізації, але кажуть, що це типу OpenVZ на стероїдах. При цьому Jelastic може розгортати будь-який Docker-образ. Для нас з вами все виглядає як звичайний VPS або EC2-інстанс, до нього можна отримати доступ по SSH, покрутити налаштування та запустити будь-що (наприклад, cron-джоби). Хоча насправді це не віртуальна машина. Віртуалізація — це складно, так.

Отже, ви заходите в систему та створюєте «оточення». В його рамках можна додавати багато контейнерів, над якими стоятиме балансер (який насправді теж є контейнером). Кожен контейнер може бути створено як з шаблона (багато з яких вже є преконфігурованими) — наприклад, базою даних MariaDB, так і «голою» VPS, с CentOS або Ubuntu на борту. UI передбачає декілька типів контейнерів: балансер, апп-сервер, SQL та NoSQL бази даних, кеш. Також можна побудувати оточення з будь-яких Docker-образів. Всі контейнери знаходяться в одній підмережі та бачать одне одного. Можна робити мікросервіси.

Створюємо оточення

Кожен контейнер всередині оточення можна незалежно масштабувати як вертикально (підвищувати ліміти на пам’ять, CPU, диск, мережу), так і горизонтально — додавати більше нод. Є автоскейлінг, який може трігеритися за подіями (наприклад, якщо CPU піднявся вище деякого відсотку, то можна ініціювати додавання ноди, а якщо опустився — то прибрати її назад). Гроші платяться лише за спожиті ресурси. В цьому сенсі цінова політика відрізняється від традиційних клауд-провайдерів, які беруть гроші за весь інстанс відразу, незалежно від того, наскільки ви його використовуєте.

Одиницею виміру ціни є так званий «клаудлет» — це 128 мегабайт пам’яті, 400 Mhz процесора та деяка кількість диску і мережі. Ви встановлюєте ліміти на кожен з контейнерів, і Jelastic автоматично керує ресурсами. Коли потрібно, видає більше клаудлетів, а коли не потрібно — зменшує їх кількість. Приміром, якщо у вас є CPU-піки, ви будете платити тільки за той час, коли вони відбувалися.

Іншою важливою особливістю є те, що клаудлети споживають гроші відразу у міру використання, тобто тут pre-paid модель, коли ви закидаєте гроші на баланс, а далі вони потроху використовуються. Таким чином, з одного боку, ви не потрапите в ситуацію, коли випадково витратите купу грошей (забули вимкнути сервер), а з іншого — можете не вгадати з лімітом на балансі та залишитися на нулі під час навантажень. У мене декілька разів траплялося, що клієнт забув поповнити баланс, і всі оточення просто вимикалися :)

Jelastic не продається як чистий IaaS, тобто це не зовсім аналог AWS, GCP або DO. Сам софт може розгортатися на будь-якій інфраструктурі. Відповідно, можна поставити все на своє залізо або скористатися пропозицією одного з провайдерів-партнерів, дата-центри яких розташовані по всьому світу. Я користуюсь другим варіантом. Провайдери відрізняються один від одного власне локацією, цінами на клаудлети та якістю підтримки. Деякі провайдери мають декілька регіонів, за допомогою яких можна будувати N/A рішення або робити між ними міграцію.

Коли Docker та контейнери ще не були модними, а аплікейшени треба було деплоїти через залив WAR-файла по FTP, Jelastic давав можливість робити автодеплой з SVN. Зараз я розумію, що на той час це був повний космос. Потім з’явився Docker, і Jelastic став його підтримувати.

Як я вже казав, платформа має велику кількість вже налаштованих та готових до використання аплікейшенів: бази даних, сервери, ElasticSearch тощо, сотні їх. Це дозволяє в один клік підняти, наприклад, інстанс бази даних, тобто такий собі аналог RDS. Також є маркетплейс, де представлена купа прикладного софту, в тому числі передконфігуровані кластери баз даних (PostgreSQL, MySQL, MariaDB, MongoDB), кластер Kubernetes, Jenkins, GitLab, Wordpress, Docker Container Registry тощо. Я цим всім не надто користувався, але збираюсь затестити кластери баз даних.

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

Маркетплейс

Як я усім цим користуюсь

У мене є проєкт, що складається з апп-серверів та бази даних. Сервери — це stateless-контейнери, розгорнуті з Docker-образів. Для них у мене створено два ідентичних оточення, у кожному з яких є по одній ноді. Перед ними поставлено балансер (спеціальна штука, яка називається Traffic Distributor — насправді це nginx), який працює по round-robin та робить SSL-термінацію. Збоку крутиться оточення з MariaDB. Така ж конфігурація налаштована для dev-оточення.

Як це все деплоїться? База даних та балансер створюються вручну та далі не змінюються, апп-сервери розгортаються з Docker-образів, які збирає GitLab CI (раніше це був Jenkins). В панелі керування я вказую шлях до Docker-реєстру, логін, пароль — і Jelastic сам підтягне доступі версії образів. Редеплой можна робити вручну через кнопочку (власноруч вибрати потрібну версію в UI) або через API. Раніше у мене був налаштований автоматичний редеплой, але потім щось зламалось, і зараз я деплою через UI. Робити це потрібно нечасто, але щоразу в мене не вистачає мотивації написати скрипт. Shame on me.

Важлива річ — на відміну від, наприклад, ECS або K8S з Docker-драйвером, ваші контейнери — це не машини, на яких запущений Docker Daemon і якийсь оркестраційний софт. Jelastic бере Docker-образ та розгортає його у фізичну файлову систему, тобто ваш контейнер — не контейнер, а жива машина. З цим пов’язано декілька особливостей, наприклад, те, що контейнери не є ефемерними, та при редеплої нового образу не втрачаються старі дані. Шляхи до файлів, які потрібно залишати при редеплої, можна конфігурувати.

На кожну машину можна за-ssh-итися та подивитися, що всередині, повикликати якісь команди або підкрутити конфігурацію. docker exec -it bash більше не треба робити. Доступ по SSH робиться через SSH-gateway, тобто ви спочатку заходите на «бастіон», а з нього вже потрапляєте на потрібне оточення. На «бастіоні» встановлений софт, який сам визначає, які оточення та які контейнери в них запущені.

З UI так само можна походити файловою системою, подивитися статистику використання ресурсів та логи. Логи досить зручно дивитися, якщо щось зламалося, і не хочеться йти по SSH.

З якими проблемами я зіткнувся за роки експлуатації

Всі проблеми, що я мав, були пов’язані з надійністю хостинг-провайдера і не стосувалися софту Jelastic. Конкретно у мого провайдера раз на місяць трапляються короткочасні відвали DNS.

Що по грошах

Фінальна вартість у мене нижча за AWS. За всю інфраструктуру клієнт платить приблизно $300, це 20-30 серверів. Не забувайте, що ціна залежить від провайдера, конкретно в мене він досить дорогий.

Чого мені не вистачає

Jelastic — це щось середнє між full-managed платформою (Heroku) та IaaS (AWS/GCP/Azure). Відповідно, залежно від потреб, якщо деплоїти щось невелике, то в порівнянні з Heroku не вистачає простоти та managed баз даних.

Якщо говорити про великих провайдерів, то їхня цінність для мене полягає не стільки в compute, скільки в додаткових сервісах (S3, SQS, Lambda тощо) та гомогенному підході. Зараз в мене інфраструктура розмазана між Jelastic (compute), AWS (додаткові сервіси) та Heroku (адмінки та некритичні сервіси). Jelastic — це більше про compute та аплікейшени з маркетплейсу.

CLI/API мені не подобаються. Я навіть хотів написати свій враппер, але потім забив.

Чи рекомендую я вам цю штуку

Я рекомендую вам як мінімум глянути, що воно таке, та потицяти для розширення світогляду. Наскільки я бачив, прямих аналогів Jelastic не має. Інші продукти або високорівневі та абстрагують вас від багатьох деталей, або надто низькорівневі та потребують спеціальної особи для обслуговування.

Тут ви можете за 5 секунд розгорнути машини зі свого образу та налаштувати масштабування. Бази даних — теж зручна штука.

Світ прямує в бік кубера, тому можна подивитися на managed K8S від Jelastic.

Fin

На мій погляд, Jelastic значно випередив свій час, але з невідомих мені причин не отримав гарного traction всередині спільноти, незважаючи на маркетингові зусилля компанії. Наскільки я розумію, вони непогано почувають себе в ентерпрайзі, але от так, щоб на рандомному девопс-мітапі запитати у людини: «Ти знаєш про Jelastic?» — я думаю, що 95% скажуть: «Що? ElasticSearch?».

Якщо вам сподобалася стаття, то долучайтеся до мого телеграм-каналу і задавайте питання тут — радо відповім.

Похожие статьи:
Южнокорейская компания Samsung Electronics представила новый 12 МП сенсор с размером пикселя 1,4 микрометра, который предназначен для установки в...
It is known that task switching is one of the main problems of contemporary IT engineers. Let us imagine that we have to fix a lot of simple bugs with a 10-15-20-minute project recompilation after every one or a few or ten fixes....
Меня зовут Максим Пивоварчик, в ІТ работаю более 10 лет. Сейчас занимаю позицию Lead Unity Developer в Gismart, которая разрабатывает и издает...
Олексій Зайченко — QA Lead у Daxx та співорганізатор в освітньому проекті Be QA Today. За 5 років він пройшов шлях від студента-юриста...
Київська школа економіки інвестує 40 мільйонів доларів у побудову нового кампусу на Оболоні в Києві. Він базуватиметься...
Switch to Desktop Version