Перейти к содержимому

Как ввести данные карты на heroku

  • автор:

Аналоги и альтернативы Heroku. Куда мигрировать после закрытия бесплатных тарифных планов?

В понедельник 28 ноября сервис Heroku оставит для пользователей только платные тарифные планы. А оплатить Heroku с карты, выпущенной российским банком, не получится из-за санкций. И если вы не хотите, чтобы ваш бот, приложение или другой хобби-проект внезапно остановились, — нужно найти альтернативу.

Heroku — это облако для развертывания приложений, где процесс накатывания обновлений очень прост для разработчика: достаточно сделать push в мастер выделенного GIT-репозитория или привязать свой репозиторий. А сами приложения размещаются в специальных контейнерах. Иными словами, это сервис для простого развертывания и обновления таких IT-сервисов, как телеграм-боты, сайты, приложения, различные хобби-проекты и т.д.

Аналоги Heroku

Рассмотрим только варианты с бесплатными тарифными планами или доступные для оплаты из России.

1. Amvera – это контейнерное Heroku-подобное облако отечественной разработки. Основная механика накатывания обновлений аналогична Heroku: push в GIT. Для некоторых случаев придется написать дополнительный конфигурационный файл, но в общем и целом, это идентичные сервисы. На данный момент в Amvera можно разместить сервис бесплатно: при регистрации в личный кабинет начисляется 1 т.р. и можно увеличить сумму, написав в поддержку.

2. PythonAnywhere – компания «забугорная», но если нужно развернуть что-то на питоне, есть бесплатный тарифный план. Основной недостаток – сервис только для проектов на питоне и требует некоторого времени на освоение.

3. Back4app – low-code backend сервис. Есть бесплатный тарифный план. Если сервис выходит за рамки backend и требуется осуществить относительно сложную логику, будет лучше использовать что-то еще, но для простых проектов может подойти.

4. Netlify – платформа для веб-разработки с возможностью хостинга. Есть бесплатный тарифный план.

5. Также подойдут любые VPS хостинги. Разница только в способе доставки обновлений, и, как правило, они платные. Чтобы обеспечить привычный способ доставки можно использовать связку Dokku+VPS если есть лишний день на настройку такой связки.

Разумеется, разные сервисы имеют свою специфику и заточены под проекты разного типа. Совсем бесшовно перенести проект с Heroku вряд ли получится.

Если вы вспомнили еще сервисы аналоги, буду рад, если напишете их в комментариях.

Маленькие хитрости с Heroku

Java-университет

Представим ситуацию. Вы прошли курс JavaRush, прошли онлайн-стажировку, и у вас красуется первый проект на PaaS платформе Heroku. Вы рассылаете резюме и начинаете ходить по собеседованиям. И вот на одном из них вас просят показать ваш проект (или же его захотят быстро глянуть еще до собеседования, перейдя по ссылке из резюме). Открывается браузер, и начинает дооолго грузиться ваш сайт. Да, можно обьяснить, что это бесплатный Heroku и он так работает, но впечатление испорчено. В причинах данного поведения и методах борьбы с ним мы и попытаемся разобраться в этой статье.

Маленькие хитрости с Heroku - 1

    Регулярно (к примеру, раз в 5 минут) отсылать запросы приложению изнутри самого приложения. С помощью JavaScript это будет выглядеть так:
 var http = require("http"); setInterval(function() < http.get("http://.herokuapp.com"); >, 300000); // every 5 minutes (300000) 

Маленькие хитрости с Heroku - 2

После чего нажать кнопку «Provision add-on». После установки New Relic станет доступен на странице настройки приложения в списке установленных аддонов.

Маленькие хитрости с Heroku - 3

Клацаем на ссылку и попадаем на страницу настроек дополнения. Переходим на вкладку «Synthetics» и нажимаем кнопку «Add new».

Хостинг Heroky & база данных & python

Прошу вас помочь, и сказать какую бд вы использовали если сталкивались с этой проблемой.

Отслеживать
задан 21 мар 2021 в 17:44
191 13 13 бронзовых знаков

Если нагрузка на бота небольшая, то sqlite3. Но бд не должна распологаться на хероку, потому что каждые сутки, если не ошибаюсь, файлы на хероку удаляются и загружаются заново, так что весь прогресс вашей бд будет через день теряться.

21 мар 2021 в 21:46

@ClarkDevlin можно ссылку на документацию где это описано если не трудно? Первый раз услышал и что то не нахожу подтверждения)

22 мар 2021 в 7:55

@asanisimov qna.habr.com/q/… в доке хз, но я это лично проверял) в общем, оптимальный вариант postgresql использовать.

Деплой php+MySQL на heroku

Всем доброго времени суток. Хочу поделиться с вами своим опытом развертывания php+mysql приложения на сервисе heroku. Если вы первый раз о таком слышите, вам сюда.

Поехали

Итак, представим, что у нас есть уже готовое php+mysql приложение. Для начала регистрируемся здесь. На почту придет письмо с подтверждением регистрации. Далее переходим по ссылке, вводим пароль и подтверждение, жмем save. Первый этап пройден, идем дальше.

После успешной регистрации сервис предлагает нам скачать клиент. Естественно, для каждой ОСи свой вариант установки. Далее будем рассматривать пример для UNIX.

Пишем в консоли:

wget -qO- https://toolbelt.heroku.com/install.sh | sh

С установкой не должно возникнуть проблем. Также нам необходим установленный и настроенный git, об этом я писать не буду, на просторах интернета полно информации об этом.

После установки нужно войти в приложение:

 $ heroku login 

Вводим email и пароль. Приложение должно вас авторизовать и автоматически загрузить ваш публичный ssh ключ. Если этого не произошло, заходим в свой аккаунт (https://dashboard.heroku.com/account) и добавляем публичный ssh:

Чтобы посмотреть публичный ssh, пишем в консоли:

 $ cat ~/.ssh/id_rsa.pub 

Ключи также можно добавить с помощью команды:

 $ heroku keys:add 

Итак, все готово для того, чтобы создать свое первое «heroku приложение». Заходим в директорию, где хранится наше приложение, и пишем в консоли:

 $ heroku create 

В результате вы должны увидеть что-то похоже на это:

Далее делаем push нашего приложения в heroku master:

 $ git push heroku master 

После чего пишем в консоли:

 $ heroku open 

Наш сайт откроется в браузере. Если бы мы не юзали mysql, то на этом все бы и закончилось, но нам придется еще чуть попотеть. Скорее всего, на экране полезли ошибки о том, что невозможно соединиться с mysql. Также ошибки можно посмотреть, открыв логи:

 $ heroku logs 

Для работы с mysql будем использовать аддон ClearDB. Чтобы его установить, для начала необходимо заполнить данные о вашей кредитной карте на странице dashboard.heroku.com/account:

Если этого не сделать, при установке ClearDB вы будете видеть ошибку:

Adding cleardb:ignite on dry-taiga-2649. failed
! Please verify your account to install this add-on
! For more information, see devcenter.heroku.com/categories/billing
! Verify now at heroku.com/verify

Ниже команда для установки ClearDB:

 $ heroku addons:add cleardb:ignite 

ClearDB установлен, теперь посмотрим доступы к базе данных:

 $ heroku config 

Получим результат в виде:

Используя полученные доступы через любой удобный MySQL клиент заливаем дамп БД на сервер.

Доступы к базе в php можно получить следующим образом:

 $url=parse_url(getenv("CLEARDB_DATABASE_URL")); $server = $url["host"]; $username = $url["user"]; $password = $url["pass"]; $db = substr($url["path"],1); mysqli_connect($server, $username, $password); mysqli_select_db($db); 

Чтобы каждый раз не менять конфиг для локального сайта и heroku, можно добавить проверку:

if ($_SERVER['SERVER_NAME'] == "thawing-island-242342379.herokuapp.com") < $url = parse_url(getenv("CLEARDB_DATABASE_URL")); $host = $url["host"]; $username = $url["user"]; $password = $url["pass"]; $dbname = substr($url["path"], 1); >else

Было бы правильней это сделать через APPLICATION_ENV, но я не нашел информации о том, как это сделать. Если кто-то в курсе — напишите.

Почти все готово. Осталось добавить в корень файл composer.json:

Если такой уже есть, нужно просто дописать «ext-mysql»: «*»

Пишем в консоли:

 $ git add . $ git commit -am "added db credentials" $ git push heroku master $ heroku open 

Открывается браузер, видим рабочий сайт.

Буду рад если этот «мануал» кому то поможет.

Всем спасибо з а внимание.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *