paint-brush
Önüm çykarylanda serwer toplumyny nädip saýlamalytarapyndan@gnovikov
109,224 oka
109,224 oka

Önüm çykarylanda serwer toplumyny nädip saýlamaly

tarapyndan Grigorii Novikov9m2024/03/01
Read on Terminal Reader
Read this story w/o Javascript

Örän uzyn; Okamak

Önümi ösdürmegiň çäginde diňe bir başlangyç ýerleşdirişi däl, eýsem programmaňyzyň uzak möhletli durmuşa ukyplylygyny we netijeliligini hem emele getirýän serwer toplumyny saýlamak ägirt uly ähmiýete eýe. Tejribeli “Backend” döredijisi Grigorii Nowikow, baý serwer toplumyny saýlamagyň çylşyrymly prosesi barada bahasyna ýetip bolmajak düşünje bermek üçin baý tejribesinden peýdalanýar.
featured image - Önüm çykarylanda serwer toplumyny nädip saýlamaly
Grigorii Novikov HackerNoon profile picture
0-item


Önümi satuwa çykarmak üçin ajaýyp serwer toplumyny saýlamak, köp agram göterýän karar. Bu saýlaw diňe başlangyç ýerleşdirişe däl, eýsem programmaňyzyň uzak möhletleýin uýgunlaşmagyna we netijeliligine täsir edýär. Uly işläp düzüjiňiz ýa-da bir topara ýolbaşçylyk edýän bolsaňyz, taslamaňyzyň özboluşly zerurlyklaryna laýyk gelýänini tapmak üçin diller we çarçuwalar deňzinden geçip, bu arhitektura kararlarynyň jogapkärçiligini öz üstüňize alarsyňyz. Bu ýerdäki wezipäňiz, taslamaňyzyň ösmegi we giňelmegi bilen dowam etdirjek möhüm bir saýlaw etmekdir.


Programma arhitekturasyny heýkeltaraşlamak we ýaýratmak boýunça köp ýyllyk tejribesi bolan Uly Backend dörediji Grigorii Nowikow. Karýeramyň dowamynda serwerleriň sanawyny saýlamak boýunça köp möhüm kararlar bilen ýüzbe-ýüz boldum. Her bir karar, ösýän taslamanyň talaplary bilen tehnologiýany nädip deňleşdirmelidigime düşünişime gatlak goşdy. Bu makalada, taslamaňyzyň häzirki zerurlyklaryna laýyk gelýän we geljekdäki ösüşini goldajak serwer bukjasyny saýlamaga kömek edip, gaty köp gazanylan düşünjeleri siziň bilen paýlaşaryn. Taslamanyňyzyň ösüş, çeýeligi we täzelikleri üçin taýyn bolandygyna göz ýetirip, üstünlik gazanmaga ýol açýan tehnologiýa kararlaryny kabul etmegiň içerki taraplaryny we netijelerini öwrenmäge çagyrýaryn.


Uly işläp düzüjiňiz ýa-da bir topara ýolbaşçylyk edýän bolsaňyz, taslamaňyzyň özboluşly zerurlyklaryna laýyk gelýänini tapmak üçin diller we çarçuwalar deňzinden geçip, bu arhitektura kararlarynyň jogapkärçiligini öz üstüňize alarsyňyz.


1. Awtomatiki resminama

Her kody bilen baglanyşykly bolmasa-da, bu nokat gaty möhümdir, ilki bilen ara alyp maslahatlaşmaly. Ygtybarly resminamalar, esasanam müşderi tarapyny ösdürmek we programma synagy barada aýdylanda, netijeli ösüşiň özenidir. Awtomatiki resminamalaşdyrmak üçin gurallar, resminamalaryň iň soňky API üýtgeşmelerine laýyk gelmegini üpjün etmek, ösüş işlerini tertipleşdirmek we taslamaňyzyň resminamalaryny täzeläp durmak üçin el bilen edilýän tagallalary azaltmak bilen bu prosesi özgertdi.


Öndüriji üçin elýeterli gurallaryň arasynda Swagger-iň köp taraplylygy, giňden kabul edilmegi we güýçli jemgyýet goldawy üçin maslahat berýärin. Anotherene bir meşhur wariant, API resminamalary üçin özüne çekiji, özleşdirilip bilinýän interfeýsi hödürleýän Redoc. Has giňişleýin özleşdirmegi talap edýän taslamalar üçin, “Apiary” ýaly gurallar resminama mümkinçilikleri bilen birlikde çeýeligi üpjün edýär, ýöne has başlangyç gurnamagy talap edip bilerler.


Haýsy gural saýlasaňyz, maksat guralyň özüni ep-esli wagt çökmegine ýol bermezden netijelilik üçin resminamalaşdyrmak işini optimallaşdyrmak bolmaly. Taslamaňyzyň üýtgeşik talaplaryna uýgunlaşmak üçin çeýeligi hödürläp, el bilen resminamalaşdyrmak tagallalaryny azaldýan çözgüdi saýlaň.


2. Bug yzarlaýjy goldawy

Netijeli näsazlyklary yzarlamak, programmaňyzyň saglygyny goramak üçin möhümdir. Buglary yzarlamagyň täsirli integrasiýasy üçin, Jira we Bugzilla ýaly gurallary ulanýaryn, ikisinde-de baý aýratynlyk toplumy we çeýeligi bar. Jira, esasanam, köp ösüş gurşawy bilen berk integrasiýa mümkinçiliklerini hödürleýär; Beýleki tarapdan Bugzilla, ýönekeýligi we täsirliligi bilen, esasanam gönümel ýalňyşlary yzarlamagyň ileri tutulýan açyk çeşme taslamalarynda tanalýar.


Ine size bir düşünje: bug yzarlaýjylaryny gyssagly habarçylar we wersiýa gözegçilik ulgamlary bilen birleşdirmek toparyňyzyň hyzmatdaşlygyny we netijeliligini ýokarlandyrar. Mysal üçin, “Jira + Bitbucket” kombisi iş akymlaryny tertipleşdirýär, wersiýa gözegçilik gurşawynda bökdençsiz meseläni yzarlamaga mümkinçilik berýär. Bu jübütlemek, kod täzelenmeleri we çözgütler biri-biri bilen ýakyn baglanyşykly bolup, has çalt gaýtalanmaga we koduň hilini ýokarlandyrmaga mümkinçilik berýän aç-açan, çalt ösüş prosesini aňsatlaşdyrýar.


Anotherene bir güýçli integrasiýa, giňişleýin hyzmatdaşlyk platformasyny hödürleýän “Mattermost + Focalboard”. “Mattermost” -yň gönüden-göni aragatnaşyk artykmaçlyklaryny “Focalboard” -yň taslamasy we wezipeleri dolandyrmak mümkinçilikleri bilen birleşdirýär, toparlara näsazlyklary yzarlamak boýunça real wagt täzelenmeleri berýär, bitewi interfeýsdäki meseleleri we iş akymlaryny dolandyrmak çeýeligi bilen birlikde. Şeýle integrasiýa diňe bir näsazlygy çözmek prosesini optimizirlemän, has sazlaşykly we çeýe ösüş gurşawyny döredýär, netijede öndürijiligi we taslama netijelerini ýokarlandyrýar.


3. Ösüşde masştab

Önümiňiz ele alyp başlanda, ulalmak kynçylygy bilen ýüzbe-ýüz bolarsyňyz. Onsoňam, ulanyjylaryň sanynyň köpelmegini göz öňünde tutamok. Masştablaşdyrmak täze aýratynlyklara laýyk gelmegi, ösýän maglumat bazasyny dolandyrmagy we kod bazasynyň we maglumat bazasynyň öndürijilik derejesini optimal saklamagy öz içine alýar. Bu, serwer bukjasy üçin saýlan arhitekturaňyz hakykatdanam güýje girýär.


Mysal üçin, taslamaňyzyň başynda monolit arhitektura gitmek deňagramly çemeleşme ýaly bolup biler. Productöne önümiňiz ulalansoň we üýtgänsoň, onuň nirede gysga bolýandygyny görüp başlarsyňyz. Mikroservis arhitekturasyna geçmek ýa-da ulaldylan bulut hyzmatlaryny getirmek, programmaňyzyň dürli taraplaryna has gowy gözegçilik edip biler.


Giňeldilip bilinýän serwer stack çözgütleri üçin Kubernetes we Docker ýaly tehnologiýalara bil baglaýaryn. Bu gurallar hyzmatlary özbaşdak masştablamak, ýerleşdirmeleri netijeli dolandyrmak we daş-töweregiňizde yzygiderliligi üpjün etmek üçin çeýeligi üpjün eder. Mundan başga-da, “Amazon Web Services”, “Google Cloud” we “Microsoft Azure” ýaly bulut hyzmatlaryny üpjün edijiler, göwrümli syýahatyňyzy hakykatdanam aňsatlaşdyryp biljek ajaýyp dolandyrylýan hyzmatlary hödürleýärler.


Giňeldilip bilinýän arhitekturany saýlamak, paýlanylýan ulgamy dolandyrmagyň çylşyrymlylygy bilen ulalmak derejesini deňleşdirmegi aňladýar. Netijede, bu ýerdäki maksadyňyz, häzirki zerurlyklaryňyza laýyk gelýän we geljekdäki ösüşi dolandyrmak üçin çeýeligi bolan serwer toplumyny saýlamakdyr.


4. Iň oňat laýyklygy tapmak: Jemgyýet bilen Howpsuzlygyň arasynda

Jemgyýetçilik goldawy, çeşmeleriň elýeterliligi we hatda howpsuzlyk aýratynlyklary ýaly hersiniň öz programma toplumy bolan programmirleme dilleri we çarçuwalary ýetmezçilik etmeýär. Bu dürlilik, diňe bir derrew ösüş meselelerini çözmek bilen çäklenmän, howpsuzlyk we göwrümlilik ýaly uzak möhletli taslama maksatlaryna laýyk gelýän çözgütleriň giň görnüşini saýlamaga mümkinçilik berýär.


Uly jemgyýetler tarapyndan goldanýan tehnologiýalar we Python we JavaScript ýaly köp çeşmeler - we Django ýa-da React ýaly bu dillerdäki degişli çarçuwalar - köp bilim we ulanmaga taýyn kod mysallaryny berýär. Bu baýlyk, öňüňizde kimdir biri tarapyndan çözülmedik meselä duş gelmek ähtimallygyny göz öňünde tutup, näsazlyklary düzetmek üçin sarp eden wagtyňyzy ep-esli azaldar. Munuň tersine, has täze ýa-da täze tehnologiýalar stoluň başyna özboluşly perkleri getirip biler, ýöne çalt çözgüt tapmak meselesinde köplenç has kyn pursatlara ýol açar.


Anotherene bir möhüm pursat howpsuzlygy we ulanylyşy deňleşdirmekdir. Çeşme koduny goramagyň esasy aladasy bolan taslamalar üçin aňsat garyşmagy we ygtybarly gaplamagy goldaýan dilleri we tehnologiýalary ulanmagy göz öňünde tutuň. Mysal üçin, Java we .NET kodlary gizlemek üçin gurallary we ekosistemalary döretdiler. Docker ýaly konteýnerizasiýa tehnologiýalary hem size bu ýerde kömek eder. Programmany we daşky gurşawy bir konteýnerde gaplamak bilen, müşderiniň koduňyza gönüden-göni girmän programmany işletmek üçin zerur zatlary alýandygyna göz ýetirýärsiňiz. Bu usul diňe bir kody üpjün etmän, eýsem ýerleşdiriş işini hem aňsatlaşdyrýar.


5. Bahasy

Tehnologiýa toplumyny saýlamakda çykdajylary göz öňünde tutmak möhümdir. Diňe başlangyç gurnamagyň bahasy barada, ulgamyňyzy goldamak we giňeltmek üçin nämä gerek boljakdygy barada uzak wagtlap pikirlenmeli.


Açyk çeşme tehnologiýalary, ygtyýarnama tölegleriniň iň ýokary mukdary bilen gelýär. Başlangyçlar ýa-da gaty býudjetli islendik taslama üçin bu uly çekeleşik bolup biler. Mundan başga-da, başarnykly işläp düzüjileriň giň howuzlary zähmet çykdajylaryny has amatly saklamaga kömek eder.


Beýleki tarapdan, blokirleme ýa-da ösen maglumat seljeriş platformalary ýaly has çylşyrymly we ýöriteleşdirilen tehnologiýalar has ýokary başlangyç maýa goýumlaryny talap edip biler. Performanceerine ýetiriş we howpsuzlyk taýdan möhüm taraplary hödürlänlerinde, eýeçiligiň umumy bahasyny çak edilýän artykmaçlyklara görä ölçemeli.


Mundan başga-da, bulut hyzmatlary, fiziki infrastruktura zerurlygy azaltmak bilen bir hatarda, öz çykdajylary bilen gelýär. Aboveokarda agzalan AWS, Google Cloud we Azure ulanyşyňyz bilen ulalyp bilýän dürli baha modellerini hödürleýär; ýöne seresaplylyk bilen dolandyrylmazdan, taslamaňyz ulaldygyça bu çykdajylar köpelip biler.


6. Kod gowşurmak

Kodyň netijeli iberilmegini üpjün etmek, esasan, üznüksiz integrasiýa / üznüksiz ýerleşdiriş (CI / CD) turbageçirijiler arkaly ýerleşdiriş prosesine ünsi jemleýär. Bu usul koduň dürli gurşawlara geçirilmegini awtomatlaşdyrmagyň, ösüşi we önümçilik işlerini tertipleşdirmegiň möhümdigini görkezýär.


GitLab CI we CircleCI ýaly gurallar synag we ýerleşdiriş amallaryny awtomatlaşdyrmak üçin ygtybarly çözgütleri hödürleýär. Mundan başga-da, “Ansible” we “Terraform” ýaly skript gurallaryny ulanmak bu awtomatizasiýany hasam güýçlendirýär, infrastrukturany kod arkaly üpjün etmäge we dolandyrmaga mümkinçilik berýär.


Bu tehnologiýalar, takyklygy we ygtybarlylygy bilen kody ösüşden önümçilige geçirýän bökdençsiz turbageçirijini gurmaga kömek eder. Bu gurallary iş prosesiňize goşmak bilen, diňe bir ösüş siklini çaltlaşdyrman, eýsem daşky gurşawda yzygiderliligi we durnuklylygy üpjün edýän çarçuwany döredýärsiňiz.


7. Daşky gurşaw

Ösüş gurşawyny döretmek we dolandyrmak islendik taslamanyň ömrüniň esasy, ýöne çylşyrymly tarapy. Giňeldilip bilinýän we dowam edip boljak gurşawy dizaýn etmek, esasanam DevOps hünärmeni bolmadyk toparlar üçin gorkunç bolup biler.


Köp toparlar üçin daşky gurşawy dolandyrmagyň iň oňat çemeleşmesi baradaky soraga jogap, bulut esasly hyzmatlary we konteýnerizasiýa bilen baglanyşykly. Againene-de AWS, Google Cloud we Azure taslamaňyzyň göwrümine we çylşyrymlylygyna laýyk gelýän birnäçe hyzmatlary hödürleýär. Bu platformalar giň infrastrukturany dolandyrmagyň zerurlygy bolmazdan çeýe, ulalýan gurşawy döretmek üçin zerur gurallary üpjün edýär. Mundan başga-da, Docker we Kubernetes ýaly tehnologiýalaryň ornaşdyrylmagy ösüşiň, synagyň we önümçiligiň dürli etaplarynda yzygiderli we ygtybarly bolýar.


Netijeli we amatly gurşaw gurmak diňe serwer gurmak bilen çäklenmän, işläp düzüjiler üçin ýerli gurşawyň konfigurasiýasy bilen baglanyşykly. “DevOps” üçin bu tarap möhümdir, sebäbi ýerli taslamalara başlamak prosesini ýönekeýleşdirmek üçin köplenç skriptleri ýasaýarlar. Şeýle-de bolsa, bu wezipe hemişe aňsat däl. Mysal üçin, .NET-de ýerli gurşawy taýýarlamak, serweri we ýerli sazlamalary tertipleşdirýän tehnologiýalary we gurallary saýlamagyň zerurdygyny görkezip, gaty kyn bolup biler. Öndürijileriň öndürijiligi saklamak we işleriň aňsatlaşmagy üçin ýerli ösüş gurşawyna netijeli elýeterliligi üpjün etmek zerurdyr.


Taslamaňyz üçin dogry serwer toplumyny saýlamak binanyň düýbüni tutmak ýalydyr: seresaplylygy, öňdengörüjiligi we häzirki zerurlyklar bilen geljekki ösüşiň arasynda deňagramlylygy talap edýär. Her bir saýlamagyňyz, taslamaňyzyň üstünliklerine we dinamiki tehnologiki landşaftda uýgunlaşmak we gülläp ösmek ukybyna täsir edýär. Bu makala bilen, öňdäki çylşyrymlylyklary çözmek üçin düşünjeler bilen üpjün edip, bu möhüm kararlar bilen size ýol görkezmegi maksat edindim. Häzirki wagtda alan düşünjeleriňiz, häzirki we geljekdäki taslamalaryňyzyň üstünliklerine alyp barjak habarly saýlamaga kömek eder diýip umyt edýärin!



MESELE ÖWRENMEK A: MASS LIE DETEKTOR TASLAMASY

Köpçülikleýin synag üçin niýetlenen, Gündogar Europeewropada ilkinji görnüşi hökmünde bellenen ýalan detektory işläp düzmekde, ösüş toparynyň ýolbaşçysy hökmünde serwer sanawyny saýlamak bilen ýüzbe-ýüz boldum. Taslamanyň esasy talaplary - köp sanly mikroservis birikmeleri we dürli datçik netijelerini gaýtadan işlemek üçin giň faýl amallary - ygtybarly, ýöne çeýe arka çözgüdi talap edýär.


Python / Django we Go / Fiber ýaly beýleki bäsdeşlerden FastAPI bilen Python-y saýladyk. Karar, FastAPI-iň asynkron programmirleme üçin has ýokary goldawyna esaslanýar, taslamanyň intensiw maglumatlary gaýtadan işlemeginiň möhüm aýratynlygy. Django, güýçli bolsa-da, ýokary sazlaşykly we real wagt maglumatlary işlemek baradaky talaplarymyza laýyk gelmeýän sinhron häsiýeti sebäpli aýryldy. Edil şonuň ýaly-da, Go öndürijiligi üçin hasaplandy, ýöne ahyrynda FastAPI-iň çalt ösüş mümkinçilikleriniň we berk MVP ösüş meýilnamamyz üçin bahasyna ýetip bolmajak Swagger resminamalaryna içerki goldawyň peýdasyna geçdi.


Şol bir wagtyň özünde, taslama web kamera birikmelerini dolandyrmaga we wideo akymyny dürli kanallara gönükdirmäge ukyply ýumşak kameranyň döredilmegini talap etdi. Deňi-taýy bolmadyk ýerine ýetiriş tizligi we platforma laýyklygy sebäpli C ++ bu mesele üçin saýlama diline öwrüldi.


Bu taslama boýunça kabul eden kararlarymyz diňe bir taslamanyň başlangyç üstünligini ýeňilleşdirmek bilen çäklenmän, onuň yzygiderli ösmegi we uýgunlaşmagy üçin berk binýat döretdi.

MESELE ÖWRENMEK B: MARTIAL SANATLAR KLUB CRM

Bu taslama üçin ilki bilen Python we Django -ny saýladym, çalt başlangyç üçin zerur bolan çalt ösüş mümkinçilikleri üçin saýladym. Bu saýlaw, irki döwürde täsirli bolup, gatnaşyjylaryň dolandyrylyşyny gowulandyrmak arkaly klub girdejileriniň köpelmegine gönüden-göni goşant goşdy.


Taslamanyň çäkleri işgärleri dolandyrmak, analitika we içerki habarlaşma ulgamy ýaly aýratynlyklary öz içine almak bilen giňelip başlansoň, Django-nyň çylşyrymly, yzygiderli amallary dolandyrmak üçin çäklendirmeleri görnüp başlady. Bu düşüniş, içerki habarçymyzyň ösüşi üçin goroutinlerini we Fasthttp-den peýdalanyp, Go-ny birleşdirmäge sebäp boldy. Go-nyň yzygiderli işleri dolandyrmakdaky ýerine ýetirijiligi, CRM-iň işleýşini giňeltmäge kömek etdi, iň ýokary derejeli ýokary öndürijiligi saklamaga mümkinçilik berdi.


Esasy funksiýalar üçin Django-dan peýdalanmak we ýokary öndürijilikli komponentler üçin Go ulanmak üçin gibrid tehnologiýa çemeleşmesini ulanmak karary möhüm ähmiýete eýe boldy. Bu strategiýa, CRM-iň klubyň barha artýan zerurlyklaryny kanagatlandyrmak üçin ösmegini üpjün edip, çalt ösüşi we göwrümliligi deňleşdirmäge mümkinçilik berdi.