У меня есть небольшое веб-приложение java spring, размещенное в стартере openshift (бесплатный план), но они собираются истечь срок действия бесплатных учетных записей через 60 дней https://blog.openshift.com/changes-to-openshift-online-starter-tier/
Я пытаюсь найти бесплатную платформу для размещения своего приложения, и я нашел Heroku, но не знаю, подходит ли оно (пожалуйста, не усложняйтесь, я просто пытаюсь понять, как работает heroku!) .
В настоящее время у меня есть сервер wildfly и база данных mysql, каждая из которых состоит из одного модуля. В бесплатном плане Heroku (https://www.heroku.com/free) указано, что у вас есть 1 веб-дино на каждое приложение. Охватывает ли веб-дино веб-сервер и базу данных? Я не нашел ничего о динамометрических станциях при использовании базы данных https://devcenter.heroku.com/articles/getting-started-with-java#use-a-database
Кроме того, в моем приложении каждый час выполняется кварцевое задание. Он в основном вызывает веб-сервис, берет информацию и генерирует статистику в bbdd. Я видел, что приложения Heroku автоматически переходят в спящий режим после 30 минут бездействия. Как это повлияет на мое приложение? Кажется, что приложения просыпаются по веб-запросу, но как насчет фоновой задачи? Нужно ли мне переносить кварцевую работу на рабочий стенд? Кажется, что рабочие дино не спят, но ... потребляют ли они дино-часы только во время выполнения (3 минуты каждый час) или они потребляют дино-часы, когда они простаивают (24/7)?
Если у проверенных учетных записей 1000 часов в месяц, а приложение потребляет только 1 веб-дино, то нет необходимости позволять приложению спать, верно? Один месяц должен составлять менее 750 часов при использовании только 1 динамометрического стенда. Есть ли способ сохранить приложение в рабочем состоянии?
Кроме того, что происходит, когда приложение спит? Он меняет IP-адрес приложения каждый раз, когда просыпается?
Извините, если некоторые из них - вопросы новичков, и заранее благодарим!
Я постараюсь ответить на ваши вопросы один за другим.
Heroku free plan (https://www.heroku.com/free) says that you have 1 web dyno per app. Does the web dyno covers the web server and the database?
Нет, это не так. У Heroku есть надстройки, которые вы можете подготовить для своего приложения, глянь сюда для надстроек MySQL. Посмотрите, как их можно добавить / использовать здесь.
Also, my app have a quartz job running each hour. It basically calls a webservice, takes the info and generate statistics in the bbdd. I have seen that Heroku apps sleep automatically after 30 mins of inactivity. How does this affect to my app?
Это означает, что если вы получите один запрос (а сервер еще не прогрет) для обслуживания, вы потратите 30 минут на динамометрические часы. Разбудить сервер только для 1 запрос в 30 минут не очень эффективно, но это система.
Seems that apps wake with web request, but what about background task? Do I need to move the quartz job to a worker dyno?
Вам следует перевести свою работу на рабочий стенд. Подробнее: https://devcenter.heroku.com/articles/free-dyno-hours
Seems that worker dynos don’t sleep, but… are they consuming dyno hours only while they are being executed (3 mins each hour) or they consume dyno hours while they are idle too (24/7)?
Это не так. Использование вычислений рассчитывается по времени настенных часов, а не по времени процессора. - пока работает ваша рабочая роль (а она и будет), вы будете сжигать динамометрические часы.
If verified accounts have 1000 hours / month and the app consumes only 1 web dyno then there is no need to let the app sleep, right? One month should be less than 750 hours using only 1 dyno. Is there any way to keep the app alive?
Вы сейчас говорите о двух динамометрических станциях, одном веб и одном работнике. С этой конфигурацией уровня бесплатного пользования будет недостаточно, если вы хотите, чтобы они работали круглосуточно, без выходных, даже если у вас есть подтвержденная учетная запись.
@mav - это помогает?