Dhaptar priksa kanggo nggawe lan nerbitake aplikasi web

Kanggo nggawe aplikasi web dhewe ing jaman saiki, ora cukup kanggo bisa ngembangake. Aspek penting yaiku nyiyapake alat kanggo panyebaran aplikasi, ngawasi, uga ngatur lan ngatur lingkungan sing dioperasikake. Nalika jaman panyebaran manual dadi lalen, sanajan kanggo proyek cilik, alat otomatisasi bisa nggawa keuntungan sing nyata. Nalika deploying "kanthi tangan", kita bisa asring lali kanggo mindhah soko, njupuk menyang akun nuansa iki utawa sing, mbukak test lali, dhaftar iki bisa terus kanggo dangu.

Artikel iki bisa mbantu wong-wong sing lagi sinau dhasar nggawe aplikasi web lan pengin ngerti sethithik babagan istilah lan konvensi dhasar.

Dadi, aplikasi bangunan isih bisa dipΓ©rang dadi 2 bagean: kabeh sing ana hubungane karo kode aplikasi, lan kabeh sing ana hubungane karo lingkungan ing ngendi kode iki dieksekusi. Kode aplikasi kasebut uga dipΓ©rang dadi kode server (sing mlaku ing server, asring: logika bisnis, wewenang, panyimpenan data, lan sapiturute), lan kode klien (sing mlaku ing mesin pangguna: asring antarmuka, lan logika sing ana gandhengane).

Ayo miwiti karo Rebo.

Dasar kanggo operasi kode, sistem, utawa piranti lunak apa wae yaiku Sistem Operasi, mula ing ngisor iki kita bakal ndeleng sistem sing paling populer ing pasar hosting lan menehi katrangan ringkes:

Windows Server - Windows padha, nanging ing variasi server. Sawetara fungsi sing kasedhiya ing klien (biasa) versi Windows ora ana ing kene, contone, sawetara layanan kanggo ngumpulake statistik lan piranti lunak sing padha, nanging ana sawetara utilitas kanggo administrasi jaringan, piranti lunak dhasar kanggo nyebarake server (web, ftp, ...). UmumΓ©, Windows Server katon kaya Windows biasa, quacks kaya Windows biasa, Nanging, biaya 2 kaping luwih saka mitra biasa. Nanging, yen sampeyan bakal nyebarake aplikasi kasebut ing server khusus / virtual, biaya pungkasan kanggo sampeyan, sanajan bisa nambah, ora kritis. Wiwit platform Windows manggoni papan sing akeh banget ing pasar OS konsumen, edisi server bakal dadi sing paling dikenal kanggo pangguna.

Unix- sistem sing padha. Karya tradisional ing sistem kasebut ora mbutuhake antarmuka grafis sing akrab, menehi pangguna mung konsol minangka unsur kontrol. Kanggo pangguna sing ora duwe pengalaman, nggarap format iki bisa uga angel, mung pira biaya metu saka editor teks sing cukup populer ing data. Vim, pitakonan sing ana hubungane karo iki wis ditampa luwih saka 6 yuta views ing 1.8 taun. Distribusi utama (edisi) kulawarga iki yaiku: Debian - distribusi populer, versi paket kasebut utamane fokus ing LTS (Dhukungan Jangka Panjang - dhukungan kanggo wektu sing suwe), sing dituduhake kanthi linuwih lan stabilitas sistem lan paket sing cukup dhuwur; ubuntu - ngemot distribusi kabeh paket ing versi paling anyar, sing bisa mengaruhi stabilitas, nanging ngidini sampeyan nggunakake fungsi sing kasedhiya karo versi anyar; Red Hat Enterprise Linux – OS, dipanggonke kanggo nggunakake komersial, mbayar, Nanging, kalebu support saka vendor lunak, sawetara paket tertutup lan paket driver; CentOS - sumber mbukak variasi saka Red Hat Enterprise Linux, ditondoi dening ora ana paket kepemilikan lan dhukungan.

Kanggo sing lagi miwiti nguwasani wilayah iki, rekomendasiku yaiku sistem Windows Server, utawa ubuntu. Yen kita nganggep Windows, mula iki utamane akrab karo sistem kasebut, ubuntu – luwih toleransi kanggo nganyari, lan ing siji, contone, kurang masalah nalika miwiti proyek ing teknologi sing mbutuhake versi anyar.

Dadi, sawise mutusake OS, ayo pindhah menyang set alat sing ngidini sampeyan masang (instal), nganyari lan ngawasi kahanan aplikasi utawa bagean ing server.

Kaputusan penting sabanjure yaiku penempatan aplikasi sampeyan lan server kasebut. Saiki, sing paling umum yaiku 3 cara:

  • Hosting (tetep) server dhewe minangka pilihan sing paling ramah anggaran, nanging sampeyan kudu pesen IP statis saka panyedhiya sampeyan supaya sumber daya sampeyan ora ngganti alamate liwat wektu.
  • Nyewa Server Khusus (VDS) - lan ngatur kanthi mandiri lan beban skala
  • Mbayar (asring menehi kesempatan kanggo nyoba fungsi platform gratis) kanggo langganan sawetara hosting awan, ing ngendi model pambayaran kanggo sumber daya sing digunakake cukup umum. Perwakilan sing paling penting saka arah iki: Amazon AWS (padha menehi taun gratis kanggo nggunakake layanan kasebut, nanging kanthi watesan saben wulan), Google Cloud (padha menehi $ 300 menyang akun kasebut, sing bisa digunakake sajrone taun ing layanan hosting awan) , Yandex.Cloud (padha menehi 4000 rubel. sajrone 2 wulan), Microsoft Azure (menehi akses gratis menyang layanan populer sajrone setahun, + 12 rubel kanggo layanan apa wae sajrone sewulan). Mangkono, sampeyan bisa nyoba panyedhiya iki tanpa mbuwang dhuwit, nanging entuk pendapat kira-kira babagan kualitas lan tingkat layanan sing diwenehake.

Gumantung ing dalan sing dipilih, siji-sijine sing bakal diganti ing mangsa ngarep yaiku sapa sing tanggung jawab kanggo administrasi iki utawa wilayah kasebut. Yen sampeyan dadi tuan rumah dhewe, mula sampeyan kudu ngerti manawa ana gangguan listrik, Internet, server dhewe, piranti lunak sing dipasang - kabeh iki ana ing pundhak sampeyan. Nanging, kanggo latihan lan tes, iki luwih saka cukup.

Yen sampeyan ora duwe mesin ekstra sing bisa muter peran server, sampeyan bakal pengin nggunakake cara liya utawa katelu. Kasus kapindho padha karo sing sepisanan, kajaba sampeyan ngalih tanggung jawab kanggo kasedhiyan server lan kekuwatane menyang pundhak hoster. Administrasi server lan piranti lunak isih ana ing kontrol sampeyan.

Lan pungkasane, pilihan nyewakake kapasitas panyedhiya awan. Ing kene sampeyan bisa nyiyapake kontrol otomatis babagan apa wae tanpa kudu rinci babagan teknis. Kajaba iku, tinimbang siji mesin, sampeyan bisa duwe sawetara kedadean mlaku podo, kang bisa, contone, tanggung jawab kanggo macem-macem bagean saka aplikasi, nalika ora beda-beda akeh ing biaya saka duwe server darmabakti. Lan uga, ana alat kanggo orkestrasi, containerization, penyebaran otomatis, integrasi terus-terusan lan liya-liyane! Kita bakal nliti sawetara perkara kasebut ing ngisor iki.

UmumΓ©, prasarana server katon kaya iki: kita duwe "orkestra" sing disebut ("orkestrasi" yaiku proses ngatur sawetara instansi server), sing ngatur owah-owahan lingkungan ing conto server, wadhah virtualisasi (opsional, nanging cukup. asring digunakake), sing ngidini sampeyan mbagi aplikasi dadi lapisan logis sing terisolasi, lan piranti lunak Integrasi Terus-terusan - ngidini nganyari kode sing di-host liwat "skrip."

Dadi, orkestrasi ngidini sampeyan ndeleng status server, muter utawa mbaleni nganyari menyang lingkungan server, lan liya-liyane. Kaping pisanan, aspek iki ora bakal mengaruhi sampeyan, amarga kanggo ngatur apa wae, sampeyan butuh sawetara server (sampeyan bisa duwe siji, nanging kenapa iki perlu?), Lan supaya duwe sawetara server, sampeyan butuh. Antarane alat ing arah iki, sing paling populer yaiku Kubernetes, sing dikembangake dening Google.

Langkah sabanjure yaiku virtualisasi ing tingkat OS. Saiki, konsep "dockerization" wis nyebar, sing asale saka alat kasebut docker, sing nyedhiyakake fungsi wadhah sing diisolasi saka siji liyane, nanging diluncurake ing konteks siji sistem operasi. Apa tegese: ing saben wadhah kasebut sampeyan bisa mbukak aplikasi, utawa malah sakumpulan aplikasi, sing bakal percaya yen mung siji-sijine ing kabeh OS, tanpa curiga ana wong liya ing mesin iki. Fungsi iki migunani banget kanggo ngluncurake aplikasi sing padha saka macem-macem versi, utawa mung aplikasi sing bertentangan, uga kanggo mbagi potongan aplikasi dadi lapisan. Cast lapisan iki mengko bisa ditulis menyang gambar, kang bisa digunakake, contone, kanggo masang aplikasi. Yaiku, kanthi nginstal gambar iki lan nyebarake kontaner sing ana, sampeyan entuk lingkungan sing siap kanggo mbukak aplikasi sampeyan! Ing langkah pisanan, sampeyan bisa nggunakake alat iki kanggo tujuan informasi lan entuk keuntungan sing nyata kanthi mbagi logika aplikasi dadi lapisan sing beda. Nanging iku worth ngandika kene sing ora saben wong perlu dockerization, lan ora tansah. Dockerization dibenerake ing kasus nalika aplikasi kasebut "dipΓ©rang", dipΓ©rang dadi bagean cilik, saben tanggung jawab kanggo tugas dhewe, sing diarani "arsitektur microservice".

Kajaba iku, saliyane nyedhiyakake lingkungan, kita kudu njamin penyebaran aplikasi sing kompeten, sing kalebu kabeh jinis transformasi kode, instalasi perpustakaan lan paket sing gegandhengan karo aplikasi, tes sing mlaku, kabar babagan operasi kasebut, lan liya-liyane. Ing kene kita kudu menehi perhatian marang konsep kaya "Integrasi Terus-terusan" (CI - Integrasi Terus-terusan). Piranti utama ing wilayah iki saiki yaiku Jenkins (piranti lunak CI sing ditulis ing Jawa bisa uga katon rumit ing wiwitan), Travis C.I. (ditulis nganggo Ruby, subyektif, rada prasaja JenkinsNanging, sawetara kawruh babagan konfigurasi panyebaran isih dibutuhake), Gitlab CI (ditulis ing Ruby lan Go).

Dadi, sawise ngomong babagan lingkungan sing aplikasi sampeyan bakal bisa digunakake, wektune kanggo ndeleng alat apa sing ditawakake jagad modern kanggo nggawe aplikasi kasebut.

Ayo dadi miwiti karo dhasar: Backend (backend) - bagean server. Pilihan basa, fungsi dhasar lan struktur (kerangka) sing wis ditemtokake ing kene ditemtokake utamane dening preferensi pribadhi, nanging kudu dielingake (panemu penulis babagan basa cukup subyektif, sanajan kanthi pratelan. kanggo katrangan sing ora bias):

  • Python minangka basa sing cukup grapyak kanggo pangguna sing ora duwe pengalaman, ngapura sawetara kesalahan, nanging bisa uga cukup ketat karo pangembang supaya ora nindakake apa-apa sing ala. Wis dadi basa sing cukup diwasa lan migunani, sing muncul ing taun 1991.
  • Go - basa saka Google, uga cukup ramah lan trep, cukup gampang kanggo ngumpulake lan entuk file sing bisa dieksekusi ing platform apa wae. Bisa dadi prasaja lan nyenengake, utawa bisa uga rumit lan serius. Seger lan enom, muncul relatif anyar, ing 2009.
  • Rust luwih tuwa tinimbang kolega sadurunge, dirilis ing 2006, nanging isih enom dibandhingake karo kanca-kancane. Diangkah kanggo pangembang sing luwih berpengalaman, sanajan isih nyoba ngrampungake akeh tugas tingkat rendah kanggo programmer.
  • Jawa minangka veteran pangembangan komersial, dikenalake ing taun 1995, lan minangka salah sawijining basa sing paling umum digunakake ing pangembangan aplikasi perusahaan saiki. Kanthi konsep dhasar lan persiyapan abot, runtime bisa dadi cukup tantangan kanggo pamula.
  • ASP.net minangka platform pangembangan aplikasi sing dirilis dening Microsoft. Kanggo nulis fungsionalitas, basa C # (diucapake C Sharp), sing muncul ing taun 2000, utamane digunakake. Kompleksitase bisa dibandhingake karo tingkat antarane Jawa lan Rust.
  • PHP, sing wiwitane digunakake kanggo preprocessing HTML, saiki, sanajan nduweni kepemimpinan mutlak ing pasar basa, ana tren kanggo nyuda panggunaan. Nduwe ambang entri sing sithik lan gampang nulis kode, nanging ing wektu sing padha, nalika ngembangake aplikasi sing cukup gedhe, fungsi basa bisa uga ora cukup.

Ya, bagean pungkasan saka aplikasi kita - sing paling nyata kanggo pangguna - frontend (frontend) - minangka pasuryan aplikasi sampeyan; ing bagean iki pangguna langsung sesambungan.

Tanpa nerangake rincian, frontend modern ngadeg ing telung pilar, kerangka (lan ora akeh), kanggo nggawe antarmuka pangguna. Dadi, telu sing paling populer yaiku:

  • ReactJS dudu kerangka kerja, nanging perpustakaan. Bener, framework beda karo judhul bangga mung yen ora ana sawetara fungsi "metu saka kothak" lan kudu nginstal kanthi manual. Mangkono, ana sawetara variasi saka "persiapan" perpustakaan iki, mbentuk kerangka unik. Bisa dadi angel kanggo pamula, amarga sawetara prinsip dhasar, lan persiyapan lingkungan sing cukup agresif. Nanging, kanggo wiwitan cepet, sampeyan bisa nggunakake paket "nggawe-react-app".
  • VueJS minangka kerangka kanggo mbangun antarmuka panganggo. Saka trinitas iki, kanthi bener njupuk judhul kerangka kerja sing paling ramah pangguna; kanggo pangembangan ing Vue, alangan kanggo mlebu luwih murah tinimbang sedulur liyane sing kasebut. Kajaba iku, dheweke paling enom ing antarane.
  • Angular dianggep minangka kerangka kerja sing paling kompleks, mung siji sing mbutuhake TypeScript (tambahan kanggo basa Javascript). Asring digunakake kanggo mbangun aplikasi perusahaan gedhe.

Ngringkes apa sing ditulis ing ndhuwur, kita bisa nyimpulake yen saiki nyebarake aplikasi beda banget karo cara proses iki sadurunge. Nanging, ora ana sing ngalangi sampeyan nindakake "penyebaran" kanthi cara sing lawas. Nanging wektu sethithik sing disimpen ing wiwitan entuk akeh kesalahan sing kudu ditindakake pangembang sing milih dalan iki? Aku yakin jawabane ora. Kanthi mbuwang wektu luwih akeh kanggo familiarize dhewe karo alat kasebut (lan sampeyan ora butuh luwih saka iku, amarga sampeyan kudu ngerti apa sampeyan butuh ing proyek sampeyan saiki utawa ora), sampeyan bisa muter, nyuda kanthi signifikan, contone. , kasus kesalahan memedi gumantung ing lingkungan lan katon mung ing server produksi, analisis nightly apa mimpin kanggo kacilakan server, lan apa iku ora miwiti, lan akeh liyane.

Source: www.habr.com

Add a comment