Mgbe ị na-ewu usoro CI / CD site na iji Kubernetes, mgbe ụfọdụ, nsogbu na-ebilite nke enweghị nkwekọrịta n'etiti ihe achọrọ nke akụrụngwa ọhụrụ na ngwa a na-ebufe ya. Karịsịa, na ngwa wuo ogbo ọ dị mkpa ịnweta один onyonyo nke a ga-eji na ya всех gburugburu oru ngo na ụyọkọ. Ụkpụrụ a na-adabere na nke ziri ezi dị ka Google si kwuo njikwa akpa (ihe karịrị otu ugboro gbasara nke a kwuru na ngalaba nka nka).
Otú ọ dị, ị gaghị ahụ onye ọ bụla n'ọnọdụ ebe koodu saịtị ahụ na-eji usoro dị njikere, ojiji nke na-etinye ihe mgbochi na iji ya ọzọ. Na mgbe ọ nọ na "ọnọdụ nkịtị" nke a dị mfe ịnagide, na Kubernetes omume a nwere ike ịghọ nsogbu, karịsịa mgbe ị zutere ya na nke mbụ. Ọ bụ ezie na uche na-emepụta ihe nwere ike ịmepụta ihe ngwọta akụrụngwa nke yiri ihe doro anya ma ọ bụ ọbụna dị mma na nlele mbụ ... ọ dị mkpa icheta na ọtụtụ ọnọdụ nwere ike na kwesịrị. a ga-edozi architecturally.
Ka anyị leba anya n'ihe ngwọta na-ewu ewu maka ịchekwa faịlụ nwere ike ibute nsonaazụ na-adịghị mma mgbe ị na-arụ otu ụyọkọ, ma gosikwa ụzọ ziri ezi.
Nchekwa static
Iji maa atụ, tulee ngwa webụ nke na-eji ụdị generator static nweta otu onyonyo, ụdị na ihe ndị ọzọ. Dịka ọmụmaatụ, usoro Yii PHP nwere njikwa akụrụngwa arụnyere na-ewepụta aha ndekọ aha pụrụ iche. N'ihi ya, mmepụta bụ a set nke ụzọ maka static saịtị na o doro anya na ọ dịghị intersect na onye ọ bụla ọzọ (nke a mere n'ihi na ọtụtụ ihe - ihe atụ, ikpochapụ oyiri mgbe otutu components na-eji otu akụ). Yabụ, n'ime igbe ahụ, oge mbụ ị nwetara modul akụrụngwa weebụ, faịlụ static (n'ezie, ọtụtụ mgbe symlinks, mana ndị ọzọ na nke ahụ mechara) na-etolite ma tinye ya na akwụkwọ ndekọ mgbọrọgwụ pụrụ iche maka mbugharị a:
webroot/assets/2072c2df/css/…
webroot/assets/2072c2df/images/…
webroot/assets/2072c2df/js/…
Kedu ihe nke a pụtara n'ihe gbasara ụyọkọ?
Ihe atụ kacha mfe
Ka anyị were ikpe a na-ahụkarị, mgbe nginx bu ụzọ PHP kesaa data static na hazie arịrịọ dị mfe. Ụzọ kachasị mfe - Ịnye ọrụ nwere igbe abụọ:
Mgbe mbụ ị nwetara saịtị ahụ, akụ na-apụta na akpa PHP. Ma n'ihe gbasara akpa abụọ n'ime otu pod, nginx amaghị ihe ọ bụla gbasara faịlụ ndị a static, nke (dị ka nhazi) kwesịrị inye ha. N'ihi ya, onye ahịa ga-ahụ njehie 404 maka arịrịọ niile maka faịlụ CSS na JS. Ngwọta kachasị mfe ebe a bụ ịhazi akwụkwọ ndekọ aha maka arịa. Nhọrọ mbụ - izugbe emptyDir:
Ugbu a faịlụ static emepụtara n'ime akpa bụ nginx na-eje ozi nke ọma. Ma ka m chetara gị na nke a bụ ihe ngwọta oge ochie, nke pụtara na ọ dị anya site na mma ma nwee nuances na adịghị ike nke ya, nke a na-atụle n'okpuru ebe a.
Nchekwa dị elu karịa
Ugbu a, were ya na otu onye ọrụ gara na saịtị ahụ, jiri ụdị dị n'ime akpa ahụ dochie ibe ya, mgbe ọ na-agụkwa ibe a, anyị bugharịrị akpa ahụ ọzọ. Katalọgụ akụ aghọọla ihe efu na arịrịọ maka PHP ka a chọrọ ka ịmalite imepụta ndị ọhụrụ. Otú ọ dị, ọbụlagodi mgbe nke a gasịrị, njikọ na statics ochie agaghị adị mkpa, nke ga-eduga ná njehie na-egosipụta statics.
Na mgbakwunye, o yikarịrị ka anyị nwere ọrụ arụrụ arụ ma ọ bụ nke pere mpe, nke pụtara na otu ngwa agaghị ezuru:
Ka anyị bulie ya elu Ịnye ọrụ ruo ugboro abụọ.
Mgbe mbụ enwetara saịtị ahụ, emepụtara akụ n'otu ụdị.
N'oge ụfọdụ, ingress kpebiri (maka ibu itule ebumnobi) iziga arịrịọ na nke abụọ oyiri, na ndị a akụ ndị e nwere ma. Ma ọ bụ ikekwe ha anọghị ebe ahụ n'ihi na anyị na-eji RollingUpdate na ugbu a anyị na-eme nkesa.
N'ozuzu, nsonaazụ bụ mmejọ ọzọ.
Iji zere ịlafu ihe ochie, ị nwere ike ịgbanwe emptyDir on hostPath, na-agbakwunye static n'anụ ahụ na ọnụ ụyọkọ. Ụzọ a dị njọ n'ihi na anyị ga-emerịrị ya kechie n'otu ọnụ ụyọkọ ọnụ ngwa gị, n'ihi na - ọ bụrụ na ịkwaga na ọnụ ụzọ ndị ọzọ - ndekọ ahụ agaghị enwe faịlụ ndị dị mkpa. Ma ọ bụ ụfọdụ ụdị mmekọrịta ndekọ ndabere n'etiti ọnụ ọnụ ka achọrọ.
Gịnị bụ ihe ngwọta ya?
Ọ bụrụ na ngwaike na akụrụngwa kwere, ịnwere ike iji cephfs iji hazie ndekọ aha nwere ike ịnweta maka mkpa kwụ ọtọ. Akwụkwọ gọọmentị na-akwado draịva SSD, opekata mpe mmegharị ugboro atọ yana njikọ siri ike n'etiti ọnụ ụyọkọ.
Nhọrọ dị obere na-achọsi ike bụ ịhazi sava NFS. Otú ọ dị, mgbe ahụ, ị kwesịrị iburu n'uche mmụba enwere ike na oge nzaghachi maka nhazi arịrịọ site na sava weebụ, na ntachi obi ga-ahapụ ọtụtụ ihe achọrọ. Nsonaazụ nke ọdịda bụ ọdachi: ọnwụ nke ugwu ahụ na-eme ka ụyọkọ ahụ nwụọ n'okpuru nrụgide nke ibu LA na-agbaba na mbara igwe.
Tinyere ihe ndị ọzọ, nhọrọ niile maka ịmepụta nchekwa na-adịgide adịgide ga-achọ ndabere ihicha chịkọbara faịlụ emechiela n'ime oge ụfọdụ. N'ihu arịa na PHP ị nwere ike tinye DaemonSet site na caching nginx, nke ga-echekwa nnomi nke akụ maka obere oge. Omume a dị mfe ịhazi site na iji proxy_cache na omimi nchekwa na ụbọchị ma ọ bụ gigabytes nke ohere diski.
Ijikọta usoro a na usoro faịlụ ndị a na-ekesa nke a kpọtụrụ aha n'elu na-enye nnukwu ubi maka iche echiche, na-ejedebe naanị site na mmefu ego na ikike nka nke ndị ga-emejuputa ma kwado ya. Site na ahụmahụ, anyị nwere ike ịsị na usoro ahụ dị mfe, ka ọ na-arụ ọrụ nke ọma. Mgbe agbakwunyere akwa akwa ndị dị otú ahụ, ọ na-esiwanye ike ịnọgide na-enwe akụrụngwa, ma n'otu oge ahụ, oge a na-eji na-achọpụta na ịgbake site na ọdịda ọ bụla na-abawanye.
Nkwanye
Ọ bụrụ na mmejuputa nhọrọ nchekwa ndị a na-atụ aro na-adịkwa ka ezighi ezi nye gị (mgbagwoju anya, ọnụ ahịa ...), mgbe ahụ, ọ bara uru ileba anya na ọnọdụ ahụ site n'akụkụ nke ọzọ. Ya bụ, igwu n'ime oru ngo ije na dozie nsogbu ahụ na koodu, ejikọta na ụfọdụ ihe nhazi data static dị na foto a, nkọwa na-enweghị mgbagha nke ọdịnaya ma ọ bụ usoro maka "ịkụ ọkụ" na / ma ọ bụ nchịkọta ihe onwunwe na nhazi mgbakọ foto. N'ụzọ dị otú a anyị na-enweta kpam kpam omume amụma na otu faịlụ maka gburugburu niile na oyiri nke ngwa na-agba ọsọ.
Ọ bụrụ na anyị laghachi na ihe atụ a kapịrị ọnụ na usoro Yii ma ghara ịbanye n'ime usoro ya (nke na-abụghị nzube nke isiokwu ahụ), ọ ga-ezuru ịkọwapụta ụzọ abụọ a ma ama:
Gbanwee usoro iwu ihe onyonyo ka idowe akụ n'ebe enwere ike ịkọ. A tụrụ aro/mejuputa nke a na ndọtị dịka yii2-static-akụ.
Kọwaa kpọmkwem hashes maka akwụkwọ ndekọ aha akụrụngwa, dịka a tụlere na eg. ihe ngosi a (malite na slide No. 35). Site n'ụzọ, onye edemede nke akụkọ ahụ n'ikpeazụ (ma ọ bụghị n'enweghị ihe kpatara ya!) Na-adụ ọdụ na mgbe ịchịkọta akụ na ihe nkesa na-ewu ụlọ, bulite ha na nchekwa etiti (dị ka S3), n'ihu ebe CDN dị.
Nbudata
Okwu ọzọ ga-abata n'ezie mgbe ị na-ebuga ngwa na ụyọkọ Kubernetes na-echekwa faịlụ ndị ọrụ na sistemụ faịlụ. Dịka ọmụmaatụ, anyị nwere ngwa PHP ọzọ nke na-anabata faịlụ site na ụdị bulite, mee ihe na ha mgbe a na-arụ ọrụ, ma na-ezigaghachi ha.
Na Kubernetes, ebe a ga-edobe faịlụ ndị a kwesịrị ịdị na-ahụkarị ụdị ngwa niile. Dabere na mgbagwoju anya nke ngwa ahụ na mkpa ọ dị ịhazi nkwụsi ike nke faịlụ ndị a, nhọrọ ngwaọrụ ndị a kpọtụrụ aha n'elu nwere ike ịbụ ebe dị otú ahụ, ma, dị ka anyị na-ahụ, ha nwere ihe ndọghachi azụ ha.
Nkwanye
Otu ngwọta bụ iji nchekwa dakọtara S3 (ọbụlagodi ma ọ bụrụ na ọ bụ ụdị ụdị nke na-akwado onwe ya dị ka minio). Ịtụgharị na S3 ga-achọ mgbanwe na ọkwa koodu, na otú ọdịnaya ga-anapụta na n'ihu ọgwụgwụ, anyị nwere ugbua dere.
Oge onye ọrụ
Iche iche, ọ bara uru ịkọ nhazi nke nchekwa nke oge onye ọrụ. Ọtụtụ mgbe, ndị a bụkwa faịlụ na diski, nke na ọnọdụ Kubernetes ga-eduga na arịrịọ ikike mgbe niile site n'aka onye ọrụ ma ọ bụrụ na arịrịọ ya ejedebe na akpa ọzọ.
A na-edozi nsogbu ahụ site na ịgbanwuo stickySessions na ntinye (A na-akwado atụmatụ a na ndị njikwa ingress niile ama ama - maka nkọwa ndị ọzọ, lee nyocha anyị)iji ngwa a kechie onye ọrụ na otu pọd akọwapụtara:
Mana nke a agaghị ewepụ nsogbu na ntinye ugboro ugboro.
Nkwanye
Ụzọ ziri ezi ga-abụ ibufe ngwa ahụ na na-echekwa oge na memcached, Redis na ngwọta ndị yiri ya - n'ozuzu, hapụ kpamkpam nhọrọ faịlụ.
nkwubi
Ihe ngwọta akụrụngwa a tụlere na ederede kwesịrị iji naanị na usoro nke "crutches" nwa oge (nke na-ada ụda mara mma na Bekee dị ka workaround). Ha nwere ike dị mkpa na ọkwa mbụ nke ịkwaga ngwa na Kubernetes, mana ha ekwesịghị ịgbanye mgbọrọgwụ.
Ụzọ a na-atụ aro n'ozuzu bụ ikpochapụ ha na-akwado nhazi nhazi nke ngwa ngwa dịka ihe ọtụtụ ndị maara nke ọma. Ngwa 12-Factor. Otú ọ dị, nke a - iweta ngwa ahụ na ụdị enweghị obodo - pụtara na a ga-achọ mgbanwe na koodu ahụ, ebe a ọ dị mkpa ịchọta nguzozi n'etiti ikike / ihe ndị a chọrọ nke azụmahịa na atụmanya maka imejuputa na idobe ụzọ a họọrọ. .