Readit News logoReadit News
andout_ commented on An Update on Heroku   heroku.com/blog/an-update... · Posted by u/lstoll
andout_ · 5 days ago
I work at Encore so I'm biased.

We've had a bunch of people migrate over from Heroku in the last couple years, especially after they killed the free tier.

The main difference from other alternatives is that you don't write any infrastructure config - you just declare what you need in your code (databases, cron jobs, pubsub, etc) and Encore handles provisioning it in your AWS/GCP account (works locally as well where local is 1:1 to your prod env). So there's no Terraform to maintain or Docker setup to mess with.

If you're looking to move off Heroku it's pretty straightforward, most folks get their app running in an afternoon. Happy to help if you run into anything: https://encore.cloud

andout_ commented on Show HN: Encore – Type-safe back end framework that generates infra from code   github.com/encoredev/enco... · Posted by u/andout_
stackskipton · 3 months ago
As Ops guy, all infrastructure declared in application code eventually leads to crying if you get big enough.

That being said, I know we are expensive and "don't add to bottom line" so this looks like good enough hacky kludge as anything else.

andout_ · 3 months ago
Haha. We're not trying to replace Ops, just prevent teams from needing to build internal platforms before they can ship product. You can still modify all the provisioned infra directly in AWS/GCP console, or layer Terraform on top. We work alongside you, not against you.
andout_ commented on Show HN: Encore – Type-safe back end framework that generates infra from code   github.com/encoredev/enco... · Posted by u/andout_
mcintyre1994 · 3 months ago
I've only really used AWS at a startup, but this sounds kinda scary based on that experience just because it's so easy to configure services in AWS to cost you lots more. How does something like Encore figure out what to use for the nitty-gritty AWS config details without exposing the user to those decisions? I can't remember any really specific examples because it's been a while since I used AWS, but a smaller example would be something like configuring logging/time to keep logs.
andout_ · 3 months ago
Encore uses sensible defaults optimized for cost and performance (eg. reasonable instance sizes, log retention periods, backup schedules), but you have full control to modify anything. You can adjust configs per environment through the Encore Cloud dashboard or directly in your AWS console - it's all standard AWS resources (RDS, Fargate, etc.) in your account.

The goal is to start with good defaults so you don't have to think about every config detail upfront, but nothing is locked down. You can also set up approval workflows for any infrastructure changes that have cost implications before they're applied.

andout_ commented on Show HN: Encore – Type-safe back end framework that generates infra from code   github.com/encoredev/enco... · Posted by u/andout_
wgjordan · 3 months ago
SST has not been AWS-specific since Aug 2024 [1], it is now based on Pulumi/Terraform instead of CDK/CloudFormation.

[1] https://sst.dev/blog/sst-v3

andout_ · 3 months ago
Ah, been a while since I looked into it. Thanks for the correction!
andout_ commented on Show HN: Encore – Type-safe back end framework that generates infra from code   github.com/encoredev/enco... · Posted by u/andout_
ericmcer · 3 months ago
How could it even achieve that? GCP and AWS don’t follow some higher standardized setup. If you use GCP app engine nothing exactly like it exists in AWS, not to mention even similar services like s3 have totally different configs and behaviors.

If I really cared about that I would just use k8s instead of hoping an infra as code tool mapped all these services somehow.

andout_ · 3 months ago
We provide client abstractions for infrastructure primitives (databases, pub/sub, object storage, etc.). Your application code uses these abstractions, and the actual infrastructure configuration is injected at runtime based on the environment.

For example, your code references "a Postgres database" and Encore provisions Cloud SQL on GCP or RDS on AWS, handling the provider-specific config automatically. The cloud-specific details stay out of your application code.

And if you prefer Kubernetes, we can provision and configure GKE or EKS instead of serverless compute. The point is your application code stays the same regardless.

andout_ commented on Show HN: Encore – Type-safe back end framework that generates infra from code   github.com/encoredev/enco... · Posted by u/andout_
Etheryte · 3 months ago
What's the pricing model? Couldn't figure that out neither on Github nor on your webpage.
andout_ · 3 months ago
Encore (the framework and CLI) is fully open source and free to use. You can deploy anywhere by generating Docker images with `encore build docker`.

Encore Cloud (optional managed platform) has a generous free tier and paid plans for production teams that want automatic infrastructure provisioning in their own AWS/GCP accounts. You can find more details at encore.cloud/pricing

andout_ commented on Show HN: Encore – Type-safe back end framework that generates infra from code   github.com/encoredev/enco... · Posted by u/andout_
krosaen · 3 months ago
If there is a primitive not currently supported (say running a temporal workflow service) is it possible to define a new primitive for this? Just wondering what it looks like if/when you need something not currently supported.
andout_ · 3 months ago
You can just use the resource as you'd normally would and then use e.g. secrets to define the connection settings per environment. You would however need to provision the resource yourself for all your envs. We have a terraform plugin to help you automate it.
andout_ commented on Show HN: Encore – Type-safe back end framework that generates infra from code   github.com/encoredev/enco... · Posted by u/andout_
ForHackernews · 3 months ago
This an interesting idea, but I'd be skeptical of having this much coupling between application code and infrastructure. It's like an anti-12 Factor App.

It might make sense for something like a "serverless" app where the units of the business logic are intended to map directly onto cloud provider entities.

It reminds me of https://aws.github.io/chalice/ but cloud-agnostic and Typescript in place of Python

andout_ · 3 months ago
I'd argue it's the opposite of coupling. Your application code references logical resources (database connection, pub/sub topic, bucket) without knowing anything about the underlying infrastructure. Encore extracts these needs and a configurable planner transforms them into actual infrastructure.

The same application code can run locally (Docker), on AWS (RDS, SQS, Lambda), or GCP (Cloud SQL, Pub/Sub, Cloud Run) without changes. That's less coupling than explicitly configuring cloud-specific resources in Terraform or even using cloud SDKs directly.

Re: Chalice - similar idea but Chalice is AWS-only and focused on serverless functions. Encore is cloud-agnostic and works for any backend architecture (monoliths, microservices, containers, functions).

u/andout_

KarmaCake day86September 1, 2024
About
hi, i'm https://ivan.codes
View Original