ВСЕ СТАТЬИ
Блог начинающего программиста
Кнопка войти через Яндекс
Регистрация
Программирование на JavaScript для начинающих 2.0

Самый востребованный язык программирования

Какой язык программирования должен знать абсолютно любой программист?

Узнай прямо сейчас!

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

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

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

Как облачный хостинг Хероку появился в июне 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 ps:stop в своем приложении.

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. Размещение статичного проекта имеет особенности. Об установке простого статичного сайта здесь .

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

Кипящий чайник с выхлопом клубов пара из носика

Интенсив «Основы программирования»

Бесплатный курс по программированию

Начать обучение

Бесплатный курс по основам PHP

Бесплатный Видеокурс по PHP!

Пример создания PHP-сайта!

Подробнее

Комментарии

Аватар пользователя: Администратор
Администратор 06 Июля 2018г, 08ч 53мин

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

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

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

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

Аватар пользователя: Администратор
Администратор 31 Марта 2022г, 19ч 25мин

Z

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

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

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

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

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


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

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

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

V

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

Кнопка войти через Яндекс Зарегистрироваться
Имя:
Электронная почта:
Текст комментария:
Введите код с картинки:
картинка
PHP хостинг ХостиЯ