Optimalizace a Inovace v Messaging a Event-Driven aplikacích
Log
03.01.2024 12:30 - Spustili jsme registrace na konferenci
Info
* Cena konference je uvedena bez DPH
Získejte Wild Cards na 65. a 149. židli a užijte si konferenci zdarma (pozice se počítá dle došlých registrací).
Občerstvení - pokud potřebujete zajistit bezlepkové občerstvení, prosíme uveďte to do "Poznámky" v registračním formuláři. Rádi Vám jídlo na jméno zajistíme.
Změna programu a místa konání konference je vyhrazena.
Konference se bude konat prezenčně.
Program
Enterprise Integration Pattern - používání návrhových vzorů
V současnosti se vývoj nových enterprise systémů zaměřuje na realizaci mikroslužeb, které jsou mnohdy vytvářeny různými vývojovými týmy a s využitím různých vývojových prostředků (zcela odlišné programovací jazyky, odlišné způsoby nasazení atd.). Navíc se v takto navrhovaných aplikacích jednotlivé mikroslužby postupně mění, popř. se do výsledného enterprise systému přidávají mikroslužby další.
Mikroslužby mohou být spouštěny samostatně, ovšem pro realizaci celého enterprise systému je nutné, aby docházelo k jejich koordinaci a spolupráci. To je typicky řešeno zasíláním zpráv (dat či příkazů), které může být řešeno synchronním i asynchronním způsobem.
Ukazuje se, že při návrhu enterprise systému založeného na mikroslužbách je používána relativně malá sada ustálených způsobů - vzorů. Přitom platí, že vzory nejsou vynalézány, ale rozpoznávány v praxi. Díky tomu, že máme tyto vzory k dispozici (a to jak jejich popis, tak i grafickou podobu), je možné se při návrhu nových enterprise systémů vyhnout chybám, kterými si musely vývojové týmy projít.
- Vzory nejsou vynalézány, ale rozpoznávány v praxi
- Komunikace po síti není spolehlivá
- Komunikace po síti je pomalá
- Každá aplikace je odlišná
- Aplikace se postupně mění
- Komunikace v současnosti: mikroslužby a serverless řešení
- Architektura založená na mikroslužbách
- Příklady řešení komunikace ve světě mikroslužeb
Pavel Tišnovský
Pavel vystudoval VUT FIT a v současné době pracuje na vývoji mikroslužeb pro cloudové platformy, které jsou vytvářené v programovacích jazycích Python a Go a pro komunikaci využívají různé komunikační strategie realizované s využitím Apache Kafky. Pro vlastní projekty a výzkum používá převážně programovací jazyk Clojure, v odůvodněných případech i Javu (to již dlouho ne), Python, ANSI C a pro několik hobby projektů i assembler určený pro starodávné osmibitové mikroprocesory.
Pasti při vývoji systémů využívajících messaging
Messaging je dnes jedním ze základních kamenů pro stavbu distribuovaného systému. Zároveň je však jeho úspěšné použití v rámci architektury mikroslužeb podmíněno pochopením úskalí, které nás při jeho používání čekají. Zaměříme se na chování aplikací při nestandardních podmínkách jako jsou výpadky a přetížení. Rozbijeme mýty o škálování, sekvenčním zpracování, kvalitě doručení a transakcích.
Přednáška má za cíl odkrýt návrhové a implementační nedostatky, které lze v praxi snadno přehlédnout. Většina úskalí bude demonstrována na Apache Kafce v kombinaci se Spring Bootem, ale poznatky lze zobecnit i pro jiné typy brokerů nebo programovacích jazyků.
V první části se podíváme na zásadní rozdíly mezi Kafkou a klasickými message brokery a projdeme anatomii zprávy. Druhá část bude věnována producentům zpráv. Ukážeme si vzory pro transakční komunikaci mezi databází a brokerem, které lze použít obecně v architektuře mikroslužeb. Zároveň si ukážeme podmínky, za kterých je garantováno pořadí zpráv v brokeru. Ve třetí části se podíváme na implementaci konzumentů. Hlavními tématy bude škálování zpracování zpráv včetně zotavení z chyb a výpadků konzumentů. Lehce se dotkneme i designu zpráv, zajištění idempotence a kompatibility.
Porovnání message brokerů
- Kafka
- Klasičtí message brokeři
- Základní parametry pro výběr brokeru
- Anatomie zpráv
Odesílatelé
- Kafka transakce
- Outbox pattern
- Zajištění sekvenčního odeslání
Příjemci
- Škálování příjemců
- Idempotence
- Ošetření chybových stavů
- Kompatibilita
Petr Steckovič
Petr Steckovič je zkušený IT manažer a aktivní programátor se specializací v Java technologiích. Svou kariéru začal v startupovém prostředí jako Java vývojář, kde postupně rozvíjel své dovednosti. S postupem času přešel na vyšší technické pozice, včetně role Head of Development.
Jeho startupová kariéra pokračovala ve společnosti Ataccama. Zde bylo jeho úkolem dodat komplexní metadatové úložiště, které tvoří základ platformy Ataccama ONE, která aktuálně definuje oblast systémů pro datovou kvalitu na celosvětové úrovni.
V současnosti zastává pozici Java Chapter Lead ve společnosti Vodafone, kde se věnuje nastavení standardů a best practices pro snadný agilní vývoj komplexních microservisových architektur. Kombinace manažerských dovedností a silného technického pozadí v oblasti architektury cloud-native systémů mu umožňují úspěšně řešit náročné výzvy spojené s moderními IT projekty ve prospěch společnosti Vodafone.
Nebojme se datové integrace distribuovaných systémů
V této prezentaci vás provedu zkušenostmi a množstvím "fuckupů" z vývoje distribuovaného systému zpracovávajícího miliony zpráv. Budeme se zabývat především problémy a výzvami při přepisu několika monolitických aplikací do distribuovaného systému běžícího v cloudu a komunikujícího pomocí RabbitMQ.
Pokusíme se zodpovědět i otázky týkající se zajištění kvality dat a způsobů, jak na případné chyby co nejrychleji a nejlépe reagovat. Projdeme si různé architektonické přístupy k těmto problémům, ale i jak si pomoci implementací service Level Objectives (SLOs) a Service Level Indicators (SLIs) pro zlepšení spolehlivosti systémů.
Cílem prezentace je ukázat, že každý systém provází velké množství problémů během jeho vývoje, a poskytnout inspiraci, jak takové potíže řešit.
David Bečvařík
David je SW Architekt v heureka!group. Duší však stále zůstává vývojářem a pragmatickým propagátorem open source. Aktuálně se věnuje problémům kontejnerizace a moderního aplikačního vývoje i na komunitní scéně a to v Prague Containers Meetup a nové skupině Grumpy Programmers.
Event driven architektura z pohľadu infrastruktury
Event driven architektura ma rozne benefity ci uz sa bavime o skalovani, deduplikaci(worker/producer model) alebo o cistej cost optimalizacii. Vramci prednasky sa pozrieme na rozne modely ako z mojej skusenosti funguju. Tiez sa pozrieme na Monitoring a day 2 operations v cloud native prostredi pre Kafku. Kde vas mozu cakat problemy a na co sa zamerat ak chcete vas backend bezat spolahlivo a bez problemov.
Event Driven architektura ako téma a prečo je to zaujímavé
- O čom táto prednáška nebude
Priklady nastavenia
- Worker - producer model
- Lessons learned
Kafka vs Cloud native Setup
- Best Practices
- Cost optimization with Kafka (traffic, instances)
- Observability and Monitoring
Záver a Otázky
Adam Hamsik
Adam je srdcom DevOps inžinier a momentálne tiež pôsobí ako CEO Labyrinth Labs. Rád ide do hĺbky rôznych technických problémov ako napr.: napísať dobré RCA, optimalizácia [kódu, infraštruktúry] a najmä obľubuje OpenSource [vo voľnom čase pomáha NetBSD s developmentom]. Počas svojej kariéry pracoval s množstvom zákazníkov na rôznych projektoch, kde aktívne využíva tools ako Terraform, Kubernetes a Helm. Ako správny inžinier si užíva nekončiace debaty o tom, ktorý tool je lepší. V súčasnosti sa zväčša venuje navrhovaniu architektúr a hľadaniu spôsobov, ako zákazníkom ušetriť peniaze [spoiler alert, nie je to ľahké.]
Využitie Google Pub/Sub v event-driven architektúre mikroslužieb
Architektúry mikroslužieb je spájaná s nutnosťou väčšej sieťovej komunikácie. Tá nie je vždy úplne spoľahlivá, prípadne majú jednotlivé služby technické problémy, zvýšený prílev požiadaviek, či spomalenú odozvu a tak nestihnú odpovedať včas. Pre tieto prípady je potrebné komunikáciu zabezpečiť mechanizmami, ktoré požiadavky opakujú viackrát.
Jednou z možností, ako problém komunikácie medzi službami zabezpečiť, je využitie message broker-a, ktorý dostáva správy od publisher-ov a preposiela ich subscriber-om, pričom zabezpečí, že každá správa je doručená aspoň raz.
V mojej prednáške sa pozrieme na detaily takejto manažovanej služby v Google Cloud-e — Google Pub/Sub, jej výhody a nevýhody a rôzne spôsoby využitia. V druhej časti si povieme o tom, akým problémom pri implementácií Pub/Sub-u do mikroarchitektúry sme čelili v mojom tíme, a ako ich riešiť.
- Prístup k dizajnu asynchrónne komunikujúcich mikroslužieb
- Pub/Sub ako message broker
- Pub/Sub ako fronta na spracovávanie event-ov
- Push vs. Pull subscription (výhody, nevýhody a use-casy)
- Problémy, na ktoré často narazíte
- Paralelné spracovívanie fronty event-ov
- Race-conditions a akými metódami sa im vyhnúť
- Rate-limiting doručovania event-ov
- Spracovávanie výnimiek a retry logika
- Konfigurácia pomocou Terraform (IaaC)
Ondrej Pudiš
Ondrej nastúpil do Kiwi.com ako softvérový inžinier už počas štúdia na FIT ČVUT. Doterajšiu pracovnú kariéru strávil ako súčasť Fintech tímu, ktorý vyvíja interné služby umožňujúce automatizovať nákupy platobnými kartami. Posledný rok strávil s tímom vývojom nových event-driven mikroslužieb, ktoré automatizujú rekonciliácou odchodzích platieb a sú postavené na viacerých technológiach Google Cloud-u.
Registrační formulář
Proč se přijít podívat?
- Ukážeme Vám, jak pracovat s návrhovými vzory a konkrétní příklady řešení
- Porovnáme si Kafku a klasickými message brokery
- Těšte se na "Fuckupy" a popis přepisu monolitických aplikací do distribuovaného systému
- Čekají Vás best practices, ale i pohled na cost optimization
- Ukážeme Vám paralelní zpracování front, vyjímky a retry logiku, metody komunikace, kterým se raději vyhnout
Storno podmínky
Registrace na konferenci je závazná a její storno je možné "bezplatně" pouze písemnou formou prostřednictvím e-mailu a to nejpozději 14 kalendářních dní před zahájením konference.
Odstoupí-li/stornuje-li účastník konference registraci v termínu kratším než 14 kalendářních dní před zahájením konference, vyhrazuje si organizátor vůči účastníkovi právo na zaplacení storno poplatku v plné výši hodnoty vstupenky.
Děkujeme za pochopení
Jak se k nám dostanete
Institut klinické a experimentální medicíny (IKEM) se nachází na adrese Vídeňská 1958/9, 140 21 Praha 4. Kongresové centrum se nachází v 5. patře hlavní budovy.
Nejrychleji z centra Prahy: Metrem do stanice Budějovická (trasa C). Pak autobusem č. 193 na zastávku IKEM (v autobuse hlášena jako „Institut klinické a experimentální medicíny“).
Autem
Parkovat můžete ve dvou nadzemních podlažích garážové budovy u hotelu Rezidence EMMY v okolí. Využít můžete i parkoviště pro návštěvníky a pacienty IKEM, které je zhruba 100 m od hlavního vchodu do budovy IKEM (kapacita 200 míst).
Bus
Autobusové linky 193, 138, 203 zastavující na zastávce IKEM.
Regionální linky: 332, 335, 337, 339, 362
Tram
Tento oblíbený spoj není k dispozici.