Vert.x a Quarkus.io
Přestože náš hlavní stack je Spring, neustále vyhodnocujeme nové technologie a postupy. Ty pak zavádíme do našich služeb a dosahujeme tak výrazných zlepšení v daných oblastech jejich využití.
Pro nově vznikající mikroslužby (microservices) využíváme Vert.x, u větších celků využíváme frameworku Quarkus. Výhodou obou je jejich lightweight forma a vysoký výkon, kterého se díky event-based architektuře dá dosahovat. Mikroslužby jsou řešeny technologií Kubernetes-first, čímž se jak uvidíme dále dosahuje velmi dobrých výsledků.
Díky internímu event-busu (event-based architektuře) dokáže Vert.x a Quarkus velice efektivně využívat zdroje, a to včetně spojení na databázi. Startuje velice rychle, paměťově nenáročně, což je dokonalý setup pro použití na platformě Kubernetes a zejména tam, kde vyžadujeme vysoký výkon zpracování.
Vyšší úrovně zpracování lze dosáhnout zkompilováním aplikace do nativního kódu - https://www.graalvm.org/ čímž lze dosáhnout další level rychlosti a nezanedbatelné paměťové úspornosti.
Výkon
Pro představu následující srovnání, viz https://www.techempower.com/benchmarks/ - Vert.x se umisťuje aktuálně (2021) na 28. pozici se score 340k.
- Spring na 317. místě se score 23k
- Quarkus (framework s backendem vert.x) na 39. místě se score 298k.
- V kompozitním score je vert.x / quarkus na 13/15 místě
Spring obsadil 51. místo
Uvedené výsledky potvrzují několikanásobné zvýšení jeho výkonu.
Použití
V našich aplikacích aktuálně provozujeme na platformě Vert.x microservice na zpracovávání vzniklých události, a nabízíme tak možnost upozornění klientů přes webhook. Na Gitlab CI jsme pro uvedenou službu zřídili Continuous Delivery pipeline, která umožňuje službu snadno a rychle iterovat a kontinuálně změny zavádět do produkce.
Zdroje:
- https://www.manning.com/books/vertx-in-action
- Zdrojový kód https://www.manning.com/downloads/1874
- Multilayer services
- With health, readiness
- Skaffold
- Multilayer services
- Zdrojový kód https://www.manning.com/downloads/1874
- https://developers.redhat.com/ebooks
Github repa
Quarkus
- Framework
- https://quarkus.io/
- Optimalizavane na instantni start, kubernetes
- Repa
Pokud Tě informace a naše práce zaujaly, neváhej se podívat na Volné pozice