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.

Nga Mahi Tukunga Tonu me Docker (arotake me te ataata)

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.

Nga Mahi Tukunga Tonu me Docker (arotake me te ataata)
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).

Nga Mahi Tukunga Tonu me Docker (arotake me te ataata)
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:

  1. I te tuatahi, ka rere te putanga tawhito o te tono ki te ipu tuatahi.
  2. 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).
  3. Ka tino rite te putanga hou ki te tuku tono, ka huri te waka mai i te ipu tuatahi ki te tuarua.
  4. 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).

Nga Mahi Tukunga Tonu me Docker (arotake me te ataata)
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.

Nga Mahi Tukunga Tonu me Docker (arotake me te ataata)

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.

Nga Mahi Tukunga Tonu me Docker (arotake me te ataata)
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

  1. Whakamahia te Docker.
  2. Waihangahia nga whakaahua Docker o nga tono mo o hiahia katoa.
  3. A pee i te parau tumu “Infrastructure is code.”
  4. Honoa Git ki Docker.
  5. Whakaritea te raupapa o te whakaputanga.
  6. 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:

Source: will.com

Tāpiri i te kōrero