I have looked around but couldn't find an answer for my requirements of managing a large online project. By large, I mean a web based service that depends on multiple back-end technologies, massive amount of diverse computations on the fly, a lot of storage requirements; and by live, I mean that on the front-end it tries to serve a massive user-base and has to be up all the time (I think Google would be a perfect example).
In my case, I am developing a forensics tool and I have to meet at least two requirements:
- That my tool/ service is always on and available.
- That I or my tool can keep on improving the tool/ service itself.
At this moment, I can't manage to meet both the above points together; if I do one, I violate the other, but I'm sure there's a "standard" way around. I am sure my requirements (even though they look contradictory to me at the moment) are no different from say what Google and Facebook do on a regular basis.
I hope it's clear by now that I am not asking abouthow to manage complexities/ fixes that have to be addressed as software projects tend to get bigger. I think this question answers that quite well- How to keep a big and complex software product maintainable over the years?