Checklista för skapande och publicering av webbapplikationer

För att skapa en webbapplikation idag rÀcker det inte lÀngre att bara kunna utveckla den. En viktig aspekt Àr att stÀlla in verktyg för distribution av applikationen, övervakning samt hantering och administration av den miljö dÀr den fungerar. Tiden för manuell distribution gÄr mot sitt slut, Àven för mindre projekt, automatiseringsverktyg kan ge verklig nytta. Vid manuell distribution kan vi ofta glömma att överföra nÄgot, ta hÀnsyn till vissa detaljer, köra en bortglömd test, denna lista kan göras ganska lÄng.

Denna artikel kan vara till hjÀlp för dem som just börjar förstÄ grunderna i att skapa webbapplikationer och vill fÄ en bÀttre förstÄelse av grundlÀggande termer och konventioner.

SÄ att bygga applikationer kan fortfarande delas in i tvÄ delar, det som relaterar till applikationskoden och det som relaterar till miljön dÀr denna kod körs. Applikationskoden kan i sin tur ocksÄ delas in i serverkod (den som körs pÄ servern, ofta: affÀrslogik, autentisering, datalagring, osv.) och klientkod (den som körs pÄ anvÀndarens maskin: ofta grÀnssnitt och relaterad logik).

LÄt oss börja med miljön.

Grunden för all kod, system och programvara Àr operativsystemet, sÄ nedan kommer vi att titta pÄ de mest populÀra systemen som finns pÄ marknaden för webbhotell och ge en kort beskrivning av dem:

Windows Server – den vĂ€lkĂ€nda Windows, men i serverversion. Viss funktionalitet som finns i den vanliga (klient) versionen av Windows finns inte hĂ€r, som till exempel vissa tjĂ€nster för att samla statistik, men det finns en uppsĂ€ttning verktyg för nĂ€tverksadministration och grundlĂ€ggande programvara för distribution (webb, ftp, 
). Överlag ser Windows Server ut som vanlig Windows, lĂ„ter som vanlig Windows, men kostar 2 gĂ„nger mer Ă€n sin vanliga motsvarighet. Men med tanke pĂ„ att du troligtvis kommer att distribuera applikationen pĂ„ en dedikerad/virtuell server kan den slutliga kostnaden för dig öka, men inte kritiskt. Eftersom Windows-plattformen dominerar marknaden för anvĂ€ndaroperativsystem kommer dess serverutgĂ„va att vara den mest bekanta för de flesta anvĂ€ndare. servrar (web, ftp, 
). Sammanfattningsvis ser Windows Server ut som en vanlig Windows, ljuder som en vanlig Windows, men kostar dubbelt sĂ„ mycket som sin vanliga motsvarighet. Men med tanke pĂ„ att du sannolikt kommer att installera applikationen pĂ„ en dedikerad/virtuell server, kan slutkostnaden för dig öka, men inte pĂ„ ett kritiskt sĂ€tt. Eftersom Windows-plattformen dominerar marknaden för anvĂ€ndaroperativsystem, kommer dess serverversion att vara den mest bekanta för de flesta anvĂ€ndare.

Unix-liknande system. Traditionellt arbete inom sĂ„dana system förutsĂ€tter inte en vanlig grafisk anvĂ€ndargrĂ€nssnitt, utan erbjuder anvĂ€ndaren endast en konsol som styrmekanism. För en oerfaren anvĂ€ndare kan det vara svĂ„rt att arbeta i ett sĂ„dant format, och det Ă€r bara att tĂ€nka pĂ„ hur komplicerat det kan bli i en av de populĂ€ra textredigerarna. Vim, frĂ„gan relaterad till detta har under 6 Ă„r fĂ„tt över 1,8 miljoner visningar. De frĂ€msta distributionerna (versionerna) av denna familj Ă€r: Debian - en populĂ€r distribution, versionerna av paketen i den Ă€r huvudsakligen inriktade mot LTS (Long Term Support – lĂ„ngsiktig stöd), vilket resulterar i ganska stor tillförlitlighet och stabilitet i systemet och paketen; Ubuntu – innehĂ„ller distributioner av alla paket i deras senaste versioner, vilket kan pĂ„verka stabiliteten, men möjliggör anvĂ€ndning av funktionaliteten som tillhandahĂ„lls av de nya versionerna; Red Hat Enterprise Linux – ett OS, positionerat för kommersiellt bruk, Ă€r betalande, men inkluderar stöd frĂ„n programvaruleverantörer, vissa proprietĂ€ra paket och drivrutinspaket; CentOS – en öppen kĂ€llkod varianter av Red Hat Enterprise Linux, kĂ€nnetecknas av frĂ„nvaron av proprietĂ€ra paket och stöd.

För dem som bara börjar bemĂ€stra detta omrĂ„de, Ă€r mina rekommendationer system Windows Server, eller Ubuntu. Om man övervĂ€ger Windows, Ă€r det i första hand systemets bekantskap, Ubuntu – mer tolerans mot uppdateringar, och Ă„ sin sida, till exempel, mindre problem vid start av projekt som krĂ€ver nyare versioner.

SÄ, efter att ha bestÀmt sig för OS, gÄr vi vidare till uppsÀttningen verktyg för att distribuera (installera), uppdatera och övervaka statusen för en applikation eller dess delar pÄ servern.

NĂ€sta viktiga beslut kommer att vara – placeringen av din applikation och servern för den. För tillfĂ€llet Ă€r de tre mest populĂ€ra sĂ€tten:

  • Att hosta (hĂ„lla) servern sjĂ€lv — det mest budgetvĂ€nliga alternativet, men du mĂ„ste bestĂ€lla en statisk IP-adress frĂ„n leverantören sĂ„ att din resurs inte Ă€ndrar adress med tiden.
  • Hyra en Dedikerad Server (VDS) – och sjĂ€lvstĂ€ndigt ta hand om dess administration och skalning av belastningar.
  • Betala (ofta fĂ„r man gratis prova plattformens funktionalitet) för en prenumeration hos en molnhosting, dĂ€r betalningsmodellen för anvĂ€nd resurs Ă€r ganska vanlig. De mest framtrĂ€dande representanter inom detta omrĂ„de Ă€r: Amazon AWS (de ger ett gratis Ă„r av tjĂ€nster men med mĂ„natliga begrĂ€nsningar), Google Cloud (de ger $300 pĂ„ kontot, som kan anvĂ€ndas under ett Ă„r för molntjĂ€nster hosting), Yandex. ОблаĐșĐŸ (de ger 4000 rubel i 2 mĂ„nader), Microsoft Azure (de ger gratis tillgĂ„ng till populĂ€ra tjĂ€nster i ett Ă„r, + 12 500 rubel för alla tjĂ€nster under en mĂ„nad). SĂ„ledes kan man prova nĂ„gon av dessa leverantörer utan att spendera en enda rubel men fĂ„ en ungefĂ€rlig uppfattning om kvaliteten och nivĂ„n pĂ„ tjĂ€nsterna.

Beroende pĂ„ vilken vĂ€g som vĂ€ljs kommer ansvaret för olika omrĂ„den av administrationen huvudsakligen att förĂ€ndras. Om du hostar sjĂ€lv, mĂ„ste du förstĂ„ att alla avbrott i elektricitet, internet, sjĂ€lva servern och programvaran som körs pĂ„ den – allt detta faller helt pĂ„ dina axlar. Emellertid Ă€r detta mer Ă€n tillrĂ€ckligt för lĂ€rande och testning.

Om du inte har nÄgon överflödig maskin som kan fungera som server, vill du dÄ anvÀnda den andra eller tredje vÀgen. Det andra fallet Àr identiskt med det första, med den skillnaden att du överför ansvaret för serverns tillgÀnglighet och kapacitet till hostingföretaget. Serveradministrationen och programvaran Àr fortfarande under din kontroll.

Och slutligen, alternativet med att hyra kapacitet frÄn molnleverantörer. HÀr kan du konfigurera automatiserad hantering av nÀstan vad som helst, utan att gÄ in pÄ för tekniska detaljer. Dessutom kan du istÀllet för en enda maskin ha flera parallellt körda instanser som kan svara för olika delar av applikationen, utan att skilja sig mycket i kostnad frÄn Àgandet av en dedikerad server. Dessutom finns det verktyg för orkestrering, containerisering, automatisk distribution, kontinuerlig integration och mycket mer! Vissa av dessa saker kommer vi att titta pÄ lÀngre ner.

Generellt sett ser serverinfrastrukturen ut pĂ„ följande sĂ€tt: vi har sĂ„ kallad "orkestrering" ("orkestrering" Ă€r processen för att hantera flera instanser av servrar), som styr förĂ€ndringar i miljön pĂ„ serverinstansen, en virtualiseringscontainer (valfri, men ofta anvĂ€nd), som gör det möjligt att dela applikationen i isolerade logiska lager, samt programvara för Kontinuerlig Integration – som gör att uppdateringar av den publicerade koden kan genomföras via "scripts".

SÄ orkestrering gör att du kan se status pÄ servrarna, genomföra "tillÀmpningar" eller "ÄterstÀllningar" av uppdateringar av serverns omgivning, och sÄ vidare. I början kommer denna aspekt knappast att beröra dig, eftersom för att orkestrera nÄgot krÀvs det flera servrar (man kan anvÀnda en, men varför skulle man göra det?), och för att ha flera servrar behövs det en efterfrÄgan pÄ dem. Bland verktygen i detta omrÄde Àr Kubernetes mest erkÀnd, utvecklad. Google.

NĂ€sta steg Ă€r virtualisering pĂ„ OS-nivĂ„. Nu har begreppet "containerisering" fĂ„tt stor spridning – vilket kom frĂ„n verktyget. Docker, som tillhandahĂ„ller funktionalitet för isolerade containrar som körs inom samma operativsystem. Vad detta innebĂ€r Ă€r att i varje sĂ„dan container kan en applikation eller till och med en uppsĂ€ttning applikationer köras, som tror att de Ă€r de enda i hela operativsystemet, utan att misstĂ€nka att det finns andra pĂ„ samma maskin. Denna funktion Ă€r mycket anvĂ€ndbar bĂ„de för att köra identiska applikationer i olika versioner, eller helt enkelt konfliktande applikationer, samt för att dela upp delar av applikationen i lager. Denna avbildning av lager kan senare skrivas till en bild som kan anvĂ€ndas, till exempel för att distribuera applikationen. Det betyder att genom att installera denna bild och distribuera de containrar som den innehĂ„ller fĂ„r du en fĂ€rdig miljö för att köra din applikation! I de första stegen kan du anvĂ€nda detta verktyg bĂ„de för att bekanta dig med det och för att fĂ„ verklig nytta genom att sprida applikationens logik över olika lager. Men det bör nĂ€mnas att dockerisering inte Ă€r nödvĂ€ndigt för alla och inte alltid. Dockerisering Ă€r motiverat nĂ€r applikationen Ă€r

fragmenteradCI - Kontinuerlig Integration). De frÀmsta verktygen inom detta omrÄde för nÀrvarande Àr Jenkins (ett CI-verktyg som Àr skrivet i Java, vilket kan verka lite komplicerat i början), Travis CI (skriven i Ruby, subjektivt nÄgot enklare Àn Jenkins, men krÀver fortfarande viss kunskap om att konfigurera distributionen), Gitlab CI (skriven i Ruby och Go).

SÄ, efter att ha pratat om miljön dÀr din applikation kommer att arbeta, Àr det dags att Àntligen se vilka verktyg den moderna vÀrlden erbjuder oss för att skapa dessa applikationer.

LĂ„t oss börja med grunderna: Backend (backend) – serverdelen. Valet av sprĂ„k, uppsĂ€ttning grundlĂ€ggande funktioner och fördefinierad struktur (ramverk) bestĂ€ms frĂ€mst av personliga preferenser, men det Ă€r vĂ€rt att nĂ€mna för övervĂ€gande (författarens Ă„sikt om sprĂ„k Ă€r ganska subjektiv, Ă€ven om den gör ansprĂ„k pĂ„ en objektiv beskrivning):

  • Python – ett ganska anvĂ€ndarvĂ€nligt sprĂ„k för oerfarna anvĂ€ndare, förlĂ„ter vissa misstag, men kan ocksĂ„ vara ganska strĂ€ngt mot utvecklaren sĂ„ att denne inte gör nĂ„got fel. Ett ganska moget och genomtĂ€nkt programmeringssprĂ„k som kom till 1991.
  • Go – ett sprĂ„k frĂ„n Google, ocksĂ„ ganska anvĂ€ndarvĂ€nligt och bekvĂ€mt, lĂ€tt att kompilera och fĂ„ en körbar fil pĂ„ vilken plattform som helst. Kan vara enkelt och trevligt, eller komplicerat och seriöst. Nytt och ungt, kom fram relativt nyligen, 2009.
  • Rust – nĂ„got Ă€ldre Ă€n den föregĂ„ende kollegan, utgiven 2006, fortfarande ganska ung i förhĂ„llande till sina syskon. Inriktat pĂ„ mer erfarna utvecklare, Ă€ven om det fortfarande försöker lösa mĂ„nga lĂ„gnivĂ„problem för programmeraren.
  • Java – veteran inom kommersiell utveckling, introducerad 1995, ett av de mest anvĂ€nda sprĂ„ken för utveckling av företagsapplikationer idag. Med sina grundlĂ€ggande koncept och tunga konfigurationer kan det bli ganska komplicerat för nybörjare.
  • ASP.net – en plattform för applikationsutveckling, utgiven av Microsoft. För att skriva funktionaliteten anvĂ€nds huvudsakligen sprĂ„ket C# (uttalas C si sharp), upptrĂ€dde 2000. JĂ€mfört med sin komplexitet ligger den mellan Java och Rust.
  • PHP – ursprungligen anvĂ€ndes för förbehandling av HTML, nu har den fortfarande absolut ledarskap pĂ„ sprĂ„kmarknaden, men det finns en tydlig trend mot minskad anvĂ€ndning. KĂ€nnetecknas av lĂ„gt intrĂ€deskrav, enkel kodskrivning, men samtidigt kan sprĂ„kets funktionalitet visa sig vara otillrĂ€cklig vid utveckling av större applikationer.

Och den sista delen av vĂ„r applikation – den mest pĂ„tagliga för anvĂ€ndaren – Frontend (frontend) – Ă€r ansiktet pĂ„ din applikation, det Ă€r just denna del som anvĂ€ndaren interagerar direkt med.

Utan att gÄ in pÄ detaljer vilar dagens frontend pÄ tre stolpar, ramverk (och mer) för att skapa anvÀndargrÀnssnitt. Följaktligen Àr de tre mest populÀra:

  • ReactJS – inte ett ramverk, utan ett bibliotek. Faktum Ă€r att det stolt skiljer sig frĂ„n ramverken genom att vissa funktioner "out of the box" saknas, och det krĂ€ver att man installerar dem manuellt. Det finns alltsĂ„ flera variationer av "bereder" det hĂ€r biblioteket, vilket formar unika ramverk. För nybörjare kan det vara lite komplicerat pĂ„ grund av vissa grundlĂ€ggande principer och en ganska aggressiv uppsĂ€ttning av byggen. Men för en snabb start kan man anvĂ€nda paketet "create-react-app".
  • VueJS – ett ramverk för att bygga anvĂ€ndargrĂ€nssnitt. Bland denna trio förtjĂ€nar det titeln som det mest anvĂ€ndarvĂ€nliga ramverket, eftersom inlĂ€rningströskeln Ă€r lĂ€gre Ă€n för de andra listade syskonen. Dessutom Ă€r det det yngsta av dem.
  • Angular – anses vara det mest komplicerade av de nĂ€mnda ramverken, det enda som krĂ€ver TypeScript (ett tillĂ€gg till Javascript). Det anvĂ€nds ofta för att bygga stora företagsapplikationer.

Sammanfattningsvis kan man sĂ€ga att dagens distribution av applikationer radikalt skiljer sig frĂ„n hur denna process tidigare gick till. Ingen hindrar dock frĂ„n att göra "deployment" pĂ„ det gamla sĂ€ttet. Men Ă€r det vĂ€rt den lilla tidsbesparingen i starten – en enorm mĂ€ngd fĂ€llor som utvecklaren som valt denna vĂ€g mĂ„ste navigera? Jag anser att svaret Ă€r "nej". Genom att spendera lite mer tid pĂ„ att lĂ€ra sig dessa verktyg (och mycket mer krĂ€vs inte, eftersom du mĂ„ste förstĂ„ om de Ă€r nödvĂ€ndiga för ditt aktuella projekt eller inte), kan du spara mycket tid genom att exempelvis kraftigt minska antalet spöklika fel som beror pĂ„ miljön och endast uppstĂ„r pĂ„ produktionsservern, nattliga genomgĂ„ngar av vad som ledde till serverns nedgĂ„ng och varför den inte startar, och mycket mer.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster