
Odnoklassniki ist der größte Nutzer von Apache Cassandra im russischen Internet und einer der größten weltweit. Wir haben 2010 mit der Nutzung von Cassandra zur Speicherung von Fotobewertungen begonnen. Heute verwalten wir Petabytes an Daten auf tausenden von Knoten. Darüber hinaus haben wir sogar unsere eigene eigene .
Am 12. September finden in unserem Büro in St. Petersburg . Der Hauptredner der Veranstaltung wird Oleg Anastasyev, der leitende Ingenieur von Odnoklassniki, sein. Oleg ist ein Experte für verteilte und ausfallsichere Systeme, der seit über 10 Jahren mit Cassandra arbeitet und mehrfach .
Im Vorfeld des Meetups haben wir mit Oleg über die Ausfallsicherheit verteilter Systeme mit Cassandra gesprochen, ihn gefragt, worüber er bei dem Meetup berichten wird, und warum es sich lohnt, an dieser Veranstaltung teilzunehmen.
Oleg begann seine Karriere als Programmierer im Jahr 1995. Er entwickelte Software im Bankenbereich, in der Telekommunikation und im Transportwesen. Seit 2007 ist er als leitender Entwickler bei Odnoklassniki in der Plattform-Entwicklung tätig. Zu seinen Aufgaben gehört die Entwicklung von Architekturen und Lösungen für hochbelastete Systeme, große Datenspeicher sowie die Behebung von Leistungs- und Zuverlässigkeitsproblemen des Portals. Außerdem engagiert er sich in der Schulung von Entwicklern im Unternehmen.
— Oleg, hallo! Im Mai fand der statt, der sich mit Apache Cassandra beschäftigte. Die Teilnehmer berichten, dass die Diskussionen bis spät in die Nacht gingen. Sag bitte, welche Eindrücke hast du vom ersten Meetup?
Entwickler mit verschiedenen Hintergründen aus unterschiedlichen Unternehmen kamen mit ihren Herausforderungen, unerwarteten Lösungsansätzen und faszinierenden Geschichten. Wir konnten den Großteil des Meetups in Form einer Diskussion gestalten, aber es gab so viele Gespräche, dass wir nur ein Drittel der geplanten Themen behandeln konnten. Viel Aufmerksamkeit widmeten wir dem, wie und was wir an unseren echten Produktionsservices überwachen.
Mir hat es sehr gut gefallen und war sehr interessant.
— Laut der Ankündigung wird sich vollständig mit Ausfallsicherheit beschäftigen. Warum haben wir genau dieses Thema gewählt?
Cassandra ist ein typisches, stark beanspruchtes verteiltes System mit einer Vielzahl von Funktionen über die direkte Bearbeitung von Benutzeranfragen hinaus: Gossip, Fehlertoleranz, Schemaänderungsmanagement, Clustererweiterung/-verkleinerung, Anti-Entropie, Backups und Wiederherstellung usw. Wie bei jedem verteilten System steigt mit der Anzahl der Hardwarekomponenten die Wahrscheinlichkeit von Ausfällen. Daher erfordert der Betrieb von Produktionsclustern in Cassandra ein tiefes Verständnis ihrer Funktionsweise, um das Verhalten im Falle von Ausfällen und die erforderlichen Maßnahmen des Betriebspersonals vorhersagen zu können. Im Laufe vieler Jahre der Verwendung von Cassandra haben wir , die wir gerne teilen möchten, und wir wollen auch erörtern, wie Kollegen aus der Branche typische Probleme lösen.
— Was verstehst du unter Ausfallsicherheit, wenn es um Cassandra geht?
Zunächst einmal ist die Fähigkeit des Systems, typische Hardwareausfälle zu überstehen: den Verlust von Maschinen, Festplatten oder die Netzwerkverbindung zu Knoten/Datenzentren. Aber das Thema ist viel umfassender und umfasst insbesondere die Wiederherstellung nach Ausfällen, auch nach solchen, auf die Menschen nur selten vorbereitet sind, wie etwa Bedienfehler.
— Kannst du ein Beispiel für den größten und am stärksten belasteten Datencluster nennen?
Einer unserer größten Cluster ist der Cluster von Geschenken: mehr als 200 Knoten und Hunderte TB Daten. Aber er ist nicht der am stärksten belastete, da er durch einen verteilten Cache geschützt ist. Unsere am stärksten belasteten Cluster verarbeiten Zehntausende von RPS beim Schreiben und Tausende von RPS beim Lesen.
— Wow! Wie oft geht etwas kaputt?
! Insgesamt haben wir mehr als 6.000 Server, und jede Woche werden ein paar Server und mehrere Dutzend Festplatten ersetzt (ohne Berücksichtigung der parallelen Upgrade- und Erweiterungsprozesse). Für jede Art von Ausfall gibt es klare Anweisungen, was zu tun ist und in welcher Reihenfolge, alles ist, wo möglich, automatisiert. Daher sind Ausfälle Routine und geschehen in 99% der Fälle unbemerkt für die Nutzer.
— Wie gehen Sie mit solchen Ausfällen um?
Seit dem Beginn des Betriebs von Cassandra und den ersten Vorfällen haben wir Backup- und Wiederherstellungsverfahren entwickelt und Prozesse für Deployments aufgebaut, die den Zustand der Cassandra-Cluster berücksichtigen und beispielsweise den Neustart von Knoten verhindern, wenn Datenverluste möglich sind. Darüber möchten wir beim Meet-up sprechen.
— Wie Sie gesagt haben, gibt es absolut zuverlässige Systeme nicht. Auf welche Arten von Ausfällen sind Sie vorbereitet und können diese überstehen?
Was die Installationen unserer Cassandra-Cluster betrifft, so bemerken die Nutzer nichts, selbst wenn wir mehrere Maschinen in einem Rechenzentrum oder sogar ein ganzes Rechenzentrum verlieren (das ist schon vorgekommen). Mit der zunehmenden Anzahl an Rechenzentren denken wir darüber nach, die Betriebsfähigkeit bei einem Ausfall von zwei Rechenzentren sicherzustellen.
— Was fehlt deiner Meinung nach Cassandra in Bezug auf Fehlertoleranz?
Cassandra, wie viele andere frühe NoSQL-Speicher, erfordert ein tiefes Verständnis ihrer internen Funktionsweise und der dynamischen Prozesse. Ich würde sagen, dass es ihr an Einfachheit, Vorhersehbarkeit und Beobachtbarkeit mangelt. Aber es wäre interessant, die Meinungen anderer Teilnehmer des Meetups zu hören!
Oleg, vielen Dank, dass du dir die Zeit genommen hast, Fragen zu beantworten!
Wir freuen uns auf alle, die am 12. September in unserem Büro in St. Petersburg mit Experten im Bereich Apache Cassandra-Betrieb sprechen möchten.
Kommt vorbei, es wird spannend!
Quelle: habr.com
