Monolit protiv Mikrosluseb: Kak Vybrat Arkhitekturu v 2026
Mayatnik arkhitektury kachnulsya. Mikrosluzhby bolshe ne yavlyayutsya otvetom po umolchaniyu. Vyat prakticheskiye sovety o modulnykh monolitakh, strategiyakh vydeleniya i odnom voprose, kotoryy razrezayet debat.
Na protyazhenii bolshey chasti desyatiletiya obshcheprinyataya mudrost v programmnoy arkhitekture byla prostoy: mikrosluzhby — eto budushcheye, a monolity — eto naslediye. Yesli vy nachinali novyy proyekt, vy stroili mikrosluzhby. Yesli u vas byl sushchestvuyushchiy monolit, vi planirovali yego dekompozitsiyu. Vopros byl ne v tom, primenyat li mikrosluzhby, a v tom, kak bystro vy mozhete tuda popast.
Etot konsensus mertv. Posledniye tri goda porodili volnu post-mortem ot komand, kotoryye vnedrili mikrosluzhby slishkom rano, slishkom agressivno ili po nepravilnym prichinam. Komanda Amazon Prime Video opublikovala issledovaniye, pokazyvayushcheye, chto perekhod ot serverless-mikrosluseb k monolitu snizil zatraty na 90%. InnoGames soobshchila o sokrashchenii slozhnosti infrastruktury vdvoye putem konsolidatsii mikrosluseb obratno v monolit. Eti istorii — ne anomalii; eto peredovoy kray korrektsii.
Eta statya — ne argument v polzu odnoy arkhitektury protiv drugoy. Eto ramka prinyatiya resheniy dlya vybora mezhdu nimi, napisannaya dlya 2026 goda, s preimushchestvom nablyudeniya polnogo tsikla khaypa i razocharovaniya. K kontsu vy budete tochno znat, kakiye voprosy zadavat, prezhde chem vybirat sleduyushchuyu arkhitekturu.
Mayatnik kachnulsya obratno
Pervonachalnoye obeshchaniye mikrosluseb bylo soblaznitelnym: nezavisimaya razvertyvayemost, avtonomiya komand, poliglotnyye tekhnologicheskiye steki i gorizontalnaya masshtabiruyemost'. Kazhdyy servis mog byt razrabotan, protestirovan i razvertnut nebolshoy komandoy bez koordinatsii s kem-libo yeshche. Yesli servis vykhodil iz stroyu, eto ne ostanavlivayet vsyu sistemu. Yesli servis nuzhdalsya v masshtabirovanii, vy masshtabirovali tolko etot servis.
Eti preimushchestva realny, no oni sopryazheny s tsenoy, kotoraya sistematicheski zanizhalas v gody khaypa. Kazhdaya mikrosluzhba vvodit setevuyu zaderzhku, slozhnost raspredelennoy sistemy, problemy soglasovannosti dannykh i operatsionnyye nakladnyye raskhody. Monolit imeyet odin konveyer razvertyvaniya, odno prilozheniye dlya monitoringa, odnu bazu dannykh dlya upravleniya i odnu kodovuyu bazu dlya navigatsii. Desyat mikrosluseb imeyut desyat vsego, umnozhennoye na tochki integratsii mezhdu nimi.
Fundamentalnaya ideya, kotoruyu industriya pereotkryla, zaklyuchayetsya v tom, chto mikrosluzhby — eto zatrata, a ne preimushchestvo. Oni yavlyayutsya instrumentom dlya upravleniya konkretnymi ogranicheniyami — razmerom komandy, trebovaniyami k masshtabirovaniyu, chastotoy razvertyvaniya — a ne konechnym sostoyaniyem, k kotoromu dolzhna stremitsya kazhdaya sistema. Yesli u vas net problem, kotoryye reshayut mikrosluzhby, oni ne delayut sistemu luchshe. Oni delayut yeye dorozhe i trudneye dlya izmeneniy.
Mikrosluzhby — eto khorosheye resheniye dlya konkretnogo nabora problem. Yesli u vas net etikh problem, vy platite za mikrosluzhby, ne poluchaya vygody. Samaya dorogaya arkhitektura — eto ta, kotoraya reshayet problemy, kotorykh u vas net.
Landshaft 2026 goda otrazhayet etu korrektsiyu. Chistyye arkhitektury mikrosluseb teper sosredotocheny v organizatsiyakh, kotoryye deystvitelno v nikh nuzhdayutsya — krupnykh inzhenernykh otdelakh s desyatkami komand, platformakh, trebuyushchikh nezavisimogo masshtabirovaniya raznykh komponentov, i produktakh, gde raznyye sluzhby imeyut fundamentalno raznyye trebovaniya k nadezhnosti ili zaderzhke. Vezde v ostalnom komandy vybirayut boleye prostyye arkhitektury i rezerviruyut mikrosluzhby dlya konkretnykh sluchayev, kotoryye ikh trebuyut.
Kogda monolit pobezhdayet
Monolit — eto pravilnyy vybor po umolchaniyu dlya bolshinstva proyektov. Eto ne protivorechivoye utverzhdeniye sredi opytnykh arkhitektorov, no ono protivorechit soobshcheniyu, kotoroye mnogiye razrabotchiki vpitali vo vremya tsikla khaypa mikrosluseb. Monolit pobezhdayet v bolshem kolichestve stsenariyev, chem proigryvayet, i klyuch v tom, chtoby znat, kakiye imenno eto stsenarii.
Razmer komandy — eto samyy silnyy predskazatel arkhitekturnogo uspekha. Yesli v vashey komande menshe desyati razrabotchikov, monolit pochti navernyaka yavlyayetsya pravilnym vyborom. S malenkoy komandoy koordinatsionnyye nakladnyye raskhody mikrosluseb — soglasovaniye granits servisov, upravleniye mezhservisnymi kontraktami, podderzhaniye mnozhestvennykh konveyerov razvertyvaniya — potreblyayut znachitelnuyu chast vashey dostupnoy inzhenernoy moshchnosti. Kazhdaya granitsa servisa, kotoruyu vy sozdayote, — eto kontrakt, kotoryy vy dolzhny podderzhivat, a podderzhaniye kontraktov — eto rabota, kotoraya ne dostavlyayet funktsii.
Stadiya startupa — eto yeshche odin yasnyy signal. Yesli vashemu produktu menshe dvukh let ili vasha biznes-model vse yeshche razvivayetsya, monolit sokhranyayet vashu sposobnost bystro menyat napravleniye. Mikrosluzhby fiksiruyut predpolozheniya o granitsakh predmetnoy oblasti, kotoryye vy pochti navernyaka sdelayete nepravilno v pervyy god. Monolit pozvolyayet vam svobodno refaktorit. Kogda vashe prilozheniye — eto odna kodovaya baza, peremeshcheniye funktsii iz odnogo modulya v drugoy — eto operatsiya refaktoringa. Kogda vashe prilozheniye — eto desyat servisov, peremeshcheniye funktsii trebuyet izmeneniya interfeysov servisov, obnovleniya potrebiteley, koordinatsii razvertyvaniy i migratsii dannykh.
# Kak vyglyadit prostoy monolitnyy razvort v 2026 godu
# Odin Dockerfile, odin servis, nulevaya orkestratsiya
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["node", "dist/server.js"]
# Odin docker-compose.yml dlya vsego steka
services:
app:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://db:5432/app
db:
image: postgres:17
volumes:
- pgdata:/var/lib/postgresql/dataOperatsionnuyu prostotu etoy nastroyki trudno pereotsenit. Odin servis dlya monitoringa, odin nabor logov dlya proverki, odno razvertyvaniye dlya otkata. Mladshiy razrabotchik mozhet ponyat ves konveyer razvertyvaniya za odin den. Kogda chto-to lomayetsya, yest rovno odno mesto, gde iskat prichinu. Eta prostota — ne roskosh, a strategicheskoye preimushchestvo, kotoroye usilivayetsya so vremenem.
Slozhnost predmetnoy oblasti — yeshche odin faktor, kotoryy podtalkivayet k monolitam. Paradoksalno, no chem slozhneye vasha oblast, tem opasneye prezhdevremennaya dekompozitsiya servisov. Yesli vy razdelite slozhnuyu oblast na servisy do togo, kak poymyote yeye yestestvennyye granitsy, vy sozdayote servisy, kotoryye tesno svyazany vo vsekh nepravilnykh smyslakh — servisy, kotoryye nelzya nezavisimo razvertyvat, potomu chto izmeneniye odnogo trebuyet izmeneniya drugogo, servisy, kotoryye ispolzuyut obshchiye bazy dannykh, potomu chto dannyye ne delyatsya chisto, servisy, kotoryye nuzhno razvertyvat sinkhronno, potomu chto ikh kontrakty postoyanno menyayutsya.
Modulnyy monolit: arkhitektura, kotoruyu bolshinstvo komand nikogda ne rassmatrivayet
Rezkiy vybor mezhdu monolitom i mikrosluzhbami — eto lozhnaya dichotomiya. Modulnyy monolit zanimayet seredinu i yavlyayetsya pravilnym otvetom dlya bolshego kolichestva komand, chem lyubaya iz kraynostey. Modulnyy monolit — eto yedinyy blok razvertyvaniya s chetko opredelennymi vnutrennimi modulyami, kotoryye sleduyut tem zhe pravilam granits, chto i mikrosluzhby, no bez seti.
Klyuchevoye otlichiye mezhdu modulnym monolitom i tipichnym monolitom — eto distsiplina. V tipichnom monolite moduly ne primenyayutsya — lyuboy kod mozhet importirovat lyuboy drugoy kod, i so vremenem granitsy razmyvayutsya v gryaznuyu massu. V modulnom monolite moduli imeyut yavnyye publichnyye API i privatnyye realizatsii. Modul A mozhet vzaimodeystvovat s Modulem B tolko cherez opredelennyy interfeys B. Pryamoy dostup k baze dannykh cherez granitsy modulev zapreshchen. Te zhe pravila, kotoryye upravlyayut mikroservisnoy kommunikatsiyey, primenyayutsya, no kommunikatsiya proiskhodit cherez vyzovy funktsiy vmesto HTTP-zaprosov.
Etot podkhod dayet vam bolshuyu chast preimushchestv mikrosluseb — primenyayemyye granitsy, nezavisimaya razrabotka vnutri moduley, yasnyye kontrakty — bez operatsionnykh zatrat. Vy poluchayete odin konveyer razvertyvaniya, odno prilozheniye dlya monitoringa i odnu kodovuyu bazu dlya navigatsii. No vy takzhe poluchayete granitsy moduley, kotoryye predotvrashchayut problemu gryaznoy massy i delayut budushcheye izvlecheniye v mikrosluzhby prostym.
// Granitsa modulnogo monolita v TypeScript
// Kazhdyy modul vystavlyayet tolko svoy publichnyy API
// modules/orders/public-api.ts
export {
createOrder,
getOrderById,
getOrdersByUser,
OrderService,
} from "./order-service";
// modules/orders/internal/ ← vse zdes chastnoye
// order-repository.ts
// order-validator.ts
// order-pricing.ts
// modules/payments/public-api.ts
export {
processPayment,
getPaymentStatus,
refundPayment,
} from "./payment-service";
// Mezhmodulnaya zavisimost yavna i audiruyema
// payments/payment-service.ts importiruyet iz orders/public-api
import { getOrderById } from "../../orders/public-api";Modulnyy monolit takzhe yavlyayetsya luchshey stranovkoy ot neopredelennogo budushchego. Yesli vy postroyite modulnyy monolit i pozdneye obnaruzhite, chto modul dolzhen stat nezavisimym servisom, izvlecheniye budet mekhanicheskim: vy kopiruyete kod modulya v novyy servis, vystavlyayete yego publichnyy API cherez HTTP ili ochered soobshcheniy i podklyuchayete vyzovshchika. Granitsy moduley uzhe sushchestvuyut. Interfeysy uzhe opredeleny. Trudnaya rabota — ponimaniye granits predmetnoy oblasti — uzhe sdelana.
Yesli vy stroitie traditsionnyy monolit bez granits moduley i pozdneye khotite izvlech servisy, vy stalkivayetes s gorazdo boleye slozhnoy problemoy. Vy dolzhny snachala obnaruzhit, gde dolzhny byt granitsy, zatem refaktorit kod, chtoby on ikh sobludal, i tolko potom izvlekat. Vot pochemu bolshinstvo migratsiy iz monolita v mikrosluzhby provalivayetsya — komandy nedootsenivayut rabotu po obnaruzheniyu granits i poluchayut mikrosluzhby, kotoryye svyazany takim obrazom, chto porazhayet tsel.
- Modulnyy monolit: yedinyy razvertyvayemyy blok, setevyye vyzovy zameneny vyzovami funktsiy, primenyayemyye granitsy moduley, legkiy put izvlecheniya.
- Traditsionnyy monolit: yedinyy razvertyvayemyy blok, bez primenyayemykh granits, maksimalnaya svoboda na rannikh etapakh, boleznennyy put izvlecheniya.
- Mikrosluzhby: mnogo razvertyvayemykh blokov, setevyye vyzovy dlya svyazi, primenyayemyye granitsy servisov, vysokaya operatsionnaya stoimost.
- Modulnyy monolit obychno yavlyayetsya luchshey iskhodnoy tochkoy, potomu chto sokhranyayet vozmozhnosti bez obyazatelstv k slozhnosti raspredelennoy sistemy.
Kogda mikrosluzhby deystvitelno imeyut smysl
Mikrosluzhby ne nepravilny. Oni nepravilny dlya bolshinstva komand, no yest stsenarii, gde stoimost opravdana vygodoy. Klyuch v tom, chtoby byt chestnym otnositelno togo, podkhodit li vash stsenariy na samom dele.
Nezavisimoye masshtabirovaniye — eto naiboleye zashchitimaya prichina dlya mikrosluseb. Yesli raznyye chasti vashey sistemy imeyut kardinalno raznyye profili masshtabirovaniya — vash API-gateway dolzhen obrabatyvat 100 000 zaprosov v sekundu, a vasha sluzhba otchyotnosti obrabatyvayet 100 zaprosov v chas — pomeshcheniye ikh v odin blok razvertyvaniya rastochayet resursy. Apparatura sluzhby otchyotnosti prostaivayet, a avtomaticheskoye masshtabirovaniye API-gatewaya ogranichivayetsya vremenem kholodnogo zapuska sluzhby otchyotnosti. Otdelnyye sluzhby mogut masshtabirovatsya nezavisimo, i ekonomiya ot effektivnogo ispolzovaniya resursov mozhet kompensirovat operatsionnyye nakladnyye raskhody.
Avtonomiya komandy — eto vtoraya legitimnaya prichina. Kogda u vas yest neskolko komand, rabotayushchikh nad odnoy sistemoy, i kazhdoy komande nuzhno razvertyvatsya nezavisimo v sobstvennom ritme, mikrosluzhby ustranyayut uzkoye mesto koordinatsii. Komanda A mozhet razvertyvat svoy servis tri raza v den, ne ozhidaya, poka Komanda B zavershit svoy review. No obratite vnimaniye na porog: etot argument primenim tolko kogda u vas yest neskolko komand. Yesli v vashey organizatsii vsego desyat razrabotchikov, u vas net problemy s koordinatsiyey, kotoruyu reshayut mikrosluzhby. U vas problema kommunikatsii, kotoruyu mozhno reshit obshchim Slack-kanalom.
Raznyye trebovaniya k nadezhnosti ili zaderzhke takzhe opravdyvayut mikrosluzhby. Yesli vasha sluzhba obrabotki platezhey nuzhdayetsya v ap-time 99,999%, a vasha analiticheskaya sluzhba mozhet terpet epizodicheskiye prostoi, ikh razdeleniye garantiruyet, chto bag v analiticheskoy otchyotnosti ne pomeshayet klientam oformit pokupku. Analogichno, yesli odna chast vashey sistemy trebuyet ekstremalno nizkoy zaderzhki, a drugaya mozhet terpet boleye vysokuyu zaderzhku, ikh razdeleniye pozvolyayet optimizirovat kazhduyu nezavisimo.
Tekhnologicheskoye raznoobraziye — eto samyy slabyy argument dlya mikrosluseb. Da, mikrosluzhby pozvolyayut ispolzovat raznyye yazyki i bazy dannykh dlya raznykh servisov. No na praktike bolshinstvo organizatsiy v lyubom sluchaye skhodyatsya na nebolshom nabore tekhnologiy, i operatsionnaya stoimost podderzhaniya neskolkikh sred vypolneniya obychno prevyshayet vygodu. Yesli vsya vasha komanda znayet TypeScript i PostgreSQL, sozdaniye odnogo servisa na Rust i drugogo na Go prosto radi ispolzovaniya drugoy tekhnologii — eto roskosh, kotoruyu bolshinstvo organizatsiy ne mozhet sebe pozvolit.
Shablon nachinat s monolita, izvlekat sluzhby
Samyy nadezhnyy shablon dlya sozdaniya programmnykh sistem v 2026 godu takzhe yavlyayetsya samym prostym: nachnite s modulnogo monolita, zatem izvlekayte sluzhby, kogda u vas budut dokazatelstva, chto oni vam nuzhny. Eto inogda nazyvayetsya shablonom snachala-monolit ili izvlecheniye-mikrosluseb, i on stal rekomendatsiyey po umolchaniyu ot organizatsiy, kotoryye proshli cherez tsikl khaypa mikrosluseb i vyzhili.
Shablon rabotayet v chetyre fazy. Faza pervaya — eto modulnyy monolit. Vy stroitie vse vashe prilozheniye kak yedinyy razvertyvayemyy blok so strogimi granitsami moduley. Kazhdyy modul vladeyet svoimi dannymi, vystavlyayet publichnyy API i sokhranyayet svoyu realizatsiyu privatnoy. Vy ispolzuyete tu zhe distsiplinu, chto i dlya mikrosluseb — yasnyye kontrakty, razdeleniye vladeniya dannymi, yavnyye zavisimosti — no vse rabotayet v odnom protsesse.
Faza vtoraya — eto izmereniye. Vy otslezhivayete, kakiye moduly izmenyayutsya chashche vsego, kakiye komandy rabotayut nad kakimi modulyami i kakiye moduli imeyut raznyye trebovaniya k masshtabirovaniyu ili nadezhnosti. Vy ne izvlekayete sluzhby na osnove intuitsii ili spekulyatsiy. Vy izvlekayete ikh na osnove dannykh — realnykh dokazatelstv togo, chto monolit sozdayet uzkoye mesto, kotoroye granitsa servisa mogla by ustranit.
Faza tretya — eto izvlecheniye. Vy berete modul, kotoryy dokazal, chto yemu nuzhno byt servisom — potomu chto yego chastota izmeneniy vyzyvayet slishkom mnogo razvertyvaniy monolita, ili yego trebovaniya k masshtabirovaniyu otlichayutsya ot ostalnoy sistemy — i izvlekayete yego. Poto chto modul uzhe imeyet chistyye granitsy, izvlecheniye yavlyayetsya mekhanicheskim. Vy sozdayote novyy servis s sobstvennym konveyyerom razvertyvaniya, vystavlyayete publichnyy API modulya cherez HTTP ili ochered soobshcheniy i obnovlyayete monolit, chtoby on vyzyval novyy servis vmesto modulya napryamuyu.
// Shag 1: Opredelite kandidata na izvlecheniye kak modul
// monolith/src/modules/reports/public-api.ts
export async function generateReport(
reportId: string
): Promise<ReportResult> {
// Detaal realizatsii: zaprashivayet otdelnuyu repliku dlya chteniya,
// zanimaet 30 sekund, ne dolzhen blokirovat osnovnoye prilozheniye
}
// Shag 2: Kogda dokazatelstva pokazyvayut, chto eto dolzhno byt servisom:
// 1. Sozdayte novyy servis iz koda modulya
// 2. Vystavite tot zhe API cherez HTTP
// 3. Zamenite pryamoy vyzov na klient servisa
// monolith/src/clients/reporting-service.ts
const client = new ServiceClient({
name: "reporting",
baseUrl: process.env.REPORTING_SERVICE_URL,
timeout: 60000, // Etot servis medlennyy
});
export async function generateReport(reportId: string) {
return client.post("/reports", { reportId });
}
// Monolitu ne nuzhno pererazvertyvatsya — klient obrabatyvayet
// povtornyye popytki, taym-auty i razryv tsepi vnutrenne.Faza chetvertaya — eto povtoreniye. Po mere rosta sistemy vy povtoryayete tsikl — izmeryayte, izvlekayte, izmeryayte snova. Nekotoryye servisy, kotoryye vy izvlechete, vozmozhno, nuzhno budet dalee razbit na boleye melkiye servisy. Nekotoryye, vozmozhno, nuzhno budet vernut obratno v monolit, yesli izvlecheniye ne prineslo tsennosti. Klyuch v tom, chto kazhdoye izvlecheniye osnovano na dokazatelstvakh, a ne na arkhitekturnoy dogme.
Etot shablon imeyet odnoye kriticheskoye preimushchestvo pered podkhodom snachala-mikrosluzhby: on otkladyvayet neobratimyye resheniya. Kazhdaya granitsa servisa, kotoruyu vy sozdayote, — eto neobratimoye obyazatelstvo pered slozhnostyu raspredelennoy sistemy. Kak tolko servis sushchestvuyet, vy ne mozhete legko izmenit yego granitsy, ne lomaya klientov. Nachinaya s monolita i izvlekaya tolko kogda eto neobkhodimo, vy garantiruyete, chto kazhdaya granitsa servisa opravdana realnymi trebovaniyami, a ne spekulyatsiyami o budushchikh nuzhdakh.
Kak vybrat: ramka prinyatiya resheniy
Kogda vy proyektiruyete novuyu sistemu ili otsenivayete vashu tekushchuyu arkhitekturu, proydite po etim voprosam po poryadku. Otvety ukazhut vam na pravilnuyu arkhitekturu bez neobkhodimosti predskazyvat budushcheye.
Pervyy vopros: skolko razrabotchikov rabotayut nad etoy sistemoy? Yesli otvet menshe desyati, nachnite s monolita — zhelatelno modulnogo. U vas net problemy s koordinatsiyey, kotoruyu reshayut mikrosluzhby, i vy ne mozhete pozvolit sebe operatsionnyye nakladnyye raskhody. Yesli otvet bolshe desyati, otvet zavisit ot togo, kak oni organizovany. Yesli oni rabotayut kak yedinaya komanda, monolit vse yeshche rabotayet. Yesli oni organizovany v neskolko avtonomnykh komand, mikrosluzhby, vozmozhno, stoit rassmotret.
Vtoroy vopros: yest li v vashey sisteme komponenty s fundamentalno raznymi profilyami masshtabirovaniya? Yesli kazhdaya chast vashey sistemy dolzhna masshtabirovatsya priblizitelno s odinakovoy skorostyu, net smysla ikh razdelyat. Yesli odin komponent dolzhen obrabatyvat desyat tysyach zaprosov v sekundu, a drugoy — desyat, razdelyayte ikh — no nachnite s razdeleniya tolko vysokomasshtabiruyemogo komponenta v sobstvennyy servis, a ne vsey sistemy.
Tretiy vopros: mozhete li vy razvertyvat vse chasti vashey sistemy po odnomu grafiku? Yesli da, monolit uproshchayet vash konveyer razvertyvaniya i snizhayet stoimost koordinatsii. Yesli net — potomu chto raznyye chasti sistemy imeyut raznyye tsikly relizov, normativnyye trebovaniya ili profili riska — mikrosluzhby pozvolyayut kazhdoy chasti sledovat sobstvennomu ritmu razvertyvaniya.
Chetvertyy vopros: chto proizoydet, yesli vse chasti vashey sistemy vyydut iz stroyu odnovremenno? Yesli otvet — vash biznes polnostyu ostanovitsya, vy ne poluchayete otkazoustoychivost ot mikrosluseb — vy prosto platite zatraty. Istinnaya otkazoustoychivost trebuyet ne prosto otdelnykh servisov, no i otdelnoy infrastruktury, otdelnykh khranilishch dannykh i bezopasnoy degradatsii mezhdu servisami. Bolshinstvo komand etogo ne stroyat. Oni stroyat servisy, kotoryye tesno svyazany v razvertyvanii i svobodno svyazany v teorii, chto yavlyayetsya nakhudshim iz oboikh mirov.
Luchshaya arkhitektura — eto ta, kotoruyu vasha komanda mozhet uverenno razvertyvat, bystro otlazhivat i izmenyat bez strakha. Kak by ona ni vyglyadela dlya vashey konkretnoy organizatsii — monolit, modulnyy monolit ili mikrosluzhby — eto i yest pravilnyy otvet. Vse ostalnoye — arkhitekturnaya moda, zaryadhennaya kak inzhenernyy printsip.
Pyatyy vopros: naskolko vy uvereny v granitsakh vashey predmetnoy oblasti? Yesli vy stroitie v khorosho izuchennoy oblasti s ustanovivshimisya shablonami — elektronnaya kommertsiya, upravleniye kontentom, billing — vashi granitsy predmetnoy oblasti otnositelno stabilny, i mikrosluzhby meneye riskovany. Yesli vy stroitie v novoy oblasti, gde granitsy vse yeshche formiruyutsya, monolit sokhranyayet vashu sposobnost k refaktoringu po mere togo, kak vashe ponimaniye razvivayetsya. Prezhdevremennyye granitsy servisov stanovyatsya ogranicheniyami, kotoryye zamedlyayut imenno tot protsess obucheniya, kotoryy vam nuzhno provodit.
Chestnyy otvet dlya bolshinstva komand v 2026 godu — eto modulnyy monolit. On dayet vam distsiplinu mikrosluseb bez operatsionnoy stoimosti. On sokhranyayet vozmozhnost pozdneye izvlech sluzhby, ne prinuzhdaya vas k slozhnosti raspredelennoy sistemy segodnya. On razvertyvayetsya odnim razrabotchikom, otlazhivayetsya s odnim potokom logov i izmenyayetsya s odnim pull requestom. I yesli vasha sistema vyrastet do togo, chto monolit bolshe ne rabotayet, modulnyye granitsy, kotoryye vy postroili, sdelayut perekhod k mikrosluzhbam boleye glavkim, chem vy ozhidayete.
Mayatnik arkhitektury kachnulsya obratno k prostote. Eto ne regressiya. Eto industriya uchitsya na opyte. Komandy, kotoryye ignorirali khayp — ili bystro vosstanovilis ot nego — eto te, kto dostavlyayet funktsii, a ne migriruyet sluzhby. Vyberite arkhitekturu, kotoraya pozvolyayet vam dostavlyat, i izmenyayte yeye, tolko kogda vasha sistema skazhet vam, chto nuzhno izmenitsya.
