Skip to content

Consider adding a comparison table to the Heroku landing page #578

@brikis98

Description

@brikis98

It might help to have a comparison table on the Heroku landing page. The idea is to help users understand (a) how Heroku concepts translate into the AWS world, similar to the GCP page @robmorgan found earlier, and (b) how Gruntwork helps with those concepts.

Below is a rough idea of what this could contain, meant as a starting point. Please tweak as necessary.

  • The columns would be something like: Heroku | Migrate to AWS manually | Migrate to AWS with Gruntwork
  • The rows would roughly translate each step of the Heroku getting started tutorial. Here are the first few steps to get the idea across:
    • Preparing an app:
      • Heroku: You track your code in Git and create a Procfile.
      • Migrate to AWS manually: AWS has 20+ different ways to run apps (e.g., EC2, ECS, EKS, Fargate, Elastic Beanstalk, App Runner, Lambda, etc.), and each requires preparing your app in different ways (e.g., for EC2, you may package it as an AMI using Packer, for ECS you may package it as a Docker image using a Dockerfile, etc), so you'll spend hours figuring this out.
      • Migrate to AWS with Gruntwork: You track your code in Git and run the grunty package command and/or click a few items in the Gruntwork web UI to package your app for AWS deployment.
    • Creating an app:
      • Heroku: You run the heroku create command or make a few clicks in the Heroku web UI.
      • Migrate to AWS manually: Each of the 20+ different ways to run apps in AWS (e.g., EC2, ECS, EKS, Fargate, Elastic Beanstalk, App Runner, Lambda, etc.) has a different set up procedure, so you spend hours researching this, days running AWS CLI commands or clicking around the AWS UI to get everything working, and weeks more trying to make it all secure and manageable.
      • Migrate to AWS with Gruntwork: You run the grunty create command or make a few clicks in the Gruntwork web UI. This generates opinionated, proven, end-to-end code, that sets up everything you need to migrate your apps to AWS.
    • Deploying an app:
      • Heroku: you run git push heroku main to deploy.
      • Migrate to AWS manually: Each of the 20+ different ways to run apps in AWS (e.g., EC2, ECS, EKS, Fargate, Elastic Beanstalk, App Runner, Lambda, etc.) supports different deployment options (e.g., some support zero-downtime deployments natively, some don't, some have native CI / CD integration, some don't), so you spend hours more setting this up via the AWS CLI or AWS web UI.
      • Migrate to AWS with Gruntwork: you run git push origin <env> to deploy to environment <env>, such as stage or prod.
    • Scaling the app:
      • Heroku: You run heroku ps:scale to scale the number of dynos up and down.
      • Migrate to AWS manually: Each of the 20+ different ways to run apps in AWS (e.g., EC2, ECS, EKS, Fargate, Elastic Beanstalk, App Runner, Lambda, etc.) supports different scaling options, so you spend hours more learning about auto scaling, CloudWatch metrics, CloudWatch events, etc. In most cases, you fall back to manually scaling things via AWS CLI or AWS web UI.
      • Migrate to AWS with Gruntwork: auto scaling is available out of the box, scaling resources as necessary based on load. You can tweak the settings in the code any time to customize this.
    • Provision add-ons for monitoring:
      • Heroku: You run the heroku addons:create command to install add-ons such as Papertrail and New Relic for logging and metrics, respectively.
      • Migrate to AWS manually: Each of the 20+ different ways to run apps in AWS (e.g., EC2, ECS, EKS, Fargate, Elastic Beanstalk, App Runner, Lambda, etc.) supports different monitoring options (e.g., some send logs to CloudWatch automatically, some do not), so you spend hours using the AWS CLI and UI trying to figure this all out.
      • Migrate to AWS with Gruntwork: You run grunty addons:create or use the Gruntwork web UI to pick which monitoring tools you want (e.g., CloudWatch, DataDog, etc), and the generated code will hook everything up for you automatically.
    • Provision a database:
      • Heroku: You run the heroku addons:create command to install database add-ons, such as Postgres.
      • Migrate to AWS manually: You have to learn, configure, and set up each AWS database service (e.g., RDS, ElastiCache, Elasticsearch) separately. Each one takes hours of CLI commands or AWS UI clicks to set up and days to figure out how to do it securely. Hooking up your app to be able to securely connect and authenticate to these data stores takes still more time.
      • Migrate to AWS with Gruntwork: You run grunty addons:create or use the Gruntwork web UI to pick which data stores you want, and you'll get production-grade code that sets everything up for you to deploy and manage that data store, as well as giving you sample code that shows you exactly how your app can connect to and authenticate to that data store securely.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions