Архитектуралык стилди тандоо (2-бөлүк)

Салам, Хабр. Бүгүн мен курстун жаңы агымынын башталышы үчүн атайын жазган бир катар басылмаларымды улантып жатам. "Программалык камсыздоо архитектору".

тааныштыруу

Архитектуралык стилди тандоо маалымат системасын курууда негизги техникалык чечимдердин бири болуп саналат. Бул макалалар сериясында мен тиркемелерди куруу үчүн эң популярдуу архитектуралык стилдерди талдап чыгууну жана кайсы учурда кайсы архитектуралык стилге көбүрөөк артыкчылык берүү деген суроого жооп берүүнү сунуштайм. Презентация процессинде мен монолиттерден микросервистерге чейин архитектуралык стилдердин өнүгүшүн түшүндүргөн логикалык чынжырды тартууга аракет кылам.

В акыркы жолу биз монолит менен алектенип, монолиттин бир катар көйгөйлөрү бар деген тыянакка келдик: өлчөмү, байланышы, жайылтуусу, масштабдуулугу, ишенимдүүлүгү жана катуулугу.

Бул жолу мен системаны модулдардын/китепканалардын (компоненттерге багытталган архитектура) же сервистердин (кызмат көрсөтүүгө багытталган архитектура) жыйындысы катары уюштуруунун мүмкүнчүлүктөрү жөнүндө сөз кылууну сунуштайм.

Компонентке багытталган архитектура

Компонентке багытталган архитектура системаны учурдагы жана келечектеги долбоорлордо колдонула турган компоненттердин жыйындысы катары аткарууну камтыйт. Системаны курамдык бөлүктөргө бөлүүдө төмөнкүлөр эске алынат: алардын көп жолу колдонулушу, алмаштырылышы, контексттик көз карандысыздыгы, кеңейүүчүлүк, инкапсуляция жана көз карандысыздык.

Компоненттерди туура колдонуу менен "чоң топ кир топу" (чоң өлчөм + бийик муфта) маселеси чечилет, ал эми компоненттердин өзү да монтаждоо бирдиктери (модульдер, китепканалар) жана жайылтуу бирдиктери (кызматтар) болушу мүмкүн. Жайгаштыруу бирдиктери дайыма эле иштеп жаткан процесске окшоштурулбайт: мисалы, веб-тиркеме жана маалымат базасы чогуу жайгаштырылат.

Көпчүлүк учурда, монолиттер модулдардын жыйындысы катары иштелип чыккан. Бул ыкма көз карандысыз өнүгүүгө алып келет, бирок көз карандысыз масштабдоо жана жайылтуу, каталарга чыдамдуулук жана жалпы технологиялык стектен көз карандысыздык көйгөйлөрү бойдон калууда. Ошондуктан модул жарым-жартылай көз карандысыз компонент болуп саналат.

Мындай монолиттин эң чоң көйгөйү - модулдарга бөлүү таза логикалык жана иштеп чыгуучулар тарабынан оңой бузулушу. Негизги модул пайда болушу мүмкүн, ал акырындык менен таштандыга айланат, модулдардын ортосундагы көз карандылыктын графиги чоңоюшу мүмкүн ж.б.у.с. Мындай көйгөйлөрдү болтурбоо үчүн, иштеп чыгуу же өтө жетилген команда тарабынан, же толук убакыттагы кодду карап чыгуу менен алектенген жана логикалык түзүлүштү бузган иштеп чыгуучулардын колун сабаган "архитектордун" жетекчилиги астында жүргүзүлүшү керек.

"Идеалдуу" монолит - бул логикалык жактан бөлүнгөн модулдардын жыйындысы, алардын ар бири өзүнүн маалымат базасын карайт.

Кызматка багытталган архитектура

Эгерде система кызматтардын жыйындысы түрүндө уюштурулушу керек болсо, анда биз кызмат көрсөтүүгө багытталган архитектура жөнүндө сөз болуп жатат. Анын принциптери колдонуучуга багытталган колдонмонун өз ара иштешүүсү, бизнес кызматын кайра колдонуу, технология стекинин көз карандысыздыгы жана автономия (көз карандысыз эволюция, масштабдуулук жана жайылтуу).

Кызматка багытталган архитектура (SOA = кызматка багытталган архитектура) монолиттин бардык аныкталган көйгөйлөрүн чечет: өзгөрүү болгондо бир гана кызмат таасир этет, ал эми так аныкталган API компоненттердин жакшы инкапсуляциясын колдойт.

Бирок баары ушунчалык жылмакай эмес: SOA жаңы көйгөйлөрдү жаратат. Алыскы чалуулар жергиликтүү чалууларга караганда кымбатыраак жана компоненттердин ортосунда милдеттерди кайра бөлүштүрүү кыйла кымбат болуп калды.

Айтмакчы, көз карандысыз жайылтуу мүмкүнчүлүгү кызматтын абдан маанилүү өзгөчөлүгү болуп саналат. Кызматтарды чогуу же андан тышкары, белгилүү бир ырааттуулукта жайгаштыруу керек болсо, анда системаны кызматка багытталган деп кароого болбойт. Бул учурда, алар бөлүштүрүлгөн монолит (SOA көз карашынан гана эмес, микросервис архитектурасынын көз карашынан да анти-үлгү деп эсептелет) жөнүндө сөз кылышат.

Кызматка багытталган архитектура архитектуралык коомчулук жана сатуучулар тарабынан жакшы колдоого алынат. Бул көптөгөн курстардын жана сертификаттардын, жакшы иштелип чыккан үлгүлөрдүн болушун билдирет. Акыркысы, мисалы, белгилүү ишкана сервис автобусун (ESB = Enterprise Service Bus) камтыйт. Ошол эле учурда, ESB сатуучулардан жүк болуп саналат;

Кызмат көрсөтүүгө багытталган архитектуранын популярдуулугу 2008-жылы туу чокусуна жеткен, андан кийин ал төмөндөй баштаган, ал микросервистердин пайда болушунан кийин (~2015-ж.) олуттуураак болуп калган.

жыйынтыктоо

Кызматтар жана модулдар түрүндөгү маалыматтык системаларды уюштуруу мүмкүнчүлүктөрүн талкуулагандан кийин, мен акырында микросервис архитектурасынын принциптерине өтүүнү жана кийинки бөлүктө микросервис архитектурасы менен сервистик багытталган архитектуранын айырмасына өзгөчө көңүл бурууну сунуштайм.

Архитектуралык стилди тандоо (2-бөлүк)

Source: www.habr.com

Комментарий кошуу