Fork me on GitHub
#off-topic
<
2015-11-02
>
alandipert03:11:36

@cfleming: what are you thinking about lambda-ing?

alandipert03:11:44

btw there is #C09N0H1RB simple_smile

cfleming03:11:25

@alandipert: True, although I started talking about the profits involved rather than the technical bits, and the conversation degraded from there simple_smile

cfleming03:11:10

@alandipert: Mostly things like low-volume API servers. One example would be licence generation when someone buys Cursive (via webhook from payment processor), or receiving exception reports when people submit them from the IDE.

cfleming03:11:32

Similarly for IDE usage stats, they’re only sent once a week per user - right now they get POSTed to nginx which puts the POST body in a log, and I download it and parse it once in a while. It’s pretty ghetto, Lambda would be nice for that.

cfleming03:11:49

@alandipert: Are you lambda-ing?

alandipert03:11:17

@cfleming: indeed... but nothing i wrote. we deploy a lambda function that amazon open-sourced to shovel data from S3 into redshift every time an s3 event fires

alandipert03:11:55

i have investigated using it to deploy our ad-tier web things, currently node on EC2

cfleming03:11:18

node-js or cljs?

alandipert03:11:23

but we decided that was a no-go, mostly because lambda doesn't have a disk, and we need to spool if dynamo is down

cfleming03:11:34

Is that a common occurrence?

alandipert03:11:49

common enough to be a concern

cfleming03:11:53

I thought HA was the whole point?

cfleming03:11:58

That is worrying.

alandipert03:11:09

well, it was down down recently... for like a week it was highly unstable

alandipert03:11:26

but it can also be effectively down because it's throttling us

cfleming03:11:29

Could you queue in SQS when that happens?

alandipert03:11:56

we could, but it would still involve network... and we also see flakiness there

alandipert03:11:10

basically these impression requests coming in are our data of record and we design to lose as few of them as we can

alandipert03:11:14

(they're how everyone gets paid)

cfleming03:11:33

Yeah, you’re not filling me with confidence that I could use it for licence generation, for example.

alandipert03:11:44

the direction we want to go is that nothing directly reads or writes from network or AWS service, but from a local disk-backed queue

alandipert03:11:58

well, i think that would be a good use-case

alandipert03:11:04

since you own the client and can retry

alandipert03:11:10

we don't own the clients and never get the impression back

cfleming03:11:21

No, I don’t - that comes from the payment processor

cfleming03:11:41

I could sync with their records, or when a user complains, but it’s a bit shit

cfleming03:11:03

Perhaps this should go to #C09N0H1RB at this point

alandipert03:11:21

yeah i still thing lambda would be worth trying in your case

alandipert03:11:27

were it not that the error log situation is awful

cfleming03:11:45

Google doesn’t offer anything equivalent in their cloud, right?

alandipert03:11:47

so, when lambda problems do happen it's difficult to diagnose and fix

alandipert03:11:55

not that i'm aware of

cfleming03:11:59

I hear better things about their network and general reliability

cfleming03:11:14

But if I have to spin up a full-time instance I’ll just stay on my VPS

alandipert03:11:43

yeah that's what i would do if i didn't need to scale beyond 1 machine

alandipert03:11:53

keep all the logs on 1 box, easily see what happened/what's going on

cfleming03:11:09

I can always do an OOB thing like send an email when things go wrong, since the amount of data is small and errors would (supposedly) be infrequent

alandipert03:11:21

the other lambda motivation for us is more precise autoscaling

cfleming03:11:22

Yeah, but you end up maintaining a lot of moving parts.

cfleming03:11:30

Lambda seems like it ought to allow me to get rid of the VPS entirely - serve the static site out of S3, and any moving parts can be lambdas

cfleming03:11:42

But maybe it’s not there yet.

alandipert03:11:58

it's definitely worth at least trying, it really got the creative juices flowing

alandipert03:11:05

a weird and new way to build apps

cfleming03:11:14

Yeah, it seems like there’s a lot of potential there.

cfleming03:11:06

I’d have to run a JVM one (Kotlin, probably) for licence generation because of the encryption, but I’d be interested to try CLJS for the error catching case.

alandipert04:11:23

for the errors, you could put them on kinesis... and then have other lambdas that consume from kinesis

cfleming04:11:44

Ok, I’m definitely moving this to #C09N0H1RB now

borkdude08:11:04

@alandipert: @cfleming I'm hearing about outages now and then on AWS. What if your whole company runs on AWS... how does that work?

cfleming08:11:30

@borkdude: You have outages, I guess

cfleming08:11:51

It does happen, you see it on HN from time to time

cfleming08:11:26

Bigger companies can fail over between availability zones etc, and can probably handle significant failures in a particular zone

cfleming09:11:37

Every so often (once a year?) AWS has a significant cross-zone outage, and no-one can see Netflix

alandipert12:11:20

@borkdude: yeah... gotta design for pieces of AWS going down in particular regions. predecessors at my company did not, but we're working on it