J'ai 6 serveurs iis et j'ai aussi un service WCF.
J'utilise ARR (Application Request Routing), une extension du module IIS, pour acheminer la demande vers ma ferme web. Cela fonctionne très bien.
J'utilise également NLB pour mon service WCF comme Mathieu le dit.
Pour mon serveur SQL, j'utilise Hyper-V, deux VM pour mon serveur sql, avec un cluster SQL et un cluster Windows faileover et une migration en direct.
Je vais répondre en français, donc si quelqu'un peut traduire, ce sera apprécié.
Ce que vous devez faire, c'est avoir un serveur de cluster. Ce serveur va servir à maintenir le "heart beat" entre vos deux serveur SQL. Les deux serveur SQL doivent être sur des machines distinct, mais doivent partager le même partage réseaux (SAN ou NAS ou autre). Les bases de donnée sont monté sur un seul serveur à la fois. Lorsque le "heart beat" est brisé, l'autre serveur prend la relève, et monte en une fraction de seconde les base de donnée et votre service est revenue, ceci est le "failover cluster". Lorsque le processus de transfert de serveur commence vous pouvez perdre quelques pings. Ce qui va détruire tous vos connection actuelle vers la base de donnée. La seul facons que vous pouvez être "UP" à 99 % c'est d'y ajouter live migration. Vous avez un 2 serveur Hyper-V (host) qui monte vos deux serveur SQL (un sur chaque host), vous activer le live migration entre vos deux machine virtuel, donc si vous avez à redémarer un host (serveur qui héberge SQL), vous faites un live migration de votre machine sql d'un host à l'autre. La mémoire sera transferer d'un coté à l'autre et vous n'aurez aucune perte de connection. Votre failover fonctionne toujours, donc si c'est la machine virtuelle qui détient le service sql qui plante, alors c'est l'autre qui va prendre la relève et vous perdrez alors quelques ping mais votre service sera remonté très rapidement.
J'epère que cela va vous aider, et désoler pour le francais, mais en anglais j'aurais surement été mal compris.