ViennaNET: gulu la malaibulale a backend

Hello aliyense!

Ndife gulu la okonza NET ku Raiffeisenbank ndipo tikufuna kulankhula za gulu lamalaibulale opangira zida zozikidwa pa .NET Core popanga mwachangu ma microservices okhala ndi chilengedwe chimodzi. Anabweretsa ku Open Source!

ViennaNET: gulu la malaibulale a backend

Zakale za mbiriyakale

Kalekale tinali ndi polojekiti yayikulu ya monolithic, yomwe pang'onopang'ono idasandulika kukhala ma microservices (mutha kuwerenga za mawonekedwe a njirayi mu nkhaniyi). M'menemo, tidakumana ndi vuto loti popanga ma microservices atsopano, nthawi zambiri timayenera kutengera njira zingapo zamakina - monga kuyika mitengo, kugwira ntchito ndi database, WCF, ndi zina zambiri. Gulu limodzi linagwira ntchitoyi, ndipo aliyense anali atazolowera kale njira ina yokhazikika yogwirira ntchito ndi zomangamanga. Chifukwa chake, tidalekanitsa kachidindo wamba kukhala chosungirako chosiyana, tidakulunga malaibulale osonkhanitsidwa m'maphukusi a Nuget ndikuyika munkhokwe yathu yamkati ya Nuget.

Patapita nthawi, polojekitiyo inagawanika pang'onopang'ono, ndipo panali chikhumbo chopanga ma modules atsopano a kasitomala pa ndondomeko yamakono ya JS ndikuyendetsa mu msakatuli. Tidayamba kuchoka ku WCF/SOAP kupita ku REST/HTTP, chifukwa chake tidafunikira malaibulale atsopano kuti tiyambitse ntchito mwachangu kutengera AspNet WebApi. Mtundu woyamba pa .Net Framework 4.5 unapangidwa ndi mmisiri wathu pafupifupi pa mawondo ake mu nthawi yake yaulere, koma kunja kwa bokosilo kunapangitsa kuti zitheke kukhazikitsa ntchito yokhala ndi mizere itatu mu Program.cs yomwe ili ndi chilolezo (NTLM), kudula mitengo, Swagger, IoC/DI kutengera Castle Windsor, makasitomala osinthika a HTTP omwe amatumiza mitu yosiyanasiyana kuti apereke mitengo yodula mpaka kumapeto pantchito yonseyi. Ndipo chinthu chonsechi chikhoza kukonzedwanso mwachindunji mu fayilo yokonzekera utumiki.

Komabe, sikuti zonse zinali zosalala: laibulale iyi idakhala yosasinthika kwambiri poyambitsa ma module atsopano. Mwachitsanzo, ngati mukufuna kuwonjezera zina zapadera zapakati, mumayenera kupanga msonkhano watsopano ndikulowa m'gulu loyambira lomwe limayendetsa ntchitoyi, zomwe zinali zovuta kwambiri. Mwamwayi, panalibe milandu yotereyi yambiri.

Nthawi ya Docker ndi Kubernetes

Nthawi yafika pamene mafunde a Docker ndi Kubernetes adafika kwa ife, omwe tidawayang'anitsitsa: pambuyo pake, unali mwayi waukulu kuti tiyambe kusunthira patsogolo pa matekinoloje, mu .Net Core. Izi zikutanthauza kuti tidzafunika zipangizo zatsopano zoyendetsera ntchito: malaibulale ena achoka ku .Net Framework kupita ku .Net Standard ndi .Net Core pafupifupi popanda kusintha, ena ali ndi zosintha zazing'ono. Koma koposa zonse ndimafuna kukonzanso magwiridwe antchito okhudzana ndi kuyambitsa ntchito pa AspNet Core.

Chinthu choyamba chomwe tidalingalira chinali lingaliro lomwe lingachotse chopinga chachikulu cha mtundu wakale: kusowa kusinthasintha. Chifukwa chake, adaganiza zopanga makina onse a library kukhala odziyimira pawokha komanso okhazikika momwe angathere ndikusonkhanitsa ntchito zofunikira kuti zigwire ntchito ngati omanga.

Cholinga chachikulu ndikupanga njira yogwirizana yomwe imalongosola momwe mungagwirizanitse ndi ma database, mabasi ndi ntchito zina. Tidayesetsa kuphatikizira mwachangu komanso mopanda zopweteka, ndipo opanga amatha kuyang'ana kwambiri zolemba zamabizinesi m'malo mwa zomangamanga - zakonzeka kale. Malo osungiramo anthu ambiri amathandiza kupititsa patsogolo zochitika zamagulu m'magulu: zikagwiritsidwa ntchito zofanana kwambiri zamkati, zimakhala zosavuta kulowa nawo pa chitukuko cha gulu lina ndikusinthanitsa ukadaulo.

Ndipo chifukwa chiyani timafunikira Open Source?

Tikufuna kuwonetsa kukhwima kwa ukatswiri wathu ndikulandila mayankho apamwamba: munthu wakunja kwa banki atha kubweretsa china chake. Tilinso ndi chidwi ndi chitukuko cha machitidwe ogwirira ntchito ndi ma microservices ndi DDD pa .NET pamakampani; mwinamwake wina angafune kutenga mbali zina za chimango.

Kwenikweni, ViennaNET

Tsopano tiyeni tione bwinobwino. Khodi yonse yoyambira yaikidwa apa.

ViennaNET.WebApi.*

Seti iyi ya malaibulale imakhala ndi "root" ViennaNET.WebApi, yomwe ili ndi gulu la omanga ntchito ya CompanyHostBuilder, ndi configurators ViennaNET.WebApi.Configurators. utumiki. Pakati pa okonza mungapeze zolumikizira zodula mitengo, zowunikira, zotsimikizika ndi zololeza mitundu, swagger, ndi zina zambiri.

ViennaNET.WebApi.Runners. * ilinso ndi omanga omwe adasinthidwa kale. Maphukusiwa amakupatsani mwayi kuti musakumbukire nthawi iliyonse mukapanga ntchito yatsopano yomwe ma configurators amafunika kulumikizidwa. Komabe, samachepetsa magwiridwe antchito a omanga ntchito mwanjira iliyonse.

ViennaNET.Mediator.*

Ma library omwe amakulolani kuti mupange basi yapakati yamalamulo ndi zopempha mkati mwa ntchito. Njirayi imakuthandizani kuti muchepetse kuchuluka kwa jakisoni wa DI kukhala m'modzi, mwachitsanzo, mwa owongolera. Chifukwa cha izi, mutha kuwonjezera zokongoletsa zosiyanasiyana pazopempha, zomwe zimagwirizanitsa kukonza kwawo ndikuchepetsa kuchuluka kwa code.

ViennaNET.Kutsimikizika

Msonkhano wokhala ndi makalasi opangira malamulo ovomerezeka ndi kutsatizana kwawo. Ndikosavuta kugwiritsa ntchito kutsimikizira kwa domain, chifukwa kumakupatsani mwayi wofotokozera bizinesi iliyonse mwanjira ya lamulo losavuta komanso losiyana.

ViennaNET.Redis

Laibulale yokhala ndi zokutira zogwirira ntchito yabwino ndi Redis ngati posungira kukumbukira.

ViennaNET.Specifications

Msonkhano womwe uli ndi makalasi omwe amatsatira ndondomeko ya Specification.

Izi siziri zonse zomwe zili m'gulu lathu. Mutha kuwona zina zonse m'malo a GitHub. Tikukonzekera kumasula malaibulale athu kuti azigwira ntchito ndi nkhokwe ku OpenSource posachedwa.

Zikomo chifukwa cha chidwi chanu, tikuyembekezera ndemanga zanu ndi zopempha zanu.

Source: www.habr.com

Kuwonjezera ndemanga