Heroku стал самым используемым сервисом для развертывания веб-приложений. Я лично предлагаю его в качестве первого варианта, и все приложения во многих компаниях работают на нем. Вы можете задаться вопросом, что же такого особенного в том, что компания решила развернуть все приложения в Хероку? Я расскажу о трех причинах, почему мы многие используют Хероку как основной инструмент для размещения приложений.
Простое развертывание
Определенно, способ развертывания приложений на Heroku нравится мне больше всего. Неважно, настроена ли у вас непрерывная отправка или ручной процесс, поскольку Heroku — это, по сути, git-репозиторий, куда вы можете загружать свой код, очень легко загружать изменения, запускать новое развертывание и возвращать изменения, если что-то пошло не так.
Heroku также гибко настраивается и позволяет выполнять некоторые задачи до публикации новой версии, чтобы вы могли подготовиться к запуску.
Поддерживаемые языки
В случае со мной почти всегда основным языком для бэкенда является Node.js, однако Heroku готов для множества технологий, и развертывание так же упрощено и полноценно, как и для Node.js.
Честно говоря, единственная технология, с которой я заметил проблемы, — это Java, и они были связаны с требованиями к памяти.
Heroku также является хорошим вариантом для начала изучения микросервисов, в плане взаимодействия между серверами, работающими на разных технологиях, и фокусировки на определенных вещах для каждого из них. Лично я предпочитаю для этого другую систему, но эта тема будет утомительной для новичков, если они хотят узнать об архитектуре, а также должны понимать docker, что-то вроде kubernetes и так далее.
Дополнения и упрощенное администрирование
Как только ваше приложение запущено (а это можно сделать за 1 час), администрирование «дино» (dyno) становится очень простой задачей.
От таких функций, как история релизов и базовое протоколирование, до таких продвинутых тем, как метрики производительности, Heroku предоставляет набор встроенных функций, которые дополняются надстройками, добавляемыми простым нажатием нескольких кнопок.
Некоторые дополнения, которые почти всегда присутствуют в наших новых динопроектах на Heroku, это:
- mLab MongoDB (или предпочитаемая вами база данных)
- Logentries (или что-то другое для расширенного протоколирования)
- Heroku Scheduler (аналогичен cron).
Помимо дополнений, управление переменными окружения очень удобно по сравнению с классическим файлом на сервере, используемым некоторыми фреймворками.
Если вы еще не пробовали Heroku, я очень советую вам дать ему шанс и посмотреть, как все пойдет. Если вы используете другой сервис для запуска приложений, пожалуйста, поделитесь им с сообществом в комментариях под этим постом.