Checklist alang sa paghimo ug pagmantala sa mga aplikasyon sa web

Aron makahimo ka sa imong kaugalingon nga aplikasyon sa web sa atong panahon, dili igo aron mapalambo kini. Usa ka importante nga aspeto mao ang pag-set up sa mga himan alang sa pag-deploy sa aplikasyon, pagmonitor, ingon man sa pagdumala ug pagdumala sa palibot diin kini naglihok. Samtang ang panahon sa manual deployment nawala ngadto sa kalimot, bisan alang sa gagmay nga mga proyekto, ang mga himan sa automation makahatag og mahikap nga mga benepisyo. Kung nag-deploy "pinaagi sa kamot", kanunay naton makalimtan ang paglihok sa usa ka butang, tagda kini o kana nga nuance, pagdagan ang usa ka nakalimtan nga pagsulay, kini nga lista mahimong ipadayon sa dugay nga panahon.

Kini nga artikulo mahimong makatabang niadtong nagkat-on pa sa mga sukaranan sa paghimo og mga aplikasyon sa web ug gusto nga masabtan ang gamay bahin sa sukaranan nga mga termino ug mga kombensiyon.

Busa, ang mga aplikasyon sa pagtukod mahimo gihapon nga bahinon sa 2 ka bahin: ang tanan nga may kalabutan sa code sa aplikasyon, ug ang tanan nga may kalabutan sa palibot diin kini nga code gipatuman. Ang code sa aplikasyon, sa baylo, gibahin usab sa code sa server (ang usa nga nagdagan sa server, kanunay: lohika sa negosyo, pagtugot, pagtipig sa datos, ug uban pa), ug code sa kliyente (ang usa nga nagdagan sa makina sa tiggamit: kanunay interface, ug may kalabutan nga lohika niini).

Magsugod ta sa Miyerkules.

Ang basehan alang sa operasyon sa bisan unsa nga code, sistema, o software mao ang Operating System, mao nga sa ubos atong tan-awon ang pinakapopular nga mga sistema sa hosting nga merkado ug hatagan sila og mubo nga paghulagway:

Windows Server - parehas nga Windows, apan sa usa ka kalainan sa server. Ang pipila nga magamit nga magamit sa kliyente (regular) nga bersyon sa Windows wala dinhi, pananglitan, pipila nga mga serbisyo alang sa pagkolekta sa mga estadistika ug parehas nga software, apan adunay usa ka set sa mga utilities alang sa pagdumala sa network, sukaranan nga software alang sa pag-deploy sa mga server (web, ftp, ...). Sa kinatibuk-an, ang Windows Server morag regular nga Windows, quacks sama sa regular nga Windows, bisan pa niana, kini nagkantidad ug 2 ka pilo nga mas taas kay sa regular nga katugbang niini. Bisan pa, tungod kay lagmit nga imong i-deploy ang aplikasyon sa usa ka dedikado / virtual nga server, ang katapusan nga gasto alang kanimo, bisan kung kini mahimo’g motaas, dili kritikal. Tungod kay ang plataporma sa Windows nag-okupar sa usa ka hilabihan nga dapit sa merkado sa consumer OS, ang edisyon sa server niini mao ang labing pamilyar sa kadaghanan sa mga tiggamit.

Unix- parehas nga sistema. Ang tradisyonal nga trabaho sa kini nga mga sistema wala magkinahanglan sa presensya sa usa ka pamilyar nga graphical interface, nga nagtanyag sa tiggamit usa lamang ka console ingon usa ka elemento sa pagkontrol. Alang sa usa ka walay kasinatian nga tiggamit, ang pagtrabaho sa kini nga format mahimong lisud, kung unsa ang gasto sa paggawas sa usa ka text editor nga labi ka sikat sa datos Vim, usa ka pangutana nga may kalabutan niini nakadawat na og labaw sa 6 ka milyon nga pagtan-aw sulod sa 1.8 ka tuig. Ang mga nag-unang pag-apod-apod (edisyon) niini nga pamilya mao ang: Debian - usa ka sikat nga pag-apod-apod, ang mga bersyon sa pakete niini gipunting labi na sa LTS (Dugay nga Pagsuporta - suporta sa dugay nga panahon), nga gipahayag sa medyo taas nga kasaligan ug kalig-on sa sistema ug mga pakete; Ubuntu – Naglangkob sa mga pag-apod-apod sa tanan nga mga pakete sa ilang labing bag-o nga mga bersyon, nga mahimo’g makaapekto sa kalig-on, apan gitugotan ka nga magamit ang pagpaandar nga adunay mga bag-ong bersyon; Red Hat Enterprise Linux – OS, gipahimutang alang sa komersyal nga paggamit, gibayran, bisan pa, naglakip sa suporta gikan sa mga tigbaligya sa software, pipila ka mga proprietary nga pakete ug mga pakete sa drayber; CentOS - bukas nga gigikanan usa ka kalainan sa Red Hat Enterprise Linux, nga gihulagway pinaagi sa pagkawala sa proprietary packages ug suporta.

Para sa mga bag-o pa lang nagsugod sa pag-master niini nga lugar, ang akong rekomendasyon mao ang mga sistema Windows Server, o Ubuntu. Kung gikonsiderar namon ang Windows, nan kini ang panguna nga pamilyar sa sistema, Ubuntu – dugang nga pagkamatugtanon sa mga update, ug sa baylo, alang sa panig-ingnan, mas gamay nga mga problema sa diha nga ang paglunsad sa mga proyekto sa mga teknolohiya nga nagkinahanglan og bag-ong mga bersyon.

Mao nga, pagkahuman nakahukom sa OS, magpadayon kita sa usa ka hugpong sa mga himan nga nagtugot kanimo sa pag-deploy (pag-install), pag-update ug pag-monitor sa kahimtang sa aplikasyon o mga bahin niini sa server.

Ang sunod nga importante nga desisyon mao ang pagbutang sa imong aplikasyon ug ang server alang niini. Sa pagkakaron, ang labing komon mao ang 3 ka paagi:

  • Ang pag-host (pagtipig) sa usa ka server sa imong kaugalingon mao ang labing mahigalaon sa badyet nga kapilian, apan kinahanglan nimo nga mag-order usa ka static nga IP gikan sa imong provider aron ang imong kapanguhaan dili mabag-o ang adres niini sa paglabay sa panahon.
  • Pag-abang og Dedicated Server (VDS) - ug independente nga ipangalagad kini ug sukdon ang mga karga
  • Bayad (kasagaan nga hatagan ka nila og higayon nga sulayan ang pag-andar sa platform nga libre) alang sa usa ka suskrisyon sa pipila nga cloud hosting, diin ang modelo sa pagbayad alang sa mga kapanguhaan nga gigamit kasagaran. Ang labing inila nga mga representante sa kini nga direksyon: Amazon AWS (naghatag sila usa ka libre nga tuig sa paggamit sa mga serbisyo, apan adunay usa ka binulan nga limitasyon), Google Cloud (naghatag sila $ 300 sa account, nga mahimong magamit sa tuig sa mga serbisyo sa cloud hosting) , Yandex.Cloud (naghatag sila og 4000 ruble. sulod sa 2 ka bulan), Microsoft Azure (paghatag libre nga access sa mga sikat nga serbisyo sulod sa usa ka tuig, + 12 ruble alang sa bisan unsang serbisyo sulod sa usa ka bulan). Sa ingon, mahimo nimong sulayan ang bisan unsang mga provider nga wala’y paggasto bisan usa ka sentimos, apan pagkuha usa ka gibanabana nga opinyon bahin sa kalidad ug lebel sa serbisyo nga gihatag.

Depende sa gipili nga dalan, ang bugtong butang nga magbag-o sa umaabot mao ang kadaghanan nga responsable niini o kana nga lugar sa administrasyon. Kung nag-host ka sa imong kaugalingon, nan kinahanglan nimo nga masabtan nga ang bisan unsang mga pagkabalda sa elektrisidad, Internet, server mismo, ang software nga gipakatap niini - kining tanan anaa sa imong mga abaga. Bisan pa, alang sa pagbansay ug pagsulay, kini labi pa sa igo.

Kung wala ka dugang nga makina nga mahimo’g magdula sa papel sa usa ka server, nan gusto nimo gamiton ang ikaduha o ikatulo nga paagi. Ang ikaduha nga kaso parehas sa una, gawas nga imong gibalhin ang responsibilidad alang sa pagkaanaa sa server ug ang gahum niini sa mga abaga sa host. Ang pagdumala sa server ug software anaa gihapon sa imong kontrol.

Ug sa katapusan, ang kapilian sa pag-abang sa kapasidad sa mga cloud providers. Dinhi mahimo nimong i-set up ang awtomatik nga pagkontrol sa halos bisan unsang butang nga dili moadto sa daghang teknikal nga detalye. Dugang pa, imbis sa usa ka makina, mahimo kang adunay daghang mga parallel running nga mga higayon, nga mahimo, pananglitan, mahimong responsable sa lainlaing mga bahin sa aplikasyon, samtang dili magkalainlain ang gasto gikan sa pagpanag-iya sa usa ka dedikado nga server. Ug usab, adunay mga himan alang sa orkestra, containerization, awtomatikong pag-deploy, padayon nga panagsama ug daghan pa! Atong tan-awon ang pipila niini nga mga butang sa ubos.

Sa kinatibuk-an, ang imprastraktura sa server ingon niini: kita adunay usa ka gitawag nga "orchestra" ("orkestra" mao ang proseso sa pagdumala sa daghang mga higayon sa server), nga nagdumala sa mga pagbag-o sa kalikopan sa usa ka pananglitan sa server, usa ka sulud sa virtualization (opsyonal, apan medyo. kanunay nga gigamit), nga nagtugot kanimo sa pagbahin sa aplikasyon ngadto sa nahimulag nga lohikal nga mga layer, ug Continuous Integration software-nagtugot sa mga update sa gi-host nga code pinaagi sa "mga script."

Mao nga, ang orkestra nagtugot kanimo nga makita ang kahimtang sa mga server, i-roll out o i-roll back ang mga update sa palibot sa server, ug uban pa. Sa sinugdan, kini nga aspeto dili tingali makaapekto kanimo, tungod kay aron ma-orkestrate ang bisan unsang butang, kinahanglan nimo ang daghang mga server (mahimo ka adunay usa, apan ngano nga kinahanglan kini?), Ug aron adunay daghang mga server, kinahanglan nimo kini. Lakip sa mga himan niini nga direksyon, ang labing popular mao ang Kubernetes, nga gimugna ni Google.

Ang sunod nga lakang mao ang virtualization sa lebel sa OS. Karong panahona, ang konsepto sa "dockerization" nahimong kaylap, nga gikan sa himan Docker, nga naghatag sa pagpaandar sa mga sudlanan nga nahimulag gikan sa usag usa, apan gilunsad sa konteksto sa usa ka operating system. Unsa ang gipasabut niini: sa matag usa niini nga mga sudlanan mahimo ka magpadagan sa usa ka aplikasyon, o bisan usa ka hugpong sa mga aplikasyon, nga magtuo nga sila ra sa tibuuk nga OS, nga wala bisan pagduda nga adunay lain nga tawo sa kini nga makina. Kini nga function mapuslanon kaayo alang sa paglansad sa parehas nga mga aplikasyon sa lainlaing mga bersyon, o yano nga magkasumpaki nga mga aplikasyon, ingon man alang sa pagbahin sa mga piraso sa aplikasyon sa mga layer. Kini nga layer cast mahimo nga isulat sa ulahi sa usa ka imahe, nga magamit, pananglitan, aron ma-deploy ang usa ka aplikasyon. Kana mao, pinaagi sa pag-install niini nga imahe ug pag-deploy sa mga sulud nga sulud niini, nakakuha ka usa ka andam nga palibot alang sa pagpadagan sa imong aplikasyon! Sa una nga mga lakang, mahimo nimong gamiton kini nga himan alang sa mga katuyoan sa kasayuran ug aron makuha ang tinuod nga mga benepisyo pinaagi sa pagbahin sa lohika sa aplikasyon sa lainlaing mga layer. Apan angay nga isulti dinhi nga dili tanan kinahanglan nga dockerization, ug dili kanunay. Ang Dockerization gipakamatarung sa mga kaso diin ang aplikasyon "nabahin", gibahin sa gagmay nga mga bahin, ang matag usa responsable sa kaugalingon nga buluhaton, ang gitawag nga "microservice architecture".

Dugang pa, agig dugang sa paghatag sa kalikopan, kinahanglan naton nga masiguro ang usa ka takos nga pag-deploy sa aplikasyon, nga naglakip sa tanan nga mga matang sa pagbag-o sa code, pag-instalar sa mga librarya ug mga pakete nga may kalabotan sa aplikasyon, pagpadagan sa mga pagsulay, pagpahibalo bahin sa kini nga mga operasyon, ug uban pa. Dinhi kinahanglan natong hatagan ug pagtagad ang ingon nga konsepto sama sa "Padayon nga Paghiusa" (CI - Padayon nga Paghiusa). Ang mga nag-unang himan sa kini nga lugar sa pagkakaron mao ang Jenkins (CI software nga gisulat sa Java ingon og gamay nga komplikado sa pagsugod), Travis CI (gisulat sa Ruby, suhetibo, medyo mas simple Jenkins, bisan pa niana, ang pipila ka kahibalo sa natad sa deployment configuration gikinahanglan gihapon), Gitlab CI (gisulat sa Ruby ug Go).

Mao nga, sa paghisgot bahin sa palibot diin molihok ang imong aplikasyon, oras na aron sa katapusan tan-awon kung unsang mga himan ang gitanyag kanamo sa modernong kalibutan alang sa paghimo niini nga mga aplikasyon.

Magsugod ta sa mga sukaranan: Backend (backend) – bahin sa server. Ang pagpili sa pinulongan, hugpong sa mga batakang gimbuhaton ug gitakda nang daan nga estraktura (framework) dinhi gitino ilabina sa personal nga mga gusto, apan bisan pa niana, angay nga hisgotan kini alang sa konsiderasyon (ang opinyon sa tagsulat mahitungod sa mga pinulongan medyo suhetibo, bisan pa nga adunay usa ka pag-angkon. sa usa ka walay pagpihig nga paghulagway):

  • Ang Python usa ka medyo mahigalaon nga pinulongan alang sa usa ka walay kasinatian nga tiggamit, kini nagpasaylo sa pipila ka mga kasaypanan, apan mahimo usab kini nga estrikto sa developer aron dili siya makahimo og bisan unsa nga dili maayo. Na usa ka medyo hamtong ug makahuluganon nga pinulongan, nga nagpakita sa 1991.
  • Lakaw - usa ka lengguwahe gikan sa Google, labi ka mahigalaon ug kombenyente, dali ra ang pag-compile ug pagkuha usa ka ma-executable nga file sa bisan unsang plataporma. Mahimo kini nga yano ug makapahimuot, o mahimo nga komplikado ug seryoso. Lab-as ug batan-on, nagpakita bag-o lang, sa 2009.
  • Ang Rust usa ka gamay nga tigulang kaysa sa una nga kauban niini, nga gipagawas kaniadtong 2006, apan medyo bata pa kung itandi sa mga kaedad niini. Gipunting sa mas eksperyensiyado nga mga developer, bisan kung kini naningkamot gihapon sa pagsulbad sa daghang ubos nga lebel nga mga buluhaton alang sa programmer.
  • Ang Java usa ka beterano sa komersyal nga pag-uswag, gipaila kaniadtong 1995, ug usa sa labing sagad nga gigamit nga mga pinulongan sa pagpalambo sa aplikasyon sa negosyo karon. Uban sa sukaranan nga mga konsepto ug bug-at nga pag-setup, ang oras sa pagdagan mahimo’g mahagiton alang sa usa ka nagsugod.
  • Ang ASP.net usa ka plataporma sa pagpalambo sa aplikasyon nga gipagawas sa Microsoft. Sa pagsulat sa gamit, ang C# nga lengguwahe (gilitok nga C Sharp), nga mitungha niadtong 2000, kay gigamit. Ang pagkakomplikado niini ikatandi sa lebel tali sa Java ug Rust.
  • Ang PHP, orihinal nga gigamit alang sa HTML preprocessing, sa pagkakaron, bisan tuod kini naghupot sa hingpit nga pagpangulo sa merkado sa pinulongan, adunay usa ka uso ngadto sa pagkunhod sa paggamit. Kini adunay usa ka ubos nga entry threshold ug kasayon ​​sa pagsulat code, apan sa samang higayon, sa diha nga ang pagpalambo sa medyo dako nga mga aplikasyon, ang functionality sa pinulongan mahimong dili igo.

Aw, ang katapusang bahin sa among aplikasyon - ang labing mahikap alang sa tiggamit - frontend (frontend) - mao ang nawong sa imong aplikasyon; kini nga bahin nga direkta nga nakig-interact ang user.

Kung wala’y pag-adto sa mga detalye, ang modernong frontend nagbarug sa tulo nga mga haligi, mga balangkas (ug dili kaayo), alang sa paghimo sa mga interface sa gumagamit. Busa, ang tulo nga labing popular mao ang:

  • Ang ReactJS dili usa ka balangkas, apan usa ka librarya. Sa tinuud, ang balangkas lahi sa mapahitas-on nga titulo niini kung wala ang pipila nga mga gimbuhaton nga "gawas sa kahon" ug kinahanglan nga i-install kini nga mano-mano. Busa, adunay daghang mga kalainan sa "pag-andam" niini nga librarya, nga nagporma og talagsaon nga mga gambalay. Mahimong medyo lisud alang sa usa ka bag-ohan, tungod sa pipila ka sukaranan nga mga prinsipyo, ug medyo agresibo nga pag-setup sa palibot sa pagtukod. Bisan pa, alang sa dali nga pagsugod, mahimo nimong gamiton ang package nga "create-react-app".
  • Ang VueJS usa ka balangkas alang sa pagtukod sa mga interface sa gumagamit. Niini nga trinidad, kini adunay katungod sa pagkuha sa titulo sa labing user-friendly nga gambalay; alang sa pag-uswag sa Vue, ang babag sa pagsulod mas ubos kaysa sa uban nga gihisgutan nga mga igsoon. Dugang pa, siya ang kamanghuran sa taliwala nila.
  • Angular gikonsiderar nga labing komplikado sa kini nga mga balangkas, ang usa ra nga nanginahanglan TypeScript (add-on alang sa Javascript nga pinulongan). Kanunay nga gigamit sa pagtukod sa dagkong mga aplikasyon sa negosyo.

Sa pag-summarize kung unsa ang gisulat sa ibabaw, makahinapos kita nga karon ang pag-deploy sa usa ka aplikasyon lahi kaayo sa kung giunsa kini nga proseso nagpadayon kaniadto. Bisan pa, wala’y nagpugong kanimo sa paghimo sa "pag-deploy" sa karaan nga paagi. Apan ang gamay ba nga oras nga natipig sa pagsugod nagkantidad sa daghang mga sayup nga kinahanglan nga lakang sa usa ka developer nga nagpili niini nga dalan? Nagtuo ko nga ang tubag dili. Pinaagi sa paggugol ug gamay nga oras sa pag-pamilyar sa imong kaugalingon sa kini nga mga himan (ug dili nimo kinahanglan ang labi pa niana, tungod kay kinahanglan nimo nga masabtan kung kinahanglan nimo kini sa imong karon nga proyekto o dili), mahimo nimo kini dulaon, labi nga pagkunhod, pananglitan , mga kaso sa ghost errors depende sa environment ug nga makita lang sa production server, nightly analysis kung unsa ang nisangpot sa server crash ug nganong dili kini magsugod, ug daghan pa.

Source: www.habr.com

Idugang sa usa ka comment