Nga Mahi Tukunga Tonu me Docker (arotake me te ataata)
Ka tiimata to maatau blog me nga panui e pa ana ki nga korero hou a to maatau kaiwhakahaere hangarau distol (Dmitry Stolyarov). Ko enei katoa i tu i te tau 2016 i nga huihuinga ngaio, i whakatapua ki te kaupapa o DevOps me Docker. Ko tetahi ataata mai i te hui a Docker Moscow i te tari o Badoo, kua oti whakaputaina ipurangi. Ko nga mea hou ka haere tahi me nga tuhinga e whakaatu ana i te ngako o nga purongo. Na…
Mei 31 i te hui RootConf 2016, i whakahaerehia hei waahanga o te hakari "Russian Internet Technologies" (RIT ++ 2016), i whakatuwheratia te waahanga "Te Whakanoho Tonu me te Whakanoho" me te ripoata "Nga Mahi Pai mo te Tukunga Tonu me te Docker". I whakaräpopotohia, i whakarärangitia hoki ngä whakaritenga pai mo te hanga i te tukanga Tukunga Tonu (CD) ma te whakamahi i a Docker me etahi atu hua Puna Tuwhera. Ka mahi tahi matou me enei otinga i roto i te whakaputa, e taea ai e matou te whakawhirinaki ki nga wheako mahi.
Mena ka whai waahi koe ki te whakapau i te haora ataata o te purongo, ka tūtohu mātou kia mātaki katoa. Ki te kore, kei raro nei te whakarāpopototanga matua i roto i te puka tuhinga.
Tukunga Tonu me Docker
Na Te Tuku tonu Kei te mohio matou ki te rarangi o nga huihuinga na te mea ko te waehere tono mai i te putunga Git ka puta tuatahi ki te whakaputa, ka mutu ki te purongo. He penei te ahua: Git → Hanga → Whakamatau → Tuku → Mahi.
Ko te nuinga o te purongo e whakatapua ana ki te wahanga hanga (whakaminenga tono), a ko nga kaupapa tuku me te whakahaere ka pa atu mo te wa poto. Ka korerohia e matou nga raruraru me nga tauira e taea ai e koe te whakaoti, a ka rereke pea nga whakatinanatanga motuhake o enei tauira.
He aha te take e hiahiatia ana a Docker ki konei? Ehara i te mea noa ta matou whakatau ki te korero mo nga mahi Tukunga Tonu i roto i te horopaki o tenei taputapu Open Source. Ahakoa e whakapau kaha ana te ripoata katoa ki tana whakamahinga, he maha nga take ka kitea i te wa e whakaarohia ana te tauira matua o te whakaputanga waehere tono.
Tauira whakaputa matua
Na, ka whakaputahia e matou nga putanga hou o te tono, ka tino pa ki a matou raruraru wa heke, i hangaia i te wa e huri ana te tūmau whakaputa. Ko nga waka mai i te putanga tawhito o te tono ki te mea hou kaore e taea te huri tonu: i te tuatahi me whakarite kia kore e pai te tango i te putanga hou, engari "kua whakamahana" (ara, kua tino rite ki te tuku tono).
No reira, mo etahi wa ka mahi nga putanga e rua o te tono (tawhito me te hou) i te wa kotahi. E arahi aunoa ki raruraru rauemi tiritahi: whatunga, pūnaha kōnae, IPC, etc. Ma te Docker, ka ngawari te whakatika i tenei raru ma te whakahaere i nga momo momo tono ki roto i nga ipu motuhake, e whakamanahia ana te wehenga rauemi i roto i te kaihautu kotahi (tūmau/miihini mariko). Ae ra, ka taea e koe te mahi me etahi tinihanga me te kore he whakamaarama, engari mena he taputapu kua oti te hanga me te watea, tera ano te take - kaua e warewarehia.
He maha atu nga painga ka tukuna e te whakamaaramatanga ka tukuna. Ko nga tono kei runga putanga motuhake (awhe putanga ranei) kaiwhakamaori, te waatea o nga waahanga / toronga, me etahi atu, me o raatau putanga. A ko tenei e pa ana ki te taiao whakahaere tonu, engari ki te taiao katoa, tae atu ki pūmanawa pūnaha me tana putanga (tae noa ki te tohatoha Linux i whakamahia). Na te mea ko nga ipu kei roto ehara i te waehere tono anake, engari ano hoki te punaha i mua i te whakauru me te punaha tono o nga waahanga e hiahiatia ana, ka wareware koe ki nga raru me nga whakawhirinaki.
E haapoto tatou tauira whakaputa matua nga putanga hou e whai whakaaro ana ki nga mea e whai ake nei:
I te tuatahi, ka rere te putanga tawhito o te tono ki te ipu tuatahi.
Ka hurihia te putanga hou ka "whakamahana" ki roto i te ipu tuarua. Ko te mea nui ko tenei putanga hou ake ka kawe ehara i te waehere tono whakahou anake, engari ko etahi o ona whakawhirinakitanga, me nga waahanga punaha (hei tauira, he putanga hou o OpenSSL, te tohatoha katoa ranei).
Ka tino rite te putanga hou ki te tuku tono, ka huri te waka mai i te ipu tuatahi ki te tuarua.
Ko te putanga tawhito ka taea te aukati inaianei.
Ko tenei huarahi ki te tuku i nga momo momo tono ki roto i nga ipu motuhake ka whai waahi ano - te hokinga tere ki te putanga tawhito (i muri i nga mea katoa, he nui ki te whakawhiti waka ki te ipu e hiahiatia ana).
Ko te taunakitanga tuatahi whakamutunga ka rite ki tetahi mea kaore i kitea e te Kapene te he: "[i te wa e whakarite ana i te Tukunga Tonu me Docker]Whakamahia te Docker[ka mohio ki nga mea e homai ana]" Kia mahara, ehara tenei i te putea hiriwa hei whakaoti i nga raruraru katoa, engari he taputapu e whakarato ana i te turanga whakamiharo.
Reproducibility
Ko te tikanga "whakahokia" he huinga whaanui o nga raru ka pa ki te whakahaere tono. Kei te korero matou mo nga keehi penei:
Ko nga tuhinga kua tirohia e te tari kounga mo te whakaari me tika te whakaputa i roto i te whakaputanga.
Ka whakaputahia nga tono ki runga i nga kaitoro ka taea te whiwhi kete mai i nga whakaata rereke rereke (i te wa ka whakahoutia, me nga putanga o nga tono kua whakauruhia).
"Kei te mahi nga mea katoa mo au i te takiwa!" (...kaore e whakaaetia nga kaiwhakawhanake ki te whakaputa.)
Me tirohia e koe tetahi mea i roto i te putanga tawhito (puranga).
...
Ko to raatau tino tikanga ka heke ki te meka e tika ana kia tutuki katoa nga taiao e whakamahia ana (me te kore o te take tangata). Me pehea e taea ai e tatou te whakapumau i te reproducibility? Hangaia nga whakaahua Docker i runga i te waehere mai i te Git, katahi ka whakamahia mo tetahi mahi: i runga i nga waahi whakamatautau, i roto i te hanga, i runga i nga miihini o te rohe o nga kaiwhakaputa ... I te wa ano, he mea nui ki te whakaiti i nga mahi e mahia ana. после te whakaemi i te ahua: ko te ngawari ake, ko te iti ake o nga hapa.
Ko te hanganga he waehere
Mena karekau i whakaokawahia nga whakaritenga hangahanga (te waatea o te rorohiko tūmau, tona putanga, me etahi atu) ka "whakahotakahia," katahi ka puta he hua kino te whakaputanga o tetahi whakahou tono. Hei tauira, kua huri ke koe ki te PHP 7.0 me te tuhi ano i te waehere - katahi ka tino miharo tetahi ki te ahua o te hanga me etahi PHP tawhito (5.5). Kaore pea koe e wareware ki tetahi huringa nui i roto i te putanga kaiwhakamaori, engari "kei roto te rewera i nga korero": ko te ohorere kei roto i te whakahou iti o tetahi whakawhirinaki.
Ko te huarahi ki te whakaoti i tenei raru e mohiotia ana ko IaC (Infrastructure as Code, “infrastructure as code”) me te pupuri i nga whakaritenga hanganga me te waehere tono. Ma te whakamahi, ka taea e nga kaiwhakawhanake me nga tohunga DevOps te mahi me te putunga tono Git kotahi, engari ki nga waahanga rereke. Mai i tenei waehere, ka hangaia he ahua Docker i Git, kei reira te tono ka tukuna ma te whai whakaaro ki nga waahanga katoa o te hanganga. Me noho noa nga tuhinga (ture) mo te whakahiato whakaahua ki roto i te putunga kotahi me te waehere puna ka hanumi tahi.
Mo te hoahoanga tono maha-papanga - hei tauira, kei reira te nginx, kei mua i tetahi tono e rere ana i roto i te ipu Docker - Me hanga nga whakaahua Docker mai i te waehere i Git mo ia paparanga. Na ko te ahua tuatahi ka mau he tono me te kaiwhakamaori me etahi atu "tata" whakawhirinaki, a ko te whakaahua tuarua kei roto te nginx whakarunga.
Ko nga whakaahua Docker, te whakawhitiwhiti korero me Git
Ka wehea e matou nga whakaahua Docker katoa i kohia mai i Git kia rua nga waahanga: mo te wa poto me te tuku. Whakaahua rangitahi kua tohua e te ingoa o te peka i Git, ka taea te tuhirua e te mahi e whai ake nei ka hurihia mo te arokite (ehara mo te hanga). Koinei to raatau rereketanga nui mai i nga tukunga: kaore koe e mohio ko tehea mahi motuhake kei roto i a raatau.
He mea tika ki te kohikohi ki nga whakaahua rangitahi: te peka matua (ka taea e koe te huri aunoa ki te waahi motuhake kia kite tonu i te putanga o naianei o te rangatira), nga manga me nga putanga, nga peka o nga mahi hou.
I muri i te arokite o nga whakaahua poto ka tae mai ki te hiahia mo te whakamaoritanga ki te whakaputa, ka tukuna e nga kaihanga tetahi tohu. Ka kohia aunoa ma te tohu whakaahua tuku (ko tana tohu he rite ki te tohu mai i a Git) ka hurihia ki waho ki te whakaari. Mena ka whakamanahia e te tari kounga, ka haere ki te whakaputa.
dappa
Ko nga mea katoa e whakaahuahia ana (te whakaputanga, te huihuinga whakaahua, te tiaki i muri mai) ka taea te whakatinana takitahi ma te whakamahi i nga tuhinga a Bash me etahi atu taputapu "improvised". Engari ki te mahi koe i tenei, na i etahi wa ka arahi te whakatinanatanga ki te tino uaua me te ngoikore o te whakahaere. Ma te mohio ki tenei, i haere mai matou ki te hanga i a maatau ake taputapu Reremahi mo te hanga CI/CD - dappa.
Ko tana waehere puna kua tuhia ki Ruby, tuwhera puna me te whakaputa ki runga GitHub. Heoi ano, ko nga tuhinga te waahi ngoikore o te taputapu, engari kei te mahi maatau. A ka tuhi me te korero mo te dapp neke atu i te kotahi, na te mea... Kare e taea e matou te tatari ki te whakapuaki i ona kaha ki te hapori hiahia katoa, engari i tenei wa, tukuna mai o take me to tono tono me te whai i te whanaketanga o te kaupapa i runga i GitHub.
Whakahoutia Akuhata 13, 2019: he kaupapa i tenei wa dappa whakaingoatia ki werf, kua tino tuhia ano tana waehere ki te Haere, a kua tino pai ake ana tuhinga.
Kubernetes
Ko tetahi atu taputapu Open Source kua rite kua riro i a ia te tino whakanui i roto i te taiao ngaio Kubernetes, he roopu whakahaere Docker. Ko te kaupapa o tana whakamahinga i roto i te whakahaerenga o nga kaupapa i hangaia i runga i a Docker kei tua atu i te whanuitanga o te purongo, no reira he iti noa te whakaaturanga ki te tirohanga o etahi ahuatanga whakamere.
Mo te whakaputanga, ka tuku a Kubernetes:
reriness probe — te tirotiro i te reri o te putanga hou o te tono (hei whakawhiti waka ki reira);
whakahōu hurihuri - whakahōu whakaahua raupapa i roto i te kāhui ipu (whakaweto, whakahou, whakarite mo te whakarewatanga, whakawhiti waka);
whakahōu tukutahi - whakahōu i tētahi atahanga i roto i te kāhui me te huarahi rereke: tuatahi ki te haurua o nga ipu, katahi ki te toenga;
nga tukunga kanari - ka whakarewahia he ahua hou ki runga i te iti (iti) o nga ipu hei aroturuki i nga mahi kino.
I te mea ko te Tukunga Tonu ehara i te tuku noa i te putanga hou, he maha nga mana a Kubernetes mo te tiaki i nga hanganga o muri mai: te tirotiro-a-roto me te takiuru mo nga ipu katoa, te whakatauira aunoa, me era atu. Kei te mahi tonu enei katoa, kei te tatari noa mo te tika. whakatinanatanga i roto i o tukanga.
Nga taunakitanga whakamutunga
Whakamahia te Docker.
Waihangahia nga whakaahua Docker o nga tono mo o hiahia katoa.
A pee i te parau tumu “Infrastructure is code.”
Honoa Git ki Docker.
Whakaritea te raupapa o te whakaputanga.
Whakamahia he papahanga kua rite (Kubernetes tetahi atu ranei).
Ataata me nga kiriata
Ataata mai i te whakaaturanga (tata ki te haora) whakaputaina i runga i YouTube(ko te purongo ano ka timata mai i te rima meneti - whai i te hono ki te takaro mai i tenei wa).
Whakaaturanga o te ripoata:
PS
Ko etahi atu ripoata mo te kaupapa i runga i ta maatau blog: