A serverless architecture for high performance financial modelling
aws.amazon.com
aws.amazon.com
1. Novelty: It is no longer cool, shiny, hip.
2. Paradox of choice: Just too many things. Though, I prefer AWS Lightsail and do use its services.
3. DevEx: Prefer easier tooling and simpler billing.
4. Realisation: Boring tech works: https://archive.is/sXPN9 (https://twitter.com/jeanqasaur/status/1455589141299675139)
Sure, I can run my personal website on a Pi, but then I have to do the hoops to try and serve it off port 80/443 since my ISP blocks it. I could spend an extra $100/month for business class, but why do that if I can get a $5 VM on lightsail that can host half a dozen small WordPress sites and a DB..
And I know S3 and CloudFront, so I can cut the costs lower and serve the static page for pennies...
I'd pay AWS $0.10/month to avoid the hassles of my ISP and Dynamic DNS..
Static website hosted in Netlify, Github/Gitlab pages or Cloudflare.
No point using AWS - 1000 pound gorilla with dozens of services and features PLUS _unbounded_ billing - if you have only a basic use case such as static page
Disclaimer: I work at AWS, but not involved in billing. The below is my personal experience having dealt with AWS outside of my current role there.
I agree its not worth it if you're just hosting a static page, but if you're using it for other development it can be worthwhile. (I have to admit that Cloudflare/R2 is looking promising for static hosting, although workers seem a bit more limited than lambda. Definitely an interesting ecosystem to keep an eye on)
Even thought it has unbounded billing, in the case of mistakes or unexpected surges, they're often willing to assist and even nix charges. Ultimately, they'd rather you continue using the service and pay future bills than have you quit while they try to collect on a bill you can't pay.
On my personal account, I have billing alerts configured low, and its billed via SEPA from a separate bank account that I use just for cloud providers (N26 makes it easy to configure a separate account with a distinct IBAN). In the unlikely event goes over the amount I have in that account, it'll fail to charge me and I can look into disputing the charges.
but if aws support decides not to help, or won't clear as much as expected
you'd have a credit to AWS which they could possibly try to collect by other means besides direct debit, such as debt collection
The paradox of choice doesn't apply here, you don't have to choose between every service offered. You can pick the one or few that work for you and reuse, reuse, reuse. I find it great for small operations; free tiers for really tiny projects, and the choice of managed services for a higher fee but way less maintenance - especially handy for small businesses who don't have the people to be worrying about architecture every day.
They are at odds (but I allow myself to use a few shiny, new things that I like [0]), but they are also part of the reason I don't use AWS.
> The paradox of choice doesn't apply here, you don't have to choose between every service offered.
Well: https://nitter.net/QuinnyPig/status/1504118950019284995
kubernetes on the other hand....think will be replaced by fargate/ecs, I still struggle to know why startups with a dozen container services need kubernetes. Not having opinionated standard creates so much complexity with endless amount of configurations.
K8S: many vendors collaborating on a API they all implement
I'd call kubernetes the emerging standard.
Unfortunately I think that the article doesn't make a good case of why this was discarded right off the bat. In particular it is not clear why this wasn't a lift and shift with the NAS storage replaced by S3 and Celery workers placed under an autoscale policy.
Looking at the conclusions the first two are consequences of having on demand compute power while the third one is just surpring (was 70% of the code dedicated to celery infrastructure?).
When running functions as a service, you don't have to administer the OS, you just request the computation, provide an input event, and wait for the results to be computed.
If you use EC2 you need to handle the work submission, the scaling and registration of the workers, and the security and life-cycle of the OS yourself.
It seems to me they didn't get all the benefits of serverless, because they had to write thier own custom workload management code. But probably it would still be simpler than managing the workload across thousands of EC2 instances.
You don't have to administer any OS when you run them with a container orchestration system as a short-lived job.
It's also perplexing how suddenly "managing an OS" is depicted as such a blocker, specially in a time when treating servers as cattle is the norm.
I'm not sure you got the point. The whole point is that you don't need to throw "serverless" buzzord nonsense around to be able to launch long-running processes in the cloud. Al you need is a way to launch processes, and that just happens to be the main responsibility of container orchestration systems, which just so happen to support launching them transparently in your own cluster.
I think ECS is a better fit if you require GPU or you can do with not scaling to zero. Obviously once Fargate catches up and polishes its kinks it would stand on its own but given the way Cognito is, I have very little faith that things will improve quickly (theres an open ticket in cognito that is over 3 years old).
if you dont use containers in lambda, its super fast unless you start using C#/Java
unless you're ok to build your own docker images, then fargate already mentioned should be good
60 minutes for HTTP functions.
10 minutes for event-driven functions.
Not sure why you would need 60 minutes for HTTP invoked functions, that alone should be a signal to offload it to another queue or asynchronous process.
I've used GCP / AppEngine for about a decade now. Built one biz that did $80m gross in its first year. Never even a small threat of being shut down. Recently had a billing issue with GCP and after explaining the problem, they credited me far more than I was even asking for.
I currently have 20k+ servers hitting Cloud Functions (golang) and Cloud SQL 24/7, which is a constant 50 requests/sec... costing me about $100 a month total. It was easy to set up, documentation is well written with clear examples, deployments are all through CI on Github. It just works.
Sorry, but I'm a fan.
To answer your question... https://cloud.google.com/tasks/docs/creating-http-target-tas...
Like I said we did it this way to avoid adding a proper queue and worker pool to this app so not recommended for heavy traffic but it works
Disclaimer I work for Google on Cloud Run.
Yet at the same time, HN loves to hate on GCP. Keep up the good work @yegle.
You can trigger it from an s3 upload, for example.
You can run short-lived jobs in a container in any container orchestration system or even straight up Docker.