Minirozhovor s Olegem Anastasyevem: odolnost proti chybám v Apache Cassandra

Minirozhovor s Olegem Anastasyevem: odolnost proti chybám v Apache Cassandra

Odnoklassniki je největším uživatelem Apache Cassandra na RuNet a jedním z největších na světě. Cassandru jsme začali používat v roce 2010 k ukládání hodnocení fotografií a nyní Cassandra spravuje petabajty dat na tisících uzlů, ve skutečnosti jsme dokonce vyvinuli vlastní Transakční databáze NewSQL.
12. září v naší kanceláři v Petrohradě uspořádáme druhé setkání věnované Apache Cassandře. Hlavním řečníkem akce bude hlavní inženýr Odnoklassniki Oleg Anastasyev. Oleg je odborníkem v oblasti distribuovaných a poruchových systémů, s Cassandrou spolupracuje více než 10 let a opakovaně hovořil o funkcích používání tohoto produktu na konferencích.

V předvečer setkání jsme s Cassandrou hovořili s Olegem o odolnosti distribuovaných systémů vůči chybám, zeptali jsme se, o čem bude na setkání mluvit a proč stojí za to se této akce zúčastnit.

Oleg začal svou programátorskou kariéru v roce 1995. Vyvinul software v bankovnictví, telekomunikacích a dopravě. Od roku 2007 pracuje jako přední vývojář v Odnoklassniki v týmu platformy. Mezi jeho odpovědnosti patří vývoj architektur a řešení pro systémy s vysokou zátěží, velké datové sklady a řešení problémů s výkonem a spolehlivostí portálu. V rámci společnosti také školí vývojáře.

- Olega, ahoj! V květnu proběhla první setkání, věnované Apache Cassandře, účastníci říkají, že diskuse probíhaly až do pozdních nočních hodin, řekněte mi prosím, jaké jsou vaše dojmy z prvního setkání?

Vývojáři s různým zázemím z různých společností přišli s vlastní bolestí, nečekanými řešeními problémů a úžasnými příběhy. Většinu meetupu se nám podařilo vést v diskusním formátu, ale diskuzí bylo tolik, že jsme se mohli dotknout jen třetiny plánovaných témat. Velkou pozornost jsme věnovali tomu, jak a co sledujeme na příkladu našich reálných produkčních služeb.

Zaujalo mě to a moc se mi to líbilo.

- Soudě podle oznámení, druhé setkání bude celá věnována toleranci chyb, proč jste si vybrali toto téma?

Cassandra je typický vytížený distribuovaný systém s obrovským množstvím funkcí nad rámec přímé obsluhy požadavků uživatelů: klepy, detekce selhání, šíření změn schématu, rozšiřování/zmenšování clusteru, antientropie, zálohování a obnova atd. Stejně jako v každém distribuovaném systému platí, že s rostoucím množstvím hardwaru se zvyšuje pravděpodobnost selhání, takže provoz produkčních klastrů Cassandra vyžaduje hluboké porozumění jeho struktuře, aby bylo možné předvídat chování v případě selhání a akcí operátora. Po mnoha letech používání Cassandry jsme nashromáždili značné odborné znalosti, které jsme připraveni sdílet, a také chceme probrat, jak kolegové v obchodě řeší typické problémy.

— Když přijde řeč na Cassandru, co myslíte tolerancí chyb?

V první řadě je to samozřejmě schopnost systému přežít typické selhání hardwaru: ztrátu strojů, disků nebo síťové konektivity s uzly/datovými centry. Samotné téma je však mnohem širší a zahrnuje zejména zotavení po selhání, včetně selhání, na které jsou lidé málokdy připraveni, například chyby operátora.

— Můžete uvést příklad nejvíce zatíženého a největšího datového clusteru?

Jedním z našich největších clusterů je cluster dárků: více než 200 uzlů a stovky TB dat. Není však nejvíce zatěžován, protože je pokryt distribuovanou mezipamětí. Naše nejvytíženější clustery zvládají desítky tisíc RPS pro zápis a tisíce RPS pro čtení.

- Páni! Jak často se něco zlomí?

Ano, celou dobu! Celkem máme více než 6 tisíc serverů a každý týden se vymění pár serverů a několik desítek disků (bez zohlednění paralelních procesů upgradu a rozšiřování strojového parku). Pro každý typ poruchy existuje jasný návod, co dělat a v jakém pořadí, vše je automatizováno, kdykoli je to možné, takže poruchy jsou rutinní a v 99 % případů se vyskytují bez povšimnutí uživatelů.

— Jak se vyrovnáváte s takovým odmítnutím?

Od samého začátku fungování Cassandry a prvních incidentů jsme pracovali na mechanismech pro zálohování a obnovu z nich, budovali nasazovací procedury, které zohledňují stav Cassandrových clusterů a například neumožňují restart uzlů pokud je možná ztráta dat. O tom všem plánujeme mluvit na setkání.

— Jak jste řekl, neexistují žádné absolutně spolehlivé systémy. Na jaké typy neúspěchů se připravujete a jste schopni je zvládnout?

Pokud mluvíme o našich instalacích clusterů Cassandra, uživatelé si ničeho nevšimnou, pokud ztratíme několik strojů v jednom DC nebo jeden celý DC (to se stalo). S nárůstem počtu DC přemýšlíme o tom, že začneme zajišťovat provozuschopnost v případě výpadku dvou DC.

— Co si myslíte, že Cassandře chybí, pokud jde o odolnost proti chybám?

Cassandra, stejně jako mnoho jiných raných obchodů NoSQL, vyžaduje hluboké pochopení své vnitřní struktury a probíhajících dynamických procesů. Řekl bych, že tomu chybí jednoduchost, předvídatelnost a pozorovatelnost. Bude ale zajímavé slyšet názory ostatních účastníků setkání!

Olegu, moc vám děkuji, že jste si udělal čas na zodpovězení otázek!

Na všechny, kteří chtějí komunikovat s odborníky v oblasti provozu Apache Cassandra, čekáme na meetupu 12. září v naší petrohradské kanceláři.

Přijďte, bude to zajímavé!

Zaregistrujte se na akci.

Zdroj: www.habr.com

Přidat komentář