Wednesday, March 03, 2010

Over the years I’ve played key roles in many software projects. Although I have had many successes there are only a few which were truly memorable. On average I probably do a very exciting project every three years. I would say that’s above industry standards :)

Last week we released Zend Server 5 and it is another memorable moment for me. Not because the process of getting it out the door was all smooth (it sometimes felt like pulling teeth) or because it’s a new major version of Zend Server.

It’s because the new code tracing feature gets me very excited and is a kickass technology. Code tracing solves real problems for developers and IT operation teams. One of the biggest challenges in managing production environments is troubleshooting problems. Whether it is an application that runs transactions against a database, calls Web Services, or interoperates with a Java app server, being able to reproduce the problem after the fact is very often hard and sometimes just impossible. Working on such problems has always killed my productivity and reduced the amount of time I could truly be focused on writing new code.

This is where code tracing comes in. It’s a very cool technology that is optimized to run in production and can keep track of what’s happening deep within the PHP application. It hooks into our event system that tracks DB events, slow scripts, errors, and more. When something goes wrong it can dump a snapshot of the whole execution flow – function calls, arguments, return values, memory consumed, duration – from the beginning of the request to the point where the error occurs. This enables developers to analyze and triage the problem after the fact – easily and efficiently. Best of all – while it’s targeted at production (high performance and robust) it’s also extremely useful during development and testing.

What makes this feature even cooler is that Adobe worked closely with us to build a really nice Flex UI (http://static.zend.com/topics/Zend-Server-code-trace.png) for analyzing code tracing. It feels good to have stable and efficient production technology, but it’s even better when there’s visualization that enables the users to interact with the data quickly and effectively. Thanks to Adobe for helping us build a superb UI! This is just the first version of the UI – the sky’s definitely the limit with where this can go.

I am proud of what we’ve built and the people who participated in building it. I have no doubt that it will lead to tremendous time savings for PHP shops and make developers’ lives significantly easier and happier. I just hope I don’t need to wait another three years now for the next big thing… I bet not!