Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

16.03.2024

Запуск одноразових скриптів на Fly.io

Люблю хостинг Fly.io за його простоту (а ще за те, що до $5 на місяць вони не беруть оплату.) Тому, коли довелося запустити бенчмарк десь у хмарах, то саме Fly.io й взяв, хоч це не типове його використання.

Чому цей хостинг? Бо він побудований на Docker, але також підтримує стале сховище, доступ по SSH, та швидке масштабування, включаючи до нуля.

Отже, з чого почати: нам буде потрібний “застосунок” - він триматиме всі дані. flyctl app init. Застосунок матиме конфігураційний файл, також Dockerfile, та повинний запускати хоч якийсь “сервіс” - я бачив tail -f /dev/null як мінімальне рішення. Потім запускаємо: flyctl app deploy.

А далі flyctl ssh console відкриває звичайнісінький ssh, в якому будемо запускати бенчмарк чи інший скрипт. Для масштабування — команда flyctl scale вміє як змінити кількість ядер та памʼяті, так і кількість віртуальних машин.Нам потрібна лише одна, але дуже корисно масштабувати в нуль — так можна недорого запускати бенчмарки до 16 ядер та 128 Гб.

Залишається питання великих файлів. Пакувати гігабайти в образ Docker буде дуже повільно, та ще й відбуватиметься на кожну збірку. Тут є два шляхи: загальний — завантажити файл кудись на S3 та забирати звідти. Але краще — приєднати до машини том сталого сховища, та розмістити файли там — flyctl volumes create. Та, на відміну від, наприклад, AWS, до томів є легкий доступ — або через ssh, або навіть через SFTP командою flyctl ssh sftp shell.

…Я вже звик до того, що в AWS все робиться через шари бюрократії та непрямостей, тож радію, коли за 10 хвилин можна від чистого аркуша дійти до рішення.