Cov ntsiab cai tsim cov ntawv thov niaj hnub los ntawm NGINX. Ntu 1

Nyob zoo phooj ywg. Nyob rau hauv kev cia siab ntawm cov chav kawm pib "Backend developer hauv PHP", peb ib txwm qhia nrog koj cov lus txhais ntawm cov khoom siv tau zoo.

Software daws teeb meem ntau dua thiab ntau dua txhua hnub, thaum ua ntau thiab nyuaj. Raws li Marc Andreessen ib zaug hais, nws tau siv lub ntiaj teb.

Cov ntsiab cai tsim cov ntawv thov niaj hnub los ntawm NGINX. Ntu 1

Raws li qhov tshwm sim, txoj kev siv tau tsim thiab xa tawm tau hloov pauv ntau dhau ob peb xyoos dhau los. Cov no tau hloov pauv ntawm qhov ntsuas tectonic uas ua rau muaj txheej txheem. Cov ntsiab cai no tau ua pov thawj pab tau hauv kev tsim pab pawg, tsim, tsim, thiab xa koj daim ntawv thov mus rau cov neeg siv kawg.

Cov hauv paus ntsiab lus tuaj yeem sau tau raws li hauv qab no: daim ntawv thov yuav tsum yog me me, web-based, thiab muaj tus tsim tawm-centric architecture. Los ntawm kev tsim peb lub hauv paus ntsiab lus no, koj tuaj yeem tsim ib daim ntawv thov uas muaj zog, kawg-rau-kawg uas tuaj yeem xa sai thiab ruaj ntseg rau cov neeg siv kawg, thiab yooj yim scalable thiab txuas ntxiv.

Cov ntsiab cai tsim cov ntawv thov niaj hnub los ntawm NGINX. Ntu 1

Txhua lub hauv paus ntsiab lus muaj ntau yam uas peb yuav sib tham los qhia seb txhua lub hauv paus ntsiab lus ua rau lub hom phiaj kawg ntawm kev xa cov ntawv thov kev ntseeg tau sai uas yooj yim los tswj thiab siv. Peb yuav saib cov hauv paus ntsiab lus piv rau lawv qhov kev tawm tsam kom paub meej tias nws txhais li cas hais tias, "Nco ntsoov koj siv txoj cai ntawm me me".

Peb cia siab tias tsab xov xwm no txhawb kom koj siv cov ntsiab lus thov rau kev tsim cov ntawv thov niaj hnub uas yuav muab kev sib koom ua ke tsim qauv hauv cov ntsiab lus ntawm cov txheej txheem thev naus laus zis niaj hnub.

Los ntawm kev siv cov hauv paus ntsiab lus no, koj yuav pom koj tus kheej ua kom zoo dua ntawm cov tiam tshiab tshiab hauv kev txhim kho software, suav nrog DevOps rau kev txhim kho thiab kev xa khoom, kev siv cov ntim khoom (piv txwv li, docker) thiab thawv orchestration moj khaum (piv txwv li, Kubernetes), kev siv microservices (nrog rau Microservice Architecture NGINX ΠΈ network kev sib txuas lus architecture rau kev siv microservice.

Lub app niaj hnub yog dab tsi?

Kev siv niaj hnub? Niaj hnub nimno pawg? Qhov "modern" txhais li cas?

Cov neeg tsim tawm feem ntau tsuas muaj kev nkag siab yooj yim ntawm daim ntawv thov niaj hnub no muaj li cas, yog li nws yog qhov yuav tsum tau ua kom meej meej lub tswv yim no.

Daim ntawv thov niaj hnub txhawb nqa ntau tus neeg siv khoom, yog nws tus neeg siv interface siv lub tsev qiv ntawv React JavaScript, daim ntawv thov mobile rau Android lossis iOS, lossis ib daim ntawv thov txuas rau lwm tus ntawm API. Ib daim ntawv thov niaj hnub no qhia txog cov neeg siv khoom tsis kawg uas nws muab cov ntaub ntawv lossis kev pabcuam.

Ib daim ntawv thov niaj hnub muab API kom nkag mus rau cov ntaub ntawv thov thiab cov kev pabcuam. API yuav tsum hloov tsis tau thiab tsis tu ncua, thiab tsis sau tshwj xeeb rau kev thov tshwj xeeb los ntawm ib tus neeg siv khoom tshwj xeeb. API muaj nyob hauv HTTP(S) thiab muab kev nkag mus rau txhua qhov kev ua haujlwm pom hauv GUI lossis CLI.

Cov ntaub ntawv yuav tsum muaj nyob rau hauv hom sib koom ua ke, xws li JSON. Ib qho API nthuav tawm cov khoom thiab cov kev pabcuam hauv daim ntawv qhia meej; piv txwv li, RESTful API lossis GraphQL muab qhov sib cuam tshuam zoo.

Cov ntawv thov niaj hnub no tau tsim los ntawm cov pawg niaj hnub, thiab cov pawg niaj hnub yog cov pawg uas txhawb nqa cov ntawv thov no, feem. Cov pawg no tso cai rau tus tsim tawm yooj yim tsim daim ntawv thov nrog HTTP interface thiab meej API kawg. Txoj hauv kev uas koj xaiv yuav tso cai rau koj daim ntawv thov tau yooj yim lees txais thiab xa cov ntaub ntawv hauv JSON hom. Hauv lwm lo lus, pawg niaj hnub sib raug rau cov ntsiab lus ntawm Twelve-Factor Application rau microservices.

Nrov versions ntawm hom pawg no yog raws li Java, Nab hab sej, Ntawm, Ruby, PHP ΠΈ Go. Microservice Architecture NGINX sawv cev rau ib qho piv txwv ntawm ib pawg niaj hnub siv nyob rau hauv txhua yam lus hais.

Thov nco ntsoov tias peb tsis tawm tswv yim txog kev pabcuam microservices. Ntau ntawm koj tab tom ua haujlwm nrog monoliths uas yuav tsum tau hloov zuj zus, thaum lwm tus tab tom cuam tshuam nrog SOA daim ntawv thov uas nthuav dav thiab hloov zuj zus los ua cov ntawv thov microservice. Tseem muaj lwm tus tab tom txav mus rau cov ntawv thov tsis muaj server, thiab qee qhov siv cov kev sib txuas ntawm cov saum toj no. Cov hauv paus ntsiab lus uas tau teev tseg hauv tsab xov xwm no siv rau txhua qhov ntawm cov kab ke no tsuas yog qee qhov kev hloov kho me me xwb.

Cov ntsiab cai

Tam sim no peb muaj kev nkag siab yooj yim ntawm daim ntawv thov niaj hnub thiab cov txheej txheem niaj hnub no, nws yog lub sijhawm los dhia mus rau hauv cov qauv tsim thiab tsim qauv uas yuav pab tau koj zoo hauv kev tsim, siv, thiab tswj cov ntawv thov niaj hnub.

Ib lub hauv paus ntsiab lus yog "tsim cov apps me", cia li hu nws lub hauv paus ntsiab lus ntawm me me. Muaj cov kev siv tsis txaus ntseeg uas muaj ntau qhov txav mus los. Nyob rau hauv lem, tsim ib daim ntawv thov los ntawm me me, discrete Cheebtsam ua rau nws yooj yim rau tsim, tswj, thiab siv tag nrho. (Nco ntsoov tias peb hais tias "ua kom yooj yim" thiab tsis yog "ua kom yooj yim").

Lub hauv paus ntsiab lus thib ob yog tias peb tuaj yeem ua kom cov neeg tsim khoom tsim tau los ntawm kev pab lawv tsom mus rau cov yam ntxwv uas lawv tab tom tsim, thaum tso lawv los ntawm kev txhawj xeeb txog kev tsim kho vaj tse thiab CI / CD thaum siv. Yog li ntawd, nyob rau hauv ib tug nutshell, peb mus kom ze developer-oriented.

Thaum kawg, txhua yam hais txog koj daim ntawv thov yuav tsum txuas nrog lub network. Tshaj li 20 xyoo dhau los, peb tau nce siab heev rau lub neej yav tom ntej hauv kev sib koom tes vim tias kev sib koom tes tau nrawm dua thiab cov ntawv thov tau ua ntau dua. Raws li peb twb pom lawm, daim ntawv thov niaj hnub no yuav tsum tau siv thoob plaws lub network los ntawm ntau tus neeg siv khoom sib txawv. Siv kev xav hauv network rau architecture muaj cov txiaj ntsig tseem ceeb uas haum zoo nrog lub hauv paus ntsiab lus ntawm me me thiab lub tswv yim ntawm kev mus kom ze, developer-oriented.

Yog tias koj khaws cov ntsiab lus no hauv siab thaum tsim thiab siv daim ntawv thov, koj yuav muaj qhov zoo sib xws hauv kev txhim kho thiab xa khoom ntawm koj cov khoom.

Cia peb saib peb lub ntsiab cai no kom ntxaws ntxiv.

Lub hauv paus ntsiab lus ntawm me me

Nws yog ib qho nyuaj rau tib neeg lub hlwb kom pom cov ntaub ntawv loj ib zaug. Hauv kev puas siab puas ntsws, lo lus cognitive load yog hais txog tag nrho cov nyiaj ntawm kev puas siab puas ntsws yuav tsum tau khaws cov ntaub ntawv hauv kev nco. Txo cov kev txawj ntse ntawm cov neeg tsim khoom yog qhov tseem ceeb vim tias lawv tuaj yeem tsom mus rau kev daws teeb meem es tsis txhob tuav cov qauv tam sim no ntawm tag nrho cov ntawv thov thiab cov yam ntxwv tau tsim hauv lawv lub taub hau.

Cov ntsiab cai tsim cov ntawv thov niaj hnub los ntawm NGINX. Ntu 1

Cov ntawv thov raug decomposed rau cov laj thawj hauv qab no:

  • Txo cov kev txawj ntse ntawm cov neeg tsim khoom;
  • Acceleration thiab simplification ntawm kev sim;
  • Kev xa sai sai ntawm kev hloov pauv rau daim ntawv thov.


Muaj ntau ntau txoj hauv kev los txo cov kev txawj ntse ntawm cov neeg tsim khoom, thiab qhov no yog qhov uas lub hauv paus ntsiab lus ntawm me me tuaj rau hauv kev ua si.

Yog li, peb txoj hauv kev los txo cov kev txawj ntse:

  1. Txo cov sij hawm uas lawv yuav tsum xav txog thaum tsim ib qho tshiab - lub sij hawm luv dua, qhov qis dua qhov kev txawj ntse.
  2. Txo tus lej code uas tau ua haujlwm ntawm ib lub sijhawm - tsawg code - tsawg dua.
  3. Simplify cov txheej txheem ntawm kev hloov pauv ntxiv rau koj daim ntawv thov.

Txo cov sij hawm txhim kho

Cia peb rov qab mus rau lub sijhawm thaum txheej txheem waterfall yog tus qauv rau cov txheej txheem kev txhim kho, thiab lub sijhawm ua haujlwm ntawm rau lub hlis mus rau ob xyoos rau kev tsim lossis hloov kho daim ntawv thov yog kev coj ua. Feem ntau, cov engineers yuav xub nyeem cov ntaub ntawv tseem ceeb xws li cov khoom yuav tsum tau ua (PRD), cov ntaub ntawv siv cov ntaub ntawv (SRD), cov phiaj xwm kev tsim, thiab pib muab tag nrho cov khoom no ua ke rau hauv ib qho kev paub txog tus qauv raws li lawv tau sau cov cai. Raws li qhov yuav tsum tau ua, thiab yog li cov qauv tsim, hloov pauv, kev siv zog tseem ceeb yuav tsum tau ua kom tag nrho pab pawg paub txog kev hloov tshiab rau cov qauv kev paub. Hauv qhov xwm txheej phem tshaj plaws, txoj hauv kev no tuaj yeem ua rau tuag tes tuag taw ua haujlwm.

Qhov kev hloov pauv loj tshaj plaws hauv cov txheej txheem kev txhim kho daim ntawv thov yog kev qhia txog cov txheej txheem agile. Ib qho ntawm cov yam ntxwv tseem ceeb ntawm cov txheej txheem agile - Qhov no yog qhov kev txhim kho rov qab. Nyob rau hauv lem, qhov no ua rau ib tug txo nyob rau hauv kev txawj ntse load ntawm engineers. Es tsis txhob xav kom pab pawg txhim kho los siv cov ntawv thov hauv ib lub voj voog ntev, agile Txoj hauv kev tso cai rau koj tsom mus rau cov lej me me uas tuaj yeem sim sai thiab siv tau, thaum tseem tau txais cov lus qhia. Kev txawj ntse ntawm daim ntawv thov tau hloov pauv los ntawm lub sijhawm ntawm rau lub hlis mus rau ob xyoos, nrog rau ntau qhov tshwj xeeb, mus rau ob lub lis piam ntxiv lossis hloov pauv, tsom mus rau kev nkag siab ntau dua ntawm daim ntawv thov loj.

Hloov qhov ua kom pom tseeb los ntawm daim ntawv thov loj rau cov yam ntxwv me me uas tuaj yeem ua tiav hauv ob lub lis piam khiav, saib ua ntej kom tsis pub ntau tshaj ib qho ntawm qhov kev sib tw tom ntej hauv siab yog qhov hloov pauv tseem ceeb. Qhov no ua rau nws muaj peev xwm nce kev tsim khoom tsim tau thaum txo qis kev txawj ntse, uas tau hloov pauv tas li.

Hauv txheej txheem agile daim ntawv thov zaum kawg yuav tsum yog qhov hloov kho me ntsis ntawm lub tswv yim qub, yog li qhov kev txhim kho zaum kawg yog qhov tsis meej meej. Tsuas yog cov txiaj ntsig ntawm txhua qhov kev sib tw tshwj xeeb tuaj yeem pom meej thiab meej.

Me codebases

Cov kauj ruam tom ntej ntawm kev txo qis kev txawj ntse yog kom txo cov cai hauv paus. Feem ntau, cov ntawv thov niaj hnub no loj heev - qhov muaj zog, daim ntawv thov kev lag luam yuav muaj ntau txhiab cov ntaub ntawv thiab ntau pua txhiab kab ntawm cov cai. Nyob ntawm lub koom haum ntawm cov ntaub ntawv, kev sib txuas thiab kev vam khom ntawm cov cai thiab cov ntaub ntawv tuaj yeem lossis tsis pom tseeb. Txawm tias debugging tus lej ua nws tus kheej tuaj yeem muaj teeb meem, nyob ntawm cov tsev qiv ntawv siv thiab qhov zoo li cas cov cuab yeej debugging sib txawv ntawm cov tsev qiv ntawv / pob / modules thiab cov neeg siv code.

Tsim tus qauv kev xav ua haujlwm ntawm daim ntawv thov cov cai tuaj yeem siv sijhawm ntau, rov muab qhov kev paub loj ntawm tus tsim tawm. Qhov no yog qhov tseeb tshwj xeeb tshaj yog rau monolithic codebases, qhov twg muaj ntau tus lej, kev sib cuam tshuam ntawm cov khoom siv ua haujlwm tsis tau txhais meej meej, thiab kev sib cais ntawm cov khoom ntawm kev mloog feem ntau plooj vim tias thaj tsam ua haujlwm tsis raug hwm.

Ib txoj hauv kev zoo los txo cov kev txawj ntse ntawm cov engineers yog txav mus rau microservices architecture. Hauv kev ua haujlwm microservice, txhua qhov kev pabcuam tsom mus rau ib pawg haujlwm; Lub ntsiab lus ntawm kev pabcuam feem ntau txhais tau thiab nkag siab. Cov ciam teb ntawm cov kev pabcuam kuj tseem meej - nco ntsoov tias kev sib txuas lus nrog cov kev pabcuam yog ua los ntawm API, yog li cov ntaub ntawv tsim los ntawm ib qho kev pabcuam tuaj yeem xa mus rau lwm qhov.

Kev sib cuam tshuam nrog lwm cov kev pabcuam feem ntau yog txwv rau qee tus neeg siv cov kev pabcuam thiab ob peb tus neeg muab kev pabcuam uas siv API hu tau yooj yim thiab huv, xws li REST. Qhov no txhais tau hais tias kev txawj ntse load ntawm tus engineer raug txo qis heev. Qhov kev sib tw loj tshaj plaws tseem nkag siab txog cov qauv kev pabcuam kev sib cuam tshuam thiab yuav ua li cas zoo li kev hloov pauv tshwm sim thoob plaws ntau qhov kev pabcuam. Thaum kawg, kev siv microservices txo cov kev txawj ntse los ntawm kev txo tus lej ntawm cov lej, txiav txim siab thaj tsam kev pabcuam meej, thiab muab kev nkag siab rau cov neeg siv kev sib raug zoo.

Kev hloov pauv me me

Lub ntsiab ntsiab lus kawg me ntsis yog kev hloov pauv. Nws yog qhov tshwj xeeb tshaj yog ntxias rau cov neeg tsim khoom los saib ntawm lub hauv paus code (txawm tias lawv tus kheej, cov cai qub) thiab hais tias, "Qhov no yog crap, peb yuav tsum rov sau tag nrho qhov no." Qee lub sij hawm nws yog qhov kev txiav txim siab, thiab qee zaum nws tsis yog. Nws tso lub nra ntawm lub ntiaj teb cov qauv kev hloov pauv ntawm pab pawg txhim kho, uas ua rau muaj kev nkag siab loj heev. Nws yog qhov zoo dua rau cov engineers tsom rau cov kev hloov pauv uas lawv tuaj yeem ua thaum lub sijhawm khiav, kom lawv thiaj li tuaj yeem yob tawm qhov tsim nyog ua haujlwm raws sijhawm, txawm tias maj mam. Cov khoom kawg yuav tsum zoo ib yam li cov kev npaj ua ntej, tab sis nrog qee qhov kev hloov kho thiab kev sim kom haum rau cov neeg siv khoom xav tau.

Thaum rov sau cov lej loj, qee zaum nws tsis tuaj yeem xa sai sai rau kev hloov pauv vim tias lwm qhov kev vam khom tuaj rau hauv kev ua si. Txhawm rau tswj qhov ntws ntawm kev hloov pauv, koj tuaj yeem siv qhov zais zais. Yeej, qhov no txhais tau hais tias kev ua haujlwm muaj nyob rau hauv ntau lawm, tab sis nws tsis muaj los ntawm ib puag ncig hloov pauv chaw (env-var) lossis lwm yam kev teeb tsa. Yog tias txoj cai tau dhau tag nrho cov txheej txheem tswj kom zoo, nws yuav xaus rau hauv kev tsim khoom hauv lub xeev zais. Txawm li cas los xij, lub tswv yim no tsuas yog ua haujlwm yog tias qhov tshwj xeeb tau qhib thaum kawg. Txwv tsis pub, nws tsuas yog clutter cov cai thiab ntxiv kev txawj ntse load uas tus tsim tawm yuav tsum tau tiv nrog kom tsim tau. Kev hloov pauv kev tswj hwm thiab kev hloov pauv ntxiv lawv tus kheej pab khaws cov kev txawj ntse ntawm cov neeg tsim khoom ntawm qib nkag tau.

Engineers yuav tsum kov yeej ntau yam teeb meem txawm tias tsuas yog siv cov haujlwm ntxiv. Nws yuav ua tau zoo rau kev tswj hwm kom txo tau cov haujlwm tsis tsim nyog ntawm pab pawg kom nws tuaj yeem tsom mus rau cov ntsiab lus tseem ceeb ntawm kev ua haujlwm. Muaj peb yam uas koj tuaj yeem ua tau los pab koj pab pawg txhim kho:

  1. Siv cov txheej txheem agile, txhawm rau txwv lub sijhawm ua haujlwm uas pab pawg yuav tsum tsom mus rau cov yam ntxwv tseem ceeb.
  2. Siv koj daim ntawv thov ua ntau lub microservices. Qhov no yuav txwv tus naj npawb ntawm cov yam ntxwv qhia thiab ntxiv dag zog rau cov ciam teb uas muaj kev txawj ntse thaum ua haujlwm.
  3. Nyiam qhov kev hloov pauv mus rau qhov loj, tsis muaj zog, hloov cov lej me me. Siv qhov zais zais los siv cov kev hloov pauv txawm tias lawv yuav tsis pom tam sim tom qab lawv ntxiv.

Yog tias koj siv lub hauv paus ntsiab lus ntawm kev ua me me hauv koj txoj haujlwm, koj pab neeg yuav zoo siab dua, tsom ntsoov rau kev xa cov yam ntxwv tsim nyog, thiab ntau dua yuav nthuav tawm cov kev hloov pauv sai dua. Tab sis qhov no tsis tau txhais hais tias kev ua haujlwm tsis tuaj yeem ua ntau dua; qee zaum, ntawm qhov tsis sib xws, kev qhia txog kev ua haujlwm tshiab yuav tsum tau hloov kho ntawm ntau cov kev pabcuam thiab cov txheej txheem no yuav nyuaj dua li qhov zoo sib xws hauv monolithic architecture. Txawm li cas los xij, cov txiaj ntsig ntawm kev siv txoj hauv kev yog me ntsis tsim nyog.

Xaus ntawm thawj ntu.

Peb yuav tshaj tawm qhov thib ob ntawm kev txhais lus sai sai, tab sis tam sim no peb tab tom tos koj cov lus thiab caw koj mus Hnub qhib, uas yuav muaj hnub no thaum 20.00.

Tau qhov twg los: www.hab.com

Ntxiv ib saib