Checkliste fir Webapplikatiounen ze kreéieren an ze publizéieren

Fir Är eege Webapplikatioun an eiser Zäit ze kreéieren, ass et net genuch fir se z'entwéckelen. E wichtegen Aspekt ass d'Ariichten vun Tools fir d'Uwendung vun der Applikatioun, d'Iwwerwaachung, souwéi d'Gestioun an d'Verwaltung vun der Ëmwelt an där se funktionnéiert. Wéi d'Ära vun der manueller Détachement an d'Vergiess verschwënnt, och fir kleng Projeten, kënnen Automatisatiounsinstrumenter konkret Virdeeler bréngen. Wann Dir "van Hand" ofsetzt, kënne mir dacks vergiessen eppes ze réckelen, dës oder déi Nuance berücksichtegen, e vergiessenen Test ausféieren, dës Lëscht ka fir eng zimlech laang Zäit fortgesat ginn.

Dësen Artikel kann deenen hëllefen, déi just d'Grondlage léieren fir Webapplikatiounen ze kreéieren an e bëssen iwwer d'Basisbegrëffer a Konventioune wëllen ze verstoen.

Also, d'Bauapplikatioune kënnen nach ëmmer an 2 Deeler opgedeelt ginn: alles wat mam Applikatiounscode bezunn ass, an alles wat d'Ëmfeld bezitt an deem dëse Code ausgefouert gëtt. Den Applikatiounscode, am Tour, ass och ënnerdeelt an de Servercode (deen deen um Server leeft, dacks: Geschäftslogik, Autorisatioun, Datelagerung, etc.), a Clientcode (deen deen op der Maschinn vum Benotzer leeft: dacks d'Interface, a verbonne Logik domat).

Fänke mer mam Mëttwoch un.

D'Basis fir d'Operatioun vun all Code, System oder Software ass de Betribssystem, also hei ënnen kucke mir déi populärste Systemer um Hostingmaart a ginn hinnen eng kuerz Beschreiwung:

Windows Server - déi selwecht Windows, awer an enger Servervariatioun. E puer Funktionalitéit verfügbar an der Client (normaler) Versioun vu Windows ass net hei präsent, zum Beispill e puer Servicer fir Statistiken an ähnlech Software ze sammelen, awer et gëtt eng Rei vun Utilities fir d'Netzverwaltung, Basissoftware fir Serveren z'installéieren (Web, ftp, ...). Am Allgemengen gesäit Windows Server wéi normal Windows, quacks wéi normal Windows, Ee, et kascht 2 Mol méi wéi seng regulär Géigespiller. Wéi och ëmmer, well Dir héchstwahrscheinlech d'Applikatioun op engem dedizéierten / virtuelle Server ofsetzt, sinn déi lescht Käschte fir Iech, och wann se eropgoen, net kritesch. Zënter datt d'Windows Plattform eng iwwerwältegend Plaz am Konsument OS Maart besetzt, wäert seng Server Editioun déi meeschte Benotzer vertraut sinn.

Unix- ähnleche System. Traditionell Aarbecht an dëse Systemer erfuerdert net d'Präsenz vun enger vertrauter graphescher Interface, déi de Benotzer nëmmen eng Konsol als Kontrollelement bitt. Fir en onerfueren Benotzer, an dësem Format ze schaffen kann schwéier sinn, just wat ass d'Käschte fir en Texteditor ze verloossen, deen zimlech populär an Daten ass Vim, eng Fro am Zesummenhang mat dëser huet scho méi wéi 6 Millioune Meenung an 1.8 Joer kritt. D'Haaptverdeelungen (Editioune) vun dëser Famill sinn: Debian - eng populär Verdeelung, Package Versiounen an et konzentréieren sech haaptsächlech op LTS (Laangfristeg Ënnerstëtzung - Ënnerstëtzung fir eng laang Zäit), déi an zimlech héich Zouverlässegkeet a Stabilitéit vum System a Packagen ausgedréckt ass; Ubuntu - enthält Verdeelunge vun alle Packagen an hiren leschten Versiounen, wat d'Stabilitéit beaflosse kann, awer erlaabt Iech d'Funktionalitéit ze benotzen déi mat neie Versioune kënnt; Red Hat Enterprise Linux - OS, positionéiert fir kommerziell Notzung, gëtt bezuelt, awer enthält Ënnerstëtzung vu Software Ubidder, e puer propriétaire Packagen a Chaufferpakete; CentOS - Open Source eng Variatioun vu Red Hat Enterprise Linux, charakteriséiert duerch d'Feele vu propriétaire Packagen an Ënnerstëtzung.

Fir déi, déi just ufänken dëst Gebitt ze beherrschen, meng Empfehlung wier Systemer Windows Server, oder Ubuntu. Wa mir Windows betruechten, dann ass dëst virun allem d'Bekanntheet vum System, Ubuntu - méi Toleranz zu Aktualiséierungen, an ofwiesselnd, zum Beispill, manner Problemer beim Start vun Projeten op Technologien déi nei Versiounen erfuerderen.

Also, no der OS decidéiert, loosst eis op eng Rei vun Tools plënneren, déi Iech erlaben den Zoustand vun der Applikatioun oder hiren Deeler um Server z'installéieren (installéieren), aktualiséieren an ze iwwerwaachen.

Déi nächst wichteg Entscheedung ass d'Placement vun Ärer Applikatioun an de Server dofir. Am Moment sinn am meeschte verbreet 3 Weeër:

  • Hosting (behalen) e Server eleng ass déi budgetfrëndlechst Optioun, awer Dir musst eng statesch IP vun Ärem Provider bestellen, sou datt Är Ressource seng Adress mat der Zäit net ännert.
  • Rent en dedizéierten Server (VDS) - an onofhängeg verwalten an d'Laaschten skaléieren
  • Bezuelt (dacks ginn se Iech d'Chance fir d'Funktionalitéit vun der Plattform gratis ze probéieren) fir en Abonnement op e puer Cloud-Hosting, wou de Bezuelmodell fir déi benotzte Ressourcen zimlech heefeg ass. Déi prominentst Vertrieder vun dëser Richtung: Amazon AWS (si ginn e gratis Joer fir d'Servicer ze benotzen, awer mat enger monatlecht Limit), Google Cloud (si ginn $ 300 op de Kont, dee während dem Joer op Cloud Hosting Servicer ausginn kann) , Yandex.Cloud (si ginn 4000 Rubelen . fir 2 Méint), Microsoft Azure (gëtt gratis Zougang zu populäre Servicer fir ee Joer, + 12 Rubel fir all Servicer fir ee Mount). Also kënnt Dir all vun dësen Ubidder probéieren ouni e Penny ze verbréngen, awer eng geschätzte Meenung iwwer d'Qualitéit an den Niveau vum Service ze kréien.

Ofhängeg vum gewielte Wee, ass dat eenzegt wat an Zukunft ännert, wien ass haaptsächlech verantwortlech fir dëst oder dat Gebitt vun der Administratioun. Wann Dir Iech selwer hostt, da musst Dir verstoen datt all Ënnerbriechungen an Elektrizitéit, Internet, de Server selwer, d'Software déi drop agesat ass - all dat ganz op Äre Schëlleren läit. Wéi och ëmmer, fir Training an Testen ass dëst méi wéi genuch.

Wann Dir keng extra Maschinn hutt déi d'Roll vun engem Server spille kann, da wëllt Dir déi zweet oder drëtt Manéier benotzen. Den zweete Fall ass identesch mat der éischter, mat der Ausnam datt Dir d'Verantwortung fir d'Disponibilitéit vum Server a seng Kraaft op d'Schëlleren vum Hoster verschéckt. D'Administratioun vum Server a Software ass nach ëmmer ënner Ärer Kontroll.

A schliisslech d'Optioun fir d'Kapazitéit vun de Cloud Provider ze lounen. Hei kënnt Dir automatesch Kontroll vu bal alles opbauen ouni ze vill technesch Detailer ze goen. Zousätzlech, amplaz vun enger Maschinn, kënnt Dir e puer parallel Lafen Instanzen hunn, déi zum Beispill fir verschidden Deeler vun der Applikatioun verantwortlech kënne sinn, wärend net vill an de Käschten ënnerscheeden vun engem dedizéierten Server ze besëtzen. An och, et ginn Tools fir Orchestratioun, Containeriséierung, automatesch Deployment, kontinuéierlech Integratioun a vill méi! Mir wäerten e puer vun dëse Saachen ënnert kucken.

Am Allgemengen gesäit d'Serverinfrastruktur esou aus: Mir hunn e sougenannten "Orchestrator" ("Orchestratioun" ass de Prozess fir verschidde Serverinstanzen ze managen), deen Ëmweltännerungen op enger Serverinstanz, engem Virtualiséierungscontainer (optional, awer ganz) geréiert dacks benotzt), wat Iech erlaabt d'Applikatioun an isoléiert logesch Schichten opzedeelen, a Continuous Integration Software - erlaabt Updates vum gehoste Code duerch "Skripten."

Also, d'Orchestratioun erlaabt Iech de Status vun de Serveren ze gesinn, d'Aktualiséierungen op d'Serverëmfeld auszerollen oder zréckzekréien, etc. Am Ufank ass et onwahrscheinlech datt dësen Aspekt Iech beaflosst, well fir eppes ze orchestréieren, brauch Dir e puer Server (Dir kënnt een hunn, awer firwat ass dat néideg?), A fir e puer Server ze hunn, braucht Dir se. Ënnert den Tools an dëser Richtung ass de populärste Kubernetes, entwéckelt vum Google.

De nächste Schrëtt ass Virtualiséierung um OS Niveau. Hautdesdaags ass d'Konzept vun "Dockeriséierung" verbreet ginn, wat aus dem Tool kënnt Docker, déi d'Funktionalitéit vu Behälter ubitt, déi vuneneen isoléiert sinn, awer am Kontext vun engem Betribssystem lancéiert ginn. Wat heescht dat: an all eenzel vun dësen Container kënnt Dir eng Applikatioun lafen, oder souguer eng Rei vun Uwendungen, déi gleewen datt se déi eenzeg sinn am ganze OS, ouni iwwerhaapt d'Existenz vun engem aneren op dëser Maschinn ze verdächtegen. Dës Funktioun ass ganz nëtzlech fir identesch Uwendungen vu verschiddene Versiounen ze lancéieren, oder einfach konfliktend Uwendungen, wéi och fir Stécker vun enger Applikatioun a Schichten opzedeelen. Dëse Layerbesetzung kann spéider an e Bild geschriwwe ginn, wat zum Beispill benotzt ka ginn fir eng Applikatioun z'installéieren. Dat ass, andeems Dir dëst Bild installéiert an d'Container ofsetzt, déi et enthält, kritt Dir e fäerdegt Ëmfeld fir Är Applikatioun ze lafen! An den éischte Schrëtt kënnt Dir dëst Tool souwuel fir Informatiounszwecker benotzen a fir ganz reell Virdeeler ze kréien andeems Dir d'Applikatiounslogik a verschidde Schichten opdeelt. Awer et ass derwäert ze soen datt net jiddereen Dockeriséierung brauch, an net ëmmer. Dockeriséierung ass gerechtfäerdegt a Fäll wou d'Applikatioun "fragmentéiert" ass, opgedeelt a kleng Deeler, jidderee verantwortlech fir seng eegen Aufgab, déi sougenannt "Mikroservicearchitektur".

Zousätzlech, zousätzlech fir d'Ëmwelt ze liwweren, musse mir eng kompetent Deployment vun der Applikatioun garantéieren, déi all Zorte vu Codetransformatiounen, Installatioun vun Applikatiounsrelatéierten Bibliothéiken a Packagen, Lafen Tester, Notifikatiounen iwwer dës Operatiounen, asw. Hei musse mir op esou e Konzept wéi "Kontinuéierlech Integratioun" oppassen (CI - Kontinuéierlech Integratioun). D'Haaptinstrumenter an dësem Beräich am Moment sinn Jenkins (CI Software geschriwwen op Java kann am Ufank e bësse komplizéiert schéngen), Travis C.I. (geschriwwen am Ruby, subjektiv, e bësse méi einfach Jenkins, awer e puer Wëssen am Bereich vun der Installatiounskonfiguratioun ass nach ëmmer erfuerderlech), Gitlab CI (geschriwwen op Rubin a Go).

Also, nodeems Dir iwwer d'Ëmwelt geschwat hutt an där Är Uwendung funktionnéiert, ass et Zäit endlech ze kucken wéi eng Tools déi modern Welt eis bitt fir dës ganz Uwendungen ze kreéieren.

Loosst eis mat de Basics ufänken: Backend (Backend) - Server Deel. D'Wiel vun der Sprooch, Set vu Basisfunktiounen a virdefinéierte Struktur (Kader) gëtt hei haaptsächlech vu perséinleche Virléiften festgeluegt, awer trotzdem ass et derwäert ze berücksichtegen (d'Meenung vum Auteur iwwer d'Sproochen ass relativ subjektiv, obwuel mat enger Fuerderung zu enger onparteiescher Beschreiwung):

  • Python ass eng zimlech frëndlech Sprooch fir en onerfueren Benotzer, et verzeien e puer Feeler, awer et kann och zimmlech strikt mam Entwéckler sinn, sou datt hien näischt Schlechtes mécht. Schonn eng zimlech reife a sënnvoll Sprooch, déi 1991 erauskoum.
  • Go, eng Sprooch vu Google, ass och zimlech frëndlech a praktesch, et ass ganz einfach ze kompiléieren an eng ausführbar Datei op all Plattform ze kréien. Et kann einfach an agreabel ginn, oder et kann komplex an sérieux ginn. Frësch a jonk, erschéngt relativ kuerzem, am Joer 2009.
  • Rust ass e bësse méi al wéi säi fréiere Kolleg, deen am Joer 2006 erauskomm ass, awer ass nach ëmmer zimlech jonk am Verglach zu senge Kollegen. Gezielt op méi erfuerene Entwéckler, obwuel et nach ëmmer probéiert vill Low-Level Aufgaben fir de Programméierer ze léisen.
  • Java ass e Veteran vu kommerziellen Entwécklung, agefouert 1995, an ass eng vun de meescht benotzt Sproochen an der Enterprise Applikatioun Entwécklung haut. Mat senge Basiskonzepter a schwéiere Setup kann d'Runtime zimmlech Erausfuerderung fir en Ufänger ginn.
  • ASP.net ass eng Applikatioun Entwécklungsplattform verëffentlecht vu Microsoft. Fir Funktionalitéit ze schreiwen, gëtt haaptsächlech d'C # Sprooch (ausgeschwat C Sharp), déi am Joer 2000 opgetaucht ass, benotzt. Seng Komplexitéit ass vergläichbar mam Niveau tëscht Java a Rust.
  • PHP, ursprénglech fir HTML Virveraarbechtung benotzt, am Moment, obwuel et absolut Leadership am Sproochemaart hält, gëtt et en Trend zu engem Réckgang am Gebrauch. Et huet e nidderegen Entrée-Schwell an d'Liichtegkeet vum Code ze schreiwen, awer gläichzäiteg, wann Dir zimlech grouss Uwendungen entwéckelt, ass d'Funktionalitéit vun der Sprooch vläicht net genuch.

Gutt, de leschten Deel vun eiser Applikatioun - déi konkret fir de Benotzer - frontend (Frontend) - ass d'Gesiicht vun Ärer Applikatioun; et ass mat dësem Deel datt de Benotzer direkt interagéiert.

Ouni an Detailer ze goen, steet de modernen Frontend op dräi Piliere, Kaderen (an net sou vill), fir Benotzerinterfaces ze kreéieren. Deementspriechend sinn déi dräi populärsten:

  • ReactJS ass kee Kader, mee eng Bibliothéik. Eigentlech ënnerscheet de Kader vun hirem stolzen Titel nëmmen an der Verontreiung vun e puer Funktiounen "aus der Këscht" an de Besoin fir se manuell ze installéieren. Also ginn et verschidde Variatiounen vun der "Virbereedung" vun dëser Bibliothéik, déi eenzegaarteg Kaderen bilden. Et kann e bësse schwéier fir en Ufänger sinn, wéinst e puer Grondprinzipien, an zimlech aggressiv Opstellung vum Bauëmfeld. Wéi och ëmmer, fir e schnelle Start, kënnt Dir de "create-react-app" Package benotzen.
  • VueJS ass e Kader fir Benotzerinterfaces ze bauen. Vun dëser Dräifaltegkeet hëlt et mat Recht den Titel vum User-frëndlechste Kader; fir Entwécklung a Vue ass d'Barrière fir d'Entrée méi niddereg wéi déi vun deenen aneren ernimmten Bridder. Ausserdeem ass hien de jéngste vun hinnen.
  • Angular gëtt als déi komplexst vun dëse Kaderen ugesinn, deen eenzegen deen erfuerdert TypeScript (Add-on fir Javascript Sprooch). Oft benotzt fir grouss Entreprise Uwendungen ze bauen.

Zesummefaassend wat hei uewen geschriwwen ass, kënne mir schléissen datt elo d'Deployment vun enger Applikatioun radikal anescht ass wéi dëse Prozess virdru weidergaang ass. Wéi och ëmmer, kee verhënnert Iech fir den "Deployment" op almodesch Manéier ze maachen. Awer ass déi kleng Zäit, déi am Ufank gespuert gëtt, déi enorm Zuel vu Feeler wäert, op déi en Entwéckler deen dëse Wee wielt muss opstoen? Ech gleewen datt d'Äntwert nee ass. Andeems Dir e bësse méi Zäit verbréngt fir Iech mat dësen Tools vertraut ze maachen (an Dir braucht net méi wéi dat, well Dir musst verstoen ob Dir se an Ärem aktuelle Projet braucht oder net), kënnt Dir et ausspillen, däitlech reduzéieren, z.B. , Fäll vu Geeschterfehler ofhängeg vun der Ëmwelt an déi nëmmen op der Produktiounsserver erschéngen, Nuechtanalyse vu wat zum Servercrash gefouert huet a firwat et net ufänkt, a vill méi.

Source: will.com

Setzt e Commentaire