Прийшов час осідлати справжнього Буцефала🏇🏻Приборкай норовливого коня разом з Newxel🏇🏻Умови на сайті
×Закрыть

Про 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?».

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

LinkedIn

Похожие статьи

3 комментария

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.
клієнт платить приблизно $300, це 20-30 серверів.

що ж це за сервера по 10$

Спасибо, норм статья.
Смотрел на

Jelastic

в самом его рождении — но тогда не было задач покрутить на нем, а потом оно выпало из поля зрения/забылось. Вот теперь опять можно глянуть.

Забыли указать реферальные ссылки 😎

Подписаться на комментарии