Software se tradičně vyvíjel ve formě monolitických aplikací, které jsou zabaleny do jediné, sjednocené kódové základny.
Monolitická aplikace je soběstačný a nezávislý systém na ostatních aplikacích. Lze ji snadno nasadit jako jeden celek, ale i ta nejmenší změna vyžaduje přestavbu a opětovné nasazení celé aplikace.
Architektura mikroslužeb rozděluje monolitickou aplikaci na řadu komponentních úloh. Architektura mikroslužeb je společně distribuovaná, což může vést k problémům, které se u monolitické aplikace neprojevují.
- Když jedna služba v aplikaci synchronně volá jinou, volaná služba může být nedostupná nebo nepoužitelná, což může způsobit nepoužitelnost celé aplikace.
- Volající může při čekání na odpověď volané služby spotřebovat omezené zdroje, například vlákna.
Existuje mnoho problémů, které ztěžují spolehlivou implementaci takových systémů. Mnoho základních konceptů těchto technologií tvoří základ mikroslužeb. Java je s architekturou mikroslužeb velmi dobře komplementární.
Mikroslužby představují výzvy pro JVM
Před nasazením mikroslužeb založených na Javě pečlivě zvažte, jak JVM v tomto typu prostředí funguje. Je třeba se zaměřit na tři konkrétní věci – a kde by mohla dávat větší smysl vysoce výkonná platforma Java.
Společnost Azul vyvinula Azul Platform Prime, vysoce výkonnou platformu Java, která se těmito problémy zabývá. Prime je JVM, která poskytuje vylepšený výkon pro mnoho kategorií aplikací, včetně mikroslužeb běžících uvnitř kontejnerů. Prime nabízí oproti běžným JVM aplikacím významné výhody v řešení problémů, které mikroslužby představují, a je znázorněno v níže uvedené matici.
| Výzva | JVM aplikace | Platforma Azul Prime |
|---|---|---|
| S rostoucí zátěží služby by nemělo docházet ke snížení výkonu. | Spouštějí se nové instance služeb, čímž se zajišťuje konzistentní výkon stávajících instancí při zatížení. S rostoucí zátěží instance služby se obvykle vytváří více objektů a zvyšuje se zátěž garbage collectoru JVM, což je nutné zohlednit v konfiguraci nasazení služby. | Sběrač odpadků C4 od Platform Prime se neuchyluje k úplnému zastavení sběru dat a komprimaci, a to ani při velkém zatížení. Výkon správy paměti JVM zůstává konzistentní. Pokud se služby stanou omezenými pamětí, je snadné zvětšit alokovaný prostor haldy a vyřešit tak problémy s nedostatkem paměti, aniž by to ovlivnilo výkon. Významný dopad snížené a konzistentní latence produkované algoritmem C4 se vztahuje na jističe. Dochází k podstatnému snížení frekvence aktivace jističů v systému a dlouhých časových limitů před jejich resetováním. |
| Výzva | JVM aplikace | Platforma Azul Prime |
|---|---|---|
| Podpora více instancí JVM na stejném fyzickém hardwaru. | Nejde o to, jak spravovat více verzí běhového prostředí Java, ale jak se vypořádat s více procesy JVM běžícími na stejném počítači. Optimalizace využití zdrojů je klíčová pro škálování služeb na konkrétním serveru. | Platforma Prime spolupracuje s operačním systémem Linux na optimalizaci subsystému správy paměti. Systémové nástroje Prime rezervují oblast fyzické paměti (jejíž velikost je konfigurovatelná), která je sdílena mezi všemi instancemi virtuálního počítače Prime spuštěného na daném počítači. Prime znovu používá paměťové stránky, které jsou již v mezipaměti (horké stránky), na rozdíl od tradičního JVM, který často získává studené stránky z operačního systému, když alokuje nové objekty na haldě. |
| Výzva | JVM aplikace | Platforma Azul Prime |
|---|---|---|
| Jak rychle a efektivně přidávat („roztočit“) nové instance služeb pro zpracování různých úrovní pracovních zátěží. | Potřeba spouštět nové instance služeb s rostoucí zátěží vyžaduje, aby tyto služby byly co nejrychleji dostupné a fungovaly na optimální úrovni. Tradiční JVM potřebuje čas na zahřátí, protože analyzuje používané bajtkódy a kompiluje často používané metody do nativních instrukcí. | Funkce ReadyNow platformy Azul Platform Prime je ideální pro rychlé spuštění nových instancí služeb a okamžité zajištění plné úrovně výkonu. ReadyNow pomáhá vývojářům spravovat deoptimalizaci běhového prostředí Javy a dává jim větší kontrolu nad kompilací Javy. ReadyNow také umožňuje ukládat a znovu používat nashromážděné profily optimalizace kompilátoru. |
Kompletní přehled výzev a funkcí Platform Prime pro mikroslužby naleznete v našem e-booku Vysoce výkonné mikroslužby s využitím Javy.
Azul Platform Prime a mikroslužby
Platforma Azul Prime je založena na open-source zdrojovém kódu OpenJDK, což je referenční implementace pro standard Java SE. Aby Azul poskytoval lepší výkon než klasické JVM, nahradil části jádra JVM alternativními implementacemi. Patří sem systém správy paměti a část kompilačního systému Just in Time (JIT).
Rychlejší JIT kompilace zlepšuje výkon: Tradiční JVM využívá dva JIT kompilátory. Azul Platform Prime používá novou, vylepšenou verzi s názvem Falcon. Falcon je založen na projektu open-source kompilátoru LLVM, který je podporován řadou společností a jednotlivců, včetně společností Intel, NVidia, Apple a Sony.
Rychlejší zahřívání s ReadyNow: Technologie ReadyNow od Azulu zrychluje zahřívání aplikací v produkčním prostředí od samého začátku. Pokaždé, když se aplikace spustí, JVM a JIT provedou veškerou práci, kterou by normálně dělaly, čímž se eliminuje zahřívání, takže aplikace začne běžet téměř plnou rychlostí.
Ponechte zdroje k dispozici s Cloud Native Compiler: Kompilace JIT poskytuje výkon, který moderní podnikové aplikace potřebují, ale za cenu z hlediska doby zahřívání. Cloud Native Compiler (CNC) přesouvá práci kompilátoru JIT mimo JVM, takže odesílá podrobnosti do CNC a ponechává zdroje k dispozici pro lokální JVM.
Vylepšete správu paměti JVM pomocí uvolňování paměti C4: V tradičním JVM se aplikace během uvolňování paměti pozastavují. Tyto pauzy se mohou pohybovat od milisekund do hodin a načasování je nepředvídatelné. Azul Platform Prime používá jiný algoritmus GC, Continuous Concurrent Compacting Collector (C4). Na rozdíl od jiných komerčních algoritmů GC mohou aplikační vlákna pokračovat v provozu, i když GC C4 pracuje.
Závěrem
Vývoj softwaru se přesouvá do cloudu a k tomu se využívají mikroslužby flexibilním a škálovatelným způsobem. Mikroslužby Java také poskytují oproti mikroslužbám vyvíjeným v jiných jazycích několik výhod. Pokud však používáte tradiční JVM, při výběru architektury aplikace pečlivě zvažte několik problémů s nasazením. Azul Platform Prime používá různé interní algoritmy pro sběr odpadků a je součástí systému kompilace JIT. V kombinaci s technologií ReadyNow, která efektivně eliminuje fázi zahřívání výkonu mikroslužeb, se Platform Prime stává perfektní volbou pro použití v moderním vývoji aplikací Java na mikroslužbách. Přečtěte si e-knihu Vysoce výkonné mikroslužby používající Javu, kde se dozvíte více, nebo nás kontaktujte.
Zdroj: Azul

