2. About me Kevin Schroeder Consultant for Zend Programmer Sys Admin Author Etc. Me!
3. "As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to spent in finding mistakes in my own programs" - Maurice Wilkes, 1949
6. The point NOT to highlight an individual company Why not? How many web-based applications look like this when an error occurs? Answer All of them Web requests are intended to be short and quick If an error occurs, recover, quit and go on to the next request
7. Debugging the old way var_dump($var)(I still use this occasionally) Some obvious problems What if you forget to remove it? Are you doing this in a production environment? If you are … Very limited scope
8. Debugging the better way – ZS Debugging You can see what the variable values are at run time and modify them too Good for development Not good for production
9. Monitoring MUCH better for production systems You get a lot of really good information to help replay the issue
10. Monitoring You are able to debug or profile the event on a remote machine
13. Code Tracing: Rapid Problem Resolution Similar in concept to a black box flight recorder - Eliminates the need to reproduce problems in order to find root cause Activated automatically (through rules) or manually Records live application execution Function calls Arguments and return values Errors Duration Useful in all parts of the software development lifecycle
14. Practical Code Tracing Functionality By capturing PHP applications code in real time: Code Tracing enables to capture problems when they occur. Code Tracing recorded data eliminate the need to reproduce the steps led up to a failure. Code Tracing enables to analyze PHP applications execution both in production and in test lab environments, by that, it enables to quickly find the root cause of problems. 14 Insert->Header & Footer
15. Supported Workflows Manual workflow: Used while performing unit tests during development or when running functional tests in QA. Calling URLs as part of the testing process Monitoring events workflow Used when running automated tests and load tests and when running your application in staging or production environments. Code tracing extends the monitoring rules mechanism by enabling to save trace data when a monitoring event is generated. Suitable for production in Standby mode
18. Code Tracing – Monitoring Level Modes Always on Collects trace data when monitoring event is kicked off Collects trace data for manual requests. Inactive Collects data only for manual requests. Standby Off (turn code tracing extension off)
19. Code Tracing – Operating Modes Standby mode A monitoring event activates code tracing Trace mode: On Standby Tracing switches back for “Standby” mode Tracing is activated for X minutes Time A monitoring event with an “Activate Trace” action is generated Collect trace data according to the monitoring set of rules
29. The all-important question… “Where should I use this?” Development – Possibly, though profiling and debugging may be more pertinent Testing – Absolutely Staging – Absolutely Production - Absolutely In Standby mode Activated on a subset of servers
30. Questions? Want to join in the public beta? Go to http://www.zend.com/en/products/server/zend-server-5-new for more information kevin@zend.com