ProHoster > Блог > Isakoso > Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun
Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun
Ọna kan IaC (Amayederun bi koodu) ko ni koodu nikan ti a fipamọ sinu ibi ipamọ, ṣugbọn ti awọn eniyan ati awọn ilana ti o yika koodu yii. Ṣe o ṣee ṣe lati tun lo awọn isunmọ lati idagbasoke sọfitiwia si iṣakoso amayederun ati apejuwe bi? Yoo jẹ imọran ti o dara lati tọju imọran yii ni lokan lakoko ti o ka nkan naa.
Sawon o wá si titun kan ise agbese, nwọn si wi fun nyin: “A ni Amayederun bii Koodu". Ni otito o wa ni jade Amayederun bi itan bash tabi fun apẹẹrẹ Iwe aṣẹ bi itan bash. Eyi jẹ ipo gidi gidi, fun apẹẹrẹ, iru ọran kan ni Denis Lysenko ṣe apejuwe ninu ọrọ kan Bii o ṣe le rọpo gbogbo awọn amayederun ati bẹrẹ sisun ni alaafia, o sọ bi wọn ṣe ni awọn amayederun ti o ni ibamu fun iṣẹ akanṣe lati itan bash.
Pẹlu ifẹ diẹ, a le sọ iyẹn Amayederun bi itan bash Eyi dabi koodu:
reproducibility: O le gba itan bash, ṣiṣe awọn aṣẹ lati ibẹ, ati pe o le, nipasẹ ọna, gba iṣeto iṣẹ kan bi abajade.
ti ikede: o mọ ẹniti o wọle ati ohun ti wọn ṣe, lẹẹkansi, kii ṣe otitọ pe eyi yoo mu ọ lọ si iṣeto iṣẹ ni ijade.
itan: itan ti o ṣe kini. nikan iwọ kii yoo ni anfani lati lo ti o ba padanu olupin naa.
Kini o yẹ ki n ṣe?
Amayederun bii Koodu
Paapaa iru ọran ajeji bii Amayederun bi itan bash o le fa nipasẹ awọn etí Amayederun bii Koodu, ṣugbọn nigba ti a ba fẹ ṣe nkan ti o ni idiju ju olupin LAMP atijọ ti o dara, a yoo wa si ipari pe koodu yii nilo lati ṣe atunṣe, yipada, ilọsiwaju. Nigbamii ti a yoo fẹ lati ro awọn afiwera laarin Amayederun bii Koodu ati idagbasoke software.
GGBE
Lori iṣẹ akanṣe idagbasoke eto ipamọ, iṣẹ abẹ kan wa lorekore tunto SDS: a n ṣe idasilẹ idasilẹ tuntun - o nilo lati yiyi jade fun idanwo siwaju sii. Iṣẹ naa rọrun pupọ:
wọle nibi nipasẹ ssh ati ṣiṣe aṣẹ naa.
da awọn faili nibẹ.
atunse konfigi nibi.
bẹrẹ iṣẹ nibẹ
...
Frè!
Fun ọgbọn ti a ṣalaye, bash jẹ diẹ sii ju to, paapaa ni awọn ipele ibẹrẹ ti iṣẹ akanṣe, nigbati o kan bẹrẹ. Eyi ko buru pe o lo bash, ṣugbọn lori akoko awọn ibeere wa lati ran nkan ti o jọra lọ, ṣugbọn iyatọ diẹ. Ohun akọkọ ti o wa si ọkan ni daakọ-lẹẹmọ. Ati nisisiyi a ti ni awọn iwe afọwọkọ ti o jọra meji ti o fẹrẹ ṣe ohun kanna. Ni akoko pupọ, nọmba awọn iwe afọwọkọ dagba, ati pe a dojuko pẹlu otitọ pe oye iṣowo kan wa fun gbigbe fifi sori ẹrọ ti o nilo lati muuṣiṣẹpọ laarin awọn iwe afọwọkọ oriṣiriṣi, eyi jẹ idiju pupọ.
O wa ni pe iru iwa kan wa bi Gbẹgbẹ (Maṣe Tun Ara Rẹ Tun). Ero naa ni lati tun lo koodu to wa tẹlẹ. O dabi pe o rọrun, ṣugbọn a ko wa si eyi lẹsẹkẹsẹ. Ninu ọran wa, o jẹ imọran banal: lati ya awọn atunto kuro lati awọn iwe afọwọkọ. Awon. owo kannaa ti bi awọn fifi sori ti wa ni ransogun lọtọ, configs lọtọ.
SOLID fun CFM
Lori akoko ise agbese dagba ati adayeba itesiwaju je awọn farahan ti Ansible. Idi akọkọ fun irisi rẹ ni pe oye wa lori ẹgbẹ naa ati pe bash ko ṣe apẹrẹ fun imọ-jinlẹ eka. Ansible tun bẹrẹ lati ni eka kannaa. Lati ṣe idiwọ ọgbọn idiju lati yipada si rudurudu, awọn ipilẹ wa fun siseto koodu ni idagbasoke sọfitiwia OLODODO Paapaa, fun apẹẹrẹ, Grigory Petrov ninu ijabọ naa “Kini idi ti alamọja IT kan nilo ami iyasọtọ ti ara ẹni” dide ibeere ti eniyan ṣe apẹrẹ ni ọna ti o rọrun fun u lati ṣiṣẹ pẹlu diẹ ninu awọn ohun elo awujọ, ni idagbasoke sọfitiwia iwọnyi. jẹ awọn nkan. Ti a ba darapọ awọn ero meji wọnyi ti a si tẹsiwaju lati ṣe idagbasoke wọn, a yoo ṣe akiyesi pe a tun le lo OLODODO lati jẹ ki o rọrun lati ṣetọju ati yipada ọgbọn yii ni ọjọ iwaju.
Ilana Ojuse Kanṣo
Kilasi kọọkan ṣe iṣẹ-ṣiṣe kan ṣoṣo.
Ko si iwulo lati dapọ koodu ati ṣe awọn aderubaniyan spaghetti ti Ọlọrun monolithic. Awọn amayederun yẹ ki o ni awọn biriki ti o rọrun. O wa ni pe ti o ba pin iwe-iṣere Ansible si awọn ege kekere, ka awọn ipa Ansible, lẹhinna wọn rọrun lati ṣetọju.
Ilana Titiipade Ṣii
Open/pipade opo.
Ṣii si itẹsiwaju: tumọ si pe ihuwasi ti nkan kan le faagun nipasẹ ṣiṣẹda awọn iru nkan tuntun.
Ni pipade lati yipada: Bi abajade ti faagun ihuwasi ti nkan kan, ko yẹ ki o ṣe awọn ayipada si koodu ti o nlo awọn nkan wọnyẹn.
Ni ibẹrẹ, a gbe awọn amayederun idanwo lori awọn ẹrọ foju, ṣugbọn nitori otitọ pe ọgbọn-ọrọ iṣowo ti imuṣiṣẹ yato si imuse, a ṣafikun yiyi si baremetall laisi awọn iṣoro eyikeyi.
Ilana Iyipada Liskov
Barbara Liskov ká fidipo opo. Awọn nkan ti o wa ninu eto gbọdọ jẹ aropo pẹlu awọn apẹẹrẹ ti awọn iru-ori wọn laisi iyipada ipaniyan ti o pe ti eto naa
Ti o ba wo ni gbooro sii, kii ṣe ẹya ti eyikeyi iṣẹ akanṣe ti o le lo nibẹ OLODODO, o jẹ gbogbogbo nipa CFM, fun apẹẹrẹ, lori iṣẹ akanṣe miiran o jẹ dandan lati ran ohun elo Java apoti kan sori oke ti ọpọlọpọ Java, awọn olupin ohun elo, awọn apoti isura data, OS, ati bẹbẹ lọ. Lilo apẹẹrẹ yii, Emi yoo gbero awọn ilana diẹ sii OLODODO
Ninu ọran wa, adehun wa laarin ẹgbẹ amayederun pe ti a ba ti fi ipa imbjava tabi oraclejava sori ẹrọ, lẹhinna a ni ṣiṣe alakomeji java kan. Eleyi jẹ pataki nitori Awọn ipa oke da lori ihuwasi yii; wọn nireti java. Ni akoko kanna, eyi n gba wa laaye lati rọpo imuse / ẹya Java kan pẹlu omiiran laisi iyipada ọgbọn imuṣiṣẹ ohun elo.
Iṣoro naa wa nibi ni otitọ pe ko ṣee ṣe lati ṣe eyi ni Ansible, nitori abajade eyiti diẹ ninu awọn adehun han laarin ẹgbẹ naa.
Ilana Iyapa Interface
Ilana Iyapa atọkun: “Ọpọlọpọ awọn atọkun-pato alabara dara ju wiwo idi-gbogboogbo kan lọ.
Ni ibẹrẹ, a gbiyanju lati fi gbogbo iyipada ti imuṣiṣẹ ohun elo sinu iwe-iṣere ti o ṣeeṣe, ṣugbọn o ṣoro lati ṣe atilẹyin, ati ọna nigba ti a ni wiwo itagbangba ti a sọ pato (alabara n reti ibudo 443), lẹhinna ohun elo amayederun le pejọ lati ọdọ ẹni kọọkan. awọn biriki fun imuse kan pato.
Ilana Iyipada Igbẹkẹle
Awọn opo ti gbára inversion. Awọn modulu ni awọn ipele giga ko yẹ ki o dale lori awọn modulu ni awọn ipele kekere. Mejeeji orisi ti modulu gbọdọ dale lori abstractions. Awọn abstractions ko yẹ ki o dale lori awọn alaye. Awọn alaye gbọdọ dale lori awọn abstractions.
Nibi apẹẹrẹ yoo da lori antipattern.
Ọkan ninu awọn onibara ni awọsanma ikọkọ.
A paṣẹ awọn ẹrọ foju inu awọsanma.
Ṣugbọn nitori iru awọsanma, imuṣiṣẹ ohun elo ti so si eyiti hypervisor VM wa lori.
Awon. Imọye imuṣiṣẹ ohun elo giga-giga ṣiṣan pẹlu awọn igbẹkẹle si awọn ipele kekere ti hypervisor, ati pe eyi tumọ si awọn iṣoro nigbati o tun lo ọgbọn yii. Maṣe ṣe ni ọna yii.
ibaraenisepo
Awọn amayederun bi koodu kii ṣe nipa koodu nikan, ṣugbọn tun nipa ibatan laarin koodu ati eniyan, nipa awọn ibaraenisepo laarin awọn olupilẹṣẹ amayederun.
Bus ifosiwewe
Jẹ ki a ro pe o ni Vasya lori iṣẹ akanṣe rẹ. Vasya mọ ohun gbogbo nipa awọn amayederun rẹ, kini yoo ṣẹlẹ ti Vasya ba padanu lojiji? Eyi jẹ ipo gidi gidi, nitori pe o le kọlu nipasẹ ọkọ akero kan. Nigba miran o ṣẹlẹ. Ti eyi ba ṣẹlẹ ati imọ nipa koodu naa, eto rẹ, bii o ṣe n ṣiṣẹ, awọn ifarahan ati awọn ọrọ igbaniwọle ko pin laarin ẹgbẹ, lẹhinna o le ba pade nọmba kan ti awọn ipo aibikita. Lati dinku awọn ewu wọnyi ati pinpin imọ laarin ẹgbẹ, o le lo awọn ọna oriṣiriṣi
Pari Devopsing
Ko dabi bi awada, pe awọn admins mu ọti, yi pada awọn ọrọigbaniwọle, ati awọn ẹya afọwọṣe ti bata siseto. Awon. awọn onimọ-ẹrọ meji joko ni kọnputa kan, bọtini itẹwe kan ki o bẹrẹ si ṣeto awọn amayederun rẹ papọ: ṣeto olupin kan, kikọ ipa Ansible, ati bẹbẹ lọ. O dun, ṣugbọn ko ṣiṣẹ fun wa. Ṣugbọn awọn ọran pataki ti iṣe yii ṣiṣẹ. Oṣiṣẹ tuntun kan wa, olukọ rẹ gba iṣẹ-ṣiṣe gidi kan pẹlu rẹ, ṣiṣẹ ati gbigbe imọ.
Ọran pataki miiran jẹ ipe iṣẹlẹ kan. Nigba iṣoro kan, ẹgbẹ kan ti awọn ti o wa ni iṣẹ ati awọn ti o ni ipa ṣe apejọ, olori kan ni a yan, ti o pin iboju rẹ ati awọn ohun ti o ni ero ti ero. Awọn olukopa miiran tẹle awọn ero olori, ṣe amí lori awọn ẹtan lati console, ṣayẹwo pe wọn ko padanu laini kan ninu log, ati kọ ẹkọ awọn nkan tuntun nipa eto naa. Ọna yii ṣiṣẹ ni igbagbogbo ju bẹẹkọ lọ.
Atunwo koodu
Ni koko-ọrọ, o munadoko diẹ sii lati tan kaakiri imọ nipa awọn amayederun ati bii o ṣe n ṣiṣẹ nipa lilo atunyẹwo koodu:
Awọn amayederun ti wa ni apejuwe nipasẹ koodu ni ibi ipamọ.
Awọn iyipada waye ni ẹka ọtọtọ.
Lakoko ibeere iṣọpọ, o le rii delta ti awọn ayipada ninu awọn amayederun.
Ifojusi nibi ni pe awọn oluyẹwo ni a yan ni ọkọọkan, ni ibamu si iṣeto kan, i.e. pẹlu diẹ ninu awọn iṣeeṣe ti o yoo ngun sinu titun kan nkan ti amayederun.
koodu ara
Ni akoko pupọ, awọn squabbles bẹrẹ si han lakoko awọn atunwo, nitori ... awọn oluyẹwo ni ara tiwọn ati yiyi ti awọn oluyẹwo ṣe akopọ wọn pẹlu awọn aza oriṣiriṣi: 2 awọn aaye tabi 4, camelCase tabi snake_case. Ko ṣee ṣe lati ṣe eyi lẹsẹkẹsẹ.
Ero akọkọ ni lati ṣeduro lilo linter, lẹhinna gbogbo eniyan jẹ ẹlẹrọ, gbogbo eniyan jẹ ọlọgbọn. Ṣugbọn awọn olootu oriṣiriṣi, OS, ko rọrun
Eyi wa sinu bot kan ti o kọwe si irẹwẹsi fun ṣiṣe iṣoro kọọkan ati so iṣelọpọ linter naa. Ṣugbọn ni ọpọlọpọ igba awọn ohun pataki diẹ sii wa lati ṣe ati pe koodu naa wa ni aisifix.
Green Kọ Titunto
Akoko ti kọja, ati pe a ti de ipari pe awọn iṣẹ ti ko ṣe awọn idanwo kan ko le gba laaye sinu oluwa. Voila! A ṣẹda Green Kọ Titunto, eyiti o ti ṣe adaṣe ni idagbasoke sọfitiwia fun igba pipẹ:
Idagbasoke ti nlọ lọwọ ni ẹka ọtọtọ.
Awọn idanwo n ṣiṣẹ lori okun yii.
Ti awọn idanwo ba kuna, koodu kii yoo ṣe sinu oluwa.
Ṣiṣe ipinnu yii jẹ irora pupọ, nitori ... ṣẹlẹ ọpọlọpọ ariyanjiyan, ṣugbọn o tọ ọ, nitori ... Awọn atunyẹwo bẹrẹ lati gba awọn ibeere fun awọn akojọpọ laisi awọn iyatọ ninu ara, ati ni akoko pupọ nọmba awọn agbegbe iṣoro bẹrẹ si dinku.
Idanwo IaC
Ni afikun si iṣayẹwo ara, o le lo awọn ohun miiran, fun apẹẹrẹ, lati ṣayẹwo pe awọn amayederun rẹ le lo gangan. Tabi ṣayẹwo pe awọn ayipada ninu awọn amayederun kii yoo ja si isonu ti owo. Kini idi ti eyi le nilo? Ibeere naa jẹ idiju ati imọ-jinlẹ, o dara lati dahun pẹlu itan kan pe ni ọna kan o wa ni iwọn-ara adaṣe lori Powershell ti ko ṣayẹwo awọn ipo aala => Awọn VM diẹ sii ni a ṣẹda ju iwulo lọ => alabara lo owo diẹ sii ju ti a gbero lọ. Eyi kii ṣe igbadun pupọ, ṣugbọn yoo ṣee ṣe pupọ lati yẹ aṣiṣe yii ni awọn ipele iṣaaju.
Ẹnikan le beere, kilode ti o ṣe awọn amayederun eka paapaa diẹ sii idiju? Awọn idanwo fun awọn amayederun, gẹgẹ bi koodu, kii ṣe nipa simplification, ṣugbọn nipa mimọ bi awọn amayederun rẹ ṣe yẹ ki o ṣiṣẹ.
IaC Igbeyewo jibiti
Idanwo IaC: Aimi Analysis
Ti o ba ran gbogbo awọn amayederun ni ẹẹkan ati ṣayẹwo pe o ṣiṣẹ, o le rii pe o gba akoko pupọ ati nilo akoko pupọ. Nitorinaa, ipilẹ gbọdọ jẹ nkan ti o ṣiṣẹ ni iyara, pupọ wa, ati pe o bo ọpọlọpọ awọn aaye atijo.
Bash jẹ ẹtan
Jẹ ki a wo apẹẹrẹ kekere kan. yan gbogbo awọn faili ninu iwe ilana lọwọlọwọ ki o daakọ si ipo miiran. Ohun akọkọ ti o wa si ọkan:
for i in * ; do
cp $i /some/path/$i.bak
done
Kini ti aaye ba wa ni orukọ faili naa? O dara, dara, a jẹ ọlọgbọn, a mọ bi a ṣe le lo awọn agbasọ:
for i in * ; do cp "$i" "/some/path/$i.bak" ; done
Kú isé? Rara! Kini ti ko ba si nkankan ninu liana, i.e. globbing kii yoo ṣiṣẹ.
find . -type f -exec mv -v {} dst/{}.bak ;
Ṣe daradara bayi? Rara... Gbagbe ohun ti o le wa ni orukọ faili n.
touch x
mv x "$(printf "foonbar")"
find . -type f -print0 | xargs -0 mv -t /path/to/target-dir
Aimi onínọmbà irinṣẹ
Iṣoro naa lati igbesẹ iṣaaju ni a le mu nigba ti a gbagbe awọn agbasọ, fun eyi ọpọlọpọ awọn atunṣe ni iseda wa Shellcheck, ni gbogbogbo ọpọlọpọ wọn wa, ati pe o ṣeese o le wa linter kan fun akopọ rẹ labẹ IDE rẹ.
Gẹgẹbi a ti rii lati apẹẹrẹ ti tẹlẹ, awọn linters ko ni agbara gbogbo ati pe ko le tọka gbogbo awọn agbegbe iṣoro naa. Siwaju sii, nipa afiwe pẹlu idanwo ni idagbasoke sọfitiwia, a le ranti awọn idanwo ẹyọkan. Ohun ti o wa si okan lẹsẹkẹsẹ ni shunit, junit, rspec, pytest. Ṣugbọn kini lati ṣe pẹlu aibikita, Oluwanje, saltstack ati awọn miiran bii wọn?
Ni ibere pepe a ti sọrọ nipa OLODODO ati pe ohun elo wa yẹ ki o jẹ awọn biriki kekere. Àkókò wọn ti dé.
Awọn amayederun ti pin si awọn biriki kekere, fun apẹẹrẹ, Awọn ipa ti o ṣeeṣe.
Iru ayika kan ti wa ni ransogun, boya docker tabi VM kan.
A lo ipa Aṣeṣe wa si agbegbe idanwo yii.
A ṣayẹwo pe ohun gbogbo ṣiṣẹ bi a ti ṣe yẹ (a ṣiṣe awọn idanwo).
A pinnu ok tabi ko dara.
Idanwo IaC: Awọn irinṣẹ Idanwo Unit
Ibeere, kini awọn idanwo fun CFM? O le jiroro ni ṣiṣe iwe afọwọkọ, tabi o le lo awọn solusan ti a ti ṣetan fun eyi:
Apeere fun testinfra, yiyewo pe awọn olumulo test1, test2 wa o si wa ni ẹgbẹ kan 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
Kini lati yan? Ibeere naa jẹ eka ati aibikita, eyi ni apẹẹrẹ ti awọn ayipada ninu awọn iṣẹ akanṣe lori github fun 2018-2019:
Awọn ilana Igbeyewo IaC
Ibeere naa waye: bawo ni a ṣe le fi gbogbo rẹ papọ ki o ṣe ifilọlẹ? Le gba o si ṣe o funrararẹ ti o ba wa kan to nọmba ti Enginners. Tabi o le mu awọn solusan ti a ti ṣetan, botilẹjẹpe ko si pupọ ninu wọn:
Fun awọn ipa 25-35 o ṣiṣẹ awọn iṣẹju 40-70, eyiti o gun.
Igbesẹ ti o tẹle ni iyipada si jenkins/docker/ansible/molecule. Idiologically ohun gbogbo jẹ kanna
Lint playbooks.
Laini soke awọn ipa.
Lọlẹ eiyan
Waye Awọn ipa ti o ṣeeṣe.
Ṣiṣe testinfra.
Ṣayẹwo arapotency.
Linting fun awọn ipa 40 ati awọn idanwo fun mejila kan bẹrẹ lati gba to iṣẹju 15.
Kini lati yan da lori ọpọlọpọ awọn ifosiwewe, gẹgẹbi akopọ ti a lo, imọ-ẹrọ ninu ẹgbẹ, ati bẹbẹ lọ. nibi gbogbo eniyan pinnu fun ara wọn bi wọn ṣe le pa ibeere idanwo Unit
Idanwo IaC: Awọn Idanwo Iṣọkan
Igbesẹ t’okan ninu jibiti idanwo amayederun yoo jẹ awọn idanwo isọpọ. Wọn jọra si awọn idanwo Unit:
Awọn amayederun ti pin si awọn biriki kekere, fun apẹẹrẹ Awọn ipa ti o ṣeeṣe.
Iru ayika kan ti wa ni ransogun, boya docker tabi VM kan.
Fun ayika idanwo yii lo opolopo Awọn ipa ti o ṣeeṣe.
A ṣayẹwo pe ohun gbogbo ṣiṣẹ bi a ti ṣe yẹ (a ṣiṣe awọn idanwo).
A pinnu ok tabi ko dara.
Ni aijọju sisọ, a ko ṣayẹwo iṣẹ ṣiṣe ti ẹya ara ẹni kọọkan ti eto bi ninu awọn idanwo ẹyọkan, a ṣayẹwo bii a ṣe tunto olupin naa lapapọ.
Idanwo IaC: Ipari si Awọn idanwo Ipari
Ni oke ti jibiti a kigbe nipasẹ Awọn idanwo Ipari si Ipari. Awon. A ko ṣayẹwo iṣẹ ti olupin lọtọ, iwe afọwọkọ lọtọ, tabi biriki lọtọ ti awọn amayederun wa. A ṣayẹwo pe ọpọlọpọ awọn olupin ti o ni asopọ pọ, awọn amayederun wa ṣiṣẹ bi a ti n reti. Laanu, Emi ko rii awọn solusan apoti ti a ti ṣetan, boya nitori… Awọn amayederun nigbagbogbo jẹ alailẹgbẹ ati nira lati ṣe awoṣe ati ṣẹda ilana fun idanwo. Bi abajade, gbogbo eniyan ṣẹda awọn solusan ti ara wọn. Ibeere wa, ṣugbọn ko si idahun. Nitorinaa, Emi yoo sọ fun ọ kini ohun ti o wa lati Titari awọn miiran si awọn ironu ohun tabi pa imu mi ni otitọ pe ohun gbogbo ni a ṣẹda ni igba pipẹ ṣaaju wa.
A ise agbese pẹlu kan ọlọrọ itan. O ti wa ni lilo ni awọn ile-iṣẹ nla ati pe o ṣee ṣe pe ọkọọkan rẹ ti kọja awọn ọna taara pẹlu rẹ. Ohun elo naa ṣe atilẹyin ọpọlọpọ awọn apoti isura infomesonu, awọn iṣọpọ, ati bẹbẹ lọ. Mọ ohun ti awọn amayederun le dabi jẹ ọpọlọpọ awọn faili docker-compose, ati mimọ iru awọn idanwo lati ṣiṣẹ ni agbegbe wo ni Jenkins.
Ilana yii ṣiṣẹ fun igba pipẹ, titi di ilana naa iwadi a ko gbiyanju lati gbe eyi si Openshift. Awọn apoti naa wa kanna, ṣugbọn agbegbe ifilọlẹ ti yipada (hello DRY lẹẹkansi).
Ero iwadi naa lọ siwaju, ati ni ṣiṣi silẹ wọn rii iru nkan bii APB (Ansible Playbook Bundle), eyiti o fun ọ laaye lati ṣajọ imọ bi o ṣe le fi awọn ohun elo amayederun sinu apoti kan. Awon. nibẹ ni a repeatable, testable ojuami ti imo lori bi o si ran awọn amayederun.
Gbogbo eyi dabi ohun ti o dara titi ti a fi sare sinu awọn amayederun oniruuru: a nilo Windows fun awọn idanwo. Bi abajade, imọ ti kini, nibo, bawo ni a ṣe le fi ranṣẹ, ati idanwo wa ni jenkins.