Postgres Tuesday No. 5: “PostgreSQL and Kubernetes. CI/CD. Whakamātautau aunoa"

Postgres Tuesday No. 5: “PostgreSQL and Kubernetes. CI/CD. Whakamātautau aunoa"

I te mutunga o te tau kua hipa, i puta ano tetahi panui ora o te hapori PostgreSQL Russian #RuPostgres, i te wa i korero ai tana kaiwhakarewa a Nikolai Samokhvalov me te kaiwhakahaere hangarau a Flant Dmitry Stolyarov mo tenei DBMS i roto i te horopaki o Kubernetes.

Kei te whakaputahia e matou he tuhinga o te waahanga matua o tenei korerorero, me te Hapori YouTube hongere Ko te ataata katoa i whakairihia:

Raraunga Raraunga me nga Kubernetes

НС: E kore matou e korero mo te VACUUM me nga CHECKPOINTs i tenei ra. E hiahia ana matou ki te korero mo Kubernetes. E mohio ana ahau he maha nga tau o to wheako. I mataki au i o riipene whakaata, i maataki ano i etahi o aua riipene... Me haere tonu ki te kaupapa: he aha te take i Postgres me MySQL ranei i roto i nga K8?

DC: Karekau, kaore e taea te tino whakautu mo tenei patai. Engari i te nuinga o te waa, he ngawari tenei me te waatea ... pea. Kei te hiahia nga tangata katoa ki nga ratonga whakahaere.

НС: Me pehea RDS, i te kainga anake?

DC: Ae: penei i te RDS, ki hea noa.

НС: "Ko nga waahi katoa" he tohu pai. I roto i nga kamupene nui, kei nga waahi rereke nga mea katoa. He aha ra, ki te mea he kamupene nui, kaore koe e tango i tetahi otinga kua rite? Hei tauira, kei a Nutanix ona ake whanaketanga, ko etahi atu kamupene (VMware...) he rite tonu te "RDS, kei te kainga anake."

DC: Engari e korero ana matou mo te whakatinanatanga motuhake ka mahi noa i raro i etahi tikanga. A, ki te korero tatou mo Kubernetes, he maha nga momo hanganga (kei roto i nga K8). Ko te tikanga he paerewa tenei mo nga API ki te kapua...

НС: He kore utu hoki!

DC: Ehara i te mea tino nui. He mea nui te herekore mo te waahanga nui rawa atu o te maakete. He mea nui ke atu... Ka maumahara pea koe ki te purongo “Raraunga Raraunga me nga Kubernetes"?"

НС: Ae.

DC: I mohio ahau he tino rangirua te whiwhi. I whakaaro etahi e kii ana ahau: "E tama ma, me whakauru katoa nga papa korero ki Kubernetes!", Ko etahi i whakatau he paihikara kino katoa enei. Engari i hiahia ahau ki te korero i tetahi mea rereke: "Tirohia nga mea kei te tupu, he aha nga raruraru kei reira me pehea e taea ai te whakatau. Me whakamahi tatou i nga papaunga raraunga Kubernetes inaianei? Whakaputa? Ana, mena he pai ki a koe ... te mahi i etahi mea. Engari mo te dev, ka taea e au te kii ka tūtohu ahau. Mo te dev, he mea nui te hihiko o te hanga/te whakakore i nga taiao.

NS: Na dev, ko te tikanga ko nga taiao katoa kaore i te whakaputa? Whakatairanga, QA…

DC: Mena kei te korero tatou mo nga tuunga perf, kaore pea, na te mea he mea motuhake nga whakaritenga i reira. Mena kei te korero tatou mo nga keehi motuhake e hiahiatia ana he papaaarangi nui rawa mo te waahi, kaore pea ... Mena he waahi, he waahi roa tenei, he aha te painga o te waahi kei roto i nga K8s?

НС: Karekau. Engari kei hea tatou e kite ai i nga taiao pateko? Ka noho tawhito te taiao apopo.

DC: Ka taea te noho tuturu. Kei a matou nga kaihoko ...

НС: Ae, he kotahi ano taku. He raru nui mena kei a koe te 10 TB pātengi raraunga me te 200 GB te whakaari...

DC: He take tino pai taku! I runga i te whakaaturanga he papaa raraunga hua hei whakarereke. A he paatene: "hurihia ki te whakaputa". Ko enei huringa - deltas - ka taapirihia (te ahua nei he tukutahi noa ma te API) ki te whakaputa. Ko te kōwhiringa tino tāwāhi tenei.

НС: Kua kite ahau i nga whakaoho i roto i te Raorao e noho ana i roto i te RDS, ara i Heroku - he korero enei mai i te 2-3 tau ki muri - a ka tangohia e ratou te putunga ki to ratou pona. No te mea kei te 80 GB anake te paataka raraunga, a he waahi kei runga i te pona. Katahi ka hokona e ratou etahi atu kopae mo te katoa kia 3 nga papaa raraunga hei kawe i nga whanaketanga rereke. Ka penei ano te tupu. I kite ano ahau kaore ratou e mataku ki te kape i nga hua ki roto i te whakaaturanga - he mea nui ki te kamupene. Engari i kite ano ahau he tino mataku ratou, he maha nga wa karekau o ratou wa me o ratou ringaringa. Engari i mua i te haere ki tenei kaupapa, e hiahia ana ahau ki te whakarongo mo Kubernetes. Kei te mohio tika ahau kaore ano he tangata kei roto i te kaupapa?

DC: He iti nga papaa raraunga kei roto i te prod. Kei te korero matou mo nga pukapuka tekau kikipaita me nga ratonga kore-arohaehae i mangere rawa matou ki te hanga tauira (kaore he hiahia pera). A mena he rokiroki noa kei raro i nga Kubernetes. I mahi tenei pātengi raraunga i roto i te miihini mariko - i roto i te VMware, i runga ake i te punaha rokiroki. I whakanohoia e matou ki roto PV a inaianei ka taea e taatau te whakawhiti mai i te miihini ki te miihini.

НС: Ko nga papaarangi o tenei rahi, tae atu ki te 100 GB, ka taea te huri i roto i etahi meneti i runga i nga kopae pai me te whatunga pai, tika? Ko te tere o te 1 GB mo ia hekona kua kore e tino rerekee.

DC: Ae, mo te mahi raina ehara tenei i te raru.

НС: Pai, me whakaaro noa tatou mo te prod. A, ki te whakaaro tatou ki nga Kubernetes mo nga taiao kore-prod, me aha tatou? Ka kite ahau i tera i Zalando mahi kaiwhakahaere, i Crunchy kani kani, tera ano etahi atu whiringa. Na kei reira OnGres - Ko to tatou hoa pai tenei ko Alvaro no Spain: ko ta raatau mahi ehara i te mea noa kaiwhakahaere, me te tohatoha katoa (StackGres), ki roto, hei taapiri atu ki a Postgres ake, i whakatau ano ratou ki te whakauru i tetahi taarua, ko te Kaituku Envoy...

DC: He karere mo te aha? Te whakarite i nga waka a Postgres?

НС: Ae. Arā, ka kite ratou i te mea: ki te tango koe i te tohatoha Linux me te pata, katahi ko PostgreSQL tonu te kernel, a ka hiahia ratou ki te whakaputa tohatoha ka pai ki te kapua me te whakahaere i runga i nga Kubernetes. Ka whakahiatohia e ratou nga waahanga (nga taapiri, me etahi atu) ka patuiro kia pai te mahi.

DC: Tino pai! Ko te tikanga he raupaparorohiko tenei hei hanga i a koe ake Postgres whakahaere.

НС: He raruraru mau tonu nga tohatoha Linux: me pehea te hanga taraiwa kia tautokohia nga taputapu katoa. A kei a ratou te whakaaro ka mahi ratou ki Kubernetes. E mohio ana ahau i roto i te kaiwhakahaere Zalando i kite tata nei matou i te hononga ki te AWS a kua kore e tino pai. Kaua rawa he here ki tetahi hanganga motuhake - he aha te take?

DC: Kaore au i te tino mohio he aha te ahuatanga i uru atu ai a Zalando, engari i roto i te rokiroki Kubernetes kua mahia inaianei kia kore ai e taea te tango i te taapiri kōpae ma te whakamahi i te tikanga whanui. Ina tata nei i roto i te paerewa - i roto i te putanga hou Nga korero a CSI — ka taea e matou nga whakaahua, engari kei hea te whakatinanatanga? Ma te pono, kei te tino maamaa tonu nga mea katoa ... Kei te ngana matou ki te CSI i runga ake o AWS, GCE, Azure, vSphere, engari ka timata koe ki te whakamahi, ka kite koe kaore ano kia rite.

НС: Koira te take me whakawhirinaki tatou ki nga hanganga. Ki taku whakaaro he waahi moata tonu tenei - te tipu haere o nga mamae. Pātai: He aha nga tohutohu ka hoatu e koe ki nga hunga hou e hiahia ana ki te whakamatau i te PgSQL i roto i nga K8s? Ko wai pea te kaiwhakahaere?

DC: Ko te raruraru ko te Postgres he 3% mo tatou. Kei a matou he rarangi tino nui o nga raupaparorohiko rereke i Kubernetes, kaore au e whakararangi i nga mea katoa. Hei tauira, Elasticsearch. He maha nga kaiwhakahaere: ko etahi kei te kaha te whakawhanake, ko etahi kaore. Kua whakatakotohia e matou nga whakaritenga mo matou ake mo nga mea e tika ana ma te kaitoha kia whai whakaaro nui matou. I roto i tetahi kaiwhakahaere motuhake mo Kubernetes - kaua i roto i te "kaiwhakahaere ki te mahi i tetahi mea i roto i nga tikanga o Amazon"... Inaa, he whanui noa (= tata ki nga kaihoko katoa) te whakamahi i tetahi kaiwhakahaere kotahi - mo Redis (ka whakaputahia e matou he tuhinga mo ia apopo).

НС: Kaore hoki mo MySQL? E mohio ana ahau ko Percona ... mai i te mea kei te mahi ratou inaianei i runga i MySQL, MongoDB, me Postgres, me hanga e ratou etahi momo otinga mo te ao katoa: mo nga papaunga raraunga katoa, mo nga kaiwhakarato kapua katoa.

DC: Kaore matou i whai wa ki te titiro ki nga kaiwhakahaere mo MySQL. Ehara tenei i ta matou kaupapa matua i tenei wa. He pai te mahi a MySQL i te noho takitahi. He aha te whakamahi i te kaiwhakahaere mena ka taea e koe te whakarewa noa i te paataka raraunga... Ka taea e koe te whakarewa i tetahi ipu Docker me nga Postrges, ka taea ranei e koe te whakarewa i te huarahi ngawari.

НС: He patai ano mo tenei. Kaore rawa he kaiwhakahaere?

DC: Ae, 100% o tatou he PostgreSQL e rere ana me te kore he kaiwhakahaere. I tenei wa. Ka kaha taatau ki te whakamahi i te kaiwhakahaere mo Prometheus me Redis. Kei a matou he mahere ki te kimi i tetahi kaiwhakahaere mo Elasticsearch - koinei te mea tino "kei te ahi", na te mea e hiahia ana matou ki te whakauru ki Kubernetes i roto i te 100% o nga keehi. Ka rite ki ta maatau e hiahia ana kia whakauruhia a MongoDB ki nga Kubernetes. I konei ka puta etahi hiahia - he whakaaro kei roto i enei keehi ka taea te mahi. A kaore matou i titiro ki a Postgres. Ko te tikanga, e mohio ana matou he rereke nga whiringa, engari ko te mea kei a matou he mana motuhake.

DB mo te whakamatautau i Kubernetes

НС: Ka anga whakamua ki te kaupapa whakamatautau. Me pehea te huri i nga huringa ki te paataka raraunga - mai i te tirohanga DevOps. He microservices, he maha nga papaa raraunga, kei te huri tetahi mea i nga wa katoa. Me pehea te whakarite CI/CD noa kia pai nga mea katoa mai i te tirohanga DBMS. He aha to huarahi?

DC: Karekau he whakautu kotahi. He maha nga whiringa. Ko te tuatahi ko te rahi o te turanga e hiahia ana matou ki te huri. Ko koe ano i kii he rereke nga waiaro o nga kamupene ki te whai kape o te papanga raraunga prod i runga i te dev me te atamira.

НС: A, i raro i nga tikanga o te GDPR, ki taku whakaaro kei te kaha ake to ratou tupato ... Ka taea e au te kii kei Uropi kua timata ratou ki te tuku utu.

DC: Engari i te nuinga o nga wa ka taea e koe te tuhi i nga rorohiko e tango ana i te putunga mai i te hanga me te whakapouri. Ka whiwhihia nga raraunga hua (whakaahua, putunga, kape-rua...), engari he ingoamuna. Engari, tera pea he reanga reanga: ka taea he taapiri, he tuhinga noa ranei e whakaputa ana i te papaa raraunga nui. Ko te raruraru: pehea te roa o te hanga i tetahi ahua taketake? A pehea te roa o te hora ki te waahi e hiahiatia ana?

I tae mai matou ki tetahi kaupapa: ki te mea he huinga raraunga kua whakaritea e te kiritaki (putanga iti o te putunga raraunga), ka whakamahia e matou ma te taunoa. Mena kei te korero matou mo nga taiao arotake, i te wa i hangahia e matou he peka, i tukuna e matou he tauira o te tono - ka hurihia e matou he papaa raraunga iti ki reira. Engari i puta pai kōwhiringa, ka tangohia e matou he putunga mai i te whakaputanga kotahi i te ra (i te po) ka hanga he ipu Docker me PostgreSQL me MySQL me enei raraunga utaina i runga i taua mea. Mena e hiahia ana koe ki te whakawhänui i te pätengi raraunga 50 nga wa mai i tenei ahua, ka mahia tenei ma te ngawari me te tere.

НС: Ma te kape ngawari?

DC: Kei te rongoa tika nga raraunga ki te ahua Docker. Ko era. He ahua rite tonu ta matou, ahakoa 100 GB. He mihi ki nga paparanga kei Docker, ka taea e matou te tuku tere i tenei ahua i nga wa e hiahia ana matou. He poauau te tikanga, engari he pai te mahi.

НС: Na, ka whakamatau koe, ka huri tika i roto i Docker, tika? Tārua-tuhi-tuhi ki roto Docker - maka atu ka haere ano, kei te pai nga mea katoa. Karaehe! A kei te whakamahia e koe ki te katoa?

DC: Mo te wa roa.

НС: He rite tonu ta matou mahi. Ko matou anake kaore matou e whakamahi i te kape-i-tuhi a Docker, engari tetahi atu.

DC: Ehara i te mea whanui. Ka mahi a Docker ki nga waahi katoa.

НС: I roto i te ariā, ae. Engari kei a matou ano nga waahanga kei reira, ka taea e koe te hanga i nga waahanga rereke me te mahi me nga punaha konae rereke. He aha te wa i konei. Mai i te taha Postgres, he rereke te titiro ki enei mea katoa. Inaianei i titiro ahau mai i te taha Docker ka kite kei te pai nga mea katoa mo koe. Engari ki te mea he nui te putunga raraunga, hei tauira, 1 TB, ka roa tenei katoa: nga mahi i te po, me te whakakii i nga mea katoa ki roto i te Docker... A, ki te whakakiia te 5 TB ki Docker... He pai ranei nga mea katoa?

DC: He aha te rerekee: he pupuhi enei, he moka noa me te paita.

НС: Ko te rereketanga tenei: ka mahia e koe ma te putunga me te whakaora?

DC: Kaore rawa e tika. He rereke nga tikanga mo te whakaputa i tenei ahua.

НС: Mo etahi o nga kaihoko, kua mahia e matou kia kaua e hanga i nga wa katoa he ahua taketake, ka mau tonu i nga wa katoa. Ko te tikanga he tauira, engari ka whiwhi raraunga mai i te rangatira, engari ma te puranga. He pūranga ā-rua e tikina ai nga WAL i ia ra, i reira ka tangohia nga taapiri... Ka tae enei WAL ki te ahua taketake me te wa roa (he 1-2 hekona te tikanga). Ka katihia e maatau - inaianei kei a maatau te ZFS.

DC: Engari me te ZFS he iti noa koe ki te kohanga kotahi.

НС: Ae. Engari he makutu ano a ZFS unga: ka taea e koe te tuku whakaahua me te (kaore ano au i tino whakamatau i tenei, engari...) ka taea e koe te tuku i te delta i waenga i te rua. PGDATA. Inaa, he taputapu ano ta matou kaore i tino whakaarohia mo enei mahi. Kei a PostgreSQL pg_whakahoki, e mahi ana ano he rsync "mohio", ka pekehia te maha o nga mea kaore koe e maataki, no te mea kaore he mea i rereke ki reira. Ka taea e tatou te tukutahi tere i waenga i nga tūmau e rua ka hoki ano i te huarahi ano.

Na, mai i tenei, ka nui ake te taha DBA, kei te ngana matou ki te hanga i tetahi taputapu e taea ai e matou te mahi i te mea ano i kii koe: kotahi to matou paparangi, engari e hiahia ana matou ki te whakamatautau i tetahi mea 50 nga wa, tata ki te wa kotahi.

DC: 50 nga wa te tikanga me ota koe kia 50 nga waahi waahi.

НС: Kaore, ka mahia e matou nga mea katoa i runga i te miihini kotahi.

DC: Engari me pehea e whakawhānui ai koe i nga wa 50 mena ko tenei paataka korero, penei, terabyte. Ko te mea ka hiahia ia ki te 256 GB RAM?

НС: Ae, i etahi wa ka nui te mahara - he mea noa. Engari he tauira tenei mai i te oranga. Ko te miihini whakaputa he 96 nga matua me te 600 GB. I te wa ano, 32 cores (ara 16 cores inaianei i etahi wa) me te 100-120 GB o te mahara ka whakamahia mo te papaarangi.

DC: A e 50 nga kape ka uru ki roto?

НС: Na kotahi anake te kape, katahi ka mahi te kape-i-tuhi (ZFS)... Ka korero atu au ki a koe.

Hei tauira, kei a matou he 10 TB pātengi raraunga. I hanga e ratou he kopae mo taua mea, ko te ZFS hoki i kiki i tona rahi ma te 30-40 ōrau. I te mea karekau matou e mahi whakamatautau uta, kaore he mea nui ki a matou te wa whakautu tika: kia 2 nga wa puhoi ake - ka pai.

Ka hoatu e matou te whai waahi ki nga kaihanga hötaka, QA, DBA, aha atu. mahia nga whakamatautau i roto i nga miro 1-2. Hei tauira, ka whakahaere pea ratou i etahi momo heke. Kare e hiahiatia kia 10 nga matua i te wa kotahi - me 1 te pou muri, 1 te matua. Ka timata te heke - pea mokohau aunoa ka timata tonu, katahi ka whakamahia te matua tuarua. He 16-32 nga matua kua tohatohahia, kia 10 nga tangata ka taea te mahi i te wa kotahi, kaore he raru.

No te mea tinana PGDATA te taua, tahuri te reira i roto i e mau tatou te tinihanga Postgres. Ko te tinihanga tenei: hei tauira, 10 Postgres ka whakarewahia i te wa kotahi. He aha te raruraru i te nuinga o te wa? Ka hoatu e ratou shared_buffers, me kii 25%. No reira, ko te 200 GB tenei. Kaore e taea e koe te whakarewa ake i te toru o enei, na te mea ka pau te mahara.

Engari i etahi wa ka mohio matou kaore tenei e tika: i whakaturia e matou nga shared_buffers ki te 2 GB. Kei a PostgreSQL kaha_keteroki_rahi, a ko te mea pono ko te mea anake e awe ana mahere. Ka tautuhia e matou ki te 0,5 TB. A kaore he mea nui kaore i te noho tonu: ka mahia e ia nga mahere me te mea kei te noho tonu.

No reira, ka whakamatauhia e matou etahi momo heke, ka taea e matou te kohi i nga mahere katoa - ka kite matou ka pehea te mahi i roto i nga mahi. Ko nga hēkona ka rereke (he puhoi ake), engari ko nga raraunga ka panuihia e matou, me nga mahere ake (he aha nga hono kei reira, me etahi atu) ka rite tonu ki te whakaputa. A ka taea e koe te whakahaere i te maha o nga arowhai pera i runga i te miihini kotahi.

DC: Kaore koe e whakaaro he iti noa nga raru kei konei? Ko te tuatahi he otinga ka mahi anake i runga i te PostgreSQL. He tino motuhake tenei huarahi, ehara i te mea whanui. Ko te tuarua ko nga Kubernetes (me nga mea katoa e mahia ana e nga hangarau kapua inaianei) he maha nga pona, a ko enei pona he ephemeral. A, i roto i to take, he node pumau tonu. Ko enei mea ka tautohetohe ahau.

НС: Tuatahi, ka whakaae ahau, he korero Postgres pono tenei. Ki taku whakaaro mena kei a maatau etahi momo IO tika me tetahi puna wai whakaahuru mo te nuinga o nga maharatanga, kaore tenei huarahi e mahi - ka rereke nga mahere. Engari mo tenei wa ka mahi tahi matou me Postgres, kaore matou e whakaaro mo etahi atu.

Mo Kubernetes. Ko koe tonu te korero mai ki a matou i nga waahi katoa kei a matou he papaa raraunga pumau. Mena ka rahua te tauira, ko te mea nui ko te tiaki i te kōpae. I konei hoki kei a matou te papaaho katoa i Kubernetes, a ko te waahanga me te Postgres he wehe (ahakoa ka tae ki reira i tetahi ra). No reira, he penei nga mea katoa: i hinga te tauira, engari i tiakina e matou tana PV me te hono noa ki tetahi atu tauira (hou), me te mea kaore he mea i tupu.

DC: Mai i taku tirohanga, ka hangaia e matou nga putunga ki Kubernetes. K8s - rapa: ka ota nga pona ina hiahiatia. Ko te mahi he hanga noa i te poti me te kii kei te hiahia X te nui o nga rauemi, katahi ka mohio a K8s ki a ia ano. Engari ko te tautoko rokiroki i Kubernetes kare tonu i te pumau: 1.16i roto 1.17 (I tukuna tenei tuku недели i mua) ka riro enei ahuatanga he beta anake.

E ono marama ki te tau ka pahemo - ka kaha ake, ka iti ake ranei, ka kiia ranei he pera. Na ka taea e koe te tango whakaahua me te whakarereke i te rahi ka whakaoti i to raru. No te mea kei a koe he turanga. Ae, kaore pea i te tino tere, engari ko te tere e whakawhirinaki ana ki te mea "i raro i te potae", no te mea ka taea e etahi o nga whakatinanatanga te kape me te tuhi-a-tuhi i te taumata-iti o te kōpae.

НС: He mea tika hoki mo nga miihini katoa (Amazon, Google...) ki te tiimata ki te tautoko i tenei putanga - he wa roa ano tenei.

DC: Kare ano matou i te whakamahi. Ka whakamahi tatou i a maatau.

Te whakawhanaketanga o te rohe mo Kubernetes

НС: Kua tae mai koe ki tenei hiahia ina hiahia ana koe ki te whakauru i nga pota katoa ki runga i te miihini kotahi ka mahia he whakamatautau iti. Kia tere te tiki tohu o te ariā, tirohia kei te haere te tono ki Kubernetes, me te kore e whakatapua etahi miihini mo taua mea. Kei reira a Minikube, tika?

DC: Ki taku whakaaro ko tenei keehi - kua tukuna ki runga i tetahi pona - mo te whanaketanga o te rohe anake. Ranei etahi whakaaturanga o taua tauira. Kai Minikube, Kei reira k3s, KIND. Kei te anga whakamua matou ki te whakamahi Kubernetes IN Docker. Inaianei kua timata taatau ki te mahi ki a ia mo nga whakamatautau.

НС: I whakaaro ahau he ngana tenei ki te takai i nga putunga katoa ki tetahi ahua Docker. Engari i puta mai he mea rereke tenei. Heoi ano, he ipu motuhake, he peera motuhake - kei Docker anake.

DC: Ae. A he ahua rorirori ano te hanga, engari ko te tikanga ko tenei... He whaipainga ta matou mo te tuku - werf. E hiahia ana matou kia waiho hei aratau herenga werf up: “Tikina mai he Kubernetes o te rohe.” Na ka whakahaere i te herenga ki reira werf follow. Na ka taea e te kaiwhakawhanake te whakatika i te IDE, ka whakarewahia he tukanga i roto i te punaha e kite ana i nga huringa me te hanga ano i nga whakaahua, ka tukuna ano ki nga K8 o te rohe. Koinei te huarahi e hiahia ana matou ki te ngana ki te whakaoti i te raruraru o te whakawhanaketanga o te rohe.

Ko nga whakaahua me te kooputanga papaa raraunga i roto i te mooni K8

НС: Ki te hoki tatou ki te kape-i-tuhi. I kite ahau he whakaahua ano nga kapua. He rereke ta ratou mahi. Hei tauira, i roto i te GCP: kei a koe he tauira maha-terabyte kei te tai rawhiti o Amerika. Ka tango whakaahua koe i ia wa. Ka kohia e koe he kape o te kōpae kei te tai hauāuru mai i te whakaahua - i roto i etahi meneti kua reri nga mea katoa, ka tere te mahi, ko te keteroki anake me whakaki ki te mahara. Engari ko enei karaka (whakaahua) hei 'whakawhiwhi' he pukapuka hou. He pai tenei ina hiahia koe ki te hanga i te maha o nga waahi.

Engari mo nga whakamatautau, ki taku whakaaro ko nga whakaahua, e korero ana koe i Docker, e korero ana ranei ahau i roto i te ZFS, btrfs me te LVM ... - ka taea e koe te kore e hanga raraunga hou i runga i te miihini kotahi. I roto i te kapua, ka utu tonu koe mo ratou i nga wa katoa ka tatari kaua he hēkona, engari he meneti (me te keehi kawenga mangere, he mataaratanga pea).

Engari, ka taea e koe te tiki i enei raraunga i roto i te rua, te rua ranei, whakahaere i te whakamatautau ka maka atu. Ko enei whakaahua ka whakaoti rapanga rereke. I te keehi tuatahi - ki te whakanui ake me te tiki tauira hou, a i te tuarua - mo nga whakamatautau.

DC: Kare au e whakaae. Ko te mahi tika o te koorua o te rōrahi te mahi a te kapua. Kaore au i titiro ki ta raatau whakatinanatanga, engari e mohio ana ahau me pehea taatau mahi i runga i nga taputapu. Kei a matou a Ceph, ka taea e ia te rahinga tinana (RBD) mea ki tou ka whiwhi i te rōrahi tuarua e rite ana ngā āhuatanga i roto i te tekau maero hēkona, IOPS'ami, etc. Me mohio koe kei roto he kape-i-tuhi. He aha i kore ai te kapua e pera ano? E mohio ana ahau kei te ngana ratou ki te mahi i tenei huarahi.

НС: Engari he hēkona tonu, he tekau hēkona ki te whakaara i tetahi tauira, kawea a Docker ki reira, aha atu.

DC: He aha te take me whakaara ake he tauira katoa? He tauira ta maatau e 32 nga matua, 16... ka uru ki roto - hei tauira, e wha. Ina ota tatou i te tuarima, kua ara ake te tauira, katahi ka mukua.

НС: Ae, he mea whakamere, ka puta he korero rereke a Kubernetes. Karekau to maatau papaarangi i roto i nga K8s, a he tauira ano ta matou. Engari kaua e neke ake i te rua hēkona te kati i te pātengi raraunga maha-terabyte.

DC: He rawe tenei. Engari ko taku korero tuatahi ehara tenei i te otinga whanui. Ae, he hauhautanga, engari e tika ana mo nga Postgres me te kotahi noa node.

НС: Ehara i te mea mo nga Postgres anake: ko enei mahere, pera i taku korero, ka mahi noa i roto. Engari ki te kore matou e whakararuraru mo nga mahere, a ka hiahia noa matou ki nga raraunga katoa mo te whakamatautau mahi, ka pai tenei mo tetahi DBMS.

DC: He maha nga tau ki muri i mahia e matou tetahi mea penei i runga i nga whakaahua LVM. He matarohia tenei. I tino kaha te whakamahi i tenei huarahi. He mamae noa nga pona ahua. Na te mea kaore koe e whakarere i a raatau, me mahara tonu koe ki a raatau ...

НС: Kei te kite koe he momo ranu kei konei? Me kii ko stateful tetahi momo pota, e mahi ana mo te maha o nga tangata (he maha nga kaiwhakaatu). Kotahi te rōrahi, engari he mihi ki te punaha konae, no te rohe nga kiore. Mena ka taka te poti, engari kei te mau tonu te kopae, ka piki ake te peera, tatauhia nga korero mo nga karakau katoa, ka kohia ano nga mea katoa ka kii: "Tenei o koutou iramahe e rere ana i runga i enei tauranga, mahi tonu ki a raatau."

DC: Ko te tikanga tenei kei roto i nga Kubernetes tetahi putunga kei roto e whakahaerehia ana e matou te maha o nga Postgres.

НС: Ae. He rohe tona: me kii kaua e neke ake i te 10 nga tangata e mahi tahi ana me ia i te wa ano. Mena ka hiahia koe ki te 20, ka whakarewahia e matou he putea tuarua. Ka whakakaohia e matou, ka whiwhi i te rua o nga pukapuka katoa, ka rite ki te 10 nga "aniangi" iramate. Kaore koe e kite i tenei waahi?

DC: Me tapiri nga take haumarutanga ki konei. Ko tenei momo whakahaere e kii ana he nui nga painga o tenei pod (nga kaha), na te mea ka taea e ia te mahi i nga mahi kore-paerewa i runga i te punaha konae... Engari ka whakahoki ano ahau: E whakapono ana ahau i te wa waenga ka whakatikahia e ratou te rokiroki i Kubernetes, me te nga kapua ka whakatikahia e ratou nga korero katoa me nga pukapuka - ka "mahi noa" nga mea katoa. Ka huri te rahi, te whakakoi... He rōrahi - ka kii matou: "Hangahia he mea hou i runga i tera," a muri iho i te tuarua me te haurua ka whiwhi tatou i nga mea e hiahiatia ana.

НС: Kaore au e whakapono ki te kotahi me te hawhe hēkona mo te maha o nga terabytes. I runga i a Ceph ka mahia e koe ake, engari ka korero koe mo nga kapua. Haere ki te kapua, hanga he koroka o te rōrahi EBS maha-terabyte i runga i te EC2 ka kite he aha te mahi. Kare e roa he hēkona. Kei te tino pirangi ahau mo te wa ka eke ratou ki tenei taumata. Kei te mohio ahau ki taau e korero nei, engari ka tohe ahau ki te rereke.

DC: Ae, engari i kii ahau mo te wa waenga, ehara i te wa poto. Mo etahi tau.

Mo te kaiwhakahaere mo PostgreSQL mai i Zalando

I waenganui o tenei hui, ko Alexey Klyukin, he kaiwhakawhanake o mua mai i Zalando, i uru atu ano ki te korero mo te hitori o te kaiwhakahaere PostgreSQL:

He rawe tenei kaupapa e pa ana ki te whanui: Postgres me Kubernetes. I te wa i timata ai matou ki te mahi i Zalando i te tau 2017, he kaupapa i hiahia nga tangata katoa ki te mahi, engari kaore tetahi i mahi. He Kubernetes kē nga tangata katoa, engari i te patai he aha te mahi ki nga papaunga raraunga, he pai ki nga tangata Kelsey Hightower, nana nei i kauwhau nga K8, i penei te korero:

"Haere ki nga ratonga whakahaere me te whakamahi i aua mea, kaua e whakahaere i te papanga raraunga i Kubernetes. Ki te kore, ka whakatauhia e o K8, hei tauira, ki te whakahou ake, whakawetohia nga pona katoa, ka rere to raraunga ki tawhiti, ki tawhiti."

I whakatau matou ki te hanga i tetahi kaiwhakahaere, he rereke ki tenei tohutohu, ka whakarewahia he papaa raraunga Postgres ki Kubernetes. A he take pai ta matou - Patroni. He korekore aunoa tenei mo te PostgreSQL, he tika te mahi, ara. te whakamahi etcd, consul, ZooKeeper ranei hei rokiroki korero mo te tautau. He putunga penei ka hoatu ki nga tangata katoa e patai ana, hei tauira, he aha te rangatira o naianei, he rite tonu nga korero - ahakoa te mea kua tohatohahia e tatou nga mea katoa - kia kore ai he roro wehewehe. I tua atu i a maatau Whakaahua Docker mona.

I te nuinga o te waa, i puta mai te hiahia o te kamupene mo te ngoikore o te motuka i muri i te heke mai i te pokapū raraunga taputapu o roto ki te kapua. I ahu mai te kapua i runga i te otinga PaaS (Platform-as-a-Service) rangatira. He Puna Tuwhera, engari he nui te mahi ki te whakatika me te whakahaere. I karangahia NGA PUTA.

I te timatanga, kaore he Kubernetes. Ko te mea tika, i te wa i tukuna ai ta maatau ake otinga, kua noho kee nga K8, engari he tino mata kaore i pai mo te hanga. Ko, ki taku whakaaro, 2015, 2016 ranei. Kia tae ki te tau 2017, kua pakeke ake nga Kubernetes—he hiahia ki te heke ki reira.

He ipu Docker kē kei a matou. He PaaS i whakamahi Docker. He aha e kore ai e whakamatau i nga K8? He aha e kore ai e tuhi i to ake ake kaiwhakahaere? Ko Murat Kabilov, i haere mai ki a matou mai i Avito, i timata tenei hei kaupapa i runga i tana ake kaupapa - "ki te takaro" - a "ka mau te kaupapa."

Engari i te nuinga, i hiahia ahau ki te korero mo te AWS. He aha te take i puta ai he waehere AWS o mua...

Ina whakahaere koe i tetahi mea i Kubernetes, me mohio koe he mahi penei a K8. Kei te whanake haere tonu, kei te whakapai ake, kei te pakaru mai i ia wa. Me tino titiro koe ki nga huringa katoa i roto i nga Kubernetes, me noho reri koe ki te ruku ki roto mena ka pa mai tetahi mea me te ako me pehea te mahi i roto i nga korero - tera pea ka nui ake i to hiahia. Ko tenei, ko te tikanga, e pa ana ki tetahi papaaho e whakahaere ana koe i o papaa raraunga...

Na, i te wa i mahia ai e matou te korero, i whakahaerehia e matou a Postgres i runga i te pukapuka o waho (EBS i tenei keehi, mai i te mea e mahi ana matou i te AWS). I tipu te papaaarangi, i etahi wa e tika ana ki te whakarereke i te rahi: hei tauira, ko te rahi tuatahi o te EBS ko 100 TB, ka tipu te papaarangi ki a ia, inaianei ka hiahia matou ki te hanga EBS 200 TB. Me pehea? Me kii ka taea e koe te mahi putunga/whakaora i runga i te waa hou, engari ka roa te waa ka uru ki te wa heke.

Na reira, i hiahia ahau ki te whakarereke i te rahi ka nui ake te wehewehenga EBS katahi ka korero ki te punaha konae kia whakamahia te waahi hou. Na matou i mahi, engari i taua wa kaore he API a Kubernetes mo te mahi whakarereke. I te mea i mahi matou i runga i te AWS, i tuhia e matou he waehere mo tana API.

Kaore tetahi e aukati i a koe ki te mahi pera mo etahi atu papaaho. Kaore he tohu i roto i te korero ka taea anake te whakahaere i runga i te AWS, a kaore e mahi i runga i nga mea katoa. I te nuinga o te waa, he kaupapa Open Source tenei: ki te hiahia tetahi ki te tere ake te putanga o te whakamahinga o te API hou, nau mai. Kai GitHub, toia nga tono - ka ngana te roopu Zalando ki te whakautu tere me te whakatairanga i te kaiwhakahaere. Ki taku mohio, ko te kaupapa whai wāhi i Google Summer of Code me etahi atu kaupapa rite. Kei te kaha te mahi a Zalando.

Takoha PS!

Mena kei te pirangi koe ki te kaupapa o PostgreSQL me Kubernetes, me mahara ano ko te Postgres Tuesday i muri mai i tu i tera wiki, i korero ahau ki a Nikolai Alexander Kukushkin no Zalando. Kei te waatea te ataata mai i a ia konei.

PPS

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero