pical availability ranges from 3-9s for single-site VFs to 5-9s or higher for VFs with both local and geographic site redundancy. This section focuses on high availability software designs that result in no more than a few minutes per year downtime. Both the failure frequency and the downtime of the software must be carefully managed to achieve high availability. Figure 5.8 shows a software-based services maturity curve for high availability VFs. The previous section considered VF architectures for the Network Cloud. Implicit in those cal- culations was the assumption that failover for both local and georedundancy has a high probability of executing successfully and can be completed very quickly (e.g., in seconds). Also implicit was the assumption that faults are detected with very high probability (i.e., silent failures are very rare Mature Fault software detection Multi-site measures design & failover in Within-site redundancy, failover in Define targets FIGURE 5.8 Software-based services maturity curve for high availability VFs. Building the Network of the Future Service 1 Module 1 Module 2 Module N (Base) Network 1 Network 2 FIGURE 5.9 Virtual service architecture. events) and that the software must be sufficiently mature SO that faults are rare (e.g., less than once a year). These design considerations are covered as part of software maturity. Mature software is characterized by four traits: a low failure rate, accurate fault detection, fast failover to a redundant component, and fast recovery. In addition to these characteristics, there are a number of software techniques and fault tolerant design patterns that can be used to achieve resilient software. Most of the replication designs are based on variations of well-known replication techniques combined with solid software reliability engineering (Lyu, 1996). These techniques apply to virtual as well as physical applications. In order to frame this section, some definitions are illustrated in Figure 5.9. A virtualized service (say a Voice over IP applicatio