ViennaNET: fitambarana tranomboky ho an'ny backend

Miarahaba ny rehetra!

Vondron'ny mpamorona .NET ao amin'ny Raiffeisenbank izahay ary te hiresaka momba ny fitambaran'ny tranomboky fotodrafitrasa mifototra amin'ny .NET Core ho an'ny famoronana haingana microservice miaraka amin'ny tontolo iainana tokana. Nentin'izy ireo tany amin'ny Open Source izany!

ViennaNET: fitambarana tranomboky ho an'ny backend

Tantaran'ny tantara

Indray mandeha izahay dia nanana tetikasa monolithic lehibe, izay nivadika tsikelikely ho andiana microservices (azonao atao ny mamaky momba ny endrik'ity dingana ity amin'ny ity lahatsoratra ity). Tao anatin'izany dingana izany dia nisedra olana izahay fa rehefa mamorona microservices vaovao dia matetika no tsy maintsy mandika vahaolana amin'ny fotodrafitrasa isan-karazany - toy ny fametrahana logging, miasa amin'ny database, WCF, sns. Ekipa iray no niasa tamin'ity tetikasa ity, ary ny rehetra dia efa zatra ny fomba fiasa napetraka amin'ny fiasana amin'ny fotodrafitrasa. Noho izany, nanasaraka ny kaody iraisana izahay ho tahiry misaraka, nofonosinay tao anaty fonosana Nuget ireo tranomboky voaangona ary napetrakay tao amin'ny tahiry Nuget anatiny.

Nandeha ny fotoana, nizara tsikelikely ny tetikasa, ary nisy ny faniriana hamorona mody vaovao amin'ny lafiny mpanjifa amin'ny rafitra JS maoderina ary hampandeha azy ireo ao amin'ny navigateur. Nanomboka nifindra avy amin'ny WCF/SOAP mankany REST/HTTP izahay, noho izany dia nila tranomboky vaovao izahay mba hamoahana haingana ireo tolotra mifototra amin'ny AspNet WebApi. Ny dikan-teny voalohany amin'ny .Net Framework 4.5 dia nataon'ny mpanao mari-trano saika nandohalika tamin'ny fotoana malalakany, saingy tao anatin'ny boaty dia nahafahana nanangana serivisy misy andalana telo ao amin'ny Program.cs izay misy fanomezan-dàlana (NTLM), logging, Swagger, IoC/DI mifototra amin'ny Castle Windsor, mpanjifa HTTP namboarina izay mandefa lohapejy isan-karazany mba hanomezana logging end-to-end mandritra ny tetikasa manontolo. Ary ity zavatra rehetra ity dia azo amboarina mivantana ao amin'ny rakitra fikirakirana serivisy.

Na izany aza, tsy ny zava-drehetra dia milamina: ity tranomboky ity dia nanjary tena tsy azo ihodivirana amin'ny fampidirana ireo maody vaovao. Ohatra, raha mila manampy middleware manokana ianao, dia tsy maintsy namorona fivoriambe vaovao ianao ary nandova avy amin'ny kilasy fototra izay mitantana ny serivisy, izay tena nahasosotra. Soa ihany fa tsy dia nisy tranga toy izany.

Ny vanim-potoan'i Docker sy Kubernetes

Tonga ny fotoana nahatongavan'ny onjan'i Docker sy Kubernetes taminay, izay nojerenay akaiky: raha ny marina, dia fotoana tsara hanombohana handroso bebe kokoa amin'ny teknolojia, ao amin'ny .Net Core. Midika izany fa mila fotodrafitrasa vaovao isika mba hampandehanana tolotra: ny tranomboky sasany dia nifindra monina avy amin'ny .Net Framework mankany amin'ny .Net Standard sy .Net Core saika tsy misy fiovana, ny sasany misy fanatsarana kely. Fa ny ankamaroany dia tiako ny hamerina ny fiasa mifandraika amin'ny fandefasana serivisy amin'ny AspNet Core.

Ny zavatra voalohany nodinihinay dia hevitra iray izay hanaisotra ny tsy fahampian'ny dikan-teny teo aloha: tsy fahampian'ny fahafaha-manao. Noho izany dia nanapa-kevitra ny hanao ny rafitra famakiam-boky manontolo ho mahaleo tena sy modular araka izay azo atao ary hanangona ny serivisy ilaina amin'ny fiasa amin'ny maha-mpanorina azy.

Ny tanjona lehibe dia ny hamorona fomba fiasa iraisana izay mamaritra ny fomba hifaneraserana amin'ny angon-drakitra, fiara fitateram-bahoaka ary serivisy hafa. Niezaka nanao fampifandraisana haingana sy tsy misy fanaintainana izahay, ary afaka nifantoka tamin'ny fanoratana lojika fandraharahana ny mpamorona fa tsy fotodrafitrasa - efa vonona izany. Ny tahiry iombonana dia manampy amin'ny fanatsarana ny traikefan'ny fifaneraserana ao anatin'ny ekipa: rehefa ampiasaina ny fotodrafitrasa anatiny tena mitovy, dia mora kokoa ny manatevin-daharana ny dingana fampandrosoana ny ekipa iray hafa ary mifanakalo fahaizana.

Ary nahoana isika no mila Open Source?

Te hampiseho ny fahamatoran'ny fahaiza-manaonay izahay ary hahazo valiny avo lenta: ny olona iray ivelan'ny banky dia afaka mitondra zavatra ho azy manokana. Liana ihany koa izahay amin'ny fampivoarana ny fomba fiasa miasa amin'ny microservices sy DDD amin'ny .NET amin'ny indostria mety hisy te-hitondra ny ampahany sasany amin'ny rafitra.

Raha ny marina, ViennaNET

Andeha hojerentsika akaiky. Apetraka eto ny kaody loharano feno.

ViennaNET.WebApi.*

Ity fitambarana trano famakiam-boky ity dia ahitana ny ViennaNET.WebApi "root", misy ny kilasin'ny mpanorina ho an'ny serivisy CompanyHostBuilder, ary ny andiana configurators ViennaNET.WebApi.Configurators.*, izay samy ahafahanao manampy sy manitsy ny fiasa sasany amin'ny noforonina. fanompoana. Anisan'ireo configurators ianao dia afaka mahita fifandraisana ho an'ny logging, diagnostics, authentication and authorization type, swagger, sns.

ViennaNET.WebApi.Runners.* koa dia misy mpanamboatra serivisy efa namboarina mialoha. Ireo fonosana ireo dia mamela anao tsy hahatsiaro isaky ny mamorona serivisy vaovao izay mila ampifandraisina ny configurators. Na izany aza, tsy mametra ny fiasan'ny mpanamboatra serivisy amin'ny fomba rehetra izy ireo.

ViennaNET.Mediator.*

Tranomboky mamela anao hamorona fiara fitateram-bahoaka mpanelanelana anatiny ho an'ny baiko sy fangatahana ao anatin'ny serivisy. Ity fomba ity dia ahafahanao mampihena ny isan'ny tsindrona DI ho iray, ohatra, amin'ny mpanara-maso. Noho izany dia azonao atao ny manampy mpanaingo isan-karazany amin'ny fangatahana, izay mampiray ny fanodinana azy ary mampihena ny habetsaky ny code.

ViennaNET.Validation

Fivoriambe misy kilasy maromaro hamoronana fitsipika fanamarinana sy filaharana avy amin'izy ireo. Tena mety amin'ny fampiharana ny fanamarinana sehatra, satria mamela anao hamaritra ny toe-draharaha ara-barotra tsirairay amin'ny endrika fitsipika tsotra sy misaraka.

ViennaNET.Redis

Tranomboky misy fonony ho an'ny asa mora miaraka amin'i Redis ho cache anaty fitadidiana.

ViennaNET.Specifications

Fivoriambe misy kilasy izay mampihatra ny lamina Specification.

Tsy izany ihany no ao anatin'ny andiany misy antsika. Hitanao ny ambiny ao amin'ny tahiry GitHub. Mikasa ny hamoaka ny tranomboky izahay amin'ny fiaraha-miasa amin'ny angon-drakitra ho an'ny OpenSource tsy ho ela.

Misaotra anao noho ny fiheveranao, manantena ny fanehoan-kevitrao sy ny fangatahanao izahay.

Source: www.habr.com