![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Ukukhetha isitaki seseva esiphelele sokuqalisa umkhiqizo kuyisinqumo esithwala isisindo esiningi. Lokhu kukhetha ayithinti nje kuphela ukusetshenziswa kokuqala kodwa ukuzivumelanisa nezimo nokusebenza kahle kohlelo lwakho lokusebenza. Uma ungunjiniyela osesikhundleni esiphezulu noma uhola iqembu, uthwala isibopho salezi zinqumo zezakhiwo, uhlunga ulwandle lwezilimi nezinhlaka ukuze uthole okufanelekela kahle izidingo ezihlukile zephrojekthi yakho. Umsebenzi wakho lapha ukwenza ukukhetha okubalulekile, okuzobambelela njengoba iphrojekthi yakho ithuthuka futhi ikhula.
NginguGrigorii Novikov, uMthuthukisi Omkhulu Osemuva onokuhlangenwe nakho kweminyaka eminingi ekuqopheni nasekukhipheni izakhiwo zesofthiwe. Kuwo wonke umsebenzi wami, ngiye ngabhekana nezinqumo eziningi ezibucayi ekukhetheni isitaki seseva. Isinqumo ngasinye sengeze izendlalelo ekuqondeni kwami ukuthi ngingavumelanisa kanjani ubuchwepheshe nezidingo zephrojekthi ekhulayo. Kulesi sihloko, ngizokwabelana nawe ngeminye yaleyo mininingwane oyisebenze kanzima, ngikusize ukhethe isitaki seseva esizofanelana nezidingo zamanje zephrojekthi yakho futhi sisekele ukukhula kwayo kwesikhathi esizayo. Ngikumema ukuthi uhlole kanye nami i-ins and outs zokwenza izinqumo zobuchwepheshe ezivula indlela yempumelelo, uqiniseke ukuthi iphrojekthi yakho isezingeni elivuthwe ngokukhula, ukuguquguquka, kanye nokuqamba okusha.
Uma ungunjiniyela osesikhundleni esiphezulu noma uhola iqembu, uthwala isibopho salezi zinqumo zezakhiwo, uhlunga ulwandle lwezilimi nezinhlaka ukuze uthole okufanelekela kahle izidingo ezihlukile zephrojekthi yakho.
Nakuba lingahlobene nekhodi ngayinye, leli phuzu libaluleke kakhulu kufanele kuxoxwe ngalo kuqala. Amadokhumenti aqinile ayisisekelo sokuthuthukiswa okuphumelelayo, ikakhulukazi uma kuziwa ekuthuthukisweni kohlangothi lweklayenti nokuhlolwa kohlelo lokusebenza. Amathuluzi okukhiqiza imibhalo ngokuzenzakalelayo ayishintshile le nqubo, aqinisekisa ukuthi imibhalo ihambisana nezinguquko zakamuva ze-API, ithuthukisa ukugeleza komsebenzi wokuthuthukisa, nokunciphisa umzamo owenziwa mathupha wokugcina imibhalo yephrojekthi yakho isesikhathini.
Phakathi kwamathuluzi atholakalayo kunjiniyela, ngincoma i-Swagger ngokuguquguquka kwayo, ukutholwa okusabalele, nokusekelwa okunamandla komphakathi. Enye inketho ethandwayo i-Redoc, enikeza isixhumi esibonakalayo esikhangayo, esenziwe ngokwezifiso semibhalo ye-API. Kumaphrojekthi adinga ukwenziwa ngokwezifiso okubanzi kakhulu, amathuluzi afana ne-Apiary ahlinzeka ngokuguquguquka kanye namakhono amadokhumenti, nakuba angase adinge ukusethwa kwasekuqaleni okwengeziwe.
Noma ngabe yiliphi ithuluzi olikhethayo, inhloso kufanele kube ukuthuthukisa inqubo yokubhala ukuze isebenze kahle ngaphandle kokuvumela ithuluzi ngokwalo ukuthi libe isinki sesikhathi esibalulekile. Khetha isixazululo esinciphisa imizamo yokubhala amadokhumenti ngenkathi unikeza ukuguquguquka ukuze uvumelane nezidingo ezihlukile zephrojekthi yakho.
Ukulandelela iziphazamisi okusebenzayo kubalulekile ekugcineni impilo yohlelo lwakho lokusebenza. Ukuze uthole ukuhlanganiswa okuphumelelayo kokulandela iziphazamisi , ngisebenzisa amathuluzi afana ne-Jira ne-Bugzilla, zombili eziqhayisa ngesethi yesici esicebile nokuvumelana nezimo. I-Jira, ikakhulukazi, inikeza amandla okuhlanganisa aqinile anezindawo eziningi zokuthuthuka; I-Bugzilla, ngakolunye uhlangothi, yaziwa ngobulula nokusebenza kwayo, ikakhulukazi kumaphrojekthi womthombo ovulekile lapho ukulandelela iziphazamisi okuqondile kubaluleke kakhulu.
Nansi imininingwane yakho: ukuhlanganisa izilandeleli zeziphazamisi nezithunywa ezisheshayo kanye namasistimu okulawula inguqulo kuzothuthukisa ukusebenzisana nokusebenza kahle kweqembu lakho. Isibonelo, inhlanganisela ye-Jira+Bitbucket isakaza ukuhamba komsebenzi, okuvumela ukulandelelwa kwezinkinga okungenazihibe ngaphakathi kwendawo yokulawula inguqulo. Lokhu kumatanisa kusiza inqubo yokuthuthukisa esobala, eshesha kakhulu, lapho izibuyekezo zekhodi nezixazululo zezinkinga zixhunyaniswe eduze, okuvumela ukuphindaphinda okusheshayo kanye nekhwalithi yekhodi ethuthukisiwe.
Okunye ukuhlanganiswa okunamandla yi-Mattermost+Focalboard, enikeza inkundla yokubambisana ebanzi. Ihlanganisa izinzuzo zokuxhumana eziqondile ze-Mattermost nephrojekthi namandla okuphatha umsebenzi we-Focalboard, inika amandla amaqembu ngezibuyekezo zesikhathi sangempela ekulandeleleni iziphazamisi, kanye nokuvumelana nezimo zokuphatha imisebenzi nokugeleza komsebenzi ngaphakathi kwesixhumi esibonakalayo esihlanganisiwe. Ukuhlanganiswa okunjalo akugcini nje ngokuthuthukisa inqubo yokuxazulula iziphazamisi kodwa kuphinde kukhuthaze isimo sokuthuthuka esibumbene futhi esishesha, ekugcineni sithuthukise ukukhiqiza kanye nemiphumela yephrojekthi.
Uma umkhiqizo wakho uqala ukubamba, uzobhekana nenselelo yokukala . Futhi angiqondile inani elandayo labasebenzisi. Ukukala kuhlanganisa ukufaka izici ezintsha, ukuphatha isizindalwazi esikhulayo, kanye nokugcina amazinga okusebenza e-codebase yakho kanye nesizindalwazi silungile. Yilapho i-architecture oyikhethele isitaki sakho seseva iqala ukusebenza.
Isibonelo, ekuqalisweni kwephrojekthi yakho, ukuya ekwakhiweni kwe-monolithic kungase kubonakale njengendlela elinganiselayo. Kodwa njengoba umkhiqizo wakho ukhula futhi ushintsha, uzoqala ukubona lapho usilela khona. Ukushintshela esakhiweni sezinsizakalo ezincane noma ukuletha izinsiza zamafu ezingaka kungakunikeza ukulawula okungcono kakhulu ezicini ezahlukahlukene zohlelo lwakho lokusebenza.
Ukuze uthole izixazululo zesitaki seseva esikalayo, ngincika kubuchwepheshe obufana ne-Kubernetes ne-Docker. Lawa mathuluzi azokunikeza ukuguquguquka kokukala izinsizakalo ngokuzimela, uphathe ukuthunyelwa kahle, futhi uqinisekise ukuvumelana endaweni yakho yonke. Ngaphezu kwalokho, abahlinzeki bensizakalo yamafu njenge-Amazon Web Services, i-Google Cloud, ne-Microsoft Azure banikela ngezinsizakalo ezilawulwa kahle ezingenza uhambo lwakho lokukala lube lula ngempela.
Ukukhetha i-architecture engakala kusho ukulinganisa izinzuzo zokukala nobunzima bokuphatha isistimu esabalalisiwe. Ekugcineni, inhloso yakho lapha ukukhetha isitaki seseva esihlangabezana nezidingo zakho zamanje futhi esinamandla okusingatha ukukhula kwesikhathi esizayo.
Akukho ukushoda kwezilimi zokuhlela nezinhlaka ezitholakalayo, ngayinye inesethi yayo yezinzuzo njengokwesekwa komphakathi, ukutholakala kwezinsiza, kanye nezici zokuphepha. Lokhu kwehlukahlukana kuvumela ukukhetha okubanzi kwezixazululo ezingagcini nje ngokubhekana nezinselele zentuthuko ezisheshayo kodwa nezihambisana nemigomo yephrojekthi yesikhathi eside, okuhlanganisa ukuvikeleka nokuqina .
Ubuchwepheshe obusekelwa imiphakathi emikhulu nezinsiza eziningi, njenge-Python ne-JavaScript - kanye nezinhlaka zabo ngokulandelana kwazo kulezi zilimi ezifana ne-Django noma i-React - zinikeza ingcebo yolwazi nezibonelo zekhodi esekulungele ukusetshenziswa. Le ngcebo inciphisa kakhulu isikhathi obungasichitha ekuxazululeni izinkinga, uma kubhekwa amathuba amancane okuhlangabezana nenkinga engalungiswanga othile ngaphambi kwakho. Ngakolunye uhlangothi, ubuchwepheshe obusha noma be-niche bungase bulethe izinto ezihlukile etafuleni, kodwa ngokuvamile buzokushiya ubheka isikhathi esinzima uma kuziwa ekutholeni izixazululo ezisheshayo.
Esinye isikhathi esibalulekile ukulinganisa ukuphepha nokusebenziseka. Kumaphrojekthi lapho ukuvikelwa kwekhodi yomthombo kuyinto ekhathaza kakhulu, cabanga ukusebenzisa izilimi nobuchwepheshe obusekela ukufihlwa okulula nokupakishwa okuvikelekile. Isibonelo, i-Java kanye ne-NET basungule amathuluzi kanye ne-ecosystem yekhodi ye-obfuscating. Ubuchwepheshe be-Containerization obufana ne-Docker buzokusiza lapha. Ngokupakisha uhlelo lokusebenza nendawo yalo esitsheni, uqinisekisa ukuthi iklayenti lithola konke okudingekayo ukuze luqalise uhlelo lokusebenza ngaphandle kokufinyelela ikhodi yakho ngokuqondile. Le ndlela ayigcini nje ngokuvikela ikhodi kodwa futhi yenza kube lula inqubo yokuthumela.
Ukucatshangelwa kwezindleko kubalulekile ekukhetheni isitaki sobuchwepheshe. Kumayelana nezindleko zokusetha kokuqala, futhi kufanele ucabange isikhathi eside mayelana nokuthi kuzobizani ukunakekela nokukala isistimu yakho .
Ubuchwepheshe bomthombo ovulekile buza nenzuzo emnandi yezindleko zelayisensi eziyiziro ngaphambili. Okokuqala noma iyiphi iphrojekthi kusabelomali esiqinile, lokhu kungaba umdwebo omkhulu. Ukwengeza, amachibi amakhulu onjiniyela abanolwazi azokusiza ugcine izindleko zabasebenzi zilawuleka.
Ngakolunye uhlangothi, ubuchwepheshe obuyinkimbinkimbi nobukhethekile, obufana ne-blockchain noma izinkundla zokuhlaziya idatha ezithuthukisiwe, zingadinga ukutshalwa kwezimali okuphezulu kokuqala. Nakuba zinikeza izinzuzo ezibalulekile mayelana nokusebenza nokuphepha, kufanele ukale izindleko eziphelele zobunikazi ngokuqhathanisa nezinzuzo ezicatshangelwayo.
Ngaphezu kwalokho, izinsizakalo zamafu, ngenkathi zinciphisa isidingo sengqalasizinda ebonakalayo, ziza nesethi yazo yezindleko. I-AWS eshiwo ngenhla, i-Google Cloud, ne-Azure zinikeza amamodeli entengo ahlukahlukene angakala ngokusetshenziswa kwakho; kodwa ngaphandle kokuphatha ngokucophelela, lezi zindleko zingakhula njengoba iphrojekthi yakho ikhula.
Ukuqinisekisa ukulethwa kwekhodi okuphumelelayo kugxile enqubweni yokuthunyelwa, ngokuyinhloko ngokusebenzisa amapayipi Okuhlanganiswa Okuqhubekayo/Okuqhubekayo (CI/CD) . Le ndlela igcizelela ukubaluleka kokuzenzakalela ukudluliswa kwekhodi ezindaweni ezihlukahlukene, ukwenza lula ukuthuthukiswa nokugeleza komsebenzi wokukhiqiza.
Amathuluzi afana ne-GitLab CI ne-CircleCI anikeza izixazululo eziqinile zokuhlola okuzenzakalelayo nezinqubo zokuthumela. Ukwengeza, ukusetshenziswa kwamathuluzi okubhala afana ne-Ansible ne-Terraform kuthuthukisa lokhu kuzenzakalela, okuvumela ukuhlinzekwa nokuphathwa kwengqalasizinda ngekhodi.
Lobu buchwepheshe buzokusiza ukuthi wakhe ipayipi elingenazihibe elihambisa ikhodi kusukela ekuthuthukisweni iye ekukhiqizeni ngokunemba nokwethembeka. Ngokuhlanganisa lawa mathuluzi ekuhambeni kwakho komsebenzi, usungula uhlaka olungasheshi nje kuphela imijikelezo yokuthuthukiswa kodwa futhi oluqinisekisa ukuvumelana nokuzinza kuzo zonke izindawo.
Ukudala nokuphatha indawo yokuthuthuka kuyisici esiyisisekelo kodwa esiyinkimbinkimbi sanoma yimuphi umjikelezo wempilo wephrojekthi. Ukudizayina indawo enobungozi negcinekayo kungase kubonakale kunzima, ikakhulukazi emaqenjini angenaye uchwepheshe we-DevOps ozinikele.
Emaqenjini amaningi, impendulo yombuzo omayelana nendlela engcono kakhulu yokuphathwa kwemvelo ilele ekusebenziseni izinsiza ezisekelwe emafini nasekufakweni kweziqukathi. Futhi, i-AWS, i-Google Cloud, ne-Azure inikezela ngezinsizakalo ezahlukahlukene ezingalungiselelwa ukulingana nosayizi nobunkimbinkimbi bephrojekthi yakho. Lezi zinkundla zihlinzeka ngamathuluzi adingekayo ukuze kwakhiwe izindawo eziguquguqukayo, ezingalawuleki ngaphandle kwesidingo sokuphathwa kwengqalasizinda okubanzi. Ngaphezu kwalokho, ukwamukelwa kobuchwepheshe obufana ne-Docker ne-Kubernetes kwenza ukusatshalaliswa kuzo zonke izigaba zokuthuthuka, ukuhlolwa, nokukhiqiza kungaguquki futhi kuthembekile.
Ukwakha indawo esebenzayo nenethezekile akukhona mayelana nokusethwa kweseva kuphela kodwa futhi mayelana nokucushwa kwezindawo zasendaweni zonjiniyela . Lesi sici sibalulekile kuma-DevOps, njengoba evamise ukwenza imibhalo ukuze kube lula inqubo yokwethula amaphrojekthi endaweni. Nokho, lo msebenzi awuhlali ulula. Isibonelo, ukulungiselela izindawo zasendaweni ku-.NET kungaba yinselele impela, kugqamisa isidingo sokukhetha ubuchwepheshe namathuluzi alula kokubili iseva nokusetha kwendawo. Ukuqinisekisa ukuthi onjiniyela banokufinyelela okungenazihibe ezindaweni ezisebenza kahle zokuthuthukiswa kwendawo kubalulekile ukuze kugcinwe umkhiqizo kanye nokwenza kube lula ukuhamba komsebenzi.
Ukukhetha isitaki seseva esilungile sephrojekthi yakho kufana nokusetha izisekelo zesakhiwo: kudinga ukucatshangelwa ngokucophelela, ukubona kusengaphambili, kanye nokulinganisela phakathi kwezidingo zamanje nokukhula kwesikhathi esizayo. Inketho ngayinye oyenzayo inomthelela empumelelweni yephrojekthi yakho namandla ayo okuzivumelanisa nezimo nokuchuma endaweni yezobuchwepheshe eguqukayo. Ngalesi sihloko, bengihlose ukukuqondisa kulezi zinqumo ezibucayi, ngikuhlomise ngemininingwane yokusingatha izinkinga ezizayo. Ngethemba ukuthi ukuqonda okuzuzile namuhla kuzokusiza wenze izinqumo ezinolwazi ezikuholela empumelelweni yamaphrojekthi akho amanje nawesikhathi esizayo!
Ekuthuthukisweni komtshina wamanga wesisekelo oklanyelwe ukuhlola abantu abaningi, iphrojekthi emakwe njengeyokuqala yohlobo lwayo eMpumalanga Yurophu, ngibhekane nokukhetha isitaki seseva njengomholi wethimba labathuthukisi. Izidingo eziyinhloko zephrojekthi - inani elikhulu lokuxhunywa kwe-microservice kanye nokusebenza kwamafayela okubanzi ukuze kucutshungulwe imiphumela ehlukahlukene yezinzwa - kudinga isisombululo esingemuva esiqinile kodwa esivumelana nezimo.
Sikhethe i-Python nge-FastAPI ngaphezu kwabanye abaqhudelana nabo njengePython/Django ne-Go/Fiber. Isinqumo sincike ekusekelweni okuphezulu kwe-FastAPI kohlelo olungenantambo, isici esibalulekile sokusingatha izidingo zokucubungula idatha zephrojekthi ngempumelelo. I-Django, nakuba inamandla, yabekelwa eceleni ngenxa yemvelo yayo yokuvumelanisa, engakwazanga ukuhlangabezana nezimfuneko zethu zokuvumelana okuphezulu kanye nokuphathwa kwedatha ngesikhathi sangempela. Ngokufanayo, i-Go yacatshangelwa ukusebenza kwayo kodwa yagcina yedluliswa ngokuvumelana namakhono entuthuko esheshayo ye-FastAPI kanye nokwesekwa kwayo okwakhelwe ngaphakathi kwemibhalo ye-Swagger, eyayiwusizo olukhulu emgqeni wethu wesikhathi wokuthuthukiswa kwe-MVP oqinile.
Ngaso leso sikhathi, iphrojekthi ifune ukuthi kudalwe isici sekhamera ethambile ekwazi ukuphatha ukuxhumana kwekhamera yewebhu nokuqondisa ukusakazwa kwevidiyo eziteshini ezahlukahlukene. I-C++ ibe ulimi olukhethwayo kulo msebenzi, ngenxa yesivinini sayo sokwenza esingenakuqhathaniswa nokuhambisana kwenkundla.
Izinqumo esizenzile kuleyo phrojekthi azigcinanga nje ngokuba lula impumelelo yasekuqaleni kodwa zibe nesisekelo esiqinile sokukhula kwawo okuqhubekayo nokuzivumelanisa nezimo.
Kule phrojekthi, ekuqaleni ngakhethela i-Python ne -Django , ngibakhethela amakhono abo okuthuthukisa ngokushesha abalulekile ukuze kwethulwe ngokushesha. Lokhu kukhetha kubonakale kusebenza kahle ekuqaleni, kube nesandla ekwandeni kwemali yeqembu ngokuphathwa okuthuthukisiwe kwabakhona.
Njengoba ububanzi bephrojekthi bakhula ukuze bafake izici ezifana nokuphathwa kwabasebenzi, izibalo, kanye nesistimu yemiyalezo yangaphakathi, imikhawulo ye-Django yokusingatha inkimbinkimbi, izinqubo ezihambisanayo yabonakala. Lokhu kuqaphela kwangiholela ekuhlanganiseni i-Go, isebenzise izindlela zayo kanye ne-Fasthttp ukuze kuthuthukiswe isithunywa sethu sangaphakathi. Ukusebenza kwe-Go ekuphatheni imisebenzi eyenzeka ngesikhathi esisodwa kusisize sanweba ukusebenza kwe-CRM, okusivumela ukuthi sigcine ukusebenza okuphezulu ngokuphezulu okuncane.
Isinqumo sokusebenzisa indlela yobuchwepheshe obuyingxubevange, kusetshenziswa i-Django ekusebenzeni okuyisisekelo kanye ne-Go for high performance components, sibonakale sibalulekile. Lelisu lingivumele ukuthi ngilinganise intuthuko esheshayo kanye nokuqina, ngiqinisekise ukuthi i-CRM ingavela ukuze ihlangabezane nezidingo ezikhulayo zekilabhu.