Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Heroku is a “Platform As a Service” (PaaS) product, which we could deploy our entire Digital Collections application on.

Currently, we deploy to “self-managed” AWS (Amazon Web Services) resources. The current approach is not long-term sustainable with the termination of the Systems Administrator position who took care of managing the AWS resources.

Heroku is one option for paying for a more expensive platform that will do for us some of the things the Systems Administrator position used to do.

Heroku is a significant cost – we estimate the monthly cost for our application will be $660-$1240/month. This is mostly on top of our existing infrastructure costs, it doesn’t replace very much of them. However, this is still significantly less expensive than an FTE.

….

Pro

  • Eliminate need for local skillset and time to manage AWS resources directly. This is the main motivation for heroku. We would no longer need to maintain the ansible playbook at all. We would no longer need the “management” server that we have now trying to orchestrate our self-managed AWS. We would still be managing our S3 buckets directly in AWS, and maybe some other minor simple services, like SES for email delivery – much simpler AWS products.

  • Heroku is a popular and high-quality product. It’s feature set, developer UI, documentation tend to be very good, and we found this true in our testing. It’s been around for a while, has many customers (often startup/ecommerce), specifically including other Rails apps, and is generally considered a top-of-the-line service.

  • Easier scaling

  • Heroku has no contract. And all billing is pro-rated to the minute. If we ever choose to shift our infrastructure yet again, we can switch at any time.

Con

  • cost

  • some loss of flexibility/customization

  • some developer tasks are slow

  • heroku maybe stagnating a bit under current management.

  • infrastructure-as-code

Cost Estimate Detail

Component

Low-end/month

High-end

Web workers
Production:

  • Low-end, 2 standard-2x dynos, with-auto-scaling up so we’ll add on a bit for that. (not recommended, let’s call it $120/month).

  • A single performance-m dyno with auto-scale to 2 ($250/month maybe),

  • a performance-l ($500/month)

Staging:

1 standard-2x dyno, at $50

This is deciding that staging will be slower than production – can always temporarily increase it if we need to for testing things, and pay per-minute.

$170

$550

Background workers

Production:

  • 2 standard-2x ($100) with auto-scaling up. Hard to predict actual auto-scaling charges, let’s call it $150 total.

Staging:

  • 1 standard-2x ($50)

  • Maybe with auto-scaling? Should we call it $80 on the high-end?

$200

$230

Database

Heroku postgres standard-0 ($50), 2x for production and staging.

$100

$100

Redis
One heroku redis premium-0 ($15), 2x for production+staging

Future: We might want a second redis premium-0 to use for caching.

$30

$60

Solr
SearchStax. Either an NDN1 ($20/month with annual contract) or NDN2 ($40 with annual contract). x2 for production and staging.

$40

$80

Autoscaling

hirefire.io. $15/month, or $25/month with “overclocking”.

Does not include minutes of scaled dynos, just the autoscaler itself.

$15

$25

Logging

Papertrail, not entirely clear what tier we need for our traffic, we’re guessing the $16 or $30 plan.

$16

$30

Sub-total

$571

$1075

Add 15% margin

Hard to estimate costs including:

  • one-off dynos charged per-minute for scheduled tasks, developer console, rake tasks.

  • Minutes in use of auto-scaled dynos beyond minimums.

  • Just things we didn’t account for, put in some wiggle-room.

$85

$161

TOTAL:

$656

$1236

  • No labels