I thought this was cool but didn't look at the details on it when it came out, it's even cooler than I thought, stack traces at arbitrary break points in cloud services running live with near zero overhead: "Now you can simply pick a line of code, set a watchpoint and the debugger will return local variables and a full stack trace from the next request that executes that line on any replica of your service. There is zero setup time, no complex configurations and no performance impact noticeable to your users. ... Cloud Debugger watches execution on all instances and as soon as one hits the condition the debugger stops watching on all other instances ... The debugger pauses execution at the appropriate line of execution, snapshots the stack and local variables then returns execution to the normal flow. The overhead is minimal and limited."
End printf debugging in the cloud with Google Cloud Debugger Beta
15 plus ones
Shared publicly•View activity
- By the way, I remember way back in the early days of Amazon (1997 or so), we'd very rarely attach gdb to a live webserver to debug a particularly nasty issue we were having trouble reproducing.
Later, after I had left, around 2006 or so, Amazon started to have a lot of trouble debugging their new architecture, which had moved function calls in a monolithic application to a remote function calls in a unfathomable nest of cloud services. Some details on that here: http://research.microsoft.com/pubs/143354/hotac06.pdf
Nowadays, debugging in a highly distributed cloud environment is pretty tough. As this post indicates, a lot of places do little more than logging, basically printf debugging, which is pretty primitive. This idea of being able to cheaply get a stack trace from execution anywhere in a cloud of service calls is pretty nice, almost as good as having gdb attach to a live webserver (and, unlike attaching with gdb, with no visible impact). Nice.Nov 23, 2014
- insert obligatory smalltalker/lisper comment here.
In all seriousness, I really like the feature, but I wish it worked for languages other than Java (support coming soon, they say). It also needs a managed VM right now -- won't work with the usual App Engine deployments.Nov 24, 2014
Add a comment...