Milih gaya arsitektur (bagean 2)

Sugeng rawuh, Habr. Dina iki aku terus seri saka publikasi sing aku wrote khusus kanggo wiwitan stream anyar mesthi. "Software Architect".

Pambuka

Pilihan gaya arsitektur minangka salah sawijining keputusan teknis dhasar nalika mbangun sistem informasi. Ing seri artikel iki, aku ngusulake kanggo nganalisa gaya arsitektur sing paling populer kanggo aplikasi bangunan lan mangsuli pitakon babagan kapan gaya arsitektur sing paling disenengi. Ing proses presentasi, aku bakal nyoba nggambar rantai logis sing nerangake pangembangan gaya arsitektur saka monoliths menyang microservices.

В pungkasan wektu kita urusan karo monolith lan teka menyang kesimpulan sing monolith wis sawetara masalah: ukuran, panyambungan, penyebaran prajurit, kaukur, linuwih lan rigidity.

Wektu iki aku ngusulake kanggo pirembagan babagan kemungkinan ngatur sistem minangka set modul / perpustakaan (arsitektur berorientasi komponen) utawa layanan (arsitektur berorientasi layanan).

Arsitektur berorientasi komponen

Arsitèktur berorientasi komponen kalebu nglakokaké sistem minangka sakumpulan komponen sing bisa digunakake ing proyèk saiki lan mangsa ngarep. Nalika ngilangi sistem dadi komponen, ing ngisor iki dianggep: bisa digunakake maneh, bisa diganti, kamardikan konteks, ekstensibilitas, enkapsulasi lan kamardikan.

Kanthi nggunakake komponen sing tepat, masalah "werni gedhe saka rereget" (ukuran gedhe + kopling dhuwur) ditanggulangi, lan komponen kasebut bisa dadi unit perakitan (modul, perpustakaan) lan unit penyebaran (layanan). Unit panyebaran ora tansah dipetakan menyang proses sing mlaku: contone, aplikasi web lan database disebarake bebarengan.

Paling asring, monoliths dikembangake minangka set modul. Pendekatan iki ndadékaké kanggo pembangunan sawijining, nanging masalah saka scaling independen lan panyebaran, toleransi fault lan kamardikan saka tumpukan teknologi sakabèhé tetep. Mulane modul kasebut minangka komponen sing sebagian independen.

Masalah paling gedhe karo monolith kuwi yaiku divisi menyang modul murni logis lan bisa gampang dilanggar dening pangembang. Modul inti bisa uga katon, sing mboko sithik dadi mbucal sampah, grafik dependensi antarane modul bisa tuwuh, lan liya-liyane. Kanggo ngindhari masalah kasebut, pangembangan kudu ditindakake dening tim sing diwasa banget, utawa ing bimbingan "arsitek" sing melu review kode full-time lan ngalahake tangan para pangembang sing nglanggar struktur logis.

Monolit "becik" minangka sakumpulan modul sing dipisahake kanthi logis, saben-saben katon ing basis data dhewe.

Arsitektur berorientasi layanan

Yen sistem kasebut kudu diatur ing bentuk set layanan, mula kita ngomong babagan arsitektur berorientasi layanan. Prinsip kasebut yaiku interoperabilitas aplikasi sing dipusatake pangguna, panggunaan maneh layanan bisnis, kamardikan tumpukan teknologi, lan otonomi (evolusi independen, skalabilitas, lan penyebaran).

Arsitektur berorientasi layanan (SOA = arsitektur berorientasi layanan) ngrampungake kabeh masalah monolit sing diidentifikasi: mung siji layanan sing kena pengaruh nalika ana owah-owahan, lan API sing ditemtokake kanthi apik ndhukung encapsulation komponen sing apik.

Nanging ora kabeh lancar: SOA nggawe masalah anyar. Telpon remot luwih larang tinimbang sing lokal, lan mbagekke tanggung jawab antarane komponen dadi luwih larang.

Miturut cara, kamungkinan penyebaran mandiri minangka fitur layanan sing penting banget. Yen layanan kudu disebarake bebarengan utawa, luwih-luwih, ing urutan tartamtu, mula sistem kasebut ora bisa dianggep berorientasi layanan. Ing kasus iki, padha ngomong babagan monolit sing disebarake (dianggep minangka anti-pola ora mung saka sudut pandang SOA, nanging uga saka sudut pandang arsitektur microservice).

Arsitektur berorientasi layanan uga didhukung dening komunitas arsitektur lan vendor. Iki tegese ana akeh kursus lan sertifikasi, pola sing dikembangake kanthi apik. Sing terakhir kalebu, contone, bus layanan perusahaan sing kondhang (ESB = bus layanan perusahaan). Ing wektu sing padha, ESB minangka bagasi saka vendor; ora kudu digunakake ing SOA.

Popularitas arsitektur berorientasi layanan munggah ing udakara 2008, banjur wiwit mudhun, sing dadi luwih dramatis sawise muncule layanan mikro (~ 2015).

kesimpulan

Sawise kita wis rembugan kemungkinan ngatur sistem informasi ing wangun layanan lan modul, Aku propose kanggo pungkasanipun pindhah menyang prinsip arsitektur microservice lan mbayar manungsa waé khusus kanggo prabédan antarane arsitektur microservice lan arsitektur layanan-oriented ing bagean sabanjure.

Milih gaya arsitektur (bagean 2)

Source: www.habr.com

Add a comment