194 lekti

Startups, Èske ou Reyèlman vle peye taks la microservices?

pa Oleg Pustovit15m2025/05/12
Read on Terminal Reader

Twò lontan; Pou li

Microservices premature drenaj vitès lan nan start-up ou ak konplèksite ak overhead. Rantre nan yon monolit jiskaske ou jwenn reyèl doulè skalasyon.
featured image - Startups, Èske ou Reyèlman vle peye taks la microservices?
Oleg Pustovit HackerNoon profile picture

Poukisa divize baz la kòd ou byen bonè ka silentman ranfòse vitès la nan ekip ou - ak sa ki ka fè nan plas la.

Poukisa divize baz la kòd ou byen bonè ka silentman ranfòse vitès la nan ekip ou - ak sa ki ka fè nan plas la.


Nan yon start-up,your survival depends on how quickly you can iterate, ship features, and deliver value to end-usersIsit la se kote enstriksyon an fondasyon nan start-up ou jwe yon gwo rol; Anplis de sa, bagay tankou tech stack ou ak chwa nan lang pwogramasyon dirèkteman afekte vitès la nan ekip ou a. Enstriksyon an ki nesesè, espesyalman microservices premature, ka sitou blese pwodiktivite a ak kontribye nan manke objektif nan livrezon lojisyèl.


Mwen te gen eksperyans sa a lè travay sou pwojè greenfield pou startups nan etap anvan, kote desizyon ki enpòtan te fè nan jaden an nan estrikti lojisyèl ki te mennen nan sèvis semi-finished akBrittle, over-engineered ak broken setup lokalEdemoralized teamski batay kenbe konplisite inutil.


Anvan plonje nan ti kras espesifik, isit la se sa ou se reyèlman anrejistre pou lè prezante microservices premature:


Microservices Early On: What You’re Paying For

Pain Point

Real-World Manifestation

Developer Cost

Deployment Complexity

Orchestrating 5+ services for a single feature

Hours lost per release

Local Dev Fragility

Docker sprawl, broken scripts, platform-specific hacks

Slow onboarding, frequent breakage

CI/CD Duplication

Multiple pipelines with duplicated logic

Extra toil per service

Cross-Service Coupling

"Decoupled" services tightly linked by shared state

Slower changes, coordination tax

Observability Overhead

Distributed tracing, logging, monitoring

Weeks to instrument properly

Test Suite Fragmentation

Tests scattered across services

Brittle tests, low confidence

Kompleksite nan deplwaman

Orchestrating 5 + sèvis pou yon sèl karakteristik

Hours lost per release

lokal Dev fragilite

Docker spread, broken skript, hacks platfòm espesifik

Slow onboarding, frequent breakage

CI / CD Duplikasyon

Plis pipelines ak duplicate lojik

Extra toil per service

Cross-sèvis Coupling

Sèvis "deskripsyon" estriktirèlman lye pa eta pataje

Slower changes, coordination tax

Observasyon sou tèt

Distribye tracing, logging, kontwole

Weeks to instrument properly

Tès Suite Fragmentation

Tès disperse atravè sèvis

Brittle tests, low confidence

Eske nou desakòz poukisa microservices souvan retire tan anvan, kote yo reyèlman ede, ak ki jan yo estriktire sistèm lan nan start-up ou pou vitès ak survival.

Monolit yo pa se l 'enemyen

Si ou se bati kèk SaaS pwodwi, menm yon senp SQL baz done wrapper ka finalman pote yon anpil nan konplisite enteryè nan fason logik biznis ou travay; Anplis de sa, ou ka jwenn nan divès kalite entegre ak travay background ki pèmèt transfere yon seri done nan yon lòt.


Pandan tan, pafwa karakteristik ki pa nesesè, li se evidan ke app ou ka devlope maladi. Ki bon sou monolit yo se: yo toujou ap travay.Monoliths, even when messy, keep your team focused on what matters most:


  • Reste nan viv
  • Livrezon nan valè kliyan


Pi gwo avantaj nan monolit se senplisite yo nan deplwaman. Anjeneral, pwojè sa yo te bati sou frameworks ki deja egziste - li ta ka Django pou Python,Tcheke nanpou C#, Nest.js pou aplikasyon yo Node.js, elatriye Lè ou kenbe nan arsitektur monolit, ou jwenn pi gwo avantaj sou microservices fancy - yon sipò lajè nan kominote louvri-sous ak manmè pwojè ki prensipalman konsepsyon ankadreman yo travay kòm yon pwosesis sèl, app monolit.


Nan yon start-up imobilye kote mwen te dirije ekip la front-end, ak kounye a konsilte ekip la backend sou chwa teknoloji, nou te gen yon evolisyon enteresan nan yon aplikasyon ki baze sou Laravel. Sa ki te kòmanse kòm yon tablo ti pou ajan imobilye pou jere tranzaksyon yo gradye devlope nan yon sistèm anpil pi gwo.


Pandan tan, li te devlope nan yon pakè rich nan karakteristik ki trete dè santèn de gigabytes nan dokiman ak entegre ak dè santèn de sèvis twazyèm-pati. Sepandan, li te rete bati sou yon stack PHP ki pi senp kouri sou Apache.



Ekip la pèmèt anpil sou pratik yo pi byen rekòmande pa kominote a Laravel. Disiplin sa a ranplase, nou te kapab ogmante kapasite a nan aplikasyon an anpil pandan y ap toujou satisfè bezwen yo ak espere nan biznis la.


Interessantman, nou pa janm te bezwen dekonekte sistèm la nan microservices oswa adopte modèl enfrastrikti plis konplèks. Nou evite yon anpil nan konplisite aksidan nan fason sa a. Simplisite a nan enstriksyon an te ba nou pwa. Sa a reflete sa lòt moun te ekri - tankou Basecamp a pran sou“Majestic Monolith” nan, ki montre poukisa senplisite se yon superpòt nan tan kap vini an.


Moun yo souvan montre ke li difisil fè monolit yo skalab, men li se yon bon modularizasyonEnfòmasyonmonolit ki ka lakòz pwoblèm sa yo.


Takeaway: A well-structured monolith keeps your team focused on shipping, not firefighting.

Men, Èske Microservices pa se “bèt pratik”?

Yon anpil enjenyè rive pou microservices byen bonè, panse yo se "mwa a dwat." Epi sanble - nan mas, yo ka ede. Men, nan yon start-up, sa a menm kompleksite chanje nan drag.


Microservices se sèlman peye lè ou gen reyèl entèlijans echèl, ekip gwo, oswa domèn devlope otomatikman. Anvan sa a? Ou peye pri a san yo pa jwenn benefis la: duplicated infra, fragile setup lokal, ak ranpli iterasyon. Pou egzanp,SegmentFinalmanReverse divizyon microservices yopou rezon sa a eksakteman - anpil pri, pa gen okenn valè.


Takeaway: Microservices are a scaling tool — not a starting template.

Ki kote microservices ale mal (Specially Early On)

Nan yon ekip premye etap mwen rekòmande, desizyon yo divize sèvis te kreye plis koordinasyon PM-enginyasyon sou tèt la pase benefis teknik. Arkitektur te fòme pa sèlman kòd la, men ki jan nou te planifye, estime, ak livrezon. Sa a taks òganizasyon se fasil yo manke - anvan li se tès.

Diagram: Coordination overhead grows linearly with services — and exponentially when you add product managers, deadlines, and misaligned timelines.



Isit la se anti-patnè ki pi komen ki kouvri nan tan kap vini an.

1. Fronti yo nan sèvis arbitrèr

Teyori, ou souvan wè sijesyon sou divize aplikasyon ou pa domèn biznis-logik - sèvis itilizatè, sèvis pwodwi, sèvis lòd, ak sou sa. Sa a souvan pran nan Domain-Driven konsepsyon oswa Clean Architecture konsèp - ki vle di nan mas, men nan pwodwi anvan etap, yo ka ossify estrikti prematurman, anvan pwodwi a menm se estab oswa valide. Ou fini ak:


  • Sèvi ak baz done
  • Cross-sèvis mande pou flux travay senp
  • Coupling maske kòm "separation"


Nan yon pwojè, mwen te wè yon ekip separe itilizatè, otantifikasyon, ak otorizasyon nan sèvis separe, ki te mennen nan deplwaman kompleksite ak pwoblèm nan koordinasyon sèvis pou nenpòt operasyon API yo te bati.


Nan reyalite, lojik biznis pa dirèkteman maps nan limit nan sèvis. Separasyon premature ka fè sistèm la plis fragile ak souvan difisil enpòte chanjman byen vit.


Pifò, izolasyon bouchon chiriji - ki baze sou doulè reyèl nan skalasyon, pa eleman teyori.


Pandan ke mwen te fòmasyon ekip yo nan etap anvan, nou pafwa itilize flè enteryè oswa plonje deplwaman simile divizyon sèvis nan tan kap vini an - san yo pa chaj la operasyonèl imedyatman. Sa a te ba pwodwi ak enjenyè espas yo eksplore limit nan òganikman, anvan fèmen nan enfrastrikti premature.


Takeaway: Don’t split by theory — split by actual bottlenecks.

2. Repository ak enfrastrikti Sprawl

Nan travay sou aplikasyon an, tipikman yon seri de bagay sa yo enpòtan:

  • Kòd style konsistans (linting)
  • Tès enfrastrikti, ki gen ladan tès entegre
  • Konfigirasyon anviwònman lokal
  • Dokiman
  • Konfigirasyon CI / CD


Si pwojè ou se estrikti kòm yon monorepo, ou ka senplize lavi ou pa gen yon konfigirasyon santral CI / CD (nan travay ak GitHub Actions oswa GitLab CI). Gen kèk ekip separe microservices nan depo separe, ki fè li pi difisil kenbe konsistans kòd la ak menm seri konfigirasyon san yo pa efò siplemantè oswa zouti.


Pou yon ekip twa moun, sa a se brutal. Konteks chanje atravè depo ak zouti ajoute moute nan tan devlopman nan chak karakteristik ki livrezon.

Minimize pwoblèm lè l sèvi avèk monorepos ak yon sèl lang pwogramasyon

Yon bagay ki pi enpòtan pou pwojè anvan yo se - kenbe kòd ou nan yon monorepo. Sa a asire ke gen yon sèl vèsyon nan kòd ki egziste sou prod, epi li se anpil pi fasil yo koordine revizyon kòd ak kolaborasyon pou ekip pi piti.


Pou pwojè Node.js, mwen rekòmande lè l sèvi avèk yon zouti monorepo tankounxouturborepoNan tou de:

  • Simplify CI / CD konfigirasyon atravè subprojects
  • sipòte dependency graph-based build caching
  • Pèmèt ou trete sèvis enteryè kòm bibliyotèk TypeScript (pa ES6 enpòte)


Zouti sa yo sove tan san yo te pase ekri kòd kle oswa reinvente orchestration. Sa a te di, yo vini ak kompromis reyèl:

  • Trè depans konplèks ka kwasans vit
  • CI pèfòmans tuning se pa trivial
  • Ou ka bezwen yon zouti pi vit (tankou bun) kenbe tan konstriksyon desann


Pou rezime: Tooling tankounxouturborepobay ti ekip ti monorepo vitès - si ou vle envesti nan kenbe yo netwaye.


Lè yo devlopego-pou microservices ki baze sou, yon lide bon anvan nan devlopman an se yo sèvi ak yon sèl goEspas travay akreplaceDirective nango.modFinalman, kòm lojisyèl an skalè, li se posib pou senpleman separe goModil yo nan depo separe.


Takeaway: A monorepo with shared infra buys you time, consistency, and sanity.

Broken Local Dev = vitès Broken

If it takes three hours, a custom shell script, and a Docker marathon just to run your app locally, you've already lost velocity.


Premye pwojè souvan soti nan:

  • Manke dokiman
  • Dependans ki oblije
  • Hack òdinatè espesifik (Hello, Linux sèlman enstalasyon)


Nan eksperyans mwen, lè mwen te resevwa pwojè soti nan ekip devlopman anvan, yo souvan devlope pou yon sèl sistèm opere. Gen kèk devlopè prefere bati sou macOS epi yo pa janm ankouraje sipòte scripts yo shell sou Windows. Nan ekip yo anvan m ', mwen te gen enjenyè travay sou machin Windows, ak souvan li te mande pou re-writing scripts shell oswa konpreyansyon konplètman ak reverse enjenyè pwosesis la pou jwenn anviwònman lokal la kouri. Avèk tan, nou estandaizasyon anviwònman atravè dev OS yo diminye friksyon onboarding - yon ti envestisman ki sove èdtan pou chak nouvo enjenyè. Li te frustrant - men li te anseye yon lekti long sou ki jan enpòtan


Nan yon lòt pwojè, yon pwojè solo te kreye yon konfigirasyon microservices fragile, ke flux travay nan kouri Docker containers monte nan yon sistèm dosye lokal. Natirèlman, ou peye yon ti pri pou kouri pwosesis yo kòm containers lè òdinatè ou kouri Linux.


Men, enbore yon nouvo dev front-end ak yon laptop Windows pi ansyen te vin nan yon maladi. Yo te gen yo ranplase dè santèn kontni jis yo wè UI a. Tout te ranpli - volim, rezo, konpatibilite kontni - ak enstalasyon an trè mal dokumente. Sa a te kreye yon gwo pwen friksyon pandan enbore.


Nou te finalman hacking ansanm yon Node.js proxy ki imite konfigirasyon nginx / Docker san konte. Li te pa elegant, men li pèmèt dev yo desbloke epi yo kòmanse kontribye.

Takeaway: If your app only runs on one OS, your team’s productivity is one laptop away from disaster.


Tip:Ideyalman, objektif pougit clone <repo> && make upSi li pa posib, Lè sa a, kenbe yon dosye README ajou ak enstriksyon pou Windows / macOS / Linux se yon nesesite. Jodi a, gen kèk lang pwogramasyon ak chaj zouti ki pa travay byen sou Windows (tankou OCaml), men modèn la lajman popilè stack kouri jis bon sou chak sistèm opere lajman itilize; pa limite enstalasyon lokal ou a yon sèl sistèm opere, li se souvan yon senp nan sous-investisman nan DX.

4. Teknoloji mismatch

Plis pase estrikti a, tech stack ou tou fòme ki jan mal microservices vin - pa tout lang brille nan yon estrikti microservices.


  • Node.js ak Python: Great pou iterasyon rapid, men jesyon bati artifak, vèsyon dependency, ak konsistans kouri tan atravè sèvis vin doulè byen vit.
  • Go: Kompilasyon nan binè estatik, tan konstriksyon vit, ak kouran operasyonèl ki ba. Plis natirèlman apwopriye lè divize se reyèlman bezwen.


Si ou ap chèche pou pèfòmans, ta ka chèche pou JVM a ak ekosistèm li yo ak kapasite yo deplwaye artefak yo nan skala ak kouri yo nan aritèkture ki baze sou microservices. Si ou fè iterasyon trè vit ak prototip rapidman san yo pa ankouraje pou skalasyon enfrastrikti deplwaman ou - ou se bon ak yon bagay tankou Python.


Li se byen souvan pou ekip yo realize ke gen pwoblèm gwo ak chwa yo nan teknoloji ki pa te evidan nan premye, epi yo te peye pri a nan rekonstriksyon an nan back-end la nan yon lang pwogramasyon diferan (tankoumoun sa yote fòse fè yon bagay sou legacy Python 2 codebase ak migre nan Go).


Men, anplis de sa, si ou reyèlman bezwen, ou ka bridge plizyè lang pwogram ak pwotokòl tankougRPCoswa kominikasyon mesaj async. Epi li se souvan fason yo ale sou bagay yo. Lè ou rive nan pwen sa a ke ou vle enrichir karakteristik ou ak fonksyonalite Machine Learning oswa travay ki baze sou ETL, ou ta jis separe bati enfrastrikti ML ki baze sou nan Python, akòz ekosistèm rich li yo nan bibliyotèk domèn-spesifik, ki natirèlman nenpòt lòt lang pwogramasyon manke. Men, desizyon sa yo ta dwe te fè lè gen anpil kont pou justifye antrepriz sa a; ansanm, ekip la ti pral etènman retire nan konplèksite a nan ponpe plizyè stacks lojisyèl ansanm.


Takeaway: Match the tech to your constraints, not your ambition.

5. Soti nan konplisite: Kominikasyon ak kontwole

Microservices prezante yon rezo invisible nan bezwen:

  • sèvis dekouvri
  • API vèsyon
  • Retriye, circuit breakers, fallbacks
  • Distribisyon nan tracing
  • Centralized logging ak alèt


Nan yon monolit, yon bug ta ka yon ranje stack senp. Nan yon sistèm distribiye, li se "pou ki jan sèvis A ka falsifye lè deplwaman B a retard C pa 30 segonn?" Ou ta dwe envesti kontan nan stack observability ou a. Pou fè li "korekteman", li mande pou enstriman aplikasyon ou nan fason spesifik, egzanp entegre OpenTelemetry a sipòte tracking, oswa depann sou zouti nan founisè nwaj ou tankou AWS XRay si ou ale ak yon sistèm san serveur konplèks. Men, nan moman sa a, ou gen konplètman chanje konsantrasyon ou soti nan kòd aplikasyon pou bati yon enfrastrikti monitoring konplèks ki valide si enstrikti ou seactuallytravay nan pwodiksyon an.


Natirèlman, kèk nan enstriman observabilite a se nesesè yo dwe fè sou aplikasyon yo monolit, men li se yon fason pi senp pase fè sa nan kantite sèvis nan yon fason konsistan.


Tip:Konpreyansyon kidistributed systems Li pa gratis.Yo se yon kominikasyon pou yon klas konplètman nouvo de repitasyon enjenyè.

Li pa gratis.

Kòm microservicesnanKòmanse sens

nan

Malgre nan pwoblèm yo te rele ak microservices, gen tan kote dekonekte nivo sèvis se reyèlman trè benefisye. Gen ka kote li definitivman ede:


  • Workload Isolation: yon egzanp komen pou sa ta dwe nan pratik yo pi byen nan AWS sou lè l sèvi avèk S3 nouvèl evènman - lè yon imaj chaje nan S3, desann yon imaj resize / OCR pwosesis, elatriye Poukisa li se itil: nou ka dekonekte bibliyotèk pwosesis done obscure nan yon sèvis pwòp-izole epi fè li yon API konsantre sèlman sou pwosesis imaj ak jere pwodiksyon soti nan done yo chaje. Kliyan upstream ou ki chaje done nan S3 yo pa konbine ak sèvis sa a, ak gen mwens overhead nan enstrumen yon sèvis sa a paske nan senplisite relatif li yo.
  • Divergent Scalability Needs: - Imagine ou se bati yon pwodwi AI. Yon pati nan sistèm la (web API) ki trigger ML workloads ak montre rezilta ki sot pase se pa resous enpòtan, li se limyè, paske li interaksyon sitou ak databas la. Anplis de sa, ML modèl kouri sou GPU yo se reyèlman difisil yo kouri ak mande pou machin espesyal ak GPU sipòte ak konfigirasyon adisyonèl. Pa divize pati sa yo nan aplikasyon an nan sèvis separe kouri sou machin diferan, ou ka scale yo otanpe.
  • Dapre ke ou gen kèk pati legacy nan kòd ekri nan C++. Ou gen 2 chwa - magik konvèti li nan lang pwogramasyon koutim ou oswa jwenn fason yo entegre li ak yon baz kòd. Depi de konplisite a nan app legacy sa a, ou ta dwe ekri kòd kle, implemantasyon rezo adisyonèl / pwotokòl yo etabli entèakrasyon ak sèvis sa a, men bòdwo a se - ou pral pwobableman gen yo separe app sa a kòm yon sèvis separe akòz incompatibilities kouri tan. Mwen ta di menm plis, ou ta ka ekri app prensipal ou nan C++ tou, men paske nan konfigirasyon konpilatè diferan ak depans bibliyotèk, ou pa ta kapab fasil konpilasyon bagay ansanm kòm yon sèl binary.


Organize enjenyè gwo-scale yo te fè fas ak retounen menm jan an. Pou egzanp, ekip la enjenyè nan Uberdokumente chanjman yo nan yon enstriktè microservices oryante domèn— pa soti nan purite teyori, men nan reponn a reyèl konplisite atravè ekip ak skalasyon limit. Post yo se yon bon egzanp nan ki jan microservices ka travay lè ou gen matirite òganizasyonèl ak operasyonèl overhead yo sipòte yo.


Nan yon pwojè, ki tou se yon pwojè imobilye, nou te gen kòd soti nan yon ekip anvan ke kouri python ki baze sou analytics workloads ki chaje done nan MS-SQL db, nou te jwenn ke li ta yon pèdi bati sou tèt li yon app Django. Kòd la te gen diferan dependences kouri tan ak te trè pwòp tèt ou-izole, se konsa nou kenbe li separe ak sèlman revize li lè yon bagay pa te travay kòm espere. Sa a te travay pou nou menm pou yon ekip ti, paske sèvis sa a analytics jenerasyon te yon pati ki te mande rare chanjman oswa manyen.


Takeaway: Use microservices when workloads diverge — not just because they sound clean.

Kòmandman pratik pou startups

Si w ap livrezon premye pwodwi ou, isit la se playbook mwen ta rekòmande:

  • Kòmanse monolit. Chwazi yon framework komen ak konsantre sou fè karakteristik yo fè. Tout frameworks yo konnen yo pi plis pase byen ase yo bati kèk API oswa sit entènèt ak sèvi ak itilizatè yo. Pa swiv hype a, kenbe nan fason la plonje nan fè bagay; ou ka kontan tèt ou pita.
  • Yon sèl repò. Pa fè fas a divize kòd ou nan plizyè depo. Mwen te travay ak fondatè ki te vle separe repò yo diminye risk la nan antrepriz kopye IP - yon pwoblèm valab. Men, nan pratik, li te ajoute plis friksyon pase sekirite: konstriksyon pi lontan, fragman CI / CD, ak vizibilite pafè atravè ekip yo. pwoteksyon an IP marginal te pa vo aksè a operasyonèl la, espesyalman lè kontwòl aksè apwopriye nan yon monorepo te pi fasil yo jesyon. Pou ekip yo nan etap ki pi bonè, clarity ak vitès gen tendans a enpòtan plis pase pwoteksyon teyori.
  • Dead-simple lokal enstalasyon. Fè make-up travay. Si li pran plis, yo dwe trè patikilye sou etap yo, enregistre yon videyo / Loom, ak ajoute screenshots. Si kòd ou ap kouri pa yon intern oswa junior dev, yo pral anpeche yon bloke wout, epi ou pral pase tan eksplike ki jan yo rezoud yon pwoblèm. Mwen te jwenn ke dokimante chak pwoblèm posib pou chak sistèm opere elimine tan ki te pase nan klarifikasyon poukisa kèk bagay nan yon enstalasyon lokal pa te travay.
  • Envestisman an byen bonè nan CI / CD. Menm si li se yon HTML senp ke ou ka sèlman scp nan yon sèvè manyenman, ou ka otomatize sa a ak depann sou kontwòl sous ak CI / CD yo fè li. Lè enstalasyon an se byen otomatik, ou jis oblije sou enfrastrikti entegre kontinyèl ou ak konsantre sou karakteristik yo. Mwen te wè anpil ekip ak fondatè lè travay ak ekip yo outsourced souvan se bon mache sou CI / CD, ak sa rezilta nan ekip la se demoralize ak ankouraje pa pwosesis deplwaman manyen.
  • Divize chiriji. Divize sèlman lè li klèman rezoud yon kouch nan boutèy. Ansanm, envesti nan modularite ak tès nan monolit la - li pi vit ak pi fasil yo kenbe.


Anplis de sa:optimize for developer velocity.


Velocity is your startup’s oxygen.Microservices premature kache oksijèn lontan - jiska yon jou, ou pa ka respire.


Takeaway: Start simple, stay pragmatic, and split only when you must.

Si ou ale ak yon apwòch ki baze sou microservice

Mwen te kreye pwojè ki baze sou microservices anvan yo ta dwe te fè, e isit la yo se rekòmandasyon sa yo mwen ta ka bay sou sa:


  • Evalye stack teknik ou ki pèmèt microservices ki baze sou architecture ou. Envesti nan devlopè eksperyans zouti. Lè ou gen sèvis ki baze sou separe, ou kounye a bezwen panse sou otomatize microservices stack ou, otomatize konfigirasyon nan tou de lokal ak pwodiksyon anviwònman. Nan kèk pwojè, mwen te bati yon CLI separe ki fè travay administrasyon sou monorepository. Yon pwojè mwen te gen 15-20 microservices deplwaman, ak pou anviwònman lokal, mwen te kreye yon cli-outil pou jere docker-compose.yml dosye dinamikman pou sansib yon sèl-komand start-up pou devlopè a regilye.
  • Konsantre sou pwotokòl kominikasyon serye alantou kominikasyon sèvis. Si li se mesaj asynchronous, asire w ke estrikti mesaj ou yo konsistan ak estanda. Si li se REST, konsantre sou OpenAPI dokiman. Kliyan kominikasyon ant sèvis dwe implemente anpil bagay ki pa soti-of-the-box: retries ak repons eksponansyèl, timeouts. Yon tipik gRPC kliyan ba-bones mande pou ou manyen faktori sa yo bagay adisyonèl yo asire w ke ou pa gen pwoblèm nan erè tranzisyonèl.
  • Asire w ke inite ou, entegre tès, ak end-to-end tès konfigirasyon se estab ak skalè ak kantite separasyon nivo sèvis ou mete nan baz la kòd ou.
  • Sou pwojè ki pi piti ki sèvi ak kouch travay ki baze sou microservices, ou ta ka default nan yon livrezon pataje ak asistan komen pou enstriman observabilite ou, kòd kominikasyon nan yon fason konsistan. Yon konsèp enpòtan isit la - kenbe livrezon pataje ou pi piti ke posib. Nenpòt chanjman enpòtan mande pou rekonstriksyon nan tout sèvis depann - menm si yo pa gen rapò.
  • Ajoute log yo estrikti-JSON ak kreye ID korelasyon divès kalite pou debugging bagay yon fwa aplikasyon ou a se deplase. Menm asistan prensipal ki pwodui rich enfòmasyon logging (pandan ke ou te enstriman aplikasyon ou ak fasilite logging / tracking apwopriye) souvan sove tan detèmine flux itilizatè flake.


Pou rezime: si ou toujou ale pou microservices, ou ta dwe anvan konprann taks la ou pral peye nan tèm nan tan devlopman adisyonèl ak mantalye fè konfigirasyon an travay pou chak enjenyè nan ekip ou.


Takeaway: If you embrace complexity, invest fully in making it manageable.

Konklisyon

Premature microservices are a tax you can’t afford. Stay simple. Stay alive.Divize sèlman lè doulè a fè li evidan.


Survive first. Scale later. Choose the simplest system that works — and earn every layer of complexity you add.

Resous ki gen rapò

  • Monolit premye - Martin Fowler
  • Monolit la Majestic - DHH / Basecamp
  • Adieu Microservices: Soti nan 100s nan timoun pwoblèm nan 1 superstar — Segman Eng.
  • Dekonstriksyon nan Monolit - Shopify Eng.
  • Domain-Oriented Microservice Architecture — Uber Eng.
  • Go + Sèvis = Yon pwojè Goliath - Khan Akademi


Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks