For me, the magical serverless developer experience was Google Cloud Run.
I write a conventional 12 factor app, with no vendor-specific code which could be executed on my local machine for development, Heroku, or anywhere else, and hand it over to Google Cloud Run. It's really an amazing service.
I had a few wishes on their service (eg integration with Papertrail, an easy way to run background workers, etc) but overall the whole thing is the best of all worlds:
* No vendor lock in due to platform specific code
* Easy local development
* Serverless scalability and pricing
Are there particular reasons why people go through so many hoops to use Lambda when such superior experience exists?
That is interesting, Cloud Run does look much closer to what I want out of a "serverless" type service. I had no idea it existed.
I remember once there was a whole discussion point when people decided it was no longer possible for a single human to learn "all of Windows". I feel like we are at that point with cloud services ... it is now beyond the realm of possibility for a mortal human to obtain a comprehensive knowledge of cloud computing.
Man, the number of services AWS has is crazy. I'm an ECS / Fargate user (pretty active) and hadn't tried this but it meets my needs.
That said, I spent time going into elastic beanstalk and ended up a bit disappointed, amazon doesn't close projects, but they tend to launch a lot of stuff but not always keep going with them fully.
I happen to really like ECS with ECS Anywhere (for heavy compute the price CAN NOT be beat in my view) and Fargate (for simplicity).
That said, App Runner a great possible fit that would do exactly what I want (build my docker from my repo!) in some cases and just weird there are SO many services that you really have to be paying attention to learn the next one.
My only real complaint is some products the quality really is below expectations I think. ELB / Workmail / CodeCommit / Cloud9 I was expecting more from and pace seemed off on some of these. I think they might distinguish maintenance mode products from active dev products just to give you a feel for trajectory.
AWS RDS / ECS and ECS Anywhere and Fargate - enjoy the experience.
interesting that i've never heard of it, isn't this basically AWS Fargate? write your custom stuff in docker/kubernetes and it becomes serverless?
Do you mean that you could write a regular Flask/PHP app and it will automatically make it serverless? What about long running tasks that gets triggered by http?
To answer your question, its just a lot easier to use a serverless framework to fully utilize separate AWS services (authentication, message streaming, database) while with the solution you described would benefit from custom platform depenedent binary applications (getting ffmpeg/specialized version of PIL to work on aws lambda was a nightmare).
Hopefully somebody else can chip in here, I've never used Fargate or Cloud run but neverthless open to when i can use it.
It is close to Fargate. But on Fargate there's still a lot you have to manually control, like when to spawn up new instances, etc.
Cloud Run has this extremely simply concurrency model: You tell how many requests your app can handle concurrently and how many instances are allowed to run any given time.
* Do you mean that you could write a regular Flask/PHP app and it will automatically make it serverless? What about long running tasks that gets triggered by http? *
It's Docker based. So it doesn't really care. It just spawns up your docker file and expects your app to listen on $PORT.
what if a process takes like an hour or two to finish, can apprunner handle this?
Often I find myself panicking because I can't finish a task in 15 minute limit, and so I end up spinning up Lightsail server to process long running tasks, which means I need to create SQS queue to manage pending jobs, and its a wheel I seem to reinvent constantly.
Not that it would be a good idea really, but I could put Cloudflare in front of a mostly static site living on cloud run in order to be protected by big cloud run network/transfer bills right?
If what you have is a static site I don't think Cloud Run is the ideal service for that. Cloud Run is about a model of compute, which static sites don't need.
I write a conventional 12 factor app, with no vendor-specific code which could be executed on my local machine for development, Heroku, or anywhere else, and hand it over to Google Cloud Run. It's really an amazing service.
I had a few wishes on their service (eg integration with Papertrail, an easy way to run background workers, etc) but overall the whole thing is the best of all worlds:
* No vendor lock in due to platform specific code
* Easy local development
* Serverless scalability and pricing
Are there particular reasons why people go through so many hoops to use Lambda when such superior experience exists?