In this paper we apply survivability and software rejuvenation modeling to evaluate alternative software architectures. We analyze failure history in two large industrial projects and propose a unified failure model to be used for the assessment of system survivability at the software architecture phase. Our goal is to assess the mean time to repair a system, conditioned that it starts from a failure prone state. To this aim, we use the failure model as one of the components of an analytical survivability framework which yields the desired metric of interest. The framework comprises a phased-recovery model and a software rejuvenation model. We instantiate the proposed framework to analyze a data streaming system used as case study. Numerical investigation allows us to quantify the impact of architecture deployment alternatives, phased recovery and software rejuvenation on the mean time to repair.