I'm using Heroku's Pipeline feature to manage the stages of my application. I received an email about Heroku getting rid of their free plans, so I went ahead and upgraded my plan just now. Currently, I have one app with two database add-ons in Heroku. This is the first time that I've used their Pipeline feature—and I'm by no means a Heroku expert. I have two questions:
Do I need to purchase dynos for every new app that I use Heroku for? The plan that I ended up purchasing was the Production plan (since the app is for a client), and I also purchased two psql database add-ons which are attached to the app.
Since I'm using their pipeline for my one app, I have staging and prod versions of the app assigned to their appropriate branches in the repo. The prod app is where I upgraded to the paid plan. Do I need to purchase any dynos or add-ons for the staging app within the Pipeline? I was able to attach the databases with no issue, but I purchased a dyno for the staging app just to be safe.
Feel free to share any of your favorite Heroku alternatives as well—I'm only using Heroku because that's what I learned how to use in school.
Fellow Heroku user here!
Do I need to purchase dynos for every new app that I use Heroku for?
Yes. Heroku have basically said they’re getting rid of free plans for all applications due to wanting to make more money security reasons. So staging apps will also fall under this.
Basically, it sounds like there’s going to be no free tier dynos or first party add-ons from Heroku going forward. They do suggest for non-production apps (like testing and staging apps) to turn your dynos on when in use, and off when not in use, and you’ll only be billed for the time the dyno is on.
I‘m not sure which plan is the Production plan (I couldn’t see it on the pricing page) but maybe try out Hobby first. I have multiple apps running with paid Hobby-tier dynos and they have ran just fine without really spiking the CPU or memory available in those dynos. But I’m running PHP apps, so your milage may vary if you’re using another tech stack, or do get more load than my apps.
Related
I can't see an email of their support to write to with that problem and as I think there is community of Heroku users here.
Is usage of free Heroku plan legit for deploying test tasks and pet projects e.g. for portfolio?
It is fine to use the Free plan for your personal development, experimenting but potentially production usage if you really want.
When working with free Dyno you have few limitations:
max number of free hours
Dyno goes to sleep after some inactivity time
no metrics
etc.. see Dynos comparison
I have $161 platform credits on heroku from GitHub student pack to spend for one hobby dyno:
The Heroku offer is for one (1) free Hobby Dyno for two years, which will be applied on your invoice as a discount of $7 for a Hobby Dyno.
I already deployed one spring app and changed its dyno to hobby. My question is if there is a way I could deploy second Java app and set it to use the same dyno which is assigned for the first app?
Right now I have one app which has hobby dyno and one app which uses free dyno. I read on the internet and people say that there is only one app allowed for one dyno and Heroku will charge me for the second one but there is also this thread How many apps are allowed on a 'Hobby' Heroku plan? which says that I can have more than one app per hobby dyno.
So what's the truth?
No, you can't run multiple apps on a single dyno.
Heroku's model is to run one app per dyno (and often many dynos for a single app). The question you reference discussed the Hobby plan¹, asking how many dynos can be run per account. Keep in mind that Heroku's model is different from the shared or VPS hosting you might be used to. Dynos don't provide an OS that you can put apps onto; they run apps directly.
¹Technically I don't think this makes a ton of sense since accounts don't have these kinds of tiers. One account can run free dynos, hobby dynos, and professional dynos. But there is a difference between unverified accounts, which can run up to five free dynos, and verified accounts which can run many more.
According to this article on the heroku page it is possible but not recommended.
Heroku post
I'm just starting with Heroku, and I'm considering using it to host my app.
The problem is, I'm planning to build my app with a micro services architecture.
As I understand Heroku's pricing, they charge per dyno. When using micro services, there are a bunch of "apps" or "services" working together to provide the functionality of one app.
It seems inevitable to do this without using multiple dynos, and by adding dynos, the price goes up very quickly.
I have three questions:
Is my interpretation of Heroku's pricing correct?
Is there a better way to do a micro services architecture using Heroku?
Or, is there a way to deploy multiple docker containers on a single dyno?
Your Heroku costs will definitely go up as you use more dynos and more apps, but if you are just starting out, the money you spend will be in no way more than the time you would spend setting up something like AWS to perform the same functionality.
You can always save money later, once your app is running and users are loving it. If you goal is to prototype and get it out fast, Heroku is still the best choice.
Did you know about Heroku price calculator?
Saw you run 10*1x dynos, plus some other services, like text messages and such. That will cost you $250-350 this month. That's a lot, sure. But you can get your app running tomorrow, and presumably that is worth a lot more than 250.
I am currently paying for a hobby heroku plan and I have already deployed an application, is it possible to have another application (different code and database) running in the same server as mine?
You can run as many Heroku apps as you want in your account. However, you need to configure each app to use either free or paid dynos, add-ons etc. independently.
So if you have a second app with different code and DB, you need to provision it separately with either free or paid plans. It will have its own URL, and will incur its own charges.
I have an app running happily on Heroku, but it's registered as a 'development' app, and I can't for the life of me find any formal definition of what a 'production' app is, despite the apps dashboard and the status page making a very clear distinction between the two.
I have come across this explanation of the status of the two, which suggests that the difference is implicit (based on usage) rather than explicit (based on some configuration / setup):
Production issues are those that affect running, stable, production applications that have at least two web dynos and use a production-grade database (or no database at all). Includes dynos, database, HTTP caching, other platform components (DelayedJob workers, scheduler, etc.), and routing.
Development issues are those that affect the health of deployment workflow and tools. Includes deployment (git push, gem installation, slug compilation, etc.), general git activity, command line gem/API (scaling up/down, changing configuration, etc.), and related services (rake, console, db push/pull with TAPS, etc.). Development also includes issues specific to the operation of non-production applications such as unidling free 1-dyno apps and the operation of development databases.
Even these explanations reference a mysterious difference between development and production databases, although there is no corresponding explanation of the difference anywhere. Is the $9pcm 'Basic' Postgres plan a 'production' database?
[UPDATE]
There is now a 'Run Production Check' link on the app dashboard within your Heroku account that shows the steps to determine your app status. Screenshot attached:
I've been trying to find the same answer to your question.
So far from what I can glean Shared / Dev / Starter databases via Heroku Postgresql Database plans are not considered production and only Crane and higher are consider production grade database plans.
The Heroku Postgres production tier starts with Crane and extends through to the Mecha plan. Shared, Dev and Starter plans are not production databases.
https://devcenter.heroku.com/articles/maximizing-availability
In addition, it seems that Heroku has a plugin to check to see if your app meets their guidelines:
https://github.com/heroku/heroku-production-check
I'm not sure if you scale up and down web dynos from 2 (during the day) and 1 (at night) with a Crane database if that would be considered "production" in Heroku's eyes.
Hope that helps!