Menehi kula bali monolit sandi

Katon yen puncak hype kanggo microservices ana ing mburi kita. Kita ora maca postingan kaping pirang-pirang seminggu "Carane mindhah monolit menyang 150 layanan." Saiki aku krungu pikiran sing luwih umum: "Aku ora sengit karo monolit, aku mung peduli babagan efisiensi." Kita malah mirsani sawetara migrasi saka microservices bali menyang monolith. Nalika pindhah saka siji aplikasi gedhe menyang sawetara layanan sing luwih cilik, sampeyan kudu ngatasi sawetara masalah anyar. Ayo kita dhaptar kanthi ringkes.

Setelan: saka kimia dhasar kanggo mekanika kuantum

Nggawe basis data lan aplikasi dhasar kanthi proses latar mburi minangka proses sing cukup gampang. Aku nerbitake readme ing Github - lan asring sawise siji jam, paling sawetara jam, kabeh bisa digunakake, lan aku miwiti proyek anyar. Nambah lan mbukak kode, paling ora kanggo lingkungan awal, wis rampung ing dina pisanan. Nanging yen kita usaha menyang microservices, wektu peluncuran awal skyrockets. Ya, saiki kita duwe Docker kanthi orkestrasi lan kluster mesin K8, nanging kanggo programer anyar, kabeh iki luwih rumit. Kanggo akeh junior, iki minangka beban sing pancen komplikasi sing ora perlu.

Sistem kasebut ora gampang dingerteni

Ayo fokus ing junior kita sedhela. Kanthi aplikasi monolitik, yen ana kesalahan, gampang dilacak lan langsung pindhah menyang debugging. Saiki kita duwe layanan sing ngomong karo layanan liyane sing antri ing bis pesen sing ngolah layanan liyane - banjur ana kesalahan. We kudu sijine kabeh bΓͺsik iki bebarengan kanggo pungkasanipun mangerteni sing Service A mlaku versi 11, lan Service E wis nunggu versi 12. Iki beda banget saka log consolidated standar: kudu nggunakake terminal interaktif / debugger kanggo lumaku. liwat proses langkah demi langkah. Debugging lan pangerten wis dadi luwih angel.

Yen ora bisa didebug, mungkin kita bakal nyoba

Integrasi terus-terusan lan pangembangan terus-terusan saiki dadi umum. Umume aplikasi anyar sing dakdeleng kanthi otomatis nggawe lan nganakake tes saben rilis anyar lan mbutuhake tes sing kudu ditindakake lan dideleng sadurunge registrasi. Iki minangka proses gedhe sing ora kudu ditinggalake lan wis dadi owah-owahan gedhe kanggo akeh perusahaan. Nanging saiki, kanggo nyoba layanan kasebut, aku kudu narik versi lengkap aplikasiku. Elinga yen insinyur anyar karo kluster K8 150 layanan? Saiki, kita bakal ngajari sistem CI babagan carane nggawe kabeh sistem kasebut kanggo verifikasi manawa kabeh bisa digunakake. Iki mbokmenawa akeh banget gaweyan, supaya kita mung bakal nyoba saben bagean ing isolasi: Aku manteb ing ati sing spek kita cukup apik, API resik, lan Gagal layanan diisolasi lan ora mengaruhi liyane.

Kabeh kompromi duwe alasan sing apik. bener?

Ana akeh alasan kanggo pindhah menyang layanan mikro. Aku wis ndeleng iki rampung kanggo keluwesan luwih, kanggo tim skala, kanggo kinerja, kanggo nyedhiyani sustainability luwih. Nanging nyatane, kita wis nandur modal puluhan taun ing alat lan praktik kanggo ngembangake monolit sing terus berkembang. Aku kerja karo profesional ing macem-macem teknologi. Biasane kita pirembagan babagan skala amarga padha mbukak menyang watesan siji Postgres database simpul. Umume obrolan babagan scaling database.

Nanging aku tansah kasengsem sinau babagan arsitektur. Apa tahap transisi menyang layanan mikro? Iku menarik kanggo ndeleng engineers liyane ngandika seneng karo aplikasi monolithic sing. Akeh wong bakal entuk manfaat saka microservices, lan keuntungan bakal ngluwihi bumps ing dalan migrasi. Nanging kanthi pribadi, tulung aku menehi aplikasi monolitik, papan ing pantai - lan aku seneng banget.

Source: www.habr.com

Add a comment