Melao-motheo ea ho nts'etsapele lits'ebetso tsa sejoale-joale ho tsoa ho NGINX. Karolo ea 1

Dumelang metswalle. Ka tebello ea ho qala thupelo "Moetsi oa morao-rao ho PHP", ka tloaelo re arolelana le uena phetolelo ea lisebelisoa tse molemo.

Software e rarolla mathata a mangata a letsatsi le letsatsi, ha e ntse e e-ba thata le ho feta. Joalokaha Marc Andreessen a kile a bolela, e ja lefatše.

Melao-motheo ea ho nts'etsapele lits'ebetso tsa sejoale-joale ho tsoa ho NGINX. Karolo ea 1

Ka lebaka leo, tsela eo likopo li hlahisoang le ho tsamaisoa ka eona e fetohile haholo lilemong tse 'maloa tse fetileng. Tsena e ne e le liphetoho ka tekanyo ea tectonic e ileng ea fella ka sete ea melao-motheo. Melaoana ena e ipakile e thusa ho aha sehlopha, ho rala, ho nts'etsapele, le ho isa sesebelisoa sa hau ho basebelisi ba ho qetela.

Melao-motheo e ka akaretsoa ka tsela e latelang: kopo e tlameha ho ba e nyane, e thehiloeng marang-rang, 'me e be le meralo e bohareng ba meralo. Ka ho haha ​​​​ka holim'a melao-motheo ena e meraro, u ka etsa kopo e matla, ea ho qetela e ka tsamaisoang ka potlako le ka mokhoa o sireletsehileng ho mosebedisi oa ho qetela, 'me e bonolo ho senyeha le ho atolosoa.

Melao-motheo ea ho nts'etsapele lits'ebetso tsa sejoale-joale ho tsoa ho NGINX. Karolo ea 1

E 'ngoe le e' ngoe ea melao-motheo e reriloeng e na le lintlha tse 'maloa tseo re tla li tšohla ho bontša hore na molao-motheo o mong le o mong o kenya letsoho joang ho fihlela sepheo sa ho qetela sa ho fana ka likopo tse tšepahalang tse bonolo ho li boloka le ho li sebelisa. Re tla sheba melao-motheo ha re e bapisa le lihanyetsi tsa eona ho hlakisa hore na ho bolela eng ho re, "Etsa bonnete ba hore u sebelisa molao-motheo oa bonyenyane".

Re tšepa hore sengoloa sena se u khothaletsa ho sebelisa melaoana e reriloeng bakeng sa ho aha lits'ebetso tsa sejoale-joale tse tla fana ka mokhoa o kopaneng oa moralo maemong a stack ea theknoloji e ntseng e hola ka mehla.

Ka ho sebelisa melao-motheo ena, u tla iphumana u nka monyetla ka mekhoa ea morao-rao ea ntlafatso ea software, ho kenyeletsoa le Li-DevOps ho nts'etsopele ea ts'ebeliso le phepelo, ts'ebeliso ea lijana (mohlala, Docker) le meralo ea 'mino oa linkho (mohlala, Kubernetes), tšebeliso ea microservices (ho kenyeletsoa Microservice Architecture NGINX и kaho ea puisano ea marang-rang bakeng sa lits'ebetso tsa microservice.

Sesebelisoa sa sejoale-joale ke eng?

Lisebelisoa tsa sejoale-joale? Stack ea sejoale-joale? Hantle-ntle "sejoale-joale" se bolela'ng?

Bahlahisi ba bangata ba na le kutloisiso ea motheo feela ea hore na kopo ea morao-rao e na le eng, kahoo hoa hlokahala ho hlalosa khopolo ena ka ho hlaka.

Sesebelisoa sa sejoale-joale se ts'ehetsa bareki ba bangata, ekaba sehokelo sa mosebelisi se sebelisang laeborari ea React JavaScript, sesebelisoa sa mohala sa Android kapa iOS, kapa sesebelisoa se hokahanyang se seng ka API. Ts'ebeliso ea sejoale-joale e bolela palo e sa lekanyetsoang ea bareki bao e fanang ka data kapa lits'ebeletso ho bona.

Sesebelisoa sa sejoale-joale se fana ka API ho fihlella data le lits'ebeletso tse kopiloeng. API e lokela ho ba e sa fetoheng le e tsitsitseng, 'me e se ke ea ngoloa ka ho khetheha bakeng sa kopo e itseng ho tsoa ho moreki ea itseng. API e fumaneha ho feta HTTP(S) mme e fana ka phihlello ea lits'ebetso tsohle tse fumanehang ho GUI kapa CLI.

Lintlha li tlameha ho fumaneha ka mokhoa o ts'oanang, o sebelisanang hantle joalo ka JSON. API e pepesa lintho le lits'ebeletso ka mokhoa o hlakileng, o hlophisitsoeng; mohlala, RESTful API kapa GraphQL e fana ka sebopeho se setle.

Lisebelisoa tsa sejoale-joale li hahiloe holim'a stack ea sejoale-joale, 'me stack ea sejoale-joale ke stack e tšehetsang lits'ebetso tse joalo, ka ho latellana. Stack ena e lumella moqapi ho theha sesebelisoa habonolo ka sebopeho sa HTTP le lintlha tse hlakileng tsa API. Mokhoa oo u o khethang o tla lumella kopo ea hau ho amohela le ho romela data ka mokhoa oa JSON habonolo. Ka mantsoe a mang, stack ea sejoale-joale e lumellana le likarolo tsa Kopo ea Leshome le Metso e 'Meli ea microservices.

Liphetolelo tse tsebahalang tsa mofuta ona oa stack li thehiloe ho Java, python, noute, Ruby, PHP и Go. Microservice Architecture NGINX e emela mohlala oa stack ea sejoale-joale e kentsoeng ho e 'ngoe le e' ngoe ea lipuo tse boletsoeng.

Ka kopo elelloa hore ha re buelle mokhoa oa li-microservices feela. Bongata ba lona le sebetsa le li-monoliths tse hlokang ho fetoha, ha ba bang ba sebetsana le lits'ebetso tsa SOA tse ntseng li hola le ho fetoha lits'ebetso tsa microservice. Tse ling li ntse li tsoela pele ho ea lits'ebetsong tse se nang seva, 'me tse ling li sebelisa metsoako ea tse ka holimo. Melao-motheo e hlalositsoeng sehloohong sena e sebetsa ho e 'ngoe le e' ngoe ea mekhoa ena e nang le liphetoho tse fokolang feela.

Melao-motheo

Kaha joale re na le kutloisiso ea mantlha ea hore na ts'ebeliso ea sejoale-joale le stack ea sejoale-joale ke nako ea ho kenella ka har'a meaho le melaoana ea moralo e tla u thusa ho rala, ho kenya ts'ebetsong le ho boloka ts'ebeliso ea sejoale-joale.

E 'ngoe ea melao-motheo ke "haha lisebelisoa tse nyane", ha re e bitse molao-motheo oa bonyenyane. Ho na le lits'ebetso tse rarahaneng haholo tse nang le likarolo tse ngata tse tsamaeang. Ka lehlakoreng le leng, ho aha sesebelisoa ho tsoa ho likarolo tse nyane, tse ikhethileng ho etsa hore ho be bonolo ho rala, ho hlokomela le ho sebelisa ka kakaretso. (Hlokomela hore re itse "e etsa hore e be bonolo" eseng "e etsa hore e be bonolo").

Molao-motheo oa bobeli ke hore re ka eketsa tlhahiso ea bahlahisi ka ho ba thusa hore ba tsepamise maikutlo lintlheng tseo ba li hlahisang, ha ba ntse ba ba lokolla ho tšoenyeha ka lisebelisoa tsa motheo le CI / CD nakong ea ts'ebetsong. Kahoo, ka bokhutšoanyane, mokhoa oa rona e sekametseng ho ntshetsopele.

Qetellong, tsohle tse mabapi le kopo ea hau li tlameha ho hokahanngoa le marang-rang. Lilemong tse 20 tse fetileng, re tsoetse pele haholo ho isa bokamosong ba marang-rang ha marang-rang a ntse a potlaka mme lits'ebetso li se li rarahane le ho feta. Joalo ka ha re se re bone, ts'ebeliso ea sejoale-joale e tlameha ho sebelisoa marang-rang ke bareki ba bangata ba fapaneng. Ho sebelisa monahano oa marang-rang ho meralo ho na le melemo e mengata e lumellanang hantle le eona molao-motheo oa bonyenyane le mohopolo oa mokhoa, e sekametseng ho ntshetsopele.

Haeba u hopola melao-motheo ena ha u rala le ho kenya ts'ebetsong kopo, u tla ba le monyetla o ikhethang ho nts'etsopele le ho fana ka sehlahisoa sa hau.

A re hlahlobeng melao-motheo ena e meraro ka botlalo.

Molao-motheo oa bonyenyane

Ho thata hore boko ba motho bo lemohe boitsebiso bo bongata ka nako e le ’ngoe. Ho psychology, lentsoe "cognitive load" le bolela palo eohle ea boiteko ba kelello bo hlokahalang ho boloka boitsebiso mohopolong. Ho fokotsa boima ba kelello ho bahlahisi ke ntho ea bohlokoa hobane joale ba ka tsepamisa maikutlo ho rarolla bothata ho e-na le ho tšoara mohlala o rarahaneng oa hona joale oa kopo eohle le likarolo tse ntseng li ntlafatsoa lihloohong tsa bona.

Melao-motheo ea ho nts'etsapele lits'ebetso tsa sejoale-joale ho tsoa ho NGINX. Karolo ea 1

Likopo li senngoa ka mabaka a latelang:

  • Ho fokotsa boima ba kelello ho bahlahisi;
  • Ho potlakisa le ho nolofatsa tlhahlobo;
  • Phatlalatso e potlakileng ea liphetoho ho sesebelisoa.


Ho na le litsela tse 'maloa tsa ho fokotsa boima ba kelello ho bahlahisi,' me ke hona moo molao-motheo oa bonyenyane o kenang teng.

Kahoo, ho na le mekhoa e meraro ea ho fokotsa boima ba 'mele:

  1. Fokotsa nako eo ba lokelang ho nahana ka eona ha ba theha tšobotsi e ncha - ha nako e khuts'oane, ho theola boima ba kelello.
  2. Fokotsa palo ea khoutu e ntseng e sebetsoa ka nako - khoutu e nyane - mojaro o fokolang.
  3. Nolofatsa mokhoa oa ho etsa liphetoho tse eketsang kopo ea hau.

Nako ea ntlafatso e fokotsehileng

Ha re khutleleng mehleng ea ha methodology waterfall e ne e le tekanyetso bakeng sa ts'ebetso ea nts'etsopele, 'me linako tsa likhoeli tse tšeletseng ho isa ho lilemo tse peli bakeng sa ho hlahisa kapa ho ntlafatsa kopo li ne li tloaelehile. Ka tloaelo, lienjiniere li ne li qala ka ho bala litokomane tse amehang tse kang litlhoko tsa sehlahisoa (PRD), tokomane ea litšupiso tsa sistimi (SRD), moralo oa meralo, 'me ba qale ho kopanya lintho tsena kaofela hore e be mohlala o le mong oa kelello ho latela hore na ba ngotse khoutu. Ha litlhoko, 'me ka lebaka leo moralo, o fetoha, boiteko bo matla bo ile ba tlameha ho etsoa ho boloka sehlopha sohle se tsebisitsoe ka lintlafatso tsa mohlala oa kelello. Boemong bo bobe ka ho fetisisa, mokhoa ona o ka senya mosebetsi feela.

Phetoho e kholo ka ho fetisisa ts'ebetsong ea nts'etsopele ea kopo e ne e le kenyelletso ea mokhoa oa agile. E 'ngoe ea likarolo tse ka sehloohong tsa mokhoa agile - Ena ke tsoelopele e pheta-phetoang. Ka lehlakoreng le leng, sena se lebisa phokotsong ea moroalo oa kelello ho lienjineri. Sebakeng sa ho hloka hore sehlopha sa nts'etsopele se kenye ts'ebetsong ts'ebetsong ka potoloho e le 'ngoe e telele, agile Mokhoa ona o u lumella hore u tsepamise maikutlo ho palo e nyane ea khoutu e ka lekoang ka potlako le ho sebelisoa, ha u ntse u amohela maikutlo. Boikutlo ba kelello ba kopo bo tlohile ho tloha ho nako ea likhoeli tse tšeletseng ho ea ho lilemo tse peli, ka palo e kholo ea litlhaloso, ho ea ho kenyelletso kapa phetoho ea likarolo tsa libeke tse peli, e lebisang kutloisisong e fapaneng ea ts'ebeliso e kholo.

Ho tlosa maikutlo ho tloha ts'ebetsong e kholo ho ea ho likarolo tse itseng tse nyenyane tse ka phethoang ka lebelo la libeke tse peli, ho sheba pele ho karolo e fetang e le 'ngoe ho tloha lebelong le latelang kelellong ke phetoho e kholo. Sena se ile sa etsa hore ho khonehe ho eketsa tlhahiso ea nts'etsopele ha ho ntse ho fokotsa mojaro oa kelello, o neng o lula o fetoha.

Ka mokhoa agile kopo ea ho qetela e lebeletsoe hore e be phetolelo e fetotsoeng hanyenyane ea khopolo ea pele, kahoo ntlha ea ho qetela ea tsoelo-pele e hlile e sa hlaka. Liphetho tsa lebelo le leng le le leng feela la lebelo le ikhethileng li ka hlaka le ho nepahala.

Li-codebases tse nyane

Mohato o latelang oa ho fokotsa boima ba kelello ke ho fokotsa motheo oa khoutu. Ka tloaelo, lits'ebetso tsa sejoale-joale li kholo - ts'ebeliso e matla, ea khoebo e kanna ea ba le lifaele tse likete le mela e mengata ea khoutu. Ho ipapisitse le tlhophiso ea lifaele, likhokahano le ho its'etleha lipakeng tsa khoutu le lifaele li kanna tsa totobala kapa tsa se ke tsa hlaka. Esita le ho lokisa mokhoa oa ho etsa khoutu ka boeona ho ka ba bothata, ho itšetlehile ka lilaebrari tse sebelisoang le hore na lisebelisoa tsa ho lokisa liphoso li khetholla hantle hakae pakeng tsa lilaebrari / liphutheloana / li-module le khoutu ea mosebedisi.

Ho aha mohlala o sebetsang oa kelello oa khoutu ea kopo ho ka nka nako e ngata, hape ho beha mojaro o moholo oa kelello ho mohlahlami. Sena ke 'nete ka ho khetheha bakeng sa li-codebases tsa monolithic, moo ho nang le palo e kholo ea khoutu, litšebelisano pakeng tsa likarolo tse sebetsang ha li hlalosoe ka ho hlaka, 'me karohano ea lintho tse hlokomeloa hangata ha e hlaka hobane meeli e sebetsang ha e hlomphuoe.

Tsela e 'ngoe e sebetsang ea ho fokotsa boima ba kelello ho baenjiniere ke ho fallela mohahong oa microservices. Ka mokhoa oa microservice, tšebeletso e 'ngoe le e' ngoe e shebane le sehlopha se le seng sa mesebetsi; moelelo oa tšebeletso hangata o hlalosoa ebile oa utloahala. Meeli ea ts'ebeletso e boetse e hlakile - hopola hore puisano le tšebeletso e etsoa ho sebelisoa API, kahoo data e hlahisoang ke tšebeletso e le 'ngoe e ka fetisetsoa ho e' ngoe habonolo.

Ho sebelisana le lits'ebeletso tse ling hangata ho lekanyelitsoe lits'ebeletso tse seng kae tsa basebelisi le lits'ebeletso tse 'maloa tsa bafani ba sebelisang mehala e bonolo le e hloekileng ea API, joalo ka REST. Sena se bolela hore boima ba kelello ho moenjiniere bo fokotsehile haholo. Phephetso e kholo e ntse e le ho utloisisa mokhoa oa tšebelisano ea litšebeletso le hore na lintho tse kang litšebelisano li etsahala joang ho litšebeletso tse ngata. Qetellong, ho sebelisa li-microservices ho fokotsa boima ba kelello ka ho fokotsa palo ea khoutu, ho hlalosa meeli e hlakileng ea litšebeletso, le ho fana ka temohisiso kamanong ea mosebedisi le mofani oa thepa.

Liphetoho tse nyane tse ntseng li eketseha

Karolo ea ho qetela ea molao-motheo hanyane ke tsamaiso ea phetoho. Ho hohela haholo hore bahlahisi ba shebe motheo oa khoutu (esita le khoutu ea bona ea khale) mme ba re, "Sena ke bohlanya, re hloka ho ngola ntho ena kaofela hape." Ka linako tse ling ke qeto e nepahetseng, 'me ka linako tse ling ha ho joalo. E beha moroalo oa liphetoho tsa mekhoa ea lefats'e ho sehlopha sa nts'etsopele, e leng se hlahisang moroalo o moholo oa kelello. Ho molemo hore baenjiniere ba tsepamise maikutlo liphetohong tseo ba ka li etsang nakong ea lebelo la lebelo, e le hore ba ka khona ho hlahisa ts'ebetso e hlokahalang ka nako e nepahetseng, le hoja butle-butle. Sehlahisoa sa ho qetela se lokela ho tšoana le se reriloeng esale pele, empa ka litokiso le liteko tse ling ho lumellana le litlhoko tsa moreki.

Ha u ngola likarolo tse kholo tsa khoutu, ka linako tse ling ha ho khonehe ho fana ka phetoho kapele hobane ho na le lintho tse ling tse itšetlehileng ka sistimi. E le ho laola phallo ea liphetoho, u ka sebelisa ho pata likarolo. Ha e le hantle, sena se bolela hore ts'ebetso e teng tlhahisong, empa ha e fumanehe ka litlhophiso tse fapaneng tsa tikoloho (env-var) kapa mochini ofe kapa ofe oa tlhophiso. Haeba khoutu e fetisitse mekhoa eohle ea ho laola boleng, e ka 'na ea qetella e hlahisoa sebakeng se patehileng. Leha ho le joalo, leano lena le sebetsa feela haeba tšobotsi e qetella e nolofalitsoe. Ho seng joalo, e tla kopanya khoutu feela ebe e eketsa mojaro oa kelello oo moqapi a tla tlameha ho sebetsana le ona hore a atlehe. Tsamaiso ea phetoho le liphetoho tse ntseng li eketseha ka botsona li thusa ho boloka mohopolo oa bahlahisi o le maemong a fihlellehang.

Baenjiniere ba tlameha ho hlola mathata a mangata le ha ba ntse ba kenya tšebetsong ts'ebetso e eketsehileng. E ka ba bohlale hore batsamaisi ba fokotse mosebetsi o sa hlokahaleng sehlopheng e le hore se ka tsepamisa maikutlo linthong tsa bohlokoa tsa ts'ebetso. Ho na le lintho tse tharo tseo u ka li etsang ho thusa sehlopha sa hau sa nts'etsopele:

  1. Sebelisa mokhoa agile, ho fokotsa nako eo sehlopha se lokelang ho tsepamisa maikutlo ho eona linthong tsa bohlokoa.
  2. Kenya ts'ebeliso ea hau joalo ka li-microservices tse 'maloa. Sena se tla fokotsa palo ea likarolo tse hlahisoang le ho matlafatsa meeli e nang le moroalo oa kelello ha o ntse o sebetsa.
  3. Khetha liphetoho tse ntseng li eketseha ho tse kholo, tse sa laoleheng, fetola likaroloana tse nyane tsa khoutu. Sebelisa ho pata likarolo ho kenya tšebetsong liphetoho le haeba li ke ke tsa bonahala hang ka mor'a hore li kenngoe.

Haeba u sebelisa molao-motheo oa bonyenyane mosebetsing oa hau, sehlopha sa hau se tla thaba haholo, se tsepamise maikutlo hamolemo ho faneng ka likarolo tse hlokahalang, 'me ho na le monyetla oa ho hlahisa liphetoho tsa boleng kapele. Empa sena ha se bolele hore mosebetsi o ke ke oa rarahana le ho feta; ka linako tse ling, ho fapana le hoo, ho hlahisoa ha ts'ebetso e ncha ho hloka phetoho ea lits'ebeletso tse 'maloa mme ts'ebetso ena e kanna ea ba thata ho feta e ts'oanang le moaho oa monolithic. Leha ho le joalo, melemo ea ho sebelisa mokhoa ona ke ea bohlokoa hanyenyane.

Qetellong ea karolo ea pele.

Haufinyane re tla phatlalatsa karolo ea bobeli ea phetolelo, empa joale re emetse maikutlo a hau mme re u mema hore u etse joalo Letsatsi la Open, e tla etsahala kajeno ka 20.00.

Source: www.habr.com

Eketsa ka tlhaloso