ʻO kaʻu mea i aʻo ai mai ka hoʻāʻo ʻana i nā laina 200 o ka code infrastructure
He hoʻokokoke IaC (Infrastructure as Code) ʻaʻole wale ke code i mālama ʻia i loko o ka waihona, akā pū kekahi me nā kānaka a me nā kaʻina hana e hoʻopuni ana i kēia code. Hiki ke hoʻohana hou i nā ala mai ka hoʻomohala polokalamu i ka hoʻokele waiwai a me ka wehewehe? He mea maikaʻi e hoʻomanaʻo i kēia manaʻo ke heluhelu ʻoe i ka ʻatikala.
Inā paha e hele mai ʻoe i kahi papahana hou, a haʻi lākou iā ʻoe: “ua loaʻa iā mākou Hoʻolālā e like me ke code". I ka ʻoiaʻiʻo, ua puka mai ʻO ka ʻoihana e like me ka mōʻaukala bash a i ʻole he laʻana ʻO ka palapala e like me ka mōʻaukala bash. He kūlana maoli kēia, no ka laʻana, ua wehewehe ʻia kahi hihia like e Denis Lysenko ma kahi ʻōlelo Pehea e hoʻololi ai i ka ʻōnaehana holoʻokoʻa a hoʻomaka e hiamoe me ka maluhia, ua haʻi ʻo ia pehea i loaʻa ai iā lākou kahi ʻōnaehana kūpono no ka papahana mai ka mōʻaukala bash.
Me kekahi makemake, hiki iā mākou ke ʻōlelo i kēlā ʻO ka ʻoihana e like me ka mōʻaukala bash ua like kēia me ke code:
hana hou: Hiki iā ʻoe ke lawe i ka mōʻaukala bash, holo i nā kauoha mai laila mai, a hiki paha iā ʻoe, ma ke ala, e kiʻi i kahi hoʻonohonoho hana ma ke ʻano he huahana.
hoʻololi ʻana: ʻike ʻoe i ka mea i komo mai a me kā lākou i hana ai, ʻaʻole ia he ʻoiaʻiʻo e alakaʻi kēia iā ʻoe i kahi hoʻonohonoho hana ma ka puka.
moʻolelo mōʻaukala: ka moolelo o ka mea nana i hana. ʻaʻole hiki iā ʻoe ke hoʻohana inā nalowale ke kikowaena.
He aha e hana ai?
Hoʻolālā e like me ke code
ʻO kahi hihia ʻē aʻe e like me ʻO ka ʻoihana e like me ka mōʻaukala bash hiki iā ʻoe ke huki ma nā pepeiao Hoʻolālā e like me ke code, akā inā makemake mākou e hana i kahi mea paʻakikī ma mua o ka server LAMP kahiko maikaʻi, e hele mākou i ka hopena e pono e hoʻololi ʻia kēia code, hoʻololi, hoʻomaikaʻi. A laila makemake mākou e noʻonoʻo i nā mea like ma waena Hoʻolālā e like me ke code a me ka hoʻomohala polokalamu.
MALOO
Ma kahi papahana hoʻomohala ʻōnaehana mālama, aia kahi subtask hoʻonohonoho i ka SDS i kēlā me kēia manawa: ke hoʻokuʻu nei mākou i kahi hoʻokuʻu hou - pono e ʻōwili ʻia no ka hoʻāʻo hou ʻana. He mea maʻalahi ka hana:
e komo i loko ma o ssh a hoʻokō i ke kauoha.
kope i ka faila ma laila.
hoʻoponopono i ka config maanei.
e hoʻomaka i ka lawelawe ma laila
...
POMAIKAI!
No ka loiloi i wehewehe ʻia, ʻoi aku ka nui o ka bash, ʻoi aku ka nui o ka hoʻomaka ʻana o ka papahana, i ka wā e hoʻomaka ai. ʻO kēia ʻAʻole maikaʻi ke hoʻohana ʻoe i ka bash, akā i ka wā lōʻihi, aia nā noi e kau i kahi mea like, akā ʻokoʻa iki. ʻO ka mea mua i hiki i ka naʻau ke kope-paste. A i kēia manawa ua loaʻa iā mākou ʻelua palapala like loa e hana like i ka mea like. I ka hala ʻana o ka manawa, ua ulu ka nui o nā palapala, a ua kū mākou i ka ʻoiaʻiʻo aia kekahi loiloi ʻoihana no ka hoʻonohonoho ʻana i kahi hoʻonohonoho pono e hoʻonohonoho ʻia ma waena o nā palapala like ʻole, paʻakikī loa kēia.
ʻIke ʻia aia kahi hana e like me DRY (Mai hana hou iā ʻoe iho). ʻO ka manaʻo e hoʻohana hou i ka code i loaʻa. He mea maʻalahi ia, akā ʻaʻole mākou i hiki koke i kēia. I kā mākou hihia, he manaʻo banal: e hoʻokaʻawale i nā configs mai nā palapala. ʻO kēlā mau mea. ʻoihana noʻonoʻo o ke ʻano o ka hoʻonohonoho ʻana i hoʻokaʻawale ʻia, configs kaʻawale.
SOLID no CFM
Ma ka manawa ua ulu ka papahana a hoomau maoli ʻo ka puka ʻana mai o Ansible. ʻO ke kumu nui o kona hiʻohiʻona, aia ka ʻike ma ka hui a ʻaʻole i hoʻolālā ʻia kēlā bash no ka loiloi paʻakikī. Ua hoʻomaka pū ʻo Ansible e loaʻa i ka loiloi paʻakikī. No ka pale ʻana i nā loina paʻakikī mai ka hoʻololi ʻana i ka haunaele, aia nā loina no ka hoʻonohonoho ʻana i nā code i ka hoʻomohala polokalamu PAʻA Eia kekahi, no ka laʻana, ʻo Grigory Petrov i ka hōʻike "No ke aha e pono ai kahi loea IT i kahi hōʻailona pilikino" i hāpai i ka nīnau i hoʻolālā ʻia ke kanaka ma ke ʻano he mea maʻalahi iā ia ke hana me kekahi mau hui kaiaulu, i ka hoʻomohala ʻana i kēia mau polokalamu. he mau mea. Inā hoʻohui mākou i kēia mau manaʻo ʻelua a hoʻomau i ka hoʻomohala ʻana, e ʻike mākou hiki iā mākou ke hoʻohana PAʻA i mea e maʻalahi ai ka mālama ʻana a me ka hoʻololi ʻana i kēia loiloi i ka wā e hiki mai ana.
ʻO ke Kuʻuna Kuleana Hoʻokahi
Hoʻokahi wale nō hana o kēlā me kēia papa.
ʻAʻole pono e hoʻohui i ke code a hana i nā monolithic divine spaghetti monsters. Pono nā mea hana i nā pōhaku lepo maʻalahi. ʻIke ʻia inā ʻoe e hoʻokaʻawale i ka puke pāʻani Ansible i mau ʻāpana liʻiliʻi, e heluhelu i nā kuleana Ansible, a laila maʻalahi lākou e mālama.
ʻO ke Kumukānāwai Open Closed
Kūkākūkā wehe/pani.
Wehe i ka hoʻonui: ʻo ia hoʻi, hiki ke hoʻonui ʻia ke ʻano o kahi hui ma ka hana ʻana i nā ʻano hui hou.
Paʻa i ka hoʻololi: Ma muli o ka hoʻonui ʻana i ke ʻano o kahi hui, ʻaʻole pono e hoʻololi i ke code e hoʻohana ana i kēlā mau hui.
I ka hoʻomaka ʻana, ua kau mākou i ka ʻōnaehana hoʻāʻo ma nā mīkini virtual, akā ma muli o ka hoʻokaʻawale ʻana o ka loiloi ʻoihana o ka hoʻokau ʻana mai ka hoʻokō ʻana, ua hoʻohui mākou i ka holo ʻana i ka baremetall me ka ʻole o nā pilikia.
ʻO ke Kumukānāwai Hoʻololi Liskov
ʻO ke kumu hoʻololi o Barbara Liskov. Pono e hoʻololi ʻia nā mea i loko o kahi papahana me nā manawa o kā lākou mau subtypes me ka hoʻololi ʻole i ka hoʻokō pono o ka papahana
Inā ʻoe e nānā ākea aʻe, ʻaʻole ia he hiʻohiʻona o kekahi papahana i hiki ke hoʻohana ʻia ma laila PAʻA, mea maʻamau e pili ana i ka CFM, no ka laʻana, ma kahi papahana ʻē aʻe e pono e kau i kahi palapala Java pahu ma luna o nā Java like ʻole, nā kikowaena noi, nā ʻikepili, OS, etc. Ke hoʻohana nei i kēia hiʻohiʻona, e noʻonoʻo wau i nā loina hou aʻe PAʻA
I kā mākou hihia, aia kahi ʻaelike i loko o ka hui ʻoihana inā mākou i hoʻokomo i ka hana imbjava a i ʻole oraclejava, a laila loaʻa iā mākou kahi java binary executable. Pono kēia no ka mea Aia nā kuleana i luna i kēia ʻano; manaʻo lākou iā java. I ka manawa like, hiki iā mākou ke hoʻololi i kahi hoʻokō java / version me kahi ʻē aʻe me ka ʻole o ka hoʻololi ʻana i ka logic deployment application.
Aia ka pilikia ma ʻaneʻi i ka hiki ʻole ke hoʻokō i kēia ma Ansible, ʻo ia ka hopena o kekahi mau ʻaelike i loko o ka hui.
Ke Kumu Hoʻokaʻawale Interface
ʻO ke kumu hoʻokaʻawale hoʻokaʻawale: “Ua ʻoi aku ka maikaʻi o ka nui o nā mea kūʻai aku ma mua o hoʻokahi kikowaena kumu nui.
I ka hoʻomaka ʻana, ua hoʻāʻo mākou e hoʻokomo i nā ʻano like ʻole a pau o ka waiho ʻana i nā noi i loko o kahi puke pāʻani Ansible, akā paʻakikī ke kākoʻo ʻana, a ʻo ke ala i ka wā e loaʻa ai kahi kikowaena waho i kuhikuhi ʻia (manaʻo ka mea kūʻai aku i ka port 443), a laila hiki ke hōʻuluʻulu ʻia kahi ʻōnaehana mai kēlā me kēia. nā pōhaku lepo no kahi hoʻokō kikoʻī.
ʻO ke Kumukānāwai Hoʻololi Kūlohelohe
ʻO ke kumu o ka hoʻohuli hilinaʻi. ʻAʻole pono nā modula ma nā pae kiʻekiʻe ma luna o nā modula ma nā pae haʻahaʻa. Pono nā ʻano modula ʻelua e pili i nā abstractions. ʻAʻole pono nā abstractions e hilinaʻi i nā kikoʻī. Pono nā kiko'ī e pili i nā abstractions.
Maanei e hoʻokumu ʻia ka laʻana ma kahi antipattern.
Loaʻa i kekahi o nā mea kūʻai aku kahi ao pilikino.
Ua kauoha mākou i nā mīkini virtual i loko o ke ao.
Akā ma muli o ke ʻano o ke ao, ua hoʻopaʻa ʻia ka hoʻopili ʻana o ka noi i kahi hypervisor i kau ʻia ai ka VM.
ʻO kēlā mau. Ua kahe ka loina hoʻolālā noi kiʻekiʻe me nā hilinaʻi i nā pae haʻahaʻa o ka hypervisor, a ʻo ia ka pilikia i ka wā e hoʻohana hou ai i kēia loiloi. Mai hana pela.
AaOIeIOUIeXAOAaIN
ʻAʻole pili wale ka Infrastructure ma ke code wale nō, akā pili pū kekahi i ka pilina ma waena o nā code a me nā kānaka, e pili ana i nā pilina ma waena o nā mea hoʻomohala.
Kumu kaʻa
E manaʻo mākou aia ʻo Vasya ma kāu papahana. Ua ʻike ʻo Vasya i nā mea āpau e pili ana i kāu ʻoihana, he aha ka hopena inā nalowale koke ʻo Vasya? He kūlana ʻoiaʻiʻo loa kēia, no ka mea hiki iā ia ke paʻi ʻia e ke kaʻa. I kekahi manawa hiki mai. Inā loaʻa kēia a me ka ʻike e pili ana i ke code, kona ʻano, pehea e hana ai, nā hiʻohiʻona a me nā ʻōlelo huna ʻaʻole i puʻunaue ʻia i waena o ka hui, a laila hiki iā ʻoe ke hālāwai i kekahi mau kūlana maikaʻi ʻole. No ka hōʻemi ʻana i kēia mau pilikia a hāʻawi i ka ʻike i loko o ka hui, hiki iā ʻoe ke hoʻohana i nā ala like ʻole
Pair Devopsing
ʻAʻole like me he mea hoohenehene, ua inu nā mea hoʻokele i ka pia, hoʻololi i nā ʻōlelo huna, a me kahi analogue o ka papahana pālua. ʻO kēlā mau mea. noho ʻelua mau ʻenekinia ma ka kamepiula hoʻokahi, hoʻokahi kīpē a hoʻomaka e hoʻonohonoho i kāu ʻoihana: hoʻonohonoho i kahi kikowaena, kākau i kahi kuleana Ansible, etc. He maikaʻi ke kani, akā ʻaʻole pono iā mākou. Akā ua hana nā hihia kūikawā o kēia hana. Hele mai kahi limahana hou, lawe pū kāna kumu i kahi hana maoli me ia, hana a hoʻololi i ka ʻike.
ʻO kahi hihia kūikawā ʻē aʻe he kāhea hanana. I ka wā pilikia, hui pū kekahi pūʻulu o ka poʻe hana a me ka poʻe i pili, ua koho ʻia kahi alakaʻi, nāna e kaʻana i kāna pale a hoʻokani i ke kaʻa o ka manaʻo. ʻO nā poʻe ʻē aʻe e hahai i nā manaʻo o ke alakaʻi, e kiu i nā hoʻopunipuni mai ka console, e nānā ʻaʻole lākou i hala i kahi laina ma ka log, a aʻo i nā mea hou e pili ana i ka ʻōnaehana. Ua hana pinepine kēia ʻano hana ma mua o ka ʻole.
Loiloi Kuhi
Ma ke kumuhana, ʻoi aku ka maikaʻi o ka hoʻolaha ʻana i ka ʻike e pili ana i ka ʻōnaehana a pehea e hana ai me ka hoʻohana ʻana i ka loiloi code:
Hōʻike ʻia ka ʻōnaehana e ke code i loko o ka waihona.
Loaʻa nā hoʻololi i kahi lālā kaʻawale.
I ka wā o kahi noi hoʻohui, hiki iā ʻoe ke ʻike i ka delta o nā loli i ka ʻōnaehana.
ʻO ka mea koʻikoʻi ma ʻaneʻi ʻo ia ka mea i koho ʻia ka poʻe loiloi, e like me ka papa kuhikuhi, ʻo ia hoʻi. me kekahi degere o ka manaʻo e piʻi ʻoe i kahi ʻāpana hou o ka ʻōnaehana.
Kāhua Code
I ka hala ʻana o ka manawa, hoʻomaka nā squabbles i ka wā o nā loiloi, no ka mea... loaʻa i nā mea loiloi ko lākou ʻano ponoʻī a ʻo ka hoʻololi ʻana o nā mea nānā i hoʻopaʻa ʻia me nā ʻano like ʻole: 2 space a i ʻole 4, camelCase a i ʻole snake_case. ʻAʻole hiki ke hoʻokō koke i kēia.
ʻO ka manaʻo mua ʻo ia ka paipai ʻana i ka hoʻohana ʻana i ka linter, ma hope o nā mea a pau, he ʻenekinia nā mea a pau, akamai nā mea a pau. Akā ʻaʻole kūpono nā mea hoʻoponopono ʻē aʻe, OS
Ua ulu kēia i loko o kahi bot i kākau e lohi no kēlā me kēia pilikia pilikia a hoʻopili i ka puka linter. Akā i ka hapanui o nā hihia, ʻoi aku ka nui o nā mea nui e hana ai a ʻaʻole i hoʻopaʻa ʻia ke code.
Kumu Kūkulu ʻOmaomao
Ua hala ka manawa, a ua hiki mai mākou i ka hopena ʻaʻole hiki ke ʻae ʻia ka hana ʻaʻole i hala i kekahi mau hoʻokolohua. Voila! Ua hana mākou i ka Green Build Master, i hoʻomaʻamaʻa ʻia i ka hoʻomohala polokalamu no ka manawa lōʻihi:
Hoʻomaka ka hoʻomohala ʻana ma kahi lālā kaʻawale.
Ke holo nei nā hoʻokolohua ma kēia pae.
Inā hāʻule nā hoʻokolohua, ʻaʻole e hoʻokomo ke code i ka haku.
He mea ʻeha loa ka hoʻoholo ʻana, no ka mea... ua nui ka hoʻopaʻapaʻa, akā ua kūpono ia, no ka mea... Ua hoʻomaka nā loiloi e loaʻa nā noi no ka hui ʻana me ka ʻole o ka ʻokoʻa i ke ʻano, a i ka wā i hoʻomaka ai ka emi ʻana o ka nui o nā wahi pilikia.
IaC Hoao
Ma waho aʻe o ka nānā ʻana i ke ʻano, hiki iā ʻoe ke hoʻohana i nā mea ʻē aʻe, no ka laʻana, e nānā i hiki i kāu ʻoihana ke hoʻolaha maoli. A i ʻole e nānā inā ʻaʻole e lilo ke kālā ke hoʻololi i ka ʻoihana. No ke aha paha e pono ai kēia? He paʻakikī a me ka noʻonoʻo ka nīnau, ʻoi aku ka maikaʻi o ka pane ʻana me kahi moʻolelo aia kekahi auto-scaler ma Powershell ʻaʻole i nānā i nā kūlana palena => ʻoi aku ka nui o nā VM ma mua o ka pono => ua hoʻolilo ka mea kūʻai aku i ke kālā ma mua o ka mea i hoʻolālā ʻia. ʻAʻole ʻoluʻolu loa kēia, akā hiki nō ke hopu i kēia hewa i nā pae mua.
E nīnau paha kekahi, no ke aha e hoʻonui ai i ka ʻoihana paʻakikī? ʻAʻole pili ka hoʻāʻo ʻana i nā ʻōnaehana, e like me ke code, akā e pili ana i ka ʻike pehea e hana ai kāu ʻoihana.
Pyramid ho'āʻo iaC
IaC Ho'āʻo: Static Analysis
Inā hoʻonoho ʻoe i ka ʻōnaehana holoʻokoʻa i ka manawa hoʻokahi a nānā i ka hana ʻana, ʻike paha ʻoe he nui ka manawa a makemake i ka manawa nui. No laila, ʻo ke kumu ka mea e hana wikiwiki ai, he nui ia, a uhi ʻia nā wahi primitive he nui.
He paʻakikī ʻo Bash
E nānā kākou i kahi laʻana liʻiliʻi. koho i nā faila a pau i ka papa kuhikuhi o kēia manawa a kope i kahi ʻē aʻe. ʻO ka mea mua i hiki i ka manaʻo:
for i in * ; do
cp $i /some/path/$i.bak
done
He aha inā he wahi ma ka inoa faila? ʻAe, ʻae, akamai mākou, ʻike mākou i ka hoʻohana ʻana i nā huaʻōlelo:
for i in * ; do cp "$i" "/some/path/$i.bak" ; done
Hana maikaʻi? ʻAʻole! He aha inā ʻaʻohe mea ma ka papa kuhikuhi, ʻo ia. ʻAʻole e holo ka globbing.
find . -type f -exec mv -v {} dst/{}.bak ;
Hana maikaʻi i kēia manawa? ʻAʻole... Poina i ka mea hiki ke loaʻa i ka inoa faila n.
touch x
mv x "$(printf "foonbar")"
find . -type f -print0 | xargs -0 mv -t /path/to/target-dir
Nā mea hana hoʻopaʻa paʻa
Hiki ke loaʻa ka pilikia mai ka ʻanuʻu mua i ka poina iā mākou i nā ʻōlelo, no kēia mea he nui nā lāʻau lapaʻau ma ke ʻano. Shellcheck, ma ka laulā he nui o lākou, a ʻoi aku paha e hiki iā ʻoe ke loaʻa kahi linter no kāu waihona ma lalo o kāu IDE.
E like me kā mākou i ʻike ai mai ka laʻana mua, ʻaʻole mana loa nā linters a ʻaʻole hiki ke kuhikuhi i nā wahi pilikia āpau. Eia hou, ma ka hoʻohālikelike me ka hoʻāʻo ʻana i ka hoʻomohala ʻana i nā polokalamu, hiki iā mākou ke hoʻomanaʻo i nā hoʻokolohua ʻāpana. ʻO ka mea i hiki koke mai i ka manaʻo sunit, junit, rspec, pytest. Akā he aha ka mea e hana ai me ansible, chef, saltstack a me nā mea ʻē aʻe e like me lākou?
I ka hoʻomaka ʻana ua kamaʻilio mākou PAʻA a he mau pōhaku lepo liʻiliʻi kā mākou hana. Ua hiki mai ko lakou manawa.
Hoʻokaʻawale ʻia ka ʻoihana i nā pōhaku liʻiliʻi, no ka laʻana, Ansible roles.
Hoʻonohonoho ʻia kekahi ʻano kaiapuni, he docker a i ʻole VM.
Hoʻohana mākou i kā mākou kuleana Ansible i kēia kaiapuni hoʻāʻo.
Nānā mākou ua hana nā mea a pau e like me kā mākou i manaʻo ai (holo mākou i nā hoʻokolohua).
Hoʻoholo mākou ua maikaʻi a ʻaʻole maikaʻi.
IaC ho'āʻo: Unit ho'āʻo mea paahana
Nīnau, he aha nā hoʻokolohua no CFM? Hiki iā ʻoe ke holo i ka ʻatikala, a i ʻole hiki iā ʻoe ke hoʻohana i nā hoʻonā i mākaukau no kēia:
Ka laʻana no ka testinfra, e nānā ana i nā mea hoʻohana test1, test2 aia a i loko o kahi hui sshusers:
def test_default_users(host):
users = ['test1', 'test2' ]
for login in users:
assert host.user(login).exists
assert 'sshusers' in host.user(login).groups
He aha ka mea e koho ai? He paʻakikī a kānalua ka nīnau, eia kahi hiʻohiʻona o nā loli i nā papahana ma github no 2018-2019:
IaC hoʻāʻo ʻana
Aia ka nīnau: pehea e hui pū ai a hoʻomaka? Hiki e lawe a hana iā ʻoe iho inā lawa ka nui o nā ʻenekinia. A i ʻole hiki iā ʻoe ke lawe i nā hoʻonā i hana ʻia, ʻoiai ʻaʻole nui loa o lākou:
ʻO ka hana aʻe ʻo ka hoʻololi ʻana i jenkins/docker/ansible/molecule. Idiologically like nā mea a pau
Nā puke pāʻani lint.
E laina i nā kuleana.
ʻO ka pahu hoʻolele
E hoʻohana i nā kuleana Ansible.
Holo testinfra.
Nānā idempotency.
Hoʻomaka ka linting no 40 mau hana a me nā hoʻāʻo no kahi kakini ma kahi o 15 mau minuke.
ʻO ka mea e koho ai e pili ana i nā kumu he nui, e like me ka hoʻopaʻa ʻana i hoʻohana ʻia, ka loea i ka hui, etc. ma ʻaneʻi e hoʻoholo nā mea a pau no lākou iho pehea e pani ai i ka nīnau hoʻāʻo Unit
IaC Ho'āʻo: Hoʻohui Hoʻohui
ʻO ka hana hou aʻe i ka pyramid hoʻāʻo ʻenehana ʻo ia nā hoʻokolohua hoʻohui. Ua like lākou me nā ho'āʻo Unit:
Hoʻokaʻawale ʻia ka ʻōnaehana i nā pōhaku liʻiliʻi, no ka laʻana nā kuleana Ansible.
Hoʻonohonoho ʻia kekahi ʻano kaiapuni, he docker a i ʻole VM.
No kēia kaiapuni hoʻāʻo e pili he pūpū o Ansible kuleana.
Nānā mākou ua hana nā mea a pau e like me kā mākou i manaʻo ai (holo mākou i nā hoʻokolohua).
Hoʻoholo mākou ua maikaʻi a ʻaʻole maikaʻi.
ʻO ka ʻōlelo koʻikoʻi, ʻaʻole mākou e nānā i ka hana o kahi mea hoʻokahi o ka ʻōnaehana e like me nā hoʻāʻo ʻana, nānā mākou i ka hoʻonohonoho ʻana o ka server ma ke ʻano holoʻokoʻa.
Hoʻāʻo IaC: Hoʻopau a hoʻopau i nā hoʻāʻo
Ma ka piko o ka pyramid, hoʻokipa ʻia mākou e nā hoʻokolohua End to End. ʻO kēlā mau mea. ʻAʻole mākou e nānā i ka hana o kahi kikowaena ʻokoʻa, kahi palapala ʻokoʻa, a i ʻole kahi brick ʻokoʻa o kā mākou ʻoihana. Nānā mākou i ka nui o nā kikowaena i hoʻohui pū ʻia, hana kā mākou ʻoihana e like me kā mākou e manaʻo ai. ʻO ka mea pōʻino, ʻaʻole au i ʻike i nā hoʻonā pahu pahu mākaukau i hana ʻia, no ka mea ... He ʻokoʻa a paʻakikī ka hana ʻana i ka hoʻohālikelike ʻana a hana i kahi hoʻolālā no ka hoʻāʻo ʻana. ʻO ka hopena, hana kēlā me kēia kanaka i kā lākou hoʻonā ponoʻī. Aia kahi koi, akā ʻaʻohe pane. No laila, e haʻi aku wau iā ʻoe i ka mea e hiki ai ke hoʻoikaika i nā poʻe ʻē aʻe e kani i nā manaʻo a i ʻole i koʻu ihu i ka ʻoiaʻiʻo ua hana ʻia nā mea āpau ma mua o mākou.
He papahana me ka mōʻaukala waiwai. Hoʻohana ʻia ia i nā hui nui a ua hele pololei kēlā me kēia o ʻoukou i nā ala me ia. Kākoʻo ka palapala noi i nā ʻikepili he nui, hoʻohui, etc. ʻO ka ʻike ʻana i ke ʻano o ka ʻōnaehana he nui nā faila docker-compose, a me ka ʻike ʻana i nā hoʻokolohua e holo ai ma kahi o Jenkins.
Ua lōʻihi ka lōʻihi o kēia hana, a hiki i loko o ke kahua noiʻi ʻaʻole mākou i hoʻāʻo e hoʻololi i kēia i Openshift. Ua like nā ipu, akā ua loli ke kaiapuni hoʻomaka (hello DRY hou).
Ua hele hou ka manaʻo noiʻi, a ma ka wehe ʻana ua loaʻa iā lākou kahi mea e like me APB (Ansible Playbook Bundle), e hiki ai iā ʻoe ke hoʻopaʻa i ka ʻike no ka hoʻopili ʻana i nā ʻōnaehana i loko o kahi pahu. ʻO kēlā mau mea. aia kahi ʻike hou a hoʻāʻo ʻia e pili ana i ka hoʻopololei ʻana i ka ʻōnaehana.
Ua kani maikaʻi kēia mau mea a hiki i ka holo ʻana i kahi ʻōnaehana heterogeneous: pono mākou i Windows no nā hoʻāʻo. ʻO ka hopena, aia ka ʻike o ka mea, kahi, pehea e kau ai, a me ka hoʻāʻo ma jenkins.