I-ViennaNET: iqoqo lemitapo yolwazi ye-backend

Sawubona wonke umuntu!

Siwumphakathi wabathuthukisi be-.NET e-Raiffeisenbank futhi sifuna ukukhuluma ngeqoqo lemitapo yolwazi yengqalasizinda esuselwe ku-.NET Core ngokwakha ngokushesha ama-microservices nge-ecosystem eyodwa. Bayilethe ku-Open Source!

I-ViennaNET: iqoqo lemitapo yolwazi ye-backend

Umlando omncane

Sake saba nephrojekthi enkulu ye-monolithic, eyaphenduka kancane kancane yaba isethi yama-microservices (ungafunda ngezici zale nqubo ku. lesi sihloko). Kulolu hlelo, sihlangabezane nenkinga yokuthi lapho sidala ama-microservices amasha, ngokuvamile kwakudingeka sikopishe izixazululo ezihlukahlukene zengqalasizinda - njengokusetha ukugawulwa kwemithi, ukusebenza ngesizindalwazi, i-WCF, njll. Ithimba elilodwa lasebenza kule phrojekthi, futhi wonke umuntu wayeseyijwayele indlela ethile emisiwe yokusebenza nengqalasizinda. Ngakho-ke, sahlukanisa ikhodi evamile endaweni yokugcina ehlukile, sagoqa imitapo yolwazi eqoqwe kumaphakheji e-Nuget futhi sayibeka endaweni yethu yokugcina yangaphakathi ye-Nuget.

Kwahamba isikhathi, iphrojekthi yahlukana kancane kancane, futhi kwaba nesifiso sokwakha amamojula amasha ohlangothini lweklayenti kuhlaka lwesimanje lwe-JS futhi uwasebenzise esipheqululini. Siqale ukusuka ku-WCF/SOAP saya ku-REST/HTTP, ngakho-ke besidinga imitapo yolwazi emisha ukuze sethule ngokushesha izinsiza ezisekelwe ku-AspNet WebApi. Inguqulo yokuqala ku-.Net Framework 4.5 yenziwa umakhi wethu cishe eguqe ngamadolo ngesikhathi sakhe samahhala, kodwa ngaphandle kwebhokisi kwenze kwaba nokwenzeka ukwethulwa kwenkonzo enemigqa emithathu ku-Program.cs equkethe ukugunyazwa (NTLM), ukugawula, i-Swagger, i-IoC/DI ngokusekelwe ku-Castle Windsor, amaklayenti e-HTTP enziwe ngokwezifiso adlulisela izihloko ezihlukahlukene ukuze anikeze ukugawulwa kwemithi ekupheleni kuyo yonke iphrojekthi. Futhi yonke le nto ingase iphinde ilungiselelwe ngokuqondile kufayela lokucushwa kwesevisi.

Kodwa-ke, akuyona yonke into eyayibushelelezi: lo mtapo wezincwadi ubonakale ungaguquguquki ngokwedlulele ngokwethula amamojula amasha. Isibonelo, uma ubudinga ukungeza i-middleware ethile ekhethekile, bekumele udale ukuhlangana okusha futhi uthole ifa lesigaba sesisekelo esiphethe isevisi, obekungasizi kakhulu. Ngenhlanhla, abengekho maningi kakhulu amacala anjalo.

Isikhathi se-Docker ne-Kubernetes

Isikhathi sesifikile lapho igagasi le-Docker ne-Kubernetes lifinyelela kithi, esilibhekisise kahle: phela, kube yithuba elihle lokuqala ukuqhubekela phambili nobuchwepheshe, ku-.Net Core. Lokhu kusho ukuthi sizodinga ingqalasizinda entsha ukuze siqhube izinsiza: eminye imitapo yolwazi ithuthile isuka ku-.Net Framework yaya ku-.Net Standard kanye ne-.Net Core ngaphandle kwezinguquko, eminye inokuthuthukiswa okuncane. Kodwa ngaphezu kwakho konke bengifuna ukulungisa kabusha ukusebenza okuhlotshaniswa nokwethulwa kwezinsizakalo ku-AspNet Core.

Into yokuqala esiyicabangele kwakuwumqondo ozosusa inselelo eyinhloko yenguqulo yangaphambilini: ukuntuleka kokuguquguquka. Ngakho-ke, kwanqunywa ukuthi kwenziwe lonke uhlelo lomtapo wolwazi luzimele futhi lube yimodyuli ngangokunokwenzeka futhi kuqoqwe izinsiza ezidingekayo ukuze kusebenze njengomakhi.

Umgomo oyinhloko uwukwenza indlela ebumbene echaza indlela yokusebenzisana nesizindalwazi, amabhasi nezinye izinsiza. Sizamile ukwenza ukuhlanganiswa kusheshe futhi kungabi nabuhlungu, futhi abathuthukisi bangagxila ekubhaleni ingqondo yebhizinisi kunengqalasizinda - isivele isilungile. Inqolobane evamile isiza ukuthuthukisa umuzwa wokusebenzelana phakathi kwamaqembu: uma kusetshenziswa izingqalasizinda zangaphakathi ezifanayo kakhulu, kulula ukujoyina inqubo yokuthuthukisa elinye iqembu nokushintshisana ngobungcweti.

Futhi kungani sidinga Umthombo Ovulekile?

Sifuna ukukhombisa ukuvuthwa kobuchwepheshe bethu futhi sithole impendulo yekhwalithi ephezulu: umuntu ongaphandle kwebhange uzokwazi ukuletha okuthile ngokwakhe. Siphinde sinentshisekelo ekuthuthukisweni kwezinqubo zokusebenza ngama-microservices kanye ne-DDD ku-.NET embonini, mhlawumbe othile uzofuna ukuthatha izingxenye ezithile zohlaka.

Eqinisweni, i-ViennaNET

Manje ake sibhekisise. Ikhodi yomthombo egcwele ifakwe lapha.

I-ViennaNET.WebApi.*

Leli sethi lamalabhulali liqukethe “impande” i-ViennaNET.WebApi, equkethe isigaba somakhi wesevisi ye-CompanyHostBuilder, kanye nesethi yabahleli be-ViennaNET.WebApi.Configurators.*, ngayinye ekuvumela ukuthi wengeze futhi ulungiselele ukusebenza okuthile kokudaliwe. isevisi. Phakathi kwama-configurator ungathola ukuxhumana kokungena, ukuxilonga, ukufakazela ubuqiniso nezinhlobo zokugunyaza, i-swagger, njll.

I-ViennaNET.WebApi.Runners.* futhi iqukethe abakhi besevisi abamiswe ngaphambilini. Lawa maphakheji akuvumela ukuthi ungakhumbuli ngaso sonke isikhathi lapho udala isevisi entsha lapho izihleli zidinga ukuxhunywa. Kodwa-ke, azikhawuli ukusebenza komakhi wesevisi nganoma iyiphi indlela.

I-ViennaNET.Mediator.*

Imitapo yolwazi ekuvumela ukuthi udale ibhasi lomlamuli langaphakathi lemiyalo nezicelo ngaphakathi kwesevisi. Le ndlela ikuvumela ukuthi unciphise inani lemijovo ye-DI ibe yinye, isibonelo, kuzilawuli. Ngenxa yalokhu, ungangeza abahlobisi abahlukahlukene ezicelweni, okuhlanganisa ukucubungula kwabo futhi kunciphise inani lekhodi.

I-ViennaNET.Ukuqinisekiswa

Umhlangano oqukethe isethi yamakilasi okudala imithetho yokuqinisekisa nokulandelana okuvela kuwo. Kulula kakhulu ukusebenzisa ukuqinisekiswa kwesizinda, njengoba kukuvumela ukuthi uchaze isimo sebhizinisi ngalinye ngendlela yomthetho olula nohlukile.

I-ViennaNET.Redis

Umtapo wolwazi onamaphepha okusonga ukuze usebenze kalula nge-Redis njengenqolobane yenkumbulo.

I-ViennaNET.Specifications

Inhlangano equkethe amakilasi asebenzisa iphethini yokucaciswa.

Lokhu akukhona konke okusesethi yethu. Ungabona okunye endaweni yokugcina ye-GitHub. Sihlela ukukhulula imitapo yolwazi yethu ukuze isebenze nesizindalwazi ku-OpenSource maduze.

Siyabonga ngokunaka kwakho, sibheke ngabomvu ukuphawula kwakho kanye nezicelo zokudonsa.

Source: www.habr.com

Engeza amazwana