Ask HN: Have you shipped anything serious with a “serverless” architecture?
91–100 of 207 posts
Re: Ask HN: Have you shipped anything serious with a “serverless” architecture?
#92The "serverless" architecture is cool, but it irks me every time I hear the given name for it. For a marketing term mainly aimed at developers, I'm amazed they picked one so terrible.
For a marketing term mainly aimed at developers, I'm amazed they picked one so terrible. The message is "you don't need sysadmins anymore", which is exactly what developers want to hear. It's also very good for the cloud vendors, because with noone in the sysadmin role, developers are far more likely address scaling issues by just throwing resources (money) at the problem.
Re: Ask HN: Have you shipped anything serious with a “serverless” architecture?
#93Re: Ask HN: Have you shipped anything serious with a “serverless” architecture?
#94Re: Ask HN: Have you shipped anything serious with a “serverless” architecture?
#95Virtually all async processing we do is achieved by the main service (running as a normal microservice - no serverless stuff) pushing into an SQS queue, then a Lambda function running every minute pulls from the queue to e.g. report policies to our underwriters, issue policy documents, capture payments, etc.
Essentially anything which happens after the hot path to get a response to the user - all this stuff can take a little while, isn’t really time sensitive, often needs to be tried multiple times, etc.
The Cloudfront distribution we have for our API passes all requests and responses through a Lambda@Edge function before/after the request hits our real system.
If you’re not aware, Lambda@Edge runs in the Cloudfront PoPs, so super low latency and can reject/respond to requests without going back to our real server.
We use it basically as middleware and one way to protect our real backend from potential bad actors:
- applying CORS headers
- doing basic (offline) auth checking - as we use JWTs (this happens in the services too, where it’s checked online)
- removing unwanted input headers
- generating and setting a request ID header
- setting X-Forwarded-For appropriately
- enabling the use of persistent HTTP/2 connections on a single hostname, even though our underlying services are all on separate hostname (basically some URL rewriting)
- enforcing minimum mobile app versions (as a regulated company, we eventually have to break very old versions of our mobile app, as they contain copy which is no longer correct/true)
- even calculating and returning insurance pricing with ultra-low-latency without having the latency of going all the way to our real servers in eu-west-1 - we’ll do a blog post about this at some point
Overall I must say, I’m incredibly pleased with Lambda and Lambda@Edge.
Only criticisms are that the GUI is an incredible pain in the ass to use (we don’t use any off-the-shelf serverless framework), and they’re very slow at supporting new Node versions.
Lambda does now support Node 8 (with async/await support etc.), though it took months. But Lambda@Edge still only supports Node 6 which has been quite difficult to continue supporting across our monorepo.
Re: Ask HN: Have you shipped anything serious with a “serverless” architecture?
#96The applications:
- creating snapshots of EBS volumes
- disabling users in IAM
- handling HTTP form submit for email list subscription
Re: Ask HN: Have you shipped anything serious with a “serverless” architecture?
#97I can't name any names for obvious reasons or give you more hints about what industry this company is in but I just did DD on a very impressive outfit that ran their entire company on Google's cloud platform, it held about 500T of data and held up amazingly well under load. I was super impressed with how they had set this all up and they were extremely well aware of all the limitations and do's and dont's of that par…
Re: Ask HN: Have you shipped anything serious with a “serverless” architecture?
#98Earlier quoted context omitted.
For a marketing term mainly aimed at developers, I'm amazed they picked one so terrible. The message is "you don't need sysadmins anymore", which is exactly what developers want to hear. It's also very good for the cloud vendors, because with noone in the sysadmin role, developers are far more likely address scaling issues by just throwing resources (money) at the problem.
Which is funny because my next job i start soon is exactly "sysadmin for serverless".
Re: Ask HN: Have you shipped anything serious with a “serverless” architecture?
#99The biggest thing I am struggling with right now is how to appropriately split projects for module size. This may be more of an issue with Firebase functions than AWS because it's a lot easier to create separate projects with AWS for firebase and constrain the project. Google Firebase Functions very much assumes a big package architecture. We could break it up into multiple firebase projects but that separation creates a lot of annoyances.
It'd be awesome if you could split packages up so the resources don't have to be shared within the various functions.
tl;dr want to split modules and functions up with explicit dependencies to optimize bundle size / cold boot.
Additionally I found it to be an anti-pattern to use any DB that requires a connection pool vs HTTP based commands. It's annoying as heck to manage connection pools with serverless and seems downright buggy or broken. If you want to support it you need to centralize it with something like PGpool which seems like a big anti-pattern. I hate dynamodb but am loving Google's offering (firebase firestore or datastore).
Re: Ask HN: Have you shipped anything serious with a “serverless” architecture?
#100Earlier quoted context omitted.
Your setup, although appealing from an AWS ecosystem perspective, sounds like a bit expensive to me on a first reading. Of course everything depends on the specifics but Lambdas and DynamoDB are expensive at scale. I wonder how it compares cost-wise to a more traditional solution.
Indeed, I always get the feeling you need some sort of exit strategy to a traditional model for when your service starts lifting of. Never did the cost calculations though.
At some point I believe when we're big enough we might switch to using servers in all the regions where we currently run APIG+Lambda.