Am Sonntag den 03.03.2013 kam es durch ein Routing-Problem bei CloudFlare zu einem Ausfall für alle CloudFlare-Kunden der etwas mehr als eine Stunde angedauerte. Derzeit steht ein Post-Mortem-Bericht von CloudFlare noch aus.
Nach meinem Eindruck war dieser Ausfall wohl einer der kritischsten und längsten Ausfälle bei CloudFlare seit 2011 – seitdem ich CloudFlare einsetze.
Was war passiert? CloudFlare schützt eigentlich eine Site vor Angriffen und optimiert die Seiten-Ladezeiten durch diverse Massnahmen und schließlich schützt CloudFlare auch vor einem Ausfall durch das “Always-On”-Feature. Aber nun waren gerade durch den Einsatz von CloudFlare alle eigentlich noch funktionierenden Sites plötzlich unerreichbar geworden.
Weil zum einen bei den Reverse-Proxies von CloudFlare Fehler auftraten und zum anderen das Routing bei CloudFlare nicht mehr funktionierte war auch die CloudFlare.com Site selbst nicht mehr erreichbar. Durch diese äußerst unglückliche Fehlerkombination konnte man eigentlich nicht mehr sinnvoll eingreifen. Denn wenn nur die Reverse-Proxies von CloudFlare ausgefallen wären hätte man diese über das Webinterface von CloudFlare einfach deaktivieren können so dass der Traffic direkt auf die Quell-Server geleitet wird. Der Fehler wäre so leicht zu umgehen gewesen – man hätte lediglich temporär auf die CloudFlare features verzichten müssen. Aber da auch ein Zugriff auf das WebInterface und die API nicht mehr möglich war ließen sich CloudFlares Reverse-Proxy-Server nicht deaktivieren. CloudFlare selbst war somit fataler Weise zu einem Single-Point-Of-Failure geworden.
Ausser dem Hoffen, dass CloudFlare das Problem rasch behebt war nun für alle CloudFlare-Nutzer die einzige Möglichkeit die man nun noch hatte aus eigener Kraft diesen Single-Point-Of-Failure zu umgehen das Umstellen der Namens-Server. CloudFlare legt ja eigene Zonenfiles an wo dann auch die Reverse-Proxy-Server für einzelne Domains/Subdomains zugeschaltet werden können. Diese Zonenfiles müsste man eigentlich in stets aktueller Form auch noch bei anderen NameServer Anbietern bereit halten damit man im Worstcase auf diese Zurückschalten kann und CloudFlare damit wieder vollständig deaktiviert. Leider ist diese Massnahme nicht kurzfristig umsetzbar, weil hierzu ein DNS-Update erforderlich ist (der Registrar der Domain propagiert die neuen Nameserver) das bis zu 24h dauern kann.
Sicherlich ist es aber keine schlechte Idee die Zonenfiles redundant vorzuhalten damit man notfalls auf einen anderen NameServer Provider umschalten kann. Amazon Route53 bietet sich hier an. Wenn man viele Domains pflegt ist der Aufwand dafür natürlich entsprechend gross und es wäre prima, wenn CloudFlare eine Partnerschaft mit einem unabhängigen Anbieter eingehen könnte damit die Zonenfiles, die man bei CloudFlare unterhält und updated auch immer redundant und unabhängig vorliegen so dass die (zahlenden) Kunden dann im Notfall selbst bei ihrem Registar den Nameserver-Wechsel anstossen könnten. Ein solches Feature wird es wohl nie geben weshalb man sich selbst drum kümmern müsste.
Meine Kritik gilt auch der Status-Seite von CloudFlare die unter www.cloudflare.com/system-status leider ebenfalls ausgefallen war. Besser wäre es, wenn CloudFlare die Status-Seite auf einer unabhängigen Domain wie z.b. www.status-cloudflare.com betreiben würde damit diese erreichbar bleibt falls cloudflare.com selbst ausfällt.
Update: Der Post-Mortem Bericht ist da http://blog.cloudflare.com/todays-outage-post-mortem-82515