Milih gaya arsitéktur (bagian 2)

Salam, Habr. Dinten ieu kuring neruskeun runtuyan publikasi nu kuring nulis husus pikeun mimiti aliran anyar tangtu. "Software Arsitek".

perkenalan

Pilihan gaya arsitéktur mangrupikeun salah sahiji kaputusan téknis dasar nalika ngawangun sistem inpormasi. Dina séri tulisan ieu, kuring ngajukeun pikeun nganalisis gaya arsitéktur anu paling populér pikeun aplikasi gedong sareng ngajawab patarosan iraha gaya arsitéktur mana anu paling dipikaresep. Dina prosés presentasi, kuring bakal nyobian ngagambar ranté logis anu ngajelaskeun ngembangkeun gaya arsitéktur ti monoliths mun microservices.

В panungtungan waktos kami diurus monolith jeung datang ka kacindekan yen monolith ngabogaan sajumlah masalah: ukuran, konektipitas, deployment, scalability, reliabilitas jeung rigidity.

Kali ieu kuring ngajukeun pikeun ngobrol ngeunaan kamungkinan pangatur sistem salaku sakumpulan modul / perpustakaan (arsitektur berorientasi komponén) atanapi jasa (arsitektur berorientasi jasa).

Arsitéktur berorientasi komponén

Arsitéktur berorientasi komponén ngalibatkeun ngalaksanakeun sistem salaku sakumpulan komponén anu tiasa dianggo dina proyék ayeuna sareng anu bakal datang. Nalika ngarecah sistem kana komponén, hal-hal di handap ieu dipertimbangkeun: reusability, kagantian, kamerdikaan konteks, extensibility, enkapsulasi sareng kamerdikaan.

Kalayan ngagunakeun komponén anu leres, masalah "bola kokotor ageung" (ukuran ageung + gandeng tinggi) direngsekeun, sareng komponénna tiasa janten unit assembly (modul, perpustakaan) sareng unit deployment (jasa). Unit deployment teu salawasna dipetakeun kana prosés ngajalankeun: contona, hiji aplikasi wéb jeung database anu deployed babarengan.

Paling sering, monoliths dikembangkeun salaku sakumpulan modul. pendekatan ieu ngakibatkeun ngembangkeun bebas, tapi masalah skala bebas sarta deployment, kasabaran sesar jeung kamerdikaan ti tumpukan téhnologi sakabéh tetep. Éta pisan sababna naha modul mangrupa komponén sawaréh bebas.

Masalah pangbadagna kalayan monolith misalna hiji yén division kana modul téh murni logis tur bisa gampang dilanggar ku pamekar. Modul inti tiasa muncul, anu laun-laun janten tempat sampah, grafik katergantungan antara modul tiasa tumbuh, sareng saterasna. Pikeun ngahindarkeun masalah sapertos kitu, pamekaran kedah dilakukeun ku tim anu dewasa pisan, atanapi di handapeun bimbingan "arsitek" anu kalibet dina ulasan kode full-time sareng ngéléhkeun panangan pamekar anu ngalanggar struktur logis.

The "ideal" monolith mangrupakeun sakumpulan modul dipisahkeun logis, nu masing-masing kasampak kana database sorangan.

Arsitéktur berorientasi jasa

Upami sistemna kedah diatur dina bentuk sakumpulan jasa, maka urang nyarioskeun arsitektur berorientasi jasa. Prinsipna nyaéta interoperabilitas aplikasi anu dipusatkeun ku pangguna, panggunaan deui jasa bisnis, kamandirian tumpukan téknologi, sareng otonomi (évolusi mandiri, skalabilitas, sareng panyebaran).

Arsitéktur berorientasi jasa (SOA = arsitéktur berorientasi jasa) ngarengsekeun sadaya masalah anu dicirikeun tina monolith: ngan ukur hiji jasa anu kapangaruhan nalika aya parobahan, sareng API anu didefinisikeun ogé ngadukung encapsulation komponén anu hadé.

Tapi henteu sadayana lancar: SOA nyiptakeun masalah énggal. Telepon jauh langkung mahal tibatan telepon lokal, sareng ngadistribusikaeun deui tanggung jawab antara komponén janten langkung mahal.

Ku jalan kitu, kamungkinan panyebaran mandiri mangrupikeun fitur anu penting pikeun jasa éta. Lamun jasa kudu deployed babarengan atawa, komo deui, dina runtuyan nu tangtu, sistem teu bisa dianggap jasa-berorientasi. Dina hal ieu, aranjeunna ngobrol ngeunaan hiji monolith disebarkeun (dianggap anti pola teu ukur ti sudut pandang SOA, tapi ogé ti sudut pandang arsitektur microservice).

Arsitéktur berorientasi jasa dirojong ogé ku komunitas arsitéktur sareng padagang. Ieu nunjukkeun ayana seueur kursus sareng sertifikasi, pola anu dikembangkeun. Anu terakhir kalebet, contona, beus jasa perusahaan anu terkenal (ESB = beus jasa perusahaan). Dina waktos anu sami, ESB mangrupikeun koper ti padagang; éta henteu kedah dianggo dina SOA.

Popularitas arsitéktur berorientasi jasa puncak sakitar 2008, saatos éta mimiti turun, anu janten langkung dramatis saatos munculna microservices (~ 2015).

kacindekan

Saatos urang ngabahas kamungkinan pikeun ngatur sistem inpormasi dina bentuk jasa sareng modul, kuring ngajukeun tungtungna ngaléngkah kana prinsip arsitéktur microservice sareng nengetan khusus kana bédana antara arsitéktur microservice sareng arsitéktur berorientasi jasa dina bagian salajengna.

Milih gaya arsitéktur (bagian 2)

sumber: www.habr.com

Tambahkeun komentar