4 ms·
Excellent writeup. Are you serving client web traffic (if applicable) via Lambdas? Or deploying your web infrastructure to traditional instances managed through
by zkim 8y ago
Excellent writeup. Are you serving client web traffic (if applicable) via Lambdas? Or deploying your web infrastructure to traditional instances managed through CF?
- not_kurt_godel 8y agoYes, we're serving client web traffic directly with Lambdas via API Gateway. We have no traditional instances or non-serverless components of any kind in the core stack.
- bufferoverflow 8y agoSo how do you store your state? I assume DynamoDB part isn't serverless.
- sokoloff 8y agoDynamoDB is as serverless as Lambda. (There are servers somewhere for both, but in neither case do you operate them.)
- deanCommie 8y agoI'll give you there are no hosts to manage, but Lambda is serverless in the sense of "stateless" and "ephemeral". DynamoDB is still persistent storage. It seems that every every "hosted" solution is now being dubbed "serverless". :\ Oh and of course 5+ if-statements is now "AI".
- lostcolony 8y agoLamdas aren't stateless or ephemeral either. Anything that occurs on code load will persist on that container (i.e., if you initialize something at the module level in Node, it will persist between calls to the same container; this can cause all kinds of weirdness if you aren't aware of it. For instance, I have seen where a dev read some data at load time, and then performing destructive operations on it as part of data transformations in the code, and then wondered why he was getting non-deterministic results back). And there's a half gig of temp space on each container you can write to as well. While the definition of what constitutes 'serverless' is pretty ambiguous, no one includes ephemeral state as a systems requirement, else you have something useless. DynamoDB is generally viewed as serverless because there's no management of an underlying VM, and for some definitions because it can scale out horizontally automatically, without downtime, to meet demand (as compared with RDS, or another managed database solution that can only scale vertically).
- not_kurt_godel 8y agoWe actually rely heavily on Lambda statefulness to reduce latency - many objects/data are constructed/fetched on cold start and cached for subsequent invocations.
- Sohcahtoa82 8y agoHaving no hosts to manage is the defining feature of serverless. When you create a DB with DynamoDB, you're just telling AWS "I need a database" and it gives you one. No need to worry about deciding how much CPU power, RAM, or storage you'll need for it. > It seems that every every "hosted" solution is now being dubbed "serverless". :\ Got a good example of something being called "serverless" that you don't think should be? I mean, yes, DynamoDB, Lambda, etc. are all running on servers. But the idea is that you don't manage them. No packages to keep up to date. No worrying about whether or not the instance size you chose is big enough. No dealing with autoscaling to meet demand when a million reddit users hit your app.
- deanCommie 8y agoDynamoDB, Aurora, Kinesis, etc all existed BEFORE Lambda, and noone called them "serverless" until Lambda and now everything is called that. Meanwhile Kinesis requires you to specify the number of shards you have to use, so there is management even if they're not called "servers". > No need to worry about deciding how much CPU power, RAM, or storage you'll need for it. You realize you specify the RAM for lambda functions, which correlates to CPU. And with Dynamo you specify RCUs and WCUs and you enable autoscaling which adds more... I'm not trying to be pedantic about "The cloud being just someone else's servers". I mean that "serverless" to mean is a very explicit thing about Lambda and writing stateless code. And every existing hosted multi-tenant service shouldn't just be dubbed that.
- not_kurt_godel 8y agoDynamoDB is very much serverless :) I'd highly recommend to anyone remotely interested in serverless and/or databases to read the Dynamo whitepaper to get an idea of how it works: https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html https://www.allthingsdistributed.com/2007/10/amazons_dynamo....
- wanghq 8y agoI'd like to point out that the DynamoDB implementation is quite different than the Dynamo paper. They are totally different things, almost like the relationship between Java and Javascript. DynamoDB is great, especially when it's used wisely.
- atmosx 8y agoDDB is serverless in the sense that you don't have to worry about scalability issues, but you have to worry about design issues[1] if you want to take advantage of everything DynamoDB has to offer. I find dynamo's autoscaling very problematic: It's both slow to kick-in and you can scale down 4 times in 24h, not cost-effective if you have spikes. [1]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.html https://docs.aws.amazon.com/amazondynamodb/latest/developerg...
- pragnesh 8y agonow aws allow to decrease throughput 27 times day. https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html https://docs.aws.amazon.com/amazondynamodb/latest/developerg...
- jonathan-kosgei 8y agoWe got DoS'd with a few hundred million calls over a few days and the dynamodb cost was about $4.
- wanghq 8y agoTo me, DynamoDB is not quite serverless, because users still pay for the reserved capacity units. In contrast, Lambda functions scale automatically.