ProHoster > Блог > Maamulka > Southbridge oo ku taal Chelyabinsk iyo Bitrix ee Kubernetes
Southbridge oo ku taal Chelyabinsk iyo Bitrix ee Kubernetes
Shirarka maamulaha nidaamka Sysadminka ayaa ka dhacaya Chelyabinsk, ugu dambeyntiina waxaan bixiyay warbixin ku saabsan xalkayaga socodsiinta codsiyada 1C-Bitrix ee Kubernetes.
Bitrix, Kubernetes, Ceph - isku dhafka weyn?
Waxaan kuu sheegi doonaa sida aan u soo ururinay xal shaqo oo dhan waxaas oo dhan.
Aan tagno!
Kulanku wuxuu dhacay Abriil 18 ee Chelyabinsk. Waxaad ka akhrisan kartaa kulankeena halkan Timepad oo eeg YouTube.
Haddii aad rabto in aad noo timaadid warbixin ama dhegaysi ahaan - ku soo dhawaada, qoraal u soo dir [emailka waa la ilaaliyay] iyo Telegram t.me/vadimisakanov.
Waxaan kaaga digayaa, ma aanan hubin tayada xalalka xiriirinta sare :)
Jid ahaan, markii aan diyaarinay xalkeena, waxaan la hadlay Alexander Serbul, ka dibna warbixintiisu wali ma soo muuqan, sidaas darteed sawiradayda waxaa ku jira shay "Bitrix ma isticmaalo Kubernetes."
Tani miyay ku filan tahay inay abuurto xal dhamaystiran Bitrix gudaha Kubernetes?
Maya Waxaa jira tiro badan oo dhibaatooyin ah oo u baahan in la xalliyo.
Waa maxay dhibaatooyinka Bitrix ee Kubernetes?
Marka hore, sawirada diyaarsan ee Dockerhub kuma haboona Kubernetes
Haddii aan rabno inaan dhisno qaab-dhismeedka microservices (iyo Kubernetes inta badan waxaan ku sameynaa), waxaan u baahanahay inaan kala saarno codsigayaga Kubernetes weelasha oo weel kasta ha qabto hal shaqo oo yar (oo si fiican u samee). Waa maxay sababta hal kaliya? Marka la soo koobo, sida ugu fudud ayaa la isku halleyn karaa.
Si aad u gaar noqoto, daawo maqaalkan iyo muuqaalkan, fadlan: https://habr.com/ru/company/southbridge/blog/426637/
Sawirada Dockerhub waxay inta badan ku dhisan yihiin mabda'a dhan-in-hal, markaa wali waxay ahayd inaan samayno baaskiil noo gaar ah oo aan xitaa sawiro ka abuurno xoq.
Labaad - koodhka goobta waxaa laga tifaftiray guddiga maamulka
Waxaan ka abuurnay qayb cusub goobta - koodhka waa la cusboonaysiiyay (tusaha magaca qaybta cusub ayaa lagu daray).
Haddii aad ka beddeshay sifooyinka qayb ka mid ah guddida maamulka, koodka ayaa beddelay.
Sababta: Weel kasta (pod) oo ku jira kooxdu waxay socodsiisaa qayb ka mid ah taraafikada. Haddii aad ku beddesho koodhka hal weel oo keliya (pod), markaa koodka ayaa ku kala duwanaan doona qaybo kala duwan, goobtu waxay u shaqayn doontaa si kala duwan, noocyada kala duwan ee goobta ayaa lagu tusi doonaa isticmaalayaasha kala duwan. Ma noolaan kartid sidaas.
Seddexaad - waxaad u baahan tahay inaad ku xalliso arrinta la geynta
Haddii aan haysano monolith iyo hal server "classic", wax walbaa waa sahlan yihiin: waxaan geynaa saldhig kood cusub, u guuri xogta xogta, u beddelo taraafikada nooca cusub ee koodhka. Bedeshadu waxay dhacdaa isla markiiba.
Haddii aan ku leenahay goob ku taal Kubernetes, googooyaa microservices, waxaa jira weelal badan oo leh koodh - oh. Waxaad u baahan tahay inaad ku ururiso weelasha leh nooc cusub oo kood ah, soo rogo halkii kuwii hore, si sax ah u guurto kaydka xogta, oo aad si fiican u sameyso tan iyada oo aan la dareemin booqdayaashu. Nasiib wanaag, Kubernetes wuu naga caawiyaa tan, isagoo taageeraya tiro dhan oo noocyo kala duwan ah oo la diro.
Afar - waxaad u baahan tahay inaad xalliso arrinta kaydinta statics
Haddii goobtaadu tahay "kaliya" 10 gigabytes oo aad gabi ahaanba geliso weelasha, waxaad ku dhamaan doontaa 10 gigabyte weel oo waligeed qaadanaysa in la geeyo.
Waxaad u baahan tahay inaad ku kaydiso qaybaha "ugu culus" ee goobta ka baxsan weelasha, su'aashu waxay soo baxaysaa sida tan si sax ah loo sameeyo.
Maxaa ka maqan xalkeena?
Koodhka Bitrix oo dhan looma kala qaybin microfunctions/services (si diiwangelintu u kala gaarto, moduleka dukaanka onlineku waa gooni, iwm.). Waxaan ku kaydinnaa dhammaan saldhigga koodka weel kasta.
Waxaan sidoo kale ku kaydin xogta Kubernetes (waxaan wali hirgeliyay xalalka kaydka Kubernetes ee deegaanka horumarinta, laakiin maaha wax soo saarka).
Wali waxay noqon doontaa mid la dareemo maamulayaasha goobta in goobtu ku shaqeyso Kubernetes. Shaqada "System Check" si sax ah uma shaqeyso; si aad u saxdo code ka goobta maamulka, waa in aad marka hore gujisaa "Waxaan rabaa in aan wax ka beddelo koodka".
Dhibaatooyinka ayaa la aqoonsaday, baahida loo qabo hirgelinta microservices ayaa la go'aamiyay, ujeedadu waa caddahay - in la helo nidaam shaqo oo loogu talagalay codsiyada ku saabsan Bitrix ee Kubernetes, ilaalinta labadaba awoodda Bitrix iyo faa'iidooyinka Kubernetes. Aan bilowno fulinta.
naqshadaha
Waxa jira boodhyo badan oo “shaqeeya” oo leh adeegaha shabakadda (shaqaale).
Mid ka hooseeya oo leh hawlaha cron (mid kaliya ayaa loo baahan yahay).
Hal casriyeyn oo loogu talagalay tafatirka koodka goobta ee guddiga maamulka (sidoo kale hal kaliya ayaa loo baahan yahay).
Waxaan xallinaa su'aalaha:
Xagee lagu kaydiyaa fadhiyada?
Xagee lagu kaydiyaa kaydka?
Halkee lagu kaydiyaa statics, ma in la dhigo gigabytes of statics farabadan weel?
Sidee buu kaydku u shaqayn doonaa?
Sawirka docker
Waxaan ku bilaabeynaa dhisitaanka sawirka Docker.
Xulashada ugu habboon waa in aan hayno hal sawir oo caalami ah, iyada oo ku saleysan waxaan helnaa galalka shaqaalaha, pods leh Crontasks, iyo kor u qaadida galalka.
Waxaa ku jira nginx, apache/php-fpm (waa la dooran karaa inta lagu jiro dhismaha), msmtp dirida boostada, iyo cron.
Marka sawirka la ururiyo, dhammaan saldhigga koodka ee goobta waxaa lagu koobiyeeyay hagaha/app (marka laga reebo qaybahaas aan u guuri doono kayd gaar ah oo la wadaago).
Adeegyada yaryar, adeegyada
cawska shaqaalaha:
Weel ku jira nginx + weelka apache/php-fpm + msmtp
Ma shaqeynin in msmtp loo wareejiyo adeeg yar oo gaar ah, Bitrix wuxuu bilaabayaa inuu ka xanaaqo inuusan si toos ah u diri karin boostada
Ma jiro wax mamnuuc ah oo lagu beddelayo koodka weelasha
kaydinta fadhiga
Kaydinta kaydinta Bitrix
Waxyaabo kale oo muhiim ah: waxaan ku kaydineynaa furaha sirta ah ee lagu xiro wax walba, laga bilaabo database ilaa boostada, kubernetes sirta. Waxaan helnaa gunno: furayaasha sirta ah waxay u muuqdaan kaliya kuwa aan siino sirta, mana aha qof kasta oo marin u leh saldhigga code ee mashruuca.
Kaydinta waxa ay u baahan doontaa in lagu xidho weelasha ilaa tusaha goobta iyo hagayaasha kale ee leh nuxurka taagan.
Database
Si ay u fududaato, waxaan kugula talineynaa in laga raro keydka macluumaadka meel ka baxsan Kubernetes. Saldhigga Kubernetes waa hawl adag oo gooni ah; waxay ka dhigi doontaa nidaamka nidaam aad u adag.
Kaydinta fadhiga
Waxaan isticmaalnaa memcached :)
Waxay si fiican u maamushaa kaydinta fadhiga, waa la ururiyay, waxaana loo taageeraa "hooyo ahaan" sida session.save_path in php. Nidaamka noocan oo kale ah ayaa marar badan lagu tijaabiyay qaab dhismeedka monolithic ee qadiimiga ah, markii aan dhisnay kooxo leh tiro badan oo shabakado ah. Diyaarinta waxaan isticmaalnaa koofiyadda.
$ helm install stable/memcached --name session
php.ini - halkan sawirku waxa uu ka kooban yahay habayn lagu kaydinayo fadhiyada memcached
Waxaan u isticmaalnay Kala beddelashada Deegaanka si aan u gudbinno xogta ku saabsan martigeliyayaasha leh memcached https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/.
Tani waxay kuu ogolaaneysaa inaad isticmaasho koodka isku midka ah ee dev, marxaladda, tijaabada, deegaanka prod (magacyada martida loo yahay ee ku jira way kala duwanaan doonaan, markaa waxaan u baahanahay inaan u gudubno magac martigelin gaar ah oo loogu talagalay kalfadhiyada deegaan kasta).
Kaydinta kaydinta Bitrix
Waxaan u baahanahay kaydinta khaladka u dulqaadan kara oo dhammaan boodhadhku wax u qori karaan waxna ka akhriyi karaan.
Waxaan sidoo kale isticmaalnaa memcached.
Xalkan waxaa ku taliya Bitrix laftiisa.
$ helm install stable/memcached --name cache
bitrix/.settings_extra.php - halkan Bitrix waxaa lagu qeexay halka kaydka lagu kaydiyo
Waxaan sidoo kale isticmaalnaa beddelka deegaanka.
Krontaski
Waxaa jira habab kala duwan oo loo socodsiiyo Crontasks gudaha Kubernetes.
Waxaan ka hadlayeen kor u qaadida hoos?
Sidee loo toosiyaa taraafikada halkaas?
Hurray, waxaan ku qornay cutub kan PHP :) Kani waa cutub yar oo heersare ah oo loogu talagalay Bitrix. Wali si guud looma heli karo, laakiin waxaan qorsheyneynaa inaan furno.
Moduleka waxa loo rakibay sida cutubka caadiga ah ee Bitrix:
Waxayna u egtahay sidan:
Waxay kuu ogolaanaysaa inaad dejiso buskud tilmaamaysa maamulaha goobta oo u oggolaanaya Kubernetes inay u soo dirto taraafikada boodhka cusboonaysiinta.
Marka isbeddelada la dhammeeyo, waxaad u baahan tahay inaad gujiso git riix, isbeddellada koodhka ayaa loo diri doonaa git, ka dib nidaamku wuxuu dhisi doonaa sawir leh nooc cusub oo koodhka oo "ku soo rogi" kutlada oo dhan, isagoo beddelaya boodhyadii hore. .
Haa, waa qayb yar, laakiin isla mar ahaantaana waxaanu ilaalinaynaa qaab dhismeedka microservice oo kama fogaan isticmaalayaasha Bitrix fursada ay ugu jecel yihiin inay ku saxaan koodka guddiga maamulka. Dhamaadka, tani waa ikhtiyaar; waxaad xallin kartaa dhibaatada habaynta koodka si ka duwan.
shaxda Helm
Si loo dhiso codsiyada Kubernetes, waxaan caadi ahaan isticmaalnaa maamulaha xirmada Helm.
Xalkayaga Bitrix ee Kubernetes, Sergey Bondarev, maamulaha nidaamkayaga hogaaminaya, ayaa qoray jaantus Helm gaar ah.
Waxay dhistaa shaqaalaha, kor u qaadida, cron pods, waxay dejisaa soo-gelinta, adeegyada, waxayna ka wareejisaa doorsoomayaasha sirta Kubernetes una wareejiso pods.
Waxaan ku kaydinay koodhka Gitlab, sidoo kale waxaanu ka wadnaa dhismaha Helm Gitlab.
Helm sidoo kale wuxuu kuu ogolaanayaa inaad sameyso dib-u-soo-noqod "la'aan" haddii si lama filaan ah ay wax u dhacaan inta lagu jiro hawlgalka. Way fiicantahay marka aanad argagax ku jirin "ku hagaaji koodhka adoo isticmaalaya ftp sababtoo ah prod ayaa dhacay," laakiin Kubernetes si toos ah ayuu u sameeyaa, iyo iyada oo aan wakhti la'aan ahayn.