Lis verifikasyon pou kreye ak pibliye aplikasyon entènèt

Yo nan lòd yo kreye pwòp aplikasyon entènèt ou nan tan nou an, li pa ase pou kapab devlope li. Yon aspè enpòtan se mete kanpe zouti pou deplwaman aplikasyon, siveyans, osi byen ke jere ak administre anviwònman kote li opere. Kòm epòk la nan deplwaman manyèl fennen nan oubli, menm pou ti pwojè, zouti automatisation ka pote benefis byen mèb. Lè deplwaye "amen", nou ka souvan bliye deplase yon bagay, pran an kont sa a oswa sa a nuans, kouri yon tès bliye, lis sa a ka kontinye pou yon bon bout tan.

Atik sa a ka ede moun ki jis aprann de baz pou kreye aplikasyon pou entènèt epi ki vle konprann yon ti kras sou tèm debaz yo ak konvansyon.

Kidonk, aplikasyon pou konstriksyon yo ka toujou divize an 2 pati: tout bagay ki gen rapò ak kòd aplikasyon an, ak tout bagay ki gen rapò ak anviwònman kote kòd sa a egzekite. Kòd aplikasyon an, nan vire, tou divize an kòd sèvè (yon sèl la ki kouri sou sèvè a, souvan: lojik biznis, otorizasyon, depo done, elatriye), ak kòd kliyan (yon sèl la ki kouri sou machin itilizatè a: souvan koòdone a, ak lojik ki gen rapò ak li).

Ann kòmanse ak Mèkredi.

Baz pou operasyon nenpòt kòd, sistèm, oswa lojisyèl se Sistèm Operasyon an, kidonk anba a nou pral gade nan sistèm ki pi popilè sou mache hosting la epi ba yo yon deskripsyon tou kout:

Fenèt sèvè - Windows la menm, men nan yon varyasyon sèvè. Gen kèk fonksyonalite ki disponib nan vèsyon an kliyan (regilye) nan Windows pa prezan isit la, pou egzanp, kèk sèvis pou kolekte estatistik ak lojisyèl menm jan an, men gen yon seri sèvis piblik pou administrasyon rezo, lojisyèl debaz pou deplwaye sèvè (web, ftp, ...). An jeneral, Windows Server sanble Windows regilye, charlatan tankou Windows regilye, sepandan, li koute 2 fwa plis pase kontrepati regilye li yo. Sepandan, bay ou gen plis chans deplwaye aplikasyon an sou yon sèvè dedye / vityèl, pri final la pou ou, byenke li ka ogmante, se pa kritik. Depi platfòm Windows la okipe yon plas akablan nan mache OS konsomatè a, edisyon sèvè li yo pral pi abitye pou pifò itilizatè yo.

UNIX-sistèm menm jan an. Travay tradisyonèl nan sistèm sa yo pa mande pou prezans nan yon koòdone grafik abitye, ofri itilizatè a sèlman yon konsole kòm yon eleman kontwòl. Pou yon itilizatè san eksperyans, travay nan fòma sa a ka difisil, jis ki sa ki pri pou sòti nan yon editè tèks ki trè popilè nan done Vim, yon kesyon ki gen rapò ak sa a deja resevwa plis pase 6 milyon opinyon nan 1.8 ane. Distribisyon prensipal yo (edisyon) nan fanmi sa a se: Debian - yon distribisyon popilè, vèsyon pake nan li yo konsantre sitou sou LTS (Sipò Alontèm - sipò pou yon tan long), ki eksprime nan jistis segondè fyab ak estabilite nan sistèm nan ak pakè; Ubentu – gen distribisyon tout pakè yo nan dènye vèsyon yo, ki ka afekte estabilite, men pèmèt ou sèvi ak fonksyonalite ki vini ak nouvo vèsyon yo; Red Hat Enterprise Linux - OS, pozisyone pou itilizasyon komèsyal, yo peye, sepandan, gen ladan sipò nan men vandè lojisyèl, kèk pakè propriétaires ak pakè chofè; CentOS - sous louvri yon varyasyon Red Hat Enterprise Linux, ki karakterize pa absans pakè propriétaires ak sipò.

Pou moun ki fèk kòmanse metrize zòn sa a, rekòmandasyon mwen ta dwe sistèm Fenèt sèvèOswa Ubentu. Si nou konsidere Windows, Lè sa a, sa a se prensipalman abitye nan sistèm nan, Ubentu - plis tolerans ak mizajou, ak nan vire, pou egzanp, mwens pwoblèm lè lanse pwojè sou teknoloji ki mande nouvo vèsyon.

Se konsa, nou te deside sou eksplwatasyon an, se pou nou ale nan yon seri zouti ki pèmèt ou deplwaye (enstale), mete ajou ak kontwole eta a nan aplikasyon an oswa pati li yo sou sèvè a.

Pwochen desizyon enpòtan an pral plasman aplikasyon w lan ak sèvè a pou li. Nan moman sa a, pi komen yo se 3 fason:

  • Hosting (kenbe) yon sèvè poukont ou se opsyon ki pi zanmitay bidjè a, men w ap oblije kòmande yon IP estatik nan men founisè ou a pou resous ou a pa chanje adrès li sou tan.
  • Lwe yon sèvè dedye (VDS) - epi administre li poukont li ak echèl chaj yo
  • Peye (souvan yo ba ou yon chans eseye fonksyonalite platfòm la gratis) pou yon abònman nan kèk hosting nwaj, kote modèl peman pou resous yo itilize se byen komen. Reprezantan ki pi enpòtan nan direksyon sa a: Amazon AWS (yo bay yon ane gratis nan sèvi ak sèvis yo, men ak yon limit chak mwa), Google Cloud (yo bay $ 300 nan kont lan, ki ka depanse pandan ane a sou sèvis hosting nwaj) , Yandex.Cloud (yo bay 4000 rubles . pou 2 mwa), Microsoft Azure (bay aksè gratis nan sèvis popilè pou yon ane, + 12 rubles pou nenpòt sèvis pou yon mwa). Kidonk, ou ka eseye nenpòt nan founisè sa yo san yo pa depanse yon jounen travay, men jwenn yon opinyon apwoksimatif sou kalite ak nivo sèvis yo bay la.

Tou depan de chemen yo chwazi a, sèl bagay ki pral chanje nan tan kap vini an se ki moun ki lajman responsab pou sa a oswa ki zòn nan administrasyon an. Si ou òganize tèt ou, Lè sa a, ou dwe konprann ke nenpòt entèripsyon nan elektrisite, entènèt la, sèvè a tèt li, lojisyèl an deplwaye sou li - tout bagay sa a manti antyèman sou zepòl ou. Sepandan, pou fòmasyon ak tès, sa a se plis pase ase.

Si ou pa gen yon machin siplemantè ki ka jwe wòl yon sèvè, Lè sa a, ou pral vle sèvi ak dezyèm oswa twazyèm fason. Dezyèm ka a se ki idantik ak premye a, ak eksepsyon ke ou chanje responsablite a pou disponiblite a nan sèvè a ak pouvwa li nan zepòl yo nan hoster la. Administrasyon sèvè a ak lojisyèl toujou anba kontwòl ou.

Epi finalman, opsyon pou lwe kapasite founisè nwaj yo. Isit la ou ka mete kanpe kontwòl otomatik nan prèske anyen san yo pa antre nan twòp detay teknik. Anplis de sa, olye pou yo yon sèl machin, ou ka gen plizyè ka paralèl kouri, ki ka, pou egzanp, responsab pou diferan pati nan aplikasyon an, pandan y ap pa diferan anpil nan pri ak posede yon sèvè devwe. Epi tou, gen zouti pou òkestrasyon, kontenèrizasyon, deplwaman otomatik, entegrasyon kontinyèl ak plis ankò! Nou pral gade kèk nan bagay sa yo anba a.

An jeneral, enfrastrikti sèvè a sanble sa a: nou gen yon sa yo rele "orchestrator" ("orchestration" se pwosesis la nan jere plizyè ka sèvè), ki jere chanjman anviwònman an sou yon egzanp sèvè, yon veso Virtualization (si ou vle, men byen. souvan itilize), ki pèmèt ou divize aplikasyon an an kouch lojik izole, ak lojisyèl Entegrasyon Kontinyèl—ki pèmèt mizajou nan kòd anime atravè "scripts."

Se konsa, orchestration pèmèt ou wè estati a nan serveurs, woule oswa woule mizajou nan anviwònman an sèvè, ak sou sa. Okòmansman, aspè sa a pa gen anpil chans pou afekte w, paske pou w ka òkestre anyen, ou bezwen plizyè serveurs (ou ka gen youn, men poukisa sa nesesè?), epi pou w gen plizyè serveurs, ou bezwen yo. Pami zouti yo nan direksyon sa a, youn ki pi popilè se Kubernetes, devlope pa google.

Pwochen etap la se Virtualization nan nivo OS. Sèjousi, konsèp "dockerization" te vin toupatou, ki soti nan zouti a Koupre, ki bay fonksyonalite resipyan ki izole youn ak lòt, men ki te lanse nan yon kontèks yon sistèm opere. Ki sa sa vle di: nan chak nan resipyan sa yo ou ka kouri yon aplikasyon, oswa menm yon seri aplikasyon, ki pral kwè ke yo se yo menm sèlman nan eksplwatasyon an antye, san yo pa menm sispèk egzistans lan nan yon lòt moun sou machin sa a. Fonksyon sa a trè itil pou lanse aplikasyon ki idantik nan diferan vèsyon, oswa aplikasyon tou senpleman konfli, osi byen ke pou divize moso nan yon aplikasyon an kouch. Ka jete kouch sa a pita dwe ekri nan yon imaj, ki ka itilize, pou egzanp, deplwaye yon aplikasyon. Sa vle di, lè w enstale imaj sa a ak deplwaye resipyan li genyen yo, ou jwenn yon anviwònman pare pou kouri aplikasyon w lan! Nan premye etap yo, ou ka itilize zouti sa a tou de pou rezon enfòmasyon ak pou jwenn benefis trè reyèl lè w divize lojik aplikasyon an nan diferan kouch. Men, li vo di isit la ke se pa tout moun bezwen dockerization, epi yo pa toujou. Dockerization jistifye nan ka kote aplikasyon an "fragmante", divize an ti pati, chak responsab pou travay pwòp li yo, sa yo rele "achitekti mikwosèvis".

Anplis de sa, anplis bay anviwònman an, nou bezwen asire yon deplwaman konpetan nan aplikasyon an, ki gen ladann tout kalite transfòmasyon kòd, enstalasyon bibliyotèk ki gen rapò ak aplikasyon an ak pakè, fè tès, notifikasyon sou operasyon sa yo, ak sou sa. Isit la nou bezwen peye atansyon sou yon konsèp tankou "Entegrasyon kontinyèl" (CI - Entegrasyon kontinyèl). Zouti prensipal yo nan zòn sa a nan moman sa a se Jenkins (lojisyèl CI ekri nan Java ka sanble yon ti kras konplike nan kòmansman an), Travis C.I. (ekri an Ruby, subjectif, yon ti jan pi senp Jenkins, sepandan, gen kèk konesans nan domèn konfigirasyon deplwaman toujou obligatwa), Gitlab CI (ekri sou Ruby ak ale).

Kidonk, apre w fin pale sou anviwònman kote aplikasyon w lan pral travay, li lè finalman gade ki zouti mond modèn lan ofri nou pou kreye aplikasyon sa yo.

Ann kòmanse ak debaz yo: backend (backend) - pati sèvè. Se chwa nan lang, seri fonksyon debaz ak estrikti predefini (kad) isit la detèmine sitou pa preferans pèsonèl, men kanmenm, li vo mansyone pou konsiderasyon (opinyon otè a sou lang yo se byen subjectif, byenke ak yon reklamasyon. nan yon deskripsyon san patipri):

  • Python se yon lang ki jistis zanmitay pou yon itilizatè san eksperyans, li padonnen kèk erè, men li kapab tou byen strik ak pwomotè a pou ke li pa fè anyen mal. Deja yon lang ki gen matirite ak sans, ki te parèt an 1991.
  • Ale - yon lang ki soti nan Google, se tou byen zanmitay ak pratik, li se byen fasil yo konpile epi jwenn yon dosye ègzèkutabl sou nenpòt platfòm. Li ka senp ak bèl, oswa li ka konplèks ak grav. Fre ak jèn, parèt relativman dènyèman, nan 2009.
  • Rust se yon ti kras pi gran pase ansyen kòlèg li, ki te pibliye an 2006, men li toujou byen jèn konpare ak kamarad li yo. Vize a devlopè ki gen plis eksperyans, byenke li toujou ap eseye rezoud anpil travay ki ba nivo pou pwogramè a.
  • Java se yon veteran nan devlopman komèsyal, prezante an 1995, e li se youn nan lang ki pi souvan itilize nan devlopman aplikasyon antrepriz jodi a. Avèk konsèp debaz li yo ak konfigirasyon lou, ègzekutabl la ka vin byen difisil pou yon debutan.
  • ASP.net se yon platfòm devlopman aplikasyon ki pibliye pa Microsoft. Pou ekri fonctionnalités, lang C# (pwononse C Sharp), ki te parèt an 2000, se sitou itilize. Konpleksite li yo konparab ak nivo ki genyen ant Java ak Rust.
  • PHP, orijinal itilize pou HTML preprocessing, kounye a, byenke li kenbe lidèchip absoli nan mache lang lan, gen yon tandans nan direksyon pou yon bès nan itilizasyon. Li gen yon papòt antre ki ba ak fasilite nan ekri kòd, men an menm tan an, lè w ap devlope aplikasyon san patipri gwo, fonctionnalités nan lang nan ka pa ase.

Oke, pati final la nan aplikasyon nou an - pi byen mèb an pou itilizatè a - Front end (frontend) - se figi aplikasyon w lan; se ak pati sa a itilizatè a kominike dirèkteman.

San yo pa antre nan detay, entèfas modèn la kanpe sou twa poto, kad (e pa tèlman), pou kreye entèfas itilizatè. An konsekans, twa ki pi popilè yo se:

  • ReactJS se pa yon fondasyon, men se yon bibliyotèk. Aktyèlman, fondasyon an diferan de tit fyè li yo sèlman nan absans la nan kèk fonksyon "soti nan bwat la" ak bezwen nan enstale yo manyèlman. Kidonk, gen plizyè varyasyon nan "preparasyon" bibliyotèk sa a, ki fòme kad inik. Li ka yon ti kras difisil pou yon debutan, akòz kèk prensip debaz, ak konfigirasyon byen agresif nan anviwònman an bati. Sepandan, pou yon kòmanse rapid, ou ka itilize pake a "kreye-react-app".
  • VueJS se yon fondasyon pou konstwi entèfas itilizatè. Nan Trinite sa a, li dwat pran tit la nan kad ki pi fasil pou itilizatè a; pou devlopman nan Vue, baryè a antre pi ba pase sa yo ki nan lòt frè yo mansyone. Anplis de sa, li se pi piti a nan mitan yo.
  • Angilè konsidere kòm pi konplèks nan kad sa yo, youn nan sèlman ki mande tape ekri (add-on pou lang Javascript). Souvan yo itilize pou konstwi aplikasyon pou gwo antrepriz.

Rezime sa ki te ekri pi wo a, nou ka konkli ke kounye a deplwaye yon aplikasyon se radikalman diferan de fason pwosesis sa a te kontinye anvan. Sepandan, pa gen moun ki anpeche w fè "deplwaman" fason ansyen an. Men, èske ti tan ki te sove nan kòmansman an vo yon gwo kantite erè ke yon pwomotè ki chwazi chemen sa a pral oblije etap sou? Mwen kwè repons lan se non. Lè w pase yon ti kras plis tan familyarize tèt ou ak zouti sa yo (epi ou pa bezwen plis pase sa, paske ou bezwen konprann si ou bezwen yo nan pwojè ou ye kounye a oswa ou pa), ou ka jwe li soti, siyifikativman diminye, pou egzanp. , ka nan erè fantom depann sou anviwònman an ak ki parèt sèlman sou sèvè pwodiksyon an, analiz chak swa sou sa ki te mennen nan aksidan an sèvè ak poukisa li pa pral kòmanse, ak plis ankò.

Sous: www.habr.com

Add nouvo kòmantè