5 ms·
We've shipped something simple and non-mission-critical in production (URL rewriting for ad placements). It has been pretty much set-and-forget. Last anyone ha
by cimmanom 8y ago
We've shipped something simple and non-mission-critical in production (URL rewriting for ad placements).
It has been pretty much set-and-forget. Last anyone had to even look at it was almost 3 years ago, and afaik it's still working (our ad sales team would be complaining loudly if it weren't).
For something peripheral like that, it's nice not to have to run servers for it or devote any energy to keeping it running.
In terms of both server costs and upkeep costs, the economics have been highly favorable.
I'm not sure I'd use it yet for something mission-critical or that shipped changes frequently. My recollection is that when we did have to adjust it, debugging was a bear. Tho tooling for that may have improved in the last 30 months.
- exelius 8y agoYou front production with an API gateway and version your APIs. You turn migrations into a business validation and testing process rather than a technical dependency; using the load balancer / gateway as the control lever. In this way, serverless can actually be WAY better than traditional methods for dealing with frequent changes. You can have many valid endpoints, but only one “production” endpoint that changes based on business rules (or even split for A/B testing)
- cimmanom 8y agoFor some infrastructures and processes that may make sense. The problem for us was that when something didn't work as expected, it was very difficult to determine what was going wrong.
- tbrock 8y agoRegarding the tooling: I hated debugging Lambdas via CloudWatch logs when using them for Hustle, it drove me to drink. I eventually got upset enough that I made a tool to stream the cloudwatch logs to the terminal and colorize, indent + nicely format json output: https://github.com/TylerBrock/saw https://github.com/TylerBrock/saw
- mbu 8y agoThat looks like a nice tool! Will check it out. Have you tried anything like iopipe for helping debug lambdas?
- tbrock 8y agoNo I haven’t tried it. I’ll give it a look.
- kolanos 8y agoFor anyone interested in giving IOpipe a try, it supports Node.js [0], Python [1], Java [2] and Go [3]. [0]: https://github.com/iopipe/iopipe-js/ https://github.com/iopipe/iopipe-js/ [1]: https://github.com/iopipe/iopipe-python/ https://github.com/iopipe/iopipe-python/ [2]: https://github.com/iopipe/iopipe-java/ https://github.com/iopipe/iopipe-java/ [3]: https://github.com/iopipe/iopipe-go/ https://github.com/iopipe/iopipe-go/ Disclosure: Work on the Python and Go agents.
- jonathan-kosgei 8y agoThere's also https://github.com/rpgreen/apilogs https://github.com/rpgreen/apilogs but I haven't yet gotten it to work. Cloudwatch feels like it was not made for humans. Searching and filtering for specific log events is a huge pain. I think one of the best things one could do is to pipe your Cloudwatch logs to an ElasticSearch cluster.
- tbrock 8y agoAnything where you have to install python is kind of a drag. Same thing with awslogs, etc... Saw installs as a single binary, is performant, and has better looking output than all of them.
- jonathan-kosgei 8y agoOne of the best things we did at ipdata was start using Sentry in our lambda functions. We caught an unbelievable number of silent errors that would've been impossible to find with cloudwatch.