Lista di cuntrollu per creà è publicà applicazioni web

Per creà a vostra propria applicazione web in u nostru tempu, ùn hè micca abbastanza per pudè sviluppà. Un aspettu impurtante hè a creazione di strumenti per l'implementazione di l'applicazioni, u monitoraghju, è ancu a gestione è l'amministrazione di l'ambiente in quale opera. Cume l'era di l'implementazione manuale svanisce in l'obliu, ancu per i picculi prughjetti, l'arnesi d'automatizazione ponu purtà benefici tangibili. Quandu si sparghje "a manu", pudemu spessu scurdate di spustà qualcosa, piglià in contu questu o quellu sfumatura, eseguisce una prova scurdata, sta lista pò esse cuntinuita per un bellu pezzu.

Questu articulu pò aiutà à quelli chì sò solu amparà i principii di creazione di applicazioni web è volenu capisce un pocu nantu à i termini basi è cunvenzioni.

Dunque, l'applicazioni di custruzzione ponu esse divisu in 2 parti: tuttu ciò chì riguarda u codice di l'applicazione, è tuttu ciò chì riguarda l'ambiente in u quale stu codice hè eseguitu. U codice di l'applicazione, à u turnu, hè ancu divisu in u codice di u servitore (quellu chì corre nantu à u servitore, spessu: logica cummerciale, auturizazione, almacenamentu di dati, etc.), è codice client (quellu chì corre nantu à a macchina di l'utilizatore: spessu. l'interfaccia, è a logica cunnessa cun ella).

Cuminciamu cù u marcuri.

A basa per u funziunamentu di qualsiasi codice, sistema, o software hè u Sistema Operativu, cusì quì sottu guardemu i sistemi più populari in u mercatu di l'ospiti è li darà una breve descrizzione:

Windows Server - u listessu Windows, ma in una variazione di u servitore. Alcune funziunalità dispunibuli in a versione di u cliente (regular) di Windows ùn hè micca presente quì, per esempiu, alcuni servizii per a cullizzioni di statistiche è software simili, ma ci hè un inseme di utilità per l'amministrazione di a rete, u software basicu per implementà i servitori (web, ftp, ...). In generale, Windows Server s'assumiglia Windows regulare, quacks cum'è Windows normale, però, custa 2 volte di più cà u so contraparti regulare. In ogni casu, datu chì u più prubabile di implementà l'applicazione in un servitore dedicatu / virtuale, u costu finali per voi, anche si pò aumentà, ùn hè micca criticu. Siccomu a piattaforma Windows occupa un locu eccessiva in u mercatu di u cunsumu OS, a so edizione di u servitore serà a più familiare per a maiò parte di l'utilizatori.

Unix- sistema simile. U travagliu tradiziunale in questi sistemi ùn deve micca a presenza di una interfaccia gràfica familiar, chì offre à l'utilizatori solu una cunsola cum'è un elementu di cuntrollu. Per un utilizatore senza sperienza, travaglià in stu formatu pò esse difficiule, ciò chì hè u costu di esce da un editore di testu chì hè abbastanza populari in dati. Vim, una quistione ligata à questu hà digià ricevutu più di 6 milioni di vista in 1.8 anni. I distribuzioni principali (edizzioni) di sta famiglia sò: Debian - una distribuzione populari, e versioni di pacchetti in questu sò cuncentrati principarmenti in LTS (Supportu à Long Term - supportu per un bellu pezzu), chì si spressione in abbastanza alta affidabilità è stabilità di u sistema è i pacchetti; Ubuntu - cuntene distribuzioni di tutti i pacchetti in e so ultime versioni, chì ponu influenzà a stabilità, ma permette di utilizà a funziunalità chì vene cù e novi versioni; Red Hat Enterprise Linux - OS, posizionatu per l'usu cummerciale, hè pagatu, in ogni modu, include supportu da i venditori di software, alcuni pacchetti proprietarii è pacchetti di driver; CentOS - open source una variazione di Red Hat Enterprise Linux, carattarizata da l'absenza di pacchetti proprietari è supportu.

Per quelli chì sò appena principiatu à ammaistrà sta zona, a mo ricunniscenza seria sistemi Windows Server, o Ubuntu. Se cunsideremu Windows, questu hè principalmente a familiarità di u sistema, Ubuntu - più tolleranza à l'aghjurnamenti, è à u turnu, per esempiu, menu prublemi quandu lanciate prughjetti nantu à tecnulugia chì necessitanu novi versioni.

Allora, dopu avè decisu nantu à u SO, andemu à un inseme di strumenti chì permettenu di implementà (installà), aghjurnà è monitorà u statu di l'applicazione o di e so parti nantu à u servitore.

A prossima decisione impurtante serà a piazza di a vostra applicazione è u servitore per questu. À u mumentu, i più cumuni sò 3 modi:

  • Hosting (mantene) un servitore nantu à u vostru propiu hè l'opzione più amichevule di u budgetu, ma avete da urdinà una IP statica da u vostru fornituri per chì a vostra risorsa ùn cambia micca u so indirizzu cù u tempu.
  • Affitta un Servitore Dedicatu (VDS) - è amministrallu indipindentamente è scala carichi
  • Paga (spessu vi dà l'uppurtunità di pruvà a funziunalità di a piattaforma gratuitamente) per un abbunamentu à qualchì cloud hosting, induve u mudellu di pagamentu per i risorse utilizati hè abbastanza cumuni. I rapprisentanti più prominenti di sta direzzione: Amazon AWS (dannu un annu gratuitu di usu di i servizii, ma cù un limitu mensu), Google Cloud (danu $ 300 à u contu, chì pò esse spentu durante l'annu nantu à i servizii di hosting cloud) , Yandex.Cloud (danu 4000 rubles . per 2 mesi), Microsoft Azure (danu accessu gratuitu à i servizii populari per un annu, + 12 500 rubles per ogni serviziu per un mesi). Cusì, pudete pruvà qualsiasi di questi fornituri senza spende un centesimu, ma ottene una opinione apprussimativa nantu à a qualità è u livellu di serviziu furnitu.

Sicondu u percorsu sceltu, l'unicu ciò chì cambierà in u futuru hè quellu chì hè largamente rispunsevuli di questu o quellu spaziu di amministrazione. Sè vo site, avete da capisce chì ogni interruzzione in l'electricità, Internet, u servitore stessu, u software implementatu nantu à questu - tuttu questu hè solu nantu à e spalle. Tuttavia, per a furmazione è a prova, questu hè più cà abbastanza.

Se ùn avete micca una macchina extra chì pò ghjucà u rolu di un servitore, allora vulete utilizà a seconda o terza manera. U sicondu casu hè identicu à u primu, cù l'eccezzioni chì si trasfiriu a rispunsabilità per a dispunibilità di u servitore è u so putere à e spalle di l'ospiti. L'amministrazione di u servitore è u software hè sempre sottu u vostru cuntrollu.

È infine, l'opzione di allughjà a capacità di i fornituri di nuvola. Quì pudete stabilisce u cuntrollu automatizatu di quasi tuttu senza entre in troppu dettagli tecnichi. Inoltre, invece di una macchina, pudete avè parechje istanze parallele in esecuzione, chì ponu, per esempiu, esse rispunsevuli di diverse parti di l'appiecazione, mentre ùn differiscenu assai in u costu di pussede un servitore dedicatu. È ancu, ci sò arnesi per orchestrazione, containerizazione, implementazione automatica, integrazione cuntinua è assai di più! Fighjemu alcune di queste cose quì sottu.

In generale, l'infrastruttura di u servitore s'assumiglia cusì: avemu un "orchestrator" chjamatu ("orchestrazione" hè u prucessu di gestisce parechje istanze di u servitore), chì gestisce i cambiamenti ambientali in una istanza di u servitore, un containeru di virtualizazione (opcional, ma abbastanza. spessu usatu), chì vi permette di dividisce l'applicazione in strati lògichi isolati, è u software di Integrazione Continua, chì permette l'aghjurnamenti di u codice ospitatu attraversu "scripts".

Allora, l'orchestrazione permette di vede u statutu di i servitori, roll out o roll back updates to the server environment, and so on. À u principiu, questu aspettu hè improbabile di affettà, postu chì per orchestrar qualcosa, avete bisognu di parechji servitori (pudete avè unu, ma perchè hè questu necessariu?), è per avè parechji servitori, avete bisognu. Trà l'arnesi in questa direzzione, u più pupulare hè Kubernetes, sviluppatu da Google.

U prossimu passu hè a virtualizazione à u livellu OS. Oghje, u cuncettu di "dockerization" hè diventatu generalizatu, chì vene da u strumentu Docker, chì furnisce a funziunalità di cuntenituri isolati da l'altri, ma lanciatu in u cuntestu di un sistema operatore. Ciò chì significa questu: in ognuna di questi cuntenituri pudete eseguisce una applicazione, o ancu un inseme d'applicazioni, chì crederanu chì sò l'unichi in tuttu u SO, senza mancu suspettà l'esistenza di qualcunu altru nantu à sta macchina. Sta funzione hè assai utile per lancià applicazioni identiche di diverse versioni, o simpricimenti appiicazioni cunflittuali, è ancu per dividisce pezzi di una applicazione in strati. Questa strata cast pò esse scritta dopu in una maghjina, chì pò esse usata, per esempiu, per implementà una applicazione. Vale à dì, installendu sta maghjina è implementendu i cuntenituri chì cuntene, uttene un ambiente prontu per eseguisce a vostra applicazione! In i primi passi, pudete aduprà stu strumentu sia per scopi informativi sia per ottene beneficii assai reali dividendu a logica di l'applicazione in diverse strati. Ma vale a pena dì quì chì micca tutti ùn anu bisognu di dockerization, è micca sempre. A dockerizazione hè ghjustificata in i casi induve l'applicazione hè "fragmentata", divisa in picculi parti, ognunu rispunsevuli di u so propiu compitu, a chjamata "architettura di microserviziu".

Inoltre, in più di furnisce l'ambiente, avemu bisognu di assicurà una implementazione cumpetente di l'applicazione, chì include tutti i tipi di trasfurmazioni di codice, stallazione di librerie è pacchetti in relazione à l'applicazioni, teste in esecuzione, notificazioni nantu à queste operazioni, etc. Quì avemu bisognu di attentu à un cuncettu cum'è "Integrazione Continua" (CI - Integrazione Continua). I principali strumenti in questa zona in u mumentu sò Jenkins (u software CI scrittu in Java pò pare un pocu complicatu à u principiu), Travis C.I. (scrittu in Ruby, subjective, un pocu più simplice Jenkins, però, una certa cunniscenza in u campu di a cunfigurazione di implementazione hè sempre necessaria), Gitlab CI (scrittu nantu Ruby and Go).

Allora, dopu avè parlatu di l'ambiente in u quale a vostra applicazione hà da travaglià, hè ora di fighjà infine quali strumenti ci offre u mondu mudernu per creà queste applicazioni.

Cuminciamu cù i principii: Backend (backend) - parte di u servitore. L'scelta di a lingua, l'inseme di funzioni basiche è a struttura predefinita (quadru) quì hè determinata principarmenti da e preferenze persunali, ma in ogni modu, vale a pena menzionatu per cunsiderazione (l'opinione di l'autore nantu à e lingue hè abbastanza subjectiva, ancu s'ellu cun una pretensione). à una descrizione imparziale):

  • Python hè una lingua abbastanza amichevule per un utilizatore inespertu, perdona alcuni sbagli, ma pò ancu esse abbastanza strettu cù u sviluppatore per ùn fà nunda di male. Digià una lingua abbastanza maturu è significativu, apparsu in u 1991.
  • Go - una lingua da Google, hè ancu abbastanza amichevule è cunvene, hè abbastanza faciule per cumpilà è uttene un schedariu eseguibile in ogni piattaforma. Pò esse simplice è piacevule, o pò esse cumplessu è seriu. Frescu è ghjovanu, apparsu pocu pocu tempu, in u 2009.
  • Rust hè un pocu più vechju di u so cullega precedente, liberatu in u 2006, ma hè sempre abbastanza ghjovanu cumparatu cù i so cumpagni. Dirittu à i sviluppatori più sperimentati, ancu s'ellu prova sempre di risolve parechje attività di pocu livellu per u programatore.
  • Java hè un veteranu di u sviluppu cummerciale, introduttu in 1995, è hè una di e lingue più usate in u sviluppu di l'applicazioni di l'impresa oghje. Cù i so cuncetti basi è a cunfigurazione pesante, u runtime pò diventà abbastanza sfida per un principiante.
  • ASP.net hè una piattaforma di sviluppu di applicazioni liberata da Microsoft. Per scrive funziunalità, a lingua C# (pronunzia C Sharp), chì hè apparsu in u 2000, hè principalmente utilizata. A so cumplessità hè paragunabile à u livellu trà Java è Rust.
  • PHP, urigginariamente utilizatu per u preprocessing HTML, attualmente, ancu s'ellu detene una leadership assoluta in u mercatu di lingua, ci hè una tendenza versu un calatu in l'usu. Havi un sogliu di entrata bassu è facilità di scrittura di codice, ma à u stessu tempu, quandu si sviluppanu applicazioni abbastanza grandi, a funziunalità di a lingua pò esse micca abbastanza.

Ebbè, a parte finale di a nostra applicazione - a più tangibile per l'utilizatore - Front end (frontend) - hè a faccia di a vostra applicazione; hè cù questa parte chì l'utilizatore interagisce direttamente.

Senza entre in dettagli, u frontend mudernu si trova nantu à trè pilastri, frameworks (è micca tantu), per creà interfacce d'utilizatori. Per quessa, i trè più populari sò:

  • ReactJS ùn hè micca un framework, ma una biblioteca. In verità, u quadru differisce da u so tìtulu fieru solu in l'absenza di alcune funzioni "fora di scatula" è a necessità di stallà manualmente. Cusì, ci sò parechje variazioni di a "preparazione" di sta biblioteca, chì formanu frameworks unichi. Pò esse un pocu difficiule per un principiante, per via di certi principii basi, è una cunfigurazione abbastanza aggressiva di l'ambienti di custruzzione. Tuttavia, per un principiu rapidu, pudete aduprà u pacchettu "create-react-app".
  • VueJS hè un framework per custruisce interfacce d'utilizatori. Di sta trinità, pigghia giustu u titulu di u quadru più user-friendly; per u sviluppu in Vue, a barriera à l'entrata hè più bassu di quella di l'altri fratelli citati. Inoltre, hè u più chjucu trà elli.
  • Angular hè cunsideratu u più cumplessu di sti frameworks, l'unicu chì esige typescript (add-on per a lingua Javascript). Spessu usatu per custruisce applicazioni di grande impresa.

Riassuntu ciò chì hè statu scrittu sopra, pudemu cuncludi chì avà implementà una applicazione hè radicalmente sfarente da cumu si procedeva stu prucessu prima. Tuttavia, nimu ùn vi impedisce di fà u "spiegamentu" in modu anticu. Ma hè u pocu tempu salvatu à u principiu vale a pena u gran numaru di sbagli chì un sviluppatore chì sceglie sta strada duverà passà? Credu chì a risposta hè micca. Passendu un pocu di più tempu per familiarizàvi cù questi strumenti (è ùn avete micca bisognu di più di questu, perchè avete bisognu di capiscenu s'ellu avete bisognu in u vostru prughjettu attuale o micca), pudete ghjucà, riducendu significativamente, per esempiu. , Casi di errori ghost secondu l'ambienti è chì appariscenu solu nantu à u servitore di pruduzzione, analisi di notte di ciò chì hà purtatu à u crash di u servitore è perchè ùn principia micca, è assai più.

Source: www.habr.com

Add a comment