Od micrometru k DDD: Zlepšujeme observability aplikací
Jak zlepšit observabilitu aplikací? Nejlépe s někým, kdo na observabilitě poněkud „ujíždí“. Právě takovou osobností je Richard Bouška, zkušený CTO a architekt v ASSIST – Software Services. SMITIO s ním nabízí webinář. Richard v něm jen s nezbytným minimem teorie, ale maximem příkladů z praxe dává zájemcům nahlédnout, jak observabilita podporuje spolehlivost a efektivitu aplikací a jak ji úspěšně implementovat v rámci SRE. A kdo že jsou nejrelevantnější zájemci o tuto problematiku? Vývojáři, co se chtějí do observability ponořit hlouběji, a vyvarovat se tak fuck-upů při jejím implantování do aplikací. Softwaroví architekti, které zajímá, jaké mají jejich rozhodnutí dopady na monitorovatelnost systému. A v neposlední řadě SRE a devops inžové kvůli zlepšení spolehlivosti a výkonu aplikací prostřednictvím lepšího monitoringu.
Máme pro vás ty nejdůležitější postřehy z diskuze.
Jak zlepšit observabilitu aplikací: pár tipů z naditého webinářového pytle
Richard Bouška, zkušený CTO a architekt v ASSIST – Software Services, bývalý programátor, a především nadšenec do funkcionálního programování, je bytostný praktik. V poslední době jej zaujala observabilita a v tomto webináři SMITIA až překvapivě otevřeně sdílí své osobní i firemní know-how z této oblasti.
Uvědomte si, do čeho jdete
Hned na úvod neopomene vyjmenovat několik dosti závažných důvodů, proč se do observability raději vůbec nepouštět. Přílišné zatěžování serverů je maličkost proti tomu, co všechno se musí začínající „observabilista“ naučit. Počínaje nějakými těmi query language, významy mnoha metrik, vším okolo statistik, histogramů, counry a gauges a timerů a tak dále. Dále je adept nucen alespoň o fousek (či spíše plnovousek) hlouběji pochopit, co jsou to percentily, mediány, sampling teorémy, … A samozřejmě zvládnout alespoň základy dashboardingu. Ke všemu musejí elévové „proprudit“ devops guys, aby jim píchli s vybudováním nové infrastruktury a vybudovat tým SRE, co se bude starat o alerting. Takže práce až nad hlavu. Stojí to vůbec za to?
„Nevěřím žádné statistice, kterou jsem sám nezfalšoval“
Richard Bouška se ve své skepsi s W. Churchillem evidentně shoduje. Demonstruje to na příkladu šesti různých statistik, jejichž zdrojem je totožný soubor dat… Přesto observabilitu nezavrhuje úplně, nicméně apeluje na její optimální nastavení (z hlediska účelu) a dosažení poměrně vysoké míry umu při vyhodnocování výstupů.
Obzvláště oceňuje možnost dodávat zákazníkům v byznysu informace Just In Time. Třeba online sledovat, jak v průběhu dne přibývají objednávky.
Především však rozhodně nepopírá, že při delším kontinuálním monitoringu lze spolehlivě –a především včas – vysledovat odchylky od standardních průběhů a čiperným zásahem mnohdy zabránit nejhoršímu. Každá změna je totiž podezřelá a na rozdíl od známého rčení spíše nebývá k lepšímu. O to více Richard apeluje na to, že je třeba „nakoukat“ co nejvíce výsledných grafů apod.
Použijeme-li analogii s lékařstvím, z výstupu CT, sonografie, ba dokonce i prastarého rentgenu laik obvykle nevyčte vůbec nic. (Pokud zrovna nejde například o razantní frakturu.) Lékaře, který má „nakoukáno“, ovšem i při letmém „optometrickém“ hodnocení zdánlivě miniaturní nefyziologická šmouha udeří do čela: „Bacha, tady se něco děje!“ Z čehož plyne, že observabilita má smysl, zejména jde-li o trvalý vztah, nikoli chvilkové poblouznění.
Najděte si, co vás zajímá nejvíc
Richard je optimista. Po celý čas webináře předpokládá, že se i přes spolehlivě odrazující úvod a obsáhlý výčet slepých uliček, v nichž se mohou observabilisté ocitnout, najde dost takových, kteří jeho tvář a hlas z displeje až do finále nevyzmizíkují. Patříte-li mezi ně, ve webináři se mimo jiné ve zkratce a se zaměřením na různé vychytávky dozvíte:
Jak ve Spring Boot aplikacích využít micrometer k budování detailních metrik.
Jak vizualizovat data pomocí Promethea a Grafany, a získat tak cenné přehledy.
Jaké existují grafy, jak je číst a na jakých principech vůbec metriky fungují.
V čem se liší architektury založené na DDD (Domain-Driven Design) a tradičním CRUD přístupu v microservices aplikacích.
Jaké výhody přináší DDD z hlediska telemetrie a proč tento přístup observabilitu podporuje lépe.
Podumáte nad porovnáním komunikace v CRUD mikroservisních aplikacích, kde se využívá HTTP protokol, s modernějším gRPC protokolem, na který pohlédnete v kontextu CQRS (Command Query Responsibility Segregation).
Vyzkoušíte si metriky poskytované systémy Axon Server a Axon Framework jako příklady nástrojů pro CQRS, eventsourcing a DDD design.