Laravel architektura: Proč většina projektů nepotřebuje microservices
Dobrý software není zbytečně složitý. Přesto mnoho týmů volí microservices, i když jim to zpomalí vývoj. Získejte pádné argumenty, kdy je modulární monolit efektivnější volba.
Dobrý software není zbytečně složitý. Přesto mnoho týmů volí microservices, i když jim to zpomalí vývoj. Získejte pádné argumenty, kdy je modulární monolit efektivnější volba.
V posledních letech se microservices objevují na každé konferenci, v každém blogpostu a v každé druhé firmě, která chce působit moderně. Ale potřebuje je opravdu každý projekt?
Sám jsem si tím prošel. Laravel projekty stavím roky, pracoval jsem na různě velkých systémech. A čím dál víc si stojím za tím, že dobře navržený monolit je v drtivé většině případů ta nejlepší možná cesta.
Microservices se často prodávají jako řešení pro škálování. Jenže tohle je hodně zjednodušené. Pokud má váš tým jen pár vývojářů (napočítáte je na prstech), microservices vám přinesou spíš problémy:
Zkrátka – rychlost vývoje dramaticky klesá. Microservices možná dobře škálují horizontálně, ale týmově to nefunguje bez správné struktury, kultury a seniorních lidí.
Dobře navržený monolit v Laravelu (i kdekoliv jinde) vám přinese:
V kombinaci s modulární architekturou (např. Domains
, Modules
, Services, Actions
) a přísným oddělením logiky od controllerů je možné udržet i větší aplikaci přehlednou a dlouhodobě životaschopnou.
Moje doporučení: Navrhujte monolit tak, jako byste ho jednoho dne museli rozdělit na microservices – i když ten den možná nikdy nepřijde.
Tady je to úplně jasné. Startupy by se microservices měly obloukem vyhnout. Potřebujete validovat nápad, dodat MVP, rychle reagovat. Rozsekání na služby vás akorát zpomalí.
Proč by měl tým o třech lidech řešit orchestraci, event-driven komunikaci, vlastní API gateway a deployment pro pět různých repozitářů, když ještě neví, jestli projekt přežije první měsíc?
Monolit vám umožní dělat rychlé změny, upravit business logiku v jednom místě, a hlavně – iterovat bez overheadu. A o to jde v prvních měsících nejvíc.
Neznamená to, že microservices jsou špatné. Jen jsou často nasazované moc brzo – ve chvíli, kdy by mnohem jednodušší řešení bohatě stačilo. Skutečný přínos microservices se totiž projeví až tehdy, když monolit přestává stíhat:
V takové situaci už má smysl o mikroarchitektuře uvažovat. Ale i tehdy se často ukáže, že bohatě stačí hybridní řešení – například API-first backend s odděleným frontendem nebo pár samostatných služeb tam, kde to opravdu dává smysl.
Monolit vám může sloužit roky, ale i ten má své limity. Tady je několik signálů, že možná nastal čas začít přemýšlet o oddělení některých částí systému:
Ale i v těchto případech se dá často začít malým krokem – například vytěžením konkrétní části do balíčku, který se udržuje samostatně, ale zůstává součástí monolitu.
Technologie nejsou cílem. Jsou prostředkem. A pokud je vaším cílem:
…pak je dobře navržený monolit v Laravelu téměř vždy ta nejrychlejší a nejrozumnější volba.
Na závěr jen drobná poznámka: architektura je živá věc. Monolit, který dobře slouží teď, může být za dva roky potřeba rozdělit. A to je v pořádku – pokud jste s tím od začátku počítali a psali kód tak, aby to šlo. Tohle není výzva k tomu, abyste nikdy nepřemýšleli o microservices. Ale spíš výzva, abyste začali přemýšlet v kontextu.
Od roku 2018 vytvářím weby a aplikace na míru ve WordPressu a Laravelu. Miluju funkční systémy, čistý kód a práci, která dává smysl – nejen klientovi, ale i mně samotnému. Baví mě hledat jednoduchá a chytrá řešení, když věci na první pohled vypadají složitě.
Protože je WordPress tak oblíbený, je i častým cílem útoků. V článku vám jednoduše a krok za krokem ukážu, jak svůj web zabezpečit, i když nejste zrovna programátor. Jde o pár základních návyků, které riziko napadení výrazně sníží.
Pokud přemýšlíte o e-shopu, tento článek vám pomůže se rozhodnout, jestli je pro vás WooCommerce správná cesta. Vysvětlím v něm jeho hlavní výhody, jako je plná kontrola a flexibilita, ale i to, co jeho provoz obnáší a pro koho se naopak nehodí.
Proč psát admin rozhraní v Laravelu ručně, když to jde 10x rychleji? Objevte Filament a přestaňte ztrácet čas s formuláři a tabulkami. Zjistěte, jak dodat udržitelný a čistý kód bez technického dluhu a kde jsou naopak jeho limity.
Nemusíme hned začít – stačí se pobavit o tom, co potřebujete. Někdy i krátký rozhovor hodně vyjasní.