ВСЕ СТАТЬИ
Блог начинающего программиста
Регистрация

Heroku хостинг позволяет установить сайт бесплатно

Опубликовано:

Heroku - это облачная платформа, которая позволяет создавать, разрабатывать, устанавливать, запускать, контролировать и масштабировать сайты. Позиционирует себя как самый быстрый способ перейти от идеи к URL-адресу с приложением, избегая головных болей от работы с инфраструктурой. Благодаря сервису пользователи тратят время и силы только на разработку и развертывание проектов, которые сразу начинают приносить прибыль.

Как облачный хостинг Heroku появился в июне 2007 года, тогда он поддерживал только один язык программирования – Ruby. Сегодня Хероку дополнительно поддерживает Nod.js, Java, PHP, Python, Go, Scala, Clojure.

Поддержка разных языков программирования реализована с помощью набора пакетов сборки (buildpack) с открытым исходным кодом. Сборочные пакеты служат для преобразования деплоя кода (дословный перевод deployed – развернутый, т.е. перенесенный на сервер) в исполняемый файл, который затем может исполняться на dyno. Пакеты программ состоят из последовательных команд и инструкций, и в зависимости от языка программирования программные инструкции будут находить зависимости, выводить скомпилированный код, или сгенерированные ресурсы и т. д.

Dynos - сердце Heroku хостинга

Хероку платформа использует модель контейнера для запуска и масштабирования приложений.

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

Википедия

Контейнеры, используемые в работе, называются «dynos». Это изолированные виртуальные контейнеры Linux, предназначенные для выполнения кода на основе заданной пользователем команды. Приложение может масштабироваться до любого количества контейнеров на основе требований к ресурсам. Возможность управления контейнерами предоставляют Heroku простой способ масштабировать, управлять количеством, размером и типом dynos, которые могут понадобиться проекту в любой момент времени.

Dynos - строительные блоки, которые управляют приложением Heroku. Контейнерная модель.
Принцип работы строительных блоков – dynos

Учет работы Dyno

Учетная запись предоставляет 550 часов в месяц бесплатного использования Dyno. В дополнение к этим базовым часам счета, можно получить дополнительно 450 часов ежемесячной бесплатной работы приложений. Для этого потребуется зарегистрировать платёжную карту. Деньги взиматься не будут, просто надо ее зарегистрировать. Карту, которую я зарегистрировал на этом ресурсе, я уже выкинул, так как у нее закончился срок использования. А сервис никак на это не реагирует, не ругается. Кстати, регистрация карты предоставляет и другие опции.

Халявные dynos обладают уникальным свойством – они умеют ложиться спать после 30-минутного бездействия сайта. Таким образом, расход часов прекращается. Условия бездействия:

  • отсутствие трафика, т.е. веб dynos не действуют;
  • рабочие dynos не работают.

Необходимо выполнение обоих условий.

При появлении трафика dynos просыпаются с небольшой малозаметной задержкой.

После израсходования всех часов в течение месяца, приложения засыпают и спят оставшуюся часть месяца.

Как определить остаток бесплатной работы Dyno

Посмотреть оставшиеся свободные часы можно используя Heroku CLI - надо набрать команду в командной строке

heroku ps -a <имя приложения>.

Или узнать это в своем аккаунте этого хоста на странице управления счетами на вкладке Billing. На рисунке показан пример расхода бесплатных часов в биллинге.

Бесплатное использование Dyno в биллинговой информации.

Расход бесплатных часов моими проектами на Хероки на 22 число месяца.

Alice-yandex - это приобретенный Алисой, навык "Заработок в интернете — финансово-выгодный". Предлагает ресурсы для зарабатывания в интернете.

Ninja-adaptive - моя учебная работа по изготовлению адаптивной страницы

Уведомление об использовании бесплатных часов от Героку

После расхода 80% запаса свободных часов придет уведомление на электронную почту примерно такого содержания.

Привет!

Вы использовали 80% из своих 1000 бесплатных динамо-часов за месяц. Следующие шаги помогут вам обеспечить бесперебойную работу вашего приложения.

Обновитесь до более мощных динамо-машин. По мере роста вашего приложения переходите на Hobby dynos по цене 7 долларов за динамо в месяц. Ваше приложение никогда не будет спать, и пользователи получат доступ 24/7. Кроме того, вы получите бесплатное управление SSL и автоматизированными сертификатами для пользовательских доменов, метрики приложений и несколько сотрудников для более мощных приложений.

Оптимизируйте свои службы мониторинга. Служба мониторинга может непреднамеренно не давать вашему приложению работать. Запустите heroku logs, чтобы просмотреть журналы вашего приложения. При необходимости удалите Pingdom, New Relic или другие службы мониторинга доступности, которые не требуются.

Проверьте свое приложение на наличие рабочих динамо-машин. Возможно, в вашем приложении не работает веб-динамик. Когда запущены приложения только для рабочих dynos, они работают непрерывно. Вы можете избежать этого, обновившись до Hobby dynos или запустив heroku logs в своем приложении.

Dyno sleeping позволяет нам предоставлять вам и миллионам других пользователей бесплатный уровень для экспериментов, взлома личных проектов и запуска приложений с низким трафиком.

Если у вас есть вопросы, пожалуйста, посетите help.heroku.com.

Счастливого кодирования,

Героку

Heroku

Второе уведомление придет после 100% расхода квоты времени, и приложения будут спать до конца текущего месяца.

Как установить сайт бесплатно

Хостинг позволяет бесплатно разместить до 5 проектов. Сначала надо зарегистрироваться, получив бесплатную учетную запись.

Установка сайта

Для развертывания приложений следует установить на локальную машину популярную систему контроля версиями Git, интерфейс командной строки Heroku (CLI). CLI - важная часть использования Хероку. Он упрощает создание и управление приложениями Героку непосредственно с терминала. Скачать для установки его на свою машину можно с официальной страницы https://devcenter.heroku.com/articles/heroku-cli.

Чтобы установить сайт с кодом PHP дополнительно потребуется установка Composer (перевод с английского – Композитор).

Последовательность действий для установки сайта

  1. Зайти в системную консоль (cmd.exe) от имени администратора, набрать команду

    heroku login

    нажать ввод Enter

  2. Затем ввести адрес электронной почты, пароль.

    После правильных вводов появится сообщение: Logged in as <адрес введенной электронной почты>

  3. Если проект не загружен на сервис GitHub, а находится на жестком диске компьютера, зайти в папку для него, или создать ее.

  4. Создать локальный репозиторий, набрав

    git init

  5. Загрузить в эту папку репозитория файлы сайта.

    1. Создать и загрузить файл Procfile, другие необходимые для Хероку файлы, например composer.json при загрузке сайта PHP.

    2. Если файл composer.json не пустой, создать файл composer.lock, выполнив команду

      composer update.

  6. Чтобы добавить и закрепить файлы в репозитории, выполнить последовательно действия:

    git add .

    git commit -am "<Комментарий>".

  7. Создать приложение на Героку, которое готовит хостинг для получения исходного кода:

    heroku create

  8. Развернуть свой код

    git push heroku master

  9. Заключительное действие - открыть сайт в окне браузера

    heroku open

Всё, сайт успешно установлен на облачный хостинг!

У Хероки множество платных услуг. Даже используя бесплатный вариант Хероку, когда программа использует бесплатные dynos, можно попасть на оплату услуг. Так случилось у меня, когда я подключил управление Конвейером (Pipeline). В процессе подключения услуги Pipeline ничто не предупреждало, что данная услуга платная.

Добавление приложения в конвейер Pipeline

Pipeline предоставляет возможность обновлять приложение, находящееся на хостинге Хероки, в автоматическом, или ручном режиме из GitHub. Для этого есть страница аккаунта на сайте. Откройте страницу для конкретного приложения, перейдите на вкладку Deploy.

В первой строке предлагается добавить приложение в Конвейер. Здесь же подробно и понятно рассказан алгоритм действий. Подключить услугу Pipeline очень просто.

Добавьте это приложение в конвейер. Создайте новый конвейер или выберите существующий и добавьте в него это приложение на этап. Heroku

Но… Ничто не говорит на этой странице при подключении, что услуга Pipeline платная. О том, что Pipeline платно сказано совсем в другом месте. И это стоит $10 в месяц.

Procfile

Прокфайл определяет команды, которые выполняют приложения в контейнерах динос, объявляет типы процессов. Каждый дино-контейнер относится к одному из объявленных типов процессов и выполняет команду, связанную с этим типом процесса.

Procfile - это простой текстовый файл, который называется точно Procfile (например, Procfile.txt не действует).

Прокфайл должен находиться в корневом каталоге приложения. Он не работает, если находится в ином месте.

Procfile объявляет типы процессов в отдельных строках файла, каждая из которых имеет следующий формат: <тип процесса>: <команда>. Каждая новая декларация процесса начинается с новой строки.

Тип процесса web является особым: это единственный тип процесса, который может получать внешний HTTP-трафик с маршрутизаторов Хероку. Если проект включает веб-сервер, необходимо объявить процесс как web .

Composer.json

Composer.json располагается в корневом каталоге. При его наличии Хероку распознает приложение как PHP. Поддержка PHP будет применяться только тогда, когда проект с программой имеет файл с именем composer.json в корневом каталоге.

Хероку использует Композитор для управления зависимостями в проектах PHP. Если программа имеет какие-либо зависимости с другими внешними библиотеками, composer.json файл должен указать их.

Даже если приложение не имеет зависимостей от Композитор, оно должно содержать в composer.json хотя бы пустое поле ({}), чтобы быть распознанным как приложение PHP.

Также этот файл инструктирует Хероку, какую версию PHP использовать. Если такую инструкцию не указать, то Heroku выберет самую последнюю возможную версию PHP 5. Это v5.6.36.

Устранение проблем установки

Размещая приложение на платформу, я обнаружил конфликт между локальным сервером OpenServer и Heroku. Хостинг для PHP проектов требует установить на компьютер средство по управлению зависимостями со сторонними библиотеками – Композитор.

Установил средство, и обнаружилась проблема. При проверке правильности установки командой в системной консоли composer –V выдало:

«"""" не является внутренней или внешней командой, исполняемой программой или пакетным файлом».

Проблему решило изменение в настройках OpenServer. Файл php.exe при установке Композитор я загрузил в папку \OpenServer\modules\php\PHP-7. А в этой директории OpenServer-а имеются файлы composer.phar и composer.bat устаревшей версии, и они подхватываются в Композитор. Чтобы их не удалять, я их только переименовал, добавив «1».

Полезные команды для сайта на хостинге

Чтобы попасть в корень проекта на хостинге команда: heroku run bash -a=<наименование проекта >.

Удалить проект с хостинга команда: heroku apps:destroy --app <наименование проекта >.

Вывод

В этой статье изложено о возможности бесплатного развертывания на хостинге динамичного сайта на языке PHP. Размещение статичного проекта имеет особенности. Об установке простого статичного сайта здесь .

На основании вышесказанного следует вывод: облачный хостинг Героку – прекрасный ресурс для бесплатного размещения сайтов.

Комментарии

Аватар пользователя: Администратор

Как удобно работать на Хероку убедился при редактировании моего приложения для Алисы - голосового помощника Яндекса. О навыке для Алисы - https://xn--e1ai0c.xn--p1ai/article.php?id=20 .

Изменил файл index.php в директории на локальном компьютере; закрепил изменения командами 

git add . , git commit -am "; развернул изменения на хостинг - git push heroku master.

И всё! Приложение работает в новой версии.

Аватар пользователя: Администратор

Z

Heroku прекращает оказывать услуги в России Z

Heroku - это дочерняя компания американской компании Salesforce.

Сегодня, на тридцать шестой день военной специальной операции России по демилитаризации и денацификации Украины, на свою почту получил Уведомление Героку. После машинного перевода примерно такого содержания.

Уважаемый клиент,

мы благодарны вам за сотрудничество с Salesforce на сегодняшний день. Однако, учитывая текущие события, Salesforce приняла решение прекратить свой бизнес в России. Это означает, что мы больше не будем предоставлять услуги Heroku клиентам в России. Основываясь на наших записях, мы понимаем, что вы или ваша компания базируетесь в России. В результате Salesforce прекратит работу ваших сервисов Heroku 12 апреля 2022 года. Если вы считаете, что наши записи о вашем местоположении неверны, вы можете связаться с нами, отправив запрос в службу поддержки.


Пожалуйста, также обратите внимание, что вы можете экспортировать данные своих клиентов в свои сервисы Heroku в соответствии с вашим соглашением с Salesforce до указанной выше даты.

Я это понимаю так, что после 12 апреля сервис Героку для россиян будет недоступен. Даже такой бесплатный вариант как у меня.

Остается ждать наступления Дня Космонавтики и посмотреть, что же произойдет.Z

V

Аватар пользователя: Администратор

Нет бесплатных Heroku Dynos

После тема этой статьи перестанет быть актуальной. С этого дня будет невозможно на Heroku хостинг установить сайт, или приложение бесплатно. Прошло 5 лет бесплатного размещения моих ресурсов на хостинге - приложение "alice-yandex", сайт "ninja-adaptive". Вчера поступило письмо с важной информацией о бесплатных продуктах Salesforce.

Героку

уважаемый клиент,

Спасибо вам за то, что вы являетесь пользователем Героку. С бесплатные Heroku Dynos, бесплатные Heroku Postgres и бесплатные Героку Дата для Redis® больше не будут доступны. Вы можете узнать больше об этих и других важных изменениях от нашего генерального директора Боба Уайза в блоге Героку.

Это повлияет на существующие бесплатные дополнения dynos и Героку Дата, поэтому от вас требуются действия. Чтобы предотвратить какие-либо сбои в работе ваших приложений или данных при использовании бесплатных тарифных планов, вам необходимо перейти с бесплатного тарифного плана на платный до .

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

Спасибо,

Команда Героку

Боб Уайз (Bob Wise) есть Посох Героку. Приведу здесь машинный перевод его новости в блоге.

Следующая глава Heroku

СООБЩЕНИЕ ОТ
.

Bob Wise General Manager

Еще в мае я писал о своем энтузиазме стать частью истории Героку, и сегодня я так же увлечен тем, чтобы помочь написать следующую главу. За последние несколько месяцев у меня было много встреч с клиентами, и тема остается неизменной — вы хотите знать, куда мы ведем Героку. Мы хотим внести ясность: приоритетом в будущем является поддержка клиентов всех размеров, которые делают ставки на проекты, карьеру и бизнес на Героку. Это такие компании, как PensionBee, которые помогают людям управлять своими пенсиями; MX, которые помогают малому бизнесу с кредитами; Меблированные кварталы, создавшие портал для корпоративных клиентов, бронирующих краткосрочную аренду; и ЭЙГЕНСОН, которые создали приложение для связи со своими клиентами и местными мастерами солнечной энергетики на одной платформе.

Salesforce никогда не была так сосредоточена на будущем Heroku. Сегодня мы объявляем:

  • Общедоступная дорожная карта: запуск нашей интерактивной дорожной карты продукта для Heroku на GitHub.
  • Сосредоточьтесь на критически важной задаче: отмените тарифные планы без оплаты и удалите неработающие учетные записи.
  • Студенческая и некоммерческая программа: предстоящая программа поддержки студентов и некоммерческих организаций совместно с нашей некоммерческой командой.
  • Поддержка открытого исходного кода: мы продолжим вносить свой вклад в такие проекты, в частности в Cloud Native Buildpacks .
    Мы будем предлагать кредиты Героку для выбора этих проектов через офис программы Salesforce.

Публичная дорожная карта

Вы попросили нас поделиться нашими планами на будущее Героку, и мы взяли на себя обязательство сделать это более прозрачным. Сегодня мы делаем еще один шаг, публикуя дорожную карту Героку в прямом эфире на GitHub! Мы приветствуем ваши отзывы об этом новом проекте и приветствуем ваши комментарии по самой дорожной карте. Мы будем внимательно следить за этим проектом и с нетерпением ждем возможности пообщаться с вами там.

Сосредоточьтесь на критически важных задачах

Клиентам нравится волшебно простой опыт разработки, который они получают от Героку сегодня. В будущем клиенты просят нас сохранить этот опыт, но отдать приоритет инновациям в области безопасности, надежности, региональной доступности и соответствию требованиям. Хорошим примером инноваций в области безопасности является взаимная защита TLS и закрытого ключа, о которой мы объявили в июне.

В качестве напоминания:

Поскольку мы считаем, что взаимная защита TLS и закрытого ключа для OAuth на основе RFC-8705, а также полная совместимость между интеграцией Heroku GitHub OAuth и моделью приложения GitHub обеспечивают более модульные привилегии доступа к подключенным репозиториям, мы намерены изучить эти пути с GitHub.

Наши команды по продуктам, инженеры и специалисты по безопасности прилагают огромные усилия для борьбы с мошенничеством и злоупотреблением тарифными планами бесплатных продуктов Heroku. Чтобы сосредоточить наши ресурсы на предоставлении критически важных возможностей для клиентов, мы будем постепенно отказываться от нашего бесплатного плана для Heroku Dynos, бесплатного плана для Heroku Postgres и бесплатного плана для Heroku Data для Redis®, удалять нерабочие учетные записи.

С начнётся удаление нерабочих учетных записей и привязанных к ним хранилищ учетных записей, которые не использовались больше года. С запланировано прекращение предложений бесплатных тарифных планов и начнется закрытие бесплатных динамометров и сервисов передачи данных. Мы пошлем письма по электронной почте пострадавшим пользователям.

Мы продолжим предоставлять недорогие решения для вычислительных ресурсов и ресурсов данных: стоимость Heroku Dynos начинается от 7 долларов в месяц, Heroku Data для Redis® — от 15 долларов в месяц, Героку Postgres — от 9 долларов в месяц. Текущие подробности см. в разделе Информация о ценах на Героку. К ним относятся все функции бесплатных планов с дополнительным управлением сертификатами и гарантией того, что ваши динамометры не спят, чтобы обеспечить отзывчивость ваших приложений.

Если вам нужна пробная версия Героку, обратитесь к менеджеру по работе с клиентами или свяжитесь с нами.

Студенты и некоммерческая программа

Мы ценим наследие Героку как обучающей платформы. Многие студенты получают свой первый опыт развертывания приложения на Heroku. Salesforce стремится предоставить учащимся ресурсы и опыт, необходимые им для реализации своего потенциала. Мы сообщим больше о нашей студенческой программе в Dreamforce. Что касается нашего некоммерческого сообщества, мы также тесно сотрудничаем с нашей некоммерческой командой.

Поддержка открытого исходного кода

Мы продолжаем наше участие в open source. Salesforce гордится значительным вкладом, который мы внесли с помощью Cloud Native Buildpacks. Мы сопровождаем проект Buildpacks, который берет исходный код вашего приложения и создает работоспособный образ OCI. Проект был внесен в песочницу CNCF в 2018 году и перешел в инкубацию в 2020 году. Для большинства пользователей Heroku пакеты сборки избавляют от беспокойства о том, как упаковать ваше приложение для развертывания, и мы расширяем наше внутреннее использование пакетов сборки в сочетании с нашей инициативой Hyperforce на основе Kubernetes.

Если вы сопровождаете проект с открытым исходным кодом и хотели бы запросить поддержку Heroku для своего проекта, обратитесь в офис программы Salesforce.

Пожалуйста, обратная связь

Как всегда, вы можете предложить мне обратную связь напрямую. Я также с нетерпением жду вашего вклада в проект общедоступной дорожной карты Heroku на GitHub. См. FAQ для получения дополнительной информации.

Heroku

Оставить свой комментарий:

Зарегистрироваться
Имя:
Электронная почта:
Текст комментария:
Введите код с картинки:
картинка