It has been about a month now since the roll out and you can see the traffic trends rising since we started this process back in January. At the rate google is crawilng the data, the projection is that traffic will continue to rise well into the fall as everything is indexed.
With that said, we are about to surpass several sites on the way of traffic including reddit.com, fark.com, mcdonalds.com, and ibm.com to name a few. As a developer, seeing the metrics come back helps motivate and encourage the work that I've done. Even now we are still dealing with speed bumps along the way. None of which are noticeable as far as traffic is concerned but this maintained scalability is certainly a huge task. Using Drupal as a back end has proven that there are several challenges with how we proceed going forward. We've decided to scrap the MySQL Master/Master replication due to Drupal's sequences tables and duplicate key problems. An issue easily fixed if only auto increment was used... but alas without rewriting a good chunk of the code base going forward we must adapt to Master/Slave Read/Write splitting. It seems a week does not go by without encountering a scaling/replication pitfall. Drupal's general compatibility attitude torwards their framework makes it very difficult to leverage any perticular technology like MySQL to it's maximum because the database layer is written with several database backends in mind. A word of caution going for other developers that when they plan on creating a high traffic web site, there is a point where an up front investment in the infrastructure and backend will pay off huge. I believe we're reaching that point.
The unfortunate part with rapid growth is if the team is capable of adjusting at the same pace. While there is only but so much that can be planned ahead, now more than ever it is important that issues are indetified long before the become customer facing because the stakes are so much higher. Despite a successful launch, there is still a lot more ahead. How much time do we invest into new features, maintenance, and re-writes? What takes a higher priority, growth or consumer experience? Do we have the resources to invest in research and development?
At the end of every milestone, I find it necessary everyone pats themselves on the back, take deep breath, regroup as a team, and the cycle begins all over again. The gaps in between the end of one project and a start of another is the most important time for management and development to be in step with each other so everyone can move forward rowing in the same direction. Revisit company values, mission statements, and have meaningfull follow up discussions on what went well and what didn't. If as a team there is no time allocated for dialogue, despite accomplishing the task at hand, the same problems will occur over and over again. Not all problems in development are technical-- process and communication are consistent issues that seems to always manifest one way or another when working in a collaborative enviroment and it's important to determine what works well in the current situation. What may have worked in the past on a project, at a previous job, or for one person might not work now.
Congratulations on a job well done, let's open the dialogue and relish in the reflection time... that went well, what now?