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.

Èdè Gẹẹsì version

Eleyi jẹ kan tiransikiripiti ti mi awọn iṣe on DevopsConf 2019-05-28.

Awọn ifaworanhan ati awọn fidio

Amayederun bi itan bash

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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:

  1. 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.
  2. 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.
  3. 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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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ọ.

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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.

  1. Ọkan ninu awọn onibara ni awọsanma ikọkọ.
  2. A paṣẹ awọn ẹrọ foju inu awọsanma.
  3. Ṣ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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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ẹ.

Language
ọpa

Basi
Shellcheck

Ruby
RuboCop

Python
Ikun

dahun
Lint ti o ṣeeṣe

Idanwo IaC: Awọn Idanwo Unit

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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é.

  1. Awọn amayederun ti pin si awọn biriki kekere, fun apẹẹrẹ, Awọn ipa ti o ṣeeṣe.
  2. Iru ayika kan ti wa ni ransogun, boya docker tabi VM kan.
  3. A lo ipa Aṣeṣe wa si agbegbe idanwo yii.
  4. A ṣayẹwo pe ohun gbogbo ṣiṣẹ bi a ti ṣe yẹ (a ṣiṣe awọn idanwo).
  5. 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:

CFM
ọpa

O ṣee
Testinfra

ori
Ayẹwo

ori
Serverspec

iyọ
Olofofo

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:

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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:

CFM
ọpa

O ṣee
Molekule

ori
Idana Idanwo

Ilana ipilẹ
Terratesst

Apẹẹrẹ ti awọn iyipada ninu awọn iṣẹ akanṣe lori github fun 2018-2019:

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

Molekule vs. Idana

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

Ni ibẹrẹ awa gbiyanju lilo testkitchen:

  1. Ṣẹda VM ni afiwe.
  2. Waye Awọn ipa ti o ṣeeṣe.
  3. Ṣiṣe ayẹwo.

Fun awọn ipa 25-35 o ṣiṣẹ awọn iṣẹju 40-70, eyiti o gun.

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

Igbesẹ ti o tẹle ni iyipada si jenkins/docker/ansible/molecule. Idiologically ohun gbogbo jẹ kanna

  1. Lint playbooks.
  2. Laini soke awọn ipa.
  3. Lọlẹ eiyan
  4. Waye Awọn ipa ti o ṣeeṣe.
  5. Ṣiṣe testinfra.
  6. Ṣayẹwo arapotency.

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

Linting fun awọn ipa 40 ati awọn idanwo fun mejila kan bẹrẹ lati gba to iṣẹju 15.

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

Igbesẹ t’okan ninu jibiti idanwo amayederun yoo jẹ awọn idanwo isọpọ. Wọn jọra si awọn idanwo Unit:

  1. Awọn amayederun ti pin si awọn biriki kekere, fun apẹẹrẹ Awọn ipa ti o ṣeeṣe.
  2. Iru ayika kan ti wa ni ransogun, boya docker tabi VM kan.
  3. Fun ayika idanwo yii lo opolopo Awọn ipa ti o ṣeeṣe.
  4. A ṣayẹwo pe ohun gbogbo ṣiṣẹ bi a ti ṣe yẹ (a ṣiṣe awọn idanwo).
  5. 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

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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.

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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.

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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).

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

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.

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu 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.

ipari

Ohun ti Mo kọ lati idanwo awọn laini 200 ti koodu amayederun

Awọn amayederun bi koodu jẹ

  • Koodu ni ibi ipamọ.
  • Ibaraẹnisọrọ eniyan.
  • Idanwo amayederun.

ìjápọ

orisun: www.habr.com

Fi ọrọìwòye kun