19 hlav hydry. Velký přehled programu

Ve dnech 11-12 července se v Petrohradě uskuteční konference Hydra, zaměřená na vývoj paralelních a distribuovaných systémů. Výhodou Hydry je, že spojuje skvělé vědce (které obvykle lze najít pouze na zahraničních vědeckých konferencích) a známé praktikující inženýry do jednoho velkého programu na pomezí vědy a praxe.

Hydra je jednou z našich nejdůležitějších konferencí za posledních několik let. Připravovala se na ni velmi důkladně, byl proveden výběr přednášejících a příspěvků. Minulý týden o tom vyšlo habrointerview s ředitelem společnosti JUG.ru Group, Alexejem Fedorovem (23derevo).

Jsme už mluvili o třech významných účastnících, zakladatelích teorie distribuovaných systémů - Leslie Lamportovi, Maurice Herlihym a Michaelu Scottovi. Nyní je čas podívat se podrobně na celý program!

19 hlav hydry. Velký přehled programu

Motivace

Pokud se zabýváte programováním, tak či onak se setkáváte s vícevláknovostí a distribuovanými výpočty. Odborníci v příslušných oblastech s nimi pracují přímo, ale distribuovanost se na nás neustále dívá: v každém vícejadrovém počítači nebo distribuované službě najdete něco, co současně provádí výpočty.

Existuje mnoho konferencí, které odhalují určité aspekty aplikovaného programování. Na druhé straně spektra máme speciální vědecké školy, které ve formátu přednášek odhalují obrovské objemy složité teorie. Například paralelně s Hydrou probíhá v Petrohradě škola SPTDC. Na konferenci Hydra jsme se snažili spojit drsnou praxi, vědu a vše, co je na jejich pomezí.

Zamyslete se nad tímto: žijeme v úžasné době, kdy můžete osobně potkat zakladatele oblasti vědy a inženýrství, kterou se zabýváme. Fyzičtí vědci nemohou potkat ani Newtona, ani Einsteina - vlak už odjel. Ale vedle nás stále žijí ti, kdo vytvořili základy teorie distribuovaných systémů, vymysleli populární programovací jazyky a poprvé to všechno přetvořili do funkčních prototypů. Tito lidé nezanechali svou práci na půli cesty, právě teď se zabývají aktuálními problémy na celosvětově známých univerzitách a společnostech a jsou největšími zdroji znalostí a zkušeností v současnosti.

Na druhou stranu, příležitost se s nimi setkat obvykle zůstává čistě teoretická: málokdo z nás může neustále sledovat veřejné akce na nějaké univerzitě v Rochesteru, aby pak mohl rychle vyrazit do USA a zpět na přednášku k Michaelu Scottovi. Navštívit všechny účastníky Hydra by stálo pořádnou sumu, nemluvě o ztraceném čase (i když to zní jako zajímavý úkol).

Na druhou stranu máme spoustu předních inženýrů, kteří právě teď pracují na aktuálních problémech distribuovaných systémů, a ti určitě mají co říct. Ale problém je ten — oni pracují, a jejich čas je drahý. Ano, pokud jsi zaměstnanec Microsoftu, Google nebo JetBrains, šance potkat jednoho z známých řečníků na interní akci se výrazně zvyšuje, ale jinak — ne, to se nestává každý den.

Takže konference Hydra plní důležitý úkol, který většina z nás nemůže udělat sama — v jednom místě a v jednom čase spojuje lidi, jejichž myšlenky nebo komunikace mohou změnit váš život. Připouštím, že zdaleka ne všichni potřebují distribuované systémy, nějaké složité fundamentální záležitosti. Můžete po celý život programovat CRUD aplikace v PHP a být docela šťastní. Ale pro ty, kteří to potřebují — to je vaše šance.

Od prvního oznámení konference Hydra na Habrú uplynulo už dost času. Během té doby byla odvedena obrovská práce — a teď máme seznam téměř všech přednášek. Žádné mdlé jednoprvkové algoritmy, jen čistý distribuovaný hardcore! Pojďme přestat s obecnými slovy a podívejme se, co nyní máme na stole.

Úvodní přednášky

Úvodní přednášky začínají a končí dny konference. Obvykle smysl úvodní přednášky je nastavit celkového ducha a směr konference. Závěrečná přednáška shrnuje a vysvětluje, jak s nabytými znalostmi a dovednostmi v průběhu konference žít. Začátek a konec: to, co si zapamatujeme nejlépe, a má zvláštní význam.

Cliff Click — Algoritmus H2O distribuovaného K/V

19 hlav hydry. Velký přehled programu Cliff je legenda světa Javy. Na konci 90. let napsal pro svou dizertační práci dokument s názvem "Kombinování analýz, kombinování optimalizací", která se po chvíli stala základem pro HotSpot JVM Server Compiler. O dva roky později už pracoval ve společnosti Sun Microsystems na JVM a ukázal celému světu, že JIT má právo na existenci. Celý tento příběh o tom, že Java je jedním z nejrychlejších moderních runtime s nejchytřejšími a nejrychlejšími optimalizacemi, začal právě s Cliffem Clickem. Na začátku se mělo za to, že pokud je něco dostupné statickému kompilátoru, nemá smysl to ani zkoušet JIT-ovat. Díky práci Cliffa a jeho týmu začaly být všechny nové jazyky vytvářeny s myšlenkou na JIT-kompilaci jako výchozí nastavení. Bezpochyby to byla práce ne pro jednoho člověka, ale Cliff v ní hrál velmi důležitou roli.

V úvodním keynote představí Cliff své další podnikání — H2O, in-memory platformu pro distribuované a škálovatelné strojové učení pro průmyslové využití. Přesněji řečeno — o distribuovaném úložišti pár „klíč-hodnota“ uvnitř ní. Je to velmi rychlé úložiště s mnoha zajímavými vlastnostmi (přesný seznam je v popisu), které umožňují používat podobná řešení v matematice streamování velkých dat.

Další přednáška, se kterou vystoupí Cliff — Zkušenosti s hardwarovou transakční pamětí Azul. Další část jeho biografie — deset let práce v Azul, kde aktualizoval a zlepšil mnoho aspektů hardwaru a technologického stacku Azul: JIT-kompilátory, runtime, model vláken, zpracování chyb, práce se zásobníkem, hardwarová přerušení, načítání tříd a tak dále — no, chápete.

Nejzajímavější část začala, když vytvořili hardware pro velký byznys — superpočítač pro běh Java. Byla to docela inovativní věc, konkrétně navržená pro Java, která má zvláštní požadavky — paměťové bariéry pro čtení pro nízko-pauzové garbage collection, pole s kontrolou hranic, virtuální volání… Jednou z nejzajímavějších technologií byla hardwarová transakční paměť. Celý L1 jakéhokoli z 864 jader mohl účastnit transakčního zápisu, což je obzvlášť důležité pro práci s blokacemi v Java (synchronized bloky mohou pracovat paralelně, dokud nedojde k reálnému konfliktu v paměti). Ale krásná myšlenka se rozpadla na drsnou realitu — a v této přednášce Cliff vysvětlí, proč HTM a STM příliš dobře nevyhovují praktickým potřebám vícethermálních výpočtů.

Michael Scott — Dvojité datové struktury

19 hlav hydry. Velký přehled programu Michael Scott — profesor počítačových věd na Univerzitě v Rochesteru, se kterým osud spojil jeho už 34 let, a na své alma mater Wisconsin–Madison byl děkanem pět let. Zaměřuje se na výzkum paralelního a distribuovaného programování a design jazyků a vyučuje to studenty.

Celý svět zná Michaela díky učebnici „Programming Language Pragmatics“, poslední vydání vyšlo relativně nedávno — v roce 2015. Jeho práce „Algorithms for scalable synchronization on shared-memory multiprocessors“ obdržela získala Dijkstraovu cenu jako jedna z nejznámějších v oblasti distribuovaných výpočtů a otevřeně leží v online knihovně Rochesterovy univerzity. Také ho můžete znát jako autora toho slavného algoritmu Michael-Scott z „Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms“.

Pokud jde o svět Javy, zde je situace zvláštní: spolu s Dougem Leou vyvinuli tyto neblokující algoritmy a synchronní fronty, na kterých fungují knihovny Javy. O tomto a bude keynote „Dvojité datové struktury“ — implementace těchto struktur v Java SE 6 umožnila desetinásobné zlepšení výkonu java.util.concurrent.ThreadPoolExecutor. Pokud vás dopředu zajímá, co jsou tyto „Dvojité datové struktury“, budiž zde příslušná práce.

Maurice Herlihy — Blockchainy a budoucnost distribuovaného počítačství

19 hlav hydry. Velký přehled programu Maurice Herlihy — držitel dvou Dijkstraových cen. První — za práci na „Wait-Free Synchronization“ (Brown University), a druhá, novější — „Transactional Memory: Architectural Support for Lock-Free Data Structures“ (Virginia Tech University). Dijkstraova cena se uděluje za práce, jejichž význam a vliv byly patrné po dobu alespoň deseti let, a je zřejmé, že Maurice je jedním z nejznámějších odborníků v oboru. V současné době pracuje jako profesor na Brownově univerzitě a má řadu úspěchů, které by zabraly celý odstavec.

V této závěrečné keynote Maurice promluví o teorii a praxi blockchainových distribuovaných systémů z pohledu klasiky distribuovaných výpočtů a o tom, jak to zjednodušuje řadu souvisejících problémů. Tento přednáška se výhradně věnuje tématu konference — rozhodně ne o miningovém hype, ale spíše o tom, jak naše znalosti lze překvapivě efektivně a relevantně využít v různých úlohách.

V červenci 2017 už Maurice přijel do Ruska na školu SPTDC, zúčastnil se meetupu JUG.ru, a záznam si můžete prohlédnout na YouTube:

Přehrát video

Hlavní program

Následovat bude stručný přehled přednášek zařazených do programu. Některé přednášky jsou zde popsány podrobně, jiné stručněji. Dlouhá popisy byly většinou přiděleny anglickým přednáškám, které vyžadují odkazy na vědecké práce, termíny na Wikipedii atd. Úplný seznam můžete vidět na webu konference. Seznam na webu bude aktualizován a doplňován.

Leslie Lamport — Q & A

19 hlav hydry. Velký přehled programu Leslie Lamport je autorem zásadních prací v distribuovaném výpočtu. «LaTeX» se překládá jako «Lamport TeX». To on poprvé, už v roce 1979, zavedl pojem sekvenční konzistence, a jeho článek «How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs» získal Dijkstraovu cenu.

To je nejneobvyklejší část programu, protože to není ani přednáška, ale sezení otázek a odpovědí. Když je značná část publika již obeznámena (nebo se může seznámit) se všemi možnými pracemi založenými na «Lamportově teorii», jeho vlastními články a přednáškami, je velmi důležité využít veškerý dostupný čas na přímou komunikaci.

Myšlenka je jednoduchá — zhlédnete na YouTube dvě přednášky: «Programming Should Be More Than Coding» a «If You’re Not Writing a Program, Don’t Use a Programming Language» a připravíte si alespoň jeden dotaz, na který Leslie odpoví.

První z těchto dvou videí jsme už přetvořili na hubro článek. Pokud nemáte hodinu času na sledování videa, můžete si to rychle přečíst v textové podobě.

Na vědomí: na YouTube je mnohem více videí s Lesliem Lamportem. Například existuje skvělý kurz o TLA+. Offline verze celého tohoto kurzu je na domovské stránce autora, a na YouTube ho zveřejnil pro pohodlnější zhlédnutí na mobilních zařízeních.

Martin Kleppmann — Synchronizace dat napříč uživatelskými zařízeními pro distribuovanou spolupráci

19 hlav hydry. Velký přehled programu Martin Kleppmann je výzkumník na Univerzitě v Cambridge, který pracuje na CRDT a formální verifikaci algoritmů. Kniha Martina «Designing Data-Intensive Applications», publikovaná v roce 2017, se ukázala jako velmi úspěšná a dostala se na seznamy bestsellerů v oblasti ukládání a zpracování dat. Kevin Scott, CTO ve společnosti Microsoft, jednou řekl: „Tato kniha by měla být nezbytná pro inženýry vývojáře. Je to vzácný zdroj, který spojuje teorii a praxi, pomáhá vývojářům lépe navrhovat a realizovat infrastrukturu a systémy zpracování dat.“ Něco podobného říkal i tvůrce Kafky a CTO Confluent, Jay Kreps.

Před zahájením akademického výzkumu Martin pracoval v průmyslu a stal se spoluzakladatelem dvou úspěšných startupů:

  • Rapportive, zaměřeného na zobrazení sociálního profilu kontaktů z vaší e-mailové pošty, který LinkedIn koupil v roce 2012;
  • Go Test It, služba pro automatizované testování webových stránek v různých prohlížečích, kterou RedGate koupil v roce 2009.

Celkově vzato, Martin je sice méně známý než naši keynote speakři, ale již přispěl k rozvoji distribuovaných výpočtů i průmyslu.

V této přednášce bude Martin hovořit o tématu, které je mu bližší k jeho akademickému výzkumu. V Google Docs a podobném softwaru pro spolupráci na dokumentech znamená „spolupráce“ úlohu replikace: každý uživatel má vlastní replikovaný dokument, který poté upravuje, a všechny změny se šíří po síti ostatním účastníkům. Změny dokumentů offline vedou k dočasné nekonzistenci dokumentu vůči ostatním účastníkům, a znovu-synchronizace vyžaduje řešení konfliktů. Pro toto existují Conflict-free Replicated Data Types (CRDT), v podstatě docela nová věc, jejíž podstata byla formulována teprve v roce 2011. V této přednášce se diskutuje, co se od té doby stalo ve světě CRDT, jaké jsou nejnovější úspěchy, a diskutuje se přístup k vytváření aplikací local-first obecně a použití open-source knihovny Automerge specificky.

Příští týden zveřejníme na Habru velký rozhovor s Martinem, bude to zajímavé.

Pedro Ramalhete — Struktury dat bez čekání a transakce bez čekání

19 hlav hydry. Velký přehled programu Pedro pracuje ve společnosti Cisco a vyvíjí paralelní algoritmy už asi deset let, včetně mechanismů synchronizace, lock-free a wait-free datových struktur, a všeho, co si můžete na toto téma představit. Jeho současné vědecké a inženýrské zájmy jsou zaměřeny na univerzální konstrukce, software transakční paměť, persistentní paměť a podobné technologie, které umožňují vytvářet správné, škálovatelné a odolné aplikace. A také je autorem široce známého blogu v úzkých kruzích. Concurrency Freaks.

Na paralelních datových strukturách dnes pracuje většina vícetrhu aplikací, počínaje používáním front zpráv mezi aktéry a konče indexovanými datovými strukturami v key-value úložištích. V Java JDK fungují úspěšně již mnoho let, a do C++ se pomalu přidávají.

Nejjednodušší způsob, jak realizovat paralelní datovou strukturu, je sekvenční (jedno vláknová) implementace, kde jsou metody chráněny mutexy. To je dostupné jakémukoli juniorovi, ale má zřejmé problémy se škálovatelností a výkonem. Zároveň však, lock-free a wait-free datové struktury nejen lépe zvládají chyby, ale mají také lepší profil výkonnosti — avšak jejich vývoj vyžaduje hlubokou odbornost a přizpůsobení konkrétnímu způsobu použití. Jediný špatný řádek kódu stačí, aby to všechno zkolabovalo.

Jak udělat, aby i ne-expert mohl navrhovat a implementovat takové datové struktury? Je známo, že jakýkoli sekvenční algoritmus lze učinit vláknově bezpečným buďto univerzální konstrukcí, nebo transakční pamětí. Tyto přístupy mohou snížit vstupní práh pro řešení této úlohy. Nicméně, obě řešení obvykle vedou k neefektivní implementaci. Pedro poví o tom, jak se jim podařilo učinit tyto konstrukce efektivnějšími a jak je lze použít pro vlastní algoritmy.

Heidi Howard — Liberating distributed consensus

19 hlav hydry. Velký přehled programu Heidi Howard — stejně jako Martin, je výzkumnicí v oblasti distribuovaných systémů na Cambridgeské univerzitě. Její specializace zahrnuje konzistenci, odolnost, výkon a distribuovaný konsensus. Je nejvíce známá zobecněním algoritmu Paxos nazvaným Flexible Paxos.

Připomínáme, že Paxos — rodina protokolů pro řešení konsenzu v síti nespolehlivých výpočetních uzlů, jejíž základy byly položeny pracemi Leslieho Lamporta. Někteří naši přednášející tedy pracují na problémech, které původně navrhli jiní naši přednášející — a to je skvělé.

Možnost dosáhnout konsenzu mezi několika hostiteli — při adresaci, výběru lídra, zablokování nebo koordinaci — je základní otázkou moderních distribuovaných systémů. Paxos je nyní hlavním způsobem, jak řešit úlohy nalezení konsenzu, a kolem něj se provádí mnoho výzkumů zaměřených na rozšíření a optimalizaci algoritmu pro různé praktické potřeby.

V této prezentaci přehodnotíme teoretický základ Paxos, oslabením původních požadavků a zobecněním algoritmu. Uvidíme, že Paxos je vlastně jen jedním z možností v široké škále přístupů k konsenzu, a že další body v tomto spektru jsou také velmi užitečné pro budování dobrých distribuovaných systémů.

Alex Petrov — Snižte své náklady na úložiště pomocí přechodné replikace a levných kvór.

19 hlav hydry. Velký přehled programu Alex je odborník na databáze a úložné systémy, a co je pro nás nejdůležitější — committer v Cassandra. Společně s O’Reillym právě pracuje na knize Database Internals.

Pro systémy s eventual consistency (v české terminologii – „konsistencí nakonec“), po pádu uzlu nebo rozdělení sítě, je třeba vyřešit následující dilema: buď pokračovat ve zpracování požadavků, na úkor konsistence, nebo odmítnout jejich zpracování a obětovat dostupnost. V takovém systému kvóra, překrývající podmnožiny uzlů a zajišťující, že alespoň jeden uzel bude obsahovat nejnovější hodnotu, se mohou stát dobrým hraničním řešením. Můžete přežít selhání a ztrátu připojení k některým uzlům, přičemž budete i nadále odpovídat nejnovějšími hodnotami.

Evidentně má všechno svou cenu. Kvórumová schéma replikace znamená vyšší náklady na ukládání: je nutné uchovávat redundantní data na několika uzlech současně, aby bylo zajištěno dostatečné množství dostupných kopií v případě problémů. Ukazuje se, že není nutné uchovávat všechna data na všech replikách. Zátěž na úložiště lze snížit, pokud uchováváte data pouze na části uzlů, a pro scénáře zpracování chyb použít speciální uzly (Transient Replica).

Během prezentace se zaměříme na Witness Replicas, schéma replikace používané v Spanner a Megastore, a implementaci tohoto konceptu v Apache Cassandra pod názvy Transient Replication & Cheap Quorums.

Dmitry Vyukov — Goroutines exposed

19 hlav hydry. Velký přehled programu Dmitry je vývojář v Googlu, který pracuje na dynamickém testování C/C++ a Go — Address/Memory/ThreadSanitizer a podobných nástrojích pro jádro Linuxu. Přispěl k rozšířitelnému plánovači gorutin, síťovému polleru a paralelnímu sběrači odpadků v Go. Je odborníkem na vícerozměrnost, autorem desítky nových bezblokovacích algoritmů a držitelem Černého pásku Intel.

Teď trochu o samotné prezentaci. V jazyce Go existuje nativní podpora vícerozměrnosti v podobě gorutin (lehkých vláken) a kanálů (FIFO front). Díky těmto mechanismům je pro uživatele velmi snadné a příjemné psát moderní vícerozměrné aplikace, což vypadá jako magie. Jak chápeme, žádná magie zde není. V této prezentaci se Dmitry podívá na detaily fungování plánovače Go a ukáže tajemství realizace této „magie“. Na začátku poskytne přehled hlavních komponent plánovače a vysvětlí, jak funguje. Poté se podíváme podrobněji na jednotlivé aspekty, jako jsou strategie parkování/rozparkování a zpracování blokujících systémových volání. Nakonec Dmitry také poví něco o možných vylepšeních v plánovači.

Dmitry Bugaychenko — Zrychlení distribuované analýzy grafů pomocí pravděpodobnostních skic a nejen to

19 hlav hydry. Velký přehled programu Dmitry téměř 9 let pracoval v outsourcingu, přičemž neztratil kontakt s univerzitou a vědeckým prostředím. Analýza velkých dat v Odnoklassnikách se pro něj stala jedinečnou příležitostí spojit teoretickou přípravu a vědecký základ s vývojem skutečných, žádaných produktů.

Distribuovaná analýza grafů byla a zůstává složitým úkolem: když vznikne potřeba získat informace o vazbách sousedního vrcholu, často je třeba převádět data mezi stroji, což vede ke zvýšení doby provádění a zátěži síťové infrastruktury. V této prezentaci uvidíme, jak lze dosáhnout významného zrychlení zpracování pomocí pravděpodobnostních datových struktur nebo faktů, jako je symetričnost grafu přátelství v sociální síti. To vše je ilustrováno příklady kódu v Apache Spark.

Denis Ryscov — Snižte své náklady na úložiště pomocí přechodné replikace a levných kvór.

19 hlav hydry. Velký přehled programu Denis je vývojář Cosmos DB, odborník v oblasti ověřování konzistencí modelů, v konsenzuálních algoritmech a v distribuovaných transakcích. Nyní pracuje v Microsoftu, a předtím se zabýval distribuovanými systémy v Amazonu a Yandexu.

V této prezentaci se seznámíme s protokoly distribuovaných transakcí, které byly vyvinuty v posledních několika letech, které je možné implementovat na straně klienta nad jakýmkoli úložištěm dat podporujícím podmíněné aktualizace (compare and set). Podstatou je, že život nekončí dvoufázovým potvrzením; transakce lze přidat nad jakékoli databáze — na úrovni aplikace, ale různé protokoly (2PC, Percolator, RAMP) mají různé obchodní ústupky a nejsou nám dávány zadarmo.

Alexej Zinovjev — Ne všechny ML algoritmy se dostanou do distribuovaného ráje

19 hlav hydry. Velký přehled programu Alexej (zaleslaw) je naším dlouholetým řečníkem a členem programových výborů na jiných konferencích. Praktikující lektor ve společnosti EPAM Systems a s Hadoop/Spark a další velkými daty se přátelí od roku 2012.

V této prezentaci Alexej poví o problémech přizpůsobení klasických algoritmů strojového učení pro provádění v distribuovaném režimu na základě svých zkušeností s Apache Spark ML, Apache Mahout, Apache Flink ML a zkušenostmi s vytvářením Apache Ignite ML. Alexej také poví o implementaci distribuovaných ML algoritmů v těchto rámcích.

A na závěr — dvě prezentace od společnosti Yandex o Yandex Database.

Vladislav Kuzněcov — Yandex Database — jak zajišťujeme odolnost vůči poruchám

19 hlav hydry. Velký přehled programu Vladislav je vývojář v Yandexu v týmu distribuovaných platforem. Yandex Database je horizontálně škálovatelná geo-distribuovaná odolná databáze, která odolává selhání disků, serverů, stojanů a datových center bez narušení konzistence. Pro zajištění odolnosti proti selhání se používá vlastní algoritmus pro dosažení distribuovaného konsensu, stejně jako řada technických řešení, která jsou podrobně projednána v přednášce. Přednáška může být zajímavá jak pro vývojáře databází, tak pro vývojáře aplikačních řešení založených na databázích.

Semen Čechorin Distribuované transakce v YDB

19 hlav hydry. Velký přehled programu Semen je vývojář v týmu distribuovaných platforem v Yandexu a pracuje na možnosti víceseznamového využití instalace YDB.

Yandex Database je určena pro OLTP dotazy a splňuje požadavky ACID pro transakční systém. V přednášce se podíváme na algoritmus plánování transakcí, který tvoří základ transakčního systému YDB. Prozkoumáme, jaké entity se podílejí na transakcích, kdo určuje globální pořadí transakcí, jak se dosahuje atomického chování transakcí, spolehlivost a přísná úroveň izolace. Na příkladu běžného úkolu si ukážeme realizace transakcí pomocí dvoufázového potvrzení a deterministických transakcí. Probereme jejich rozdíly.

Co dál?

Program konference se stále doplňuje novými přednáškami. Zejména očekáváme přednášku od Nikita Kovalenko (ndkoval) z JetBrains a Oleg Anastáziev (m0nstermind) ze společnosti Odnoklassniki. Nikita se věnuje algoritmům pro korutiny v týmu Kotlin, zatímco Oleg vyvíjí architekturu a řešení pro vysoce zatížené systémy na platformě společnosti Odnoklassniki. Kromě toho je zde ještě 1 podmíněně prázdný slot, který je v současnosti ve vyjednávání s uchazeči programovým výborem.

Konference Hydra se bude konat 11-12. července v Petrohradě. Vstupenky je možné zakoupit na oficiálních stránkách. Upozorňujeme na možnost online vstupenek — pokud se z nějakého důvodu nemůžete těchto dnů dostavit osobně do Petrohradu.

Uvidíme se na Hydře!

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster