-
-
Notifications
You must be signed in to change notification settings - Fork 42
Open
Description
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 packagecommand and/or click a few items in the Gruntwork web UI to package your app for AWS deployment.
- Heroku: You track your code in Git and create a
- Creating an app:
- Heroku: You run the
heroku createcommand 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 createcommand 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.
- Heroku: You run the
- Deploying an app:
- Heroku: you run
git push heroku mainto 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 asstageorprod.
- Heroku: you run
- Scaling the app:
- Heroku: You run
heroku ps:scaleto 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.
- Heroku: You run
- Provision add-ons for monitoring:
- Heroku: You run the
heroku addons:createcommand 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:createor 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.
- Heroku: You run the
- Provision a database:
- Heroku: You run the
heroku addons:createcommand 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:createor 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.
- Heroku: You run the
- Preparing an app:
Metadata
Metadata
Assignees
Labels
No labels