Zendesk has been running in production for a month now. From a technicians perspective, going into production means that you get to know your application really well, really quickly.
Before going into production, we've had Zendesk running in a staging environment which is basically an internal environment in which we deploy production quality code. Staging is where we detect and handle common performance issues such as a slow database. In staging, we've been continuously running pilot operations with some of our beta customers and we've been "eating our own dog food" by using Zendesk for managing the development of Zendesk.
Staging does not act quite like production due to a single missing factor that's really hard to imitate: You. End-users can and will do things to software that the developers and pilot-testers have not thought of. End-users put a different type of load on your application than normal benchmarking software does. End-users behave in ways that are hard to predict and thus implement in our automated test suites.
In this past month of exposing Zendesk to end-users, we've located and solved several bottle-necks. We've added another server to our cluster for running background jobs for indexing data, and handling inbound/outbound mail as well as processing time consuming jobs. This means, that the application has been trimmed some, in order to stay a lean ticket processing machine. We aim to keep the request/response cycles very fast, and do this by introducing caching where applicable and rework the internals when and where new hot spots show up.
Are we done yet? No. Far from it. We think that Zendesk has been pretty responsive in the recent weeks, but we can and will do better. This first month has seen a lot of redeployments of the application. Basically this means that we've added new or improved functionality and have had to restart the application. After a restart, Zendesk will feel slow while the content gets cached on the server, as well as in your browser. This is something that we'll be addressing in the weeks to come.
On the feature side, we've heard from several of you and we've listened. So far, we've created support for new end users via mail, a feature which we look forward to dig further into and make the best ever email integration for user/help desk. We'll have a solution ready for supporting anonymous end-users (ie. unverified in Zendesk) shortly, and looking a bit further ahead, we'll have an even better and completely hassle-free solution.