26 жовтня Heroku відключає безкоштовні неактивні ресурси. Шукаємо заміну
Всім привіт, мене звати Олексій Михняк і сьогодні хочу поговорити про Heroku, а саме про те, що в Heroku вирішили закрити свої безкоштовні сервіси. 25 серпня 2022 року Heroku в своєму блозі написали, що не можуть справитись з неправомірним використанням своїх безкоштовних сервісів і тому прийняли рішення, що 26 жовтня видалять всі аккаунти і відповідно безкоштовні ресурси (Heroku Dynos, Heroku Postgres, Heroku Redis), де не було активності більше року. А починаючи з 28 листопада почнуть видаляти безкоштовні ресурси в активних аккаунтах, єдина альтернатива це перевести всі свої ресурси на найдешевший платний план Heroku Dynos — $7/місяць, Heroku Redis — $15/місяць, Heroku Postgres — $9/місяць. Особисто я використовував Heroku для своїх пет проектів, які запускаю від сили
З основних вимог були наявність безкоштовних сервісів та інтуїтивний інтерфейс без 1000 кнопок і менюшок. Оскільки хочу запропонувати використовувати цей хостинговий сервіс початківцям і на мою думку краще не перенавантажувати відразу складним функціоналом, тому AWS, Azure, GC відразу відпадають. (звісно початківцям і не потрібно відразу розбиратися в розгортанні сервісу не на своєму ноутбуці, але коли ти можеш показати свої результати знайомим, то це відразу +100 до мотивації) Знайшов раніше невідомий мені хостинг Render та вирішив спробувати.
Heroku vs Render
Heroku дозволяє розгортати свої сервіси за допомогою стандартного CI/CD підходу, тобто створюється API ключ і надсилається за допомогою цього ключа необхідні ресурси в Heroku. Також підтримується GitOps підхід для GitHub, коли Heroku генерує webhook у вашому репозиторії і після змін (наприклад, коміт в main/master) сам запускає розгортання сервісу. Але, на жаль, Heroku підтримує з коробки лише Node.js, Ruby, Java, Scala, PHP, Python, Go, Clojure та окремо Docker контейнери і саме з ними є нюанси, оскільки потрібно створювати heroku.yml і вручну прописувати етапи збирання Dockerfile.
Redner зараз підтримує лише GitOps підхід, але відразу на GitHub та GitLab. З коробки підтримує Node.js, Python, Ruby, Elixir, Go та Rust і Docker контейнери, тобто Redner розуміє де знаходиться Dockerfile і сам починає збирати і розгортати контейнер. Ще з приємних бонусів в панелі користувача доступна можливість розгорнути будь яку попередню версію свого сервісу, що відкриває більше маневрів для експериментів.
Основні характеристики у використанні веб сервісів (Heroku Dynos в Heroku / Web Service в Render)
Для безкоштовного Веб сервісу існують обмеження, сервіс запускається після першого запиту і потім видаляється через x часу якщо більше не було запитів на нього. Нижче було проведено тестування розгорнутого .Net застосунку в Docker контейнері в європейському регіоні з підключенням до PostgresDB.
Heroku | Render |
Час життя сервісу 30 хв | Час життя сервісу 15 хв |
Перший запит | Перший запит |
Середній час відповіді 68 мс (1000 запитів без затримок) | Середній час відповіді 72 мс (1000 запитів без затримок) |
Середній час відповіді 806 мс (100 запитів з затримкою 30с) | Середній час відповіді 840 мс (100 запитів з затримкою 30с) |
Кількість безкоштовних годин роботи сервісів 550 (без додавання кредитної картки) + 450 (після додавання кредитної картки) | Кількість безкоштовних годин роботи сервісів 750 (без додавання кредитної картки) |
Кількість білдів за годину 75 | Кількість безкоштовних годин білд сервера 400 |
Наявність логів тільки через CLI (доступ до логів через веб інтерфейс доступний тільки в платних версіях) | Наявність логів у веб інтерфейсі |
Ресурси RAM 512 МБ, shared CPU | Ресурси RAM 512 МБ, shared CPU |
Ціна найдешевшого тарифу $7/місяць | Ціна найдешевшого тарифу $7/місяць |
PostgresDB
Heroku | Render |
Обмеження на кількість записів 10000 | Обмеження на кількість записів - |
Обмеження на розмір бази 1GB | Обмеження на розмір бази 1GB |
Час життя бази необмежений | Час життя бази 90 днів |
Ресурси shared RAM (0 byte), shared CPU, 1GB storage | Ресурси RAM 256 Mb, shared CPU, 1GB SSD |
Ціна найдешевшого тарифу $9/місяць | Ціна найдешевшого тарифу $7/місяць |
Redis
Heroku | Render |
Обмеження на розмір бази 25Mb | Обмеження на розмір бази 25Mb |
Ціна найдешевшого тарифу $15/місяць | Ціна найдешевшого тарифу $10/місяць |
Static Web Page
Статичні сторінки в Heroku теж використовують Heroku Dynos, тому їх потрібно переносити також, якраз побачив на dou статтю про тестування швидкості веб сторінок.
Для тесту використовувалась пуста react сторінка з логін формою:
Heroku (з першої спроби не спрацювала діагностика, потрібно було почекати 8-10с щоб запустився Heroku Dynos та CDN почав віддавати статичну сторінку)
Render
Висновки
На мою суб’єктивну думку Render має більш простий користувацький інтерфейс з більшою кількістю вбудованого функціоналу (відразу доступні логи, можливість розгортати попередні версії сервісів і тд). Для простих проектів все налаштування реально займає 2 кліки, що сподобається початківцям, оскільки не потрібно витрачати додаткові 2 місяці часу, щоб розібратися як розгорнути свій застосунок. З мінусів — доволі значна затримка на першому запиті (40-60с) та не дуже влучне ім’я Render, оскільки доволі складно щось знайти за такою загальною назвою, тому залишається сподіватися тільки на документацію, яка доволі непогано написана. Найдешевші тарифи мають не вищу ціну за Heroku. Тож, я спробую перевести свої інші пет проекти на Render та буду ділитися подальшими враженнями.
ПС. Хоча я не бачу перспективи використання як Heroku, так і Render в продакшені, але в них є потенціал для пет вроектів і міні стартапів.
ППС. Також веду свій телеграм канал, де розповідаю про технологічні новини, зазвичай це про AI, нові девайси або на космічну тематику, підписуйся :)
5 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів