Wednesday, March 03, 2010

Why I’m (truly and geekishly) excited about Zend Server 5!

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!

26 comments:

  1. I know this from the Zend Platform, so this is not that fresh to me. But I can't find a list of the differences regarding code tracing/monitoring between the old and the new Zend solution. Has anybody a white paper with this information ?

    ReplyDelete
  2. @BigByteboy: zend platform only had event context. A backtrace of the code up until the moment it failed is new in Zend Server.

    @Andi: one of my beefs with code tracing solutions is that while they look shiny and useful, they almost never actually are. This is because in complex software, the cause of a problem is typically not in a direct line between the current line and where that call eventually came from. It's often a combination of situations throughout the execution of a script. While a trace helps you navigate this execution path, the amount of branches in an execution tree is so large, that you can still spend hours finding the actual cause of the problem. (To test this hypothesis, just change a random variable in an app like Wordpress, then hand the crashing app over to someone and ask them to find the problem using the code trace)

    So it's helpful, but I cannot join in your excitement of this being the holy grail.

    ReplyDelete
  3. @Ivo, I disagree with your claim that code tracing features are almost never useful.

    Code Tracing doesn't require you to have a direct line between the error location and the cause, since it traces the entire request (not only the backtrace from a certain location). E.G if you have a prepared SQL statement that fail when you cann ->execute(), you will see the ->prepare() call with the SQL code from a few lines above, even if it is in some other path of the tree.

    Does it solve all problems instantly? definitely not, so in that sense it is not the "holy grail". But if you give a trace file to someone who knows the code, they will probably be able to identify problems way faster than if they are flying blind. I'm sure you know the usual developer answer "cannot reproduce" - well, if you have a trace, it kills that argument.

    Sure, give it to someone who doesn't know the code and it will still take them a lot of time (potentially hours) to figure out what's going on, if at all. But still, it's probably way better than with simply an error message in the log, a backtrace or even an event context.

    So in short I agree that it's not the cure for all problems, but I think (and I know I'm very biased) it's a very useful tool, especially because typically in production environments you have *nothing*, except for maybe an error in the log.

    ReplyDelete
  4. I agree with IVO, it's always a combination of sitauations throughout the script.

    ReplyDelete
  5. I am not a technical person so don't know the technical things that much but I like to have knowledge of each domain and new things. Thanks to you I get the opportunity to know about Zend server. I would like to read more about it's functionality.

    ReplyDelete
  6. Hi
    Your bolg is very nice. I have really learnt a lot from this blog thanks. logo design

    ReplyDelete
  7. When everything is coming your way, you are in the wrong lane.............................................

    ReplyDelete
  8. You do a great job. Thanks for article. I want also mention about php form.

    ReplyDelete
  9. This blog is useful, but with limited knowledge of how people can understand.
    cheap bulgaria flights

    ReplyDelete
  10. Hello Andi, as you told about your projects..i have always dreamed of creating something new and working on different projects regularly rather than repetitive work.

    ReplyDelete
  11. You portrayed the topic well.. Especially the concluding paragraph and the mid section made a good read... keep posting...All the best.

    ReplyDelete
  12. I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. ..... by OPS 571 Final Exam provider.

    ReplyDelete
  13. The visitors are to be tracked frequently.. this tips really good one to follow

    with,,,the main benefits is to understand customer mind set..by PSY 201 Week 3 Assignment

    ReplyDelete
  14. I have discover some good stuff here. decisively price bookmarking for revisiting. i ponder however a allotment try you set to make the kind of glorious informative web site.by
    RES 342 week 4 Individual Assignment

    ReplyDelete
  15. This is the first time i am reading your post and admire that you posted article which gives users lot of information regarding particular topic thanks for this share.I am impressed with the content you provided....... by ECO 365 Final Exam provider.

    ReplyDelete
  16. Superb commodity ,I absolutely accepted with it, This is accomplished to apprehend and admired pro potential,I absolutely bookmark it, pro augment read. Appreciation pro sharing. I like it by
    MGT 420 provider.

    ReplyDelete
  17. If you desire to grow your knowledge only keep visiting this web site and be updated with the most up-to-date news update posted here........ by MGT 350 Final Exam provider.

    ReplyDelete
  18. Your Blog is really appreciable. You did a great job by sharing this valuable and helpful Article with us........ by MGT 311 Final Exam provider.

    ReplyDelete
  19. I would prefer to categorical feeling you for the efforts you have got created in distributing this. i'm hoping an equivalent best work from you within the future.by RES 342 Final Exam

    ReplyDelete
  20. Get enough money from automotive title loans to not alone fix what is broken, however provides it a shiny new paint job in addition. Amendment the color, provides it some character. it's about to be like having a replacement automotive whereas not the auto title cash loans chicago new automotive payment. hoping on what proportion you borrowed, you'll have it nurture in 2 years or less.

    ReplyDelete