Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Eng Approche IaC (Infrastruktur als Code) besteet net nëmmen aus dem Code deen am Repository gespäichert ass, awer och aus de Leit a Prozesser déi dëse Code ëmginn. Ass et méiglech Approche vu Softwareentwécklung bis Infrastrukturmanagement a Beschreiwung ze benotzen? Et wier eng gutt Iddi dës Iddi am Kapp ze halen wann Dir den Artikel liest.

Englescher Versioun

Dëst ass en Transkript vu mengem Opféierungen op DevopsConf 2019-05-28.

Rutschen a Videoen

Infrastruktur als Bash Geschicht

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Ugeholl, Dir kommt op en neie Projet, a si soen Iech: "Mir hunn Infrastruktur als Code". A Wierklechkeet stellt sech eraus Infrastruktur als Bash Geschicht oder zum Beispill Dokumentatioun als Bash Geschicht. Dëst ass eng ganz reell Situatioun, zum Beispill, en ähnleche Fall gouf vum Denis Lysenko an enger Ried beschriwwen Wéi déi ganz Infrastruktur ze ersetzen a friddlech ze schlofen, Hien huet gesot wéi se eng kohärent Infrastruktur fir de Projet aus der Bashgeschicht kruten.

Mat e puer Wonsch kënne mir dat soen Infrastruktur als Bash Geschicht dëst ass wéi Code:

  1. reproducibility: Dir kënnt Bash Geschicht huelen, d'Befehle vun do aus lafen, an Dir kënnt iwwregens eng Aarbechtskonfiguratioun als Ausgang kréien.
  2. Versiounen: Dir wësst wien komm ass a wat se gemaach hunn, erëm, et ass net e Fakt datt dëst Iech zu enger Aarbechtskonfiguratioun bei der Sortie féiert.
  3. Geschicht: d'Geschicht vu wien wat gemaach huet. nëmmen Dir wäert net fäheg sinn et ze benotzen wann Dir de Server verléieren.

Wat soll ech maachen?

Infrastruktur als Code

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Och esou e komeschen Fall wéi Infrastruktur als Bash Geschicht Dir kënnt et un d'Oueren zéien Infrastruktur als Code, awer wa mir eppes méi komplizéiert maache wéi de gudden alen LAMP-Server, komme mir zur Conclusioun datt dëse Code iergendwéi geännert, geännert, verbessert muss ginn. Als nächst wëlle mir d'Parallelen tëscht Infrastruktur als Code a Software Entwécklung.

DRËCHT

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Op engem Stockage System Entwécklung Projet gouf et eng subtask periodesch SDS konfiguréieren: Mir verëffentlechen eng nei Verëffentlechung - et muss fir weider Tester ausgerullt ginn. D'Aufgab ass extrem einfach:

  • aloggen hei iwwer ssh an ausféieren de Kommando.
  • kopéiert de Fichier do.
  • korrigéiert d'Konfiguratioun hei.
  • de Service do ufänken
  • ...
  • PROFIT!

Fir déi beschriwwe Logik ass Bash méi wéi genuch, besonnesch an de fréie Stadien vum Projet, wann et just ufänkt. Dëst et ass net schlecht datt Dir Bash benotzt, awer mat der Zäit ginn et Ufroe fir eppes ähnleches, awer liicht anescht z'installéieren. Déi éischt Saach déi am Kapp kënnt ass Copy-Paste. An elo hu mir schonn zwee ganz ähnlech Scripten déi bal datselwecht maachen. Mat der Zäit ass d'Zuel vun de Skripte gewuess, a mir ware mat der Tatsaach konfrontéiert datt et eng gewësse Geschäftslogik ass fir eng Installatioun z'installéieren déi tëscht verschiddene Skripte synchroniséiert muss ginn, dëst ass zimlech komplizéiert.

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Et stellt sech eraus datt et esou eng Praxis gëtt wéi DRY (Do not Repeat Yourself). D'Iddi ass de existente Code nei ze benotzen. Et kléngt einfach, awer mir sinn net direkt komm. An eisem Fall war et eng banal Iddi: Configuratioun vu Skripte ze trennen. Déi. Business Logik vun wéi d'Installatioun getrennt ofgebaut ass, configs separat.

SOLID fir CFM

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Mat der Zäit ass de Projet gewuess an natierlech Fortsetzung war d'Entstoe vun Ansible. Den Haaptgrond fir seng Erscheinung ass datt et Expertise am Team ass an datt Bash net fir komplex Logik entworf ass. Ansible huet och ugefaang komplex Logik ze enthalen. Fir ze verhënneren datt komplex Logik a Chaos verwandelt, ginn et Prinzipien fir Code an der Softwareentwécklung z'organiséieren SOLID Och, zum Beispill, huet de Grigory Petrov am Bericht "Firwat brauch en IT Spezialist eng perséinlech Mark" d'Fro opgeworf datt eng Persoun esou entworf ass datt et méi einfach ass fir hien mat e puer sozialen Entitéiten ze bedreiwen, an der Softwareentwécklung dës sinn Objeten. Wa mir dës zwou Iddien kombinéieren a weider entwéckelen, wäerte mir feststellen datt mir och kënne benotzen SOLID fir et méi einfach ze maachen, dës Logik an Zukunft z'erhalen an z'änneren.

Déi eenzeg Verantwortungsprinzip

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

All Klass mécht nëmmen eng Aufgab.

Kee Grond fir Code ze vermëschen a monolithesch göttlech Spaghetti Monsteren ze maachen. D'Infrastruktur soll aus einfachen Zillen besteet. Et stellt sech eraus datt wann Dir den Ansible Spillbuch a kleng Stécker opgedeelt hutt, Ansible Rollen liest, da si se méi einfach ze erhalen.

Den Open Closed Prinzip

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Open / zouene Prinzip.

  • Open fir Extensioun: heescht datt d'Behuele vun enger Entitéit verlängert ka ginn andeems nei Entitéitstypen erstallt ginn.
  • Zougemaach fir Ännerung: Als Resultat vun der Verlängerung vum Verhalen vun enger Entitéit, sollten keng Ännerunge fir de Code gemaach ginn, deen dës Entitéite benotzt.

Am Ufank hu mir d'Testinfrastruktur op virtuelle Maschinnen ofgesat, awer wéinst der Tatsaach, datt d'Geschäftslogik vun der Deployment getrennt war vun der Implementatioun, hu mir ouni Probleemer op Baremetall bäigefüügt.

De Liskov Substitution Prinzip

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Barbara Liskov d'Auswiesselungsprinzip. Objekter an engem Programm musse mat Instanzen vun hiren Ënnertypen ersat ginn ouni déi richteg Ausféierung vum Programm z'änneren

Wann Dir et méi breet kuckt, ass et keng Feature vun engem bestëmmte Projet deen do applizéiert ka ginn SOLID, et ass allgemeng iwwer CFM, zum Beispill, op engem anere Projet ass et néideg eng Box Java Applikatioun uewen op verschidde Java, Applikatiounsserver, Datenbanken, OS, etc. Mat dësem Beispill wäert ech weider Prinzipien betruechten SOLID

An eisem Fall gëtt et en Accord am Infrastrukturteam datt wa mir d'Imbjava oder d'Oraclejava Roll installéiert hunn, da hu mir e Java binär ausführbar. Dëst ass néideg well Upstream Rollen hänkt vun dësem Verhalen of, se erwaarden Java. Zur selwechter Zäit erlaabt dëst eis eng Java-Implementatioun / Versioun mat enger anerer ze ersetzen ouni d'Logik vun der Uwendungsdeployment z'änneren.

De Problem hei läit an der Tatsaach, datt et onméiglech ass dëst an Ansible ëmzesetzen, als Resultat vun deem e puer Ofkommes bannent der Equipe erschéngen.

Den Interface Segregatiounsprinzip

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Interface Trennungsprinzip: "Vill Clientspezifesch Interfaces si besser wéi eng allgemeng Zweck Interface.

Am Ufank hu mir probéiert all d'Verännerlechkeet vun der Uwendungsdeployment an een Ansible Playbook ze setzen, awer et war schwéier z'ënnerstëtzen, an d'Approche wa mir en externen Interface spezifizéiert hunn (de Client erwaart den Hafen 443), da kann eng Infrastruktur aus eenzelne montéiert ginn. Zillen fir eng spezifesch Ëmsetzung.

D'Ofhängegkeet Inversion Prinzip

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

De Prinzip vun der Ofhängegkeet Inversioun. Moduler op méi héijen Niveauen sollten net vu Moduler op méi nidderegen Niveauen ofhänken. Béid Aarte vu Moduler musse vun Abstraktiounen ofhänken. Abstraktioune sollten net vun Detailer ofhänken. Detailer musse vun Abstraktiounen ofhänken.

Hei wäert d'Beispill op engem Antimuster baséieren.

  1. Ee vun de Clienten hat eng privat Wollek.
  2. Mir hunn virtuell Maschinnen an der Wollek bestallt.
  3. Awer wéinst der Natur vun der Wollek ass d'Applikatiounsdeployment gebonnen un deem Hypervisor de VM war.

Déi. Héich-Niveau Applikatioun Deployment Logik fléisst mat Ofhängegkeeten op méi niddereg Niveauen vum Hypervisor, an dëst bedeit Problemer wann Dir dës Logik nei benotzt. Maacht et net esou.

Interaktioun

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Infrastruktur als Code ass net nëmmen iwwer Code, awer och iwwer d'Relatioun tëscht Code a Leit, iwwer Interaktiounen tëscht Infrastrukturentwéckler.

Bus Faktor

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Loosst eis unhuelen datt Dir Vasya op Ärem Projet hutt. Vasya weess alles iwwer Är Infrastruktur, wat geschitt wann Vasya op eemol verschwënnt? Dëst ass eng ganz reell Situatioun, well hie kéint vun engem Bus getraff ginn. Heiansdo geschitt et. Wann dat passéiert an d'Wëssen iwwer de Code, seng Struktur, wéi et funktionnéiert, Erscheinungen a Passwierder net ënnert d'Team verdeelt ass, da kënnt Dir op eng Rei désagréabel Situatiounen stoussen. Fir dës Risiken ze minimiséieren a Wëssen am Team ze verdeelen, kënnt Dir verschidde Approche benotzen

Pair Devopsing

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Et ass net wéi als Witz, datt d'Administrateuren Béier gedronk hunn, Passwierder geännert hunn an en Analog vu Pairprogramméierung. Déi. zwee Ingenieuren sëtzen op engem Computer, eng Tastatur a fänken un Är Infrastruktur zesummen opzestellen: e Server opbauen, eng Ansible Roll schreiwen, asw. Et kléngt flott, awer et huet fir eis net geschafft. Mä speziell Fäll vun dëser Praxis geschafft. En neie Mataarbechter kënnt, säi Mentor iwwerhëlt zesumme mat him eng richteg Aufgab, schafft an iwwerdroe Wëssen.

En anere spezielle Fall ass en Tëschefall Opruff. Wärend engem Problem versammelt sech e Grupp vun den Affekoten an de Betraffenen, ee Leader gëtt ernannt, deen säin Écran deelt an de Gedankenzuch ausstëmmt. Aner Participanten verfollegen d'Gedanken vum Leader, spionéieren op Tricken vun der Konsol, kontrolléiert datt se keng Zeil am Logbuch verpasst hunn, a léiere nei Saachen iwwer de System. Dës Approche huet méi dacks geschafft wéi net.

Code Bewäertung

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Subjektiv war et méi effektiv d'Wëssen iwwer d'Infrastruktur ze verbreeden a wéi et funktionnéiert mat Hëllef vu Code review:

  • D'Infrastruktur gëtt mam Code am Repository beschriwwen.
  • Ännerungen geschéien an enger separater Branche.
  • Wärend enger Fusiounsufro kënnt Dir den Delta vun Ännerungen an der Infrastruktur gesinn.

Den Highlight hei war, datt d'Rezensoren een nom aneren ausgewielt goufen, no engem Zäitplang, d.h. mat engem gewësse Grad vu Wahrscheinlechkeet wäert Dir an en neit Stéck Infrastruktur klammen.

Code Stil

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Am Laf vun der Zäit hunn d'Kriibs während de Rezensiounen ugefaang, well ... Rezensiounen haten hiren eegene Stil an d'Rotatioun vun de Rezensiounen huet se mat verschiddene Stiler gestapelt: 2 Plazen oder 4, CamelCase oder Snake_case. Et war net méiglech dëst direkt ëmzesetzen.

  • Déi éischt Iddi war d'Benotzung vu Linter ze recommandéieren, schliisslech ass jiddereen en Ingenieur, jiddereen ass intelligent. Awer verschidde Redaktoren, OS, sinn net bequem
  • Dëst huet sech zu engem Bot entwéckelt, dee fir all problematesch Verpflichtung geschriwwen huet an d'Linter-Output befestegt. Awer an de meeschte Fäll waren et méi wichteg Saachen ze maachen an de Code blouf onfix.

Green Build Master

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Zäit passéiert, a mir sinn zu der Conclusioun komm, datt Verpflichtungen, déi net bestëmmten Tester passéieren, kënnen net an de Meeschter erlaabt ginn. Voila! Mir hunn de Green Build Master erfonnt, dee scho laang an der Softwareentwécklung praktizéiert gouf:

  • Entwécklung ass amgaang an enger separater Branche.
  • Tester lafen op dësem thread.
  • Wann d'Tester versoen, wäert de Code et net an de Master maachen.

Dës Decisioun ze huelen war ganz ustrengend, well ... huet vill Kontrovers gesuergt, awer et war et derwäert, well ... D'Rezensiounen hunn ugefaang Ufroe fir Fusiounen ze kréien ouni Differenzen am Stil, a mat der Zäit huet d'Zuel vu Problemberäicher ugefaang ze reduzéieren.

IaC Testen

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Nieft der Stilprüfung kënnt Dir aner Saache benotzen, zum Beispill, fir ze kontrolléieren ob Är Infrastruktur tatsächlech kann ofsetzen. Oder kontrolléiert datt Ännerungen an der Infrastruktur net zu Geldverloscht féieren. Firwat kann dat néideg sinn? D'Fro ass komplex a philosophesch, et ass besser mat enger Geschicht ze äntweren datt iergendwéi en Auto-Scaler op Powershell gouf deen d'Grenzbedéngungen net kontrolléiert huet => méi VMs goufen erstallt wéi néideg => de Client huet méi Sue wéi geplangt. Dëst ass net ganz agreabel, awer et wier ganz méiglech dëse Feeler a fréiere Stadien ze fangen.

Et kann ee sech froen, firwat komplex Infrastrukturen nach méi komplex maachen? Tester fir Infrastruktur, grad wéi fir Code, sinn net iwwer Vereinfachung, mee iwwer ze wëssen wéi Är Infrastruktur soll funktionnéieren.

IaC Test Pyramid

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

IaC Testen: statesch Analyse

Wann Dir déi ganz Infrastruktur gläichzäiteg ofsetzt a kuckt ob et funktionnéiert, kënnt Dir feststellen datt et vill Zäit brauch a vill Zäit brauch. Dofir muss d'Basis eppes sinn, wat séier funktionnéiert, et gëtt vill, an et deckt vill primitiv Plazen.

Bash ass komplizéiert

Loosst eis e trivial Beispill kucken. wielt all Dateien am aktuellen Verzeichnis a kopéiert op eng aner Plaz. Dat éischt wat an de Kapp kënnt:

for i in * ; do 
    cp $i /some/path/$i.bak
done

Wat wann et e Raum am Dateinumm ass? Gutt, ok, mir si schlau, mir wësse wéi Dir Zitater benotzt:

for i in * ; do cp "$i" "/some/path/$i.bak" ; done

Gutt gemaach? Nee! Wat wann et näischt am Verzeechnes ass, d.h. globbing wäert net schaffen.

find . -type f -exec mv -v {} dst/{}.bak ;

Elo gutt gemaach? Nee... Vergiess wat am Dateinumm ka stoen n.

touch x
mv x  "$(printf "foonbar")"
find . -type f -print0 | xargs -0 mv -t /path/to/target-dir

Statesch Analyse Tools

De Problem aus dem virege Schrëtt kéint gefaange ginn wa mir d'Zitater vergiess hunn, dofir ginn et vill Heelmëttel an der Natur Shellcheck, Am Allgemengen ginn et vill vun hinnen, a meeschtens kënnt Dir e Linter fir Äre Stack ënnert Ärem IDE fannen.

Sprooch
Instrument

ze brong
Shellcheck

Rubin
RuboCop

Python
pylint

Sprooch ass
Ansible Lint

IaC Testen: Eenheet Tester

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Wéi mir aus dem virege Beispill gesinn hunn, sinn d'Linters net allmächteg a kënnen net all d'Problemgebidder weisen. Weider, duerch Analogie mat Testen an der Softwareentwécklung, kënne mir Unitéitstester erënneren. Wat direkt an de Kapp kënnt ass schuet, junit, rspec, pytest. Awer wat maache mat Ansible, Chef, Salzstack an anerer wéi se?

Ganz am Ufank hu mir geschwat SOLID an datt eis Infrastruktur aus klenge Zillen besteet. Hir Zäit ass komm.

  1. D'Infrastruktur ass a kleng Zillen opgedeelt, zum Beispill, Ansible Rollen.
  2. Eng Aart vun Ëmfeld gëtt ofgesat, sief et Docker oder e VM.
  3. Mir applizéieren eis Ansible Roll op dëst Testëmfeld.
  4. Mir kontrolléieren ob alles funktionnéiert wéi mir erwaart hunn (mir lafen Tester).
  5. Mir entscheeden ok oder net ok.

IaC Testen: Eenheet Testen Tools

Fro, wat sinn Tester fir CFM? Dir kënnt einfach de Skript ausféieren, oder Dir kënnt fäerdeg Léisunge fir dëst benotzen:

CFM
Instrument

Sicht
Testinfra

Kapp
Inspektioun

Kapp
Serverspec

Salzstack
Goss

Beispill fir testinfra, kontrolléieren datt Benotzer test1, test2 existéieren a sinn an engem Grupp 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

Wat fir ze wielen? D'Fro ass komplex an zweedeiteg, hei ass e Beispill vun Ännerunge vu Projeten op github fir 2018-2019:

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

IaC Test Kaderen

D'Fro stellt sech: wéi et alles zesummen ze setzen an ze starten? Kann huelt et a maacht et selwer wann et eng genuch Zuel vun Ingenieuren. Oder Dir kënnt fäerdeg Léisungen huelen, obwuel et net vill vun hinnen sinn:

CFM
Instrument

Sicht
Molekül

Kapp
Kichen Test

Terraform
Terratest

Beispill vun Ännerungen an Projeten op github fir 2018-2019:

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Molekül vs. Testkichen

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Am Ufank hu mir probéiert Testkitchen ze benotzen:

  1. Erstellt e VM parallel.
  2. Ansible Rollen uwenden.
  3. Run Inspektioun.

Fir 25-35 Rollen huet et 40-70 Minutten geschafft, wat laang war.

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Den nächste Schrëtt war den Iwwergank op Jenkins / Docker / Ansible / Molekül. Idiologesch ass alles d'selwecht

  1. Lint Spillbicher.
  2. Stellt d'Rollen op.
  3. Container starten
  4. Ansible Rollen uwenden.
  5. Testinfra lafen.
  6. Iwwerpréift Idempotenz.

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Linting fir 40 Rollen an Tester fir eng Dosen ugefaang ongeféier 15 Minutten ze huelen.

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Wat ze wielen hänkt vu ville Faktoren of, wéi de Stack benotzt, Expertise am Team, etc. hei entscheet jiddereen fir sech wéi d'Unit Testing Fro zougemaach gëtt

IaC Testen: Integratioun Tester

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

De nächste Schrëtt an der Infrastrukturtestpyramide wäert Integratiounstester sinn. Si sinn ähnlech wéi Eenheetstester:

  1. D'Infrastruktur ass a kleng Zillen opgedeelt, zum Beispill Ansible Rollen.
  2. Eng Aart vun Ëmfeld gëtt ofgesat, sief et Docker oder e VM.
  3. Fir dëst Test Ëmfeld gëllen vill Ansible Rollen.
  4. Mir kontrolléieren ob alles funktionnéiert wéi mir erwaart hunn (mir lafen Tester).
  5. Mir entscheeden ok oder net ok.

Grof geschwat, iwwerpréift mir d'Performance vun engem individuellen Element vum System net wéi an Eenheetstester, mir kontrolléieren wéi de Server als Ganzt konfiguréiert ass.

IaC Testen: Enn bis Enn Tester

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

An der Spëtzt vun der Pyramid gi mir vun Enn bis Enn Tester begréisst. Déi. Mir kontrolléieren net d'Performance vun engem separaten Server, engem separaten Skript oder engem getrennten Zille vun eiser Infrastruktur. Mir kontrolléieren datt vill Server matenee verbonne sinn, eis Infrastruktur funktionnéiert wéi mir et erwaarden. Leider hunn ech nach ni fäerdeg Këschte Léisunge gesinn, wahrscheinlech well ... D'Infrastruktur ass dacks eenzegaarteg a schwéier ze schablonen an e Kader fir Testen ze kreéieren. Als Resultat kreéiert jiddereen seng eege Léisungen. Et gëtt eng Demande, awer et gëtt keng Äntwert. Dofir wäert ech Iech soen, wat et gëtt, fir anerer op gesond Gedanken ze drécken oder meng Nues ze reiwen, datt alles viru laanger Zäit virun eis erfonnt gouf.

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

E Projet mat enger räicher Geschicht. Et gëtt a groussen Organisatiounen benotzt a wahrscheinlech jidderee vun iech huet indirekt Weeër mat him gekräizt. D'Applikatioun ënnerstëtzt vill Datenbanken, Integratiounen, etc. Wësse wéi d'Infrastruktur kéint ausgesinn ass vill Docker-Compose Dateien, a wësse wéi eng Tester ze lafen a wéi engem Ëmfeld Jenkins ass.

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Dëse Schema huet zimlech laang geschafft, bis am Kader Fuerschung mir hunn net probéiert dëst op Openshift ze transferéieren. D'Container bleiwen d'selwecht, awer d'Startëmfeld huet geännert (Hallo erëm DRY).

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

D'Fuerschungsidee ass méi wäit gaang, an am Openshift hunn se sou eppes fonnt wéi APB (Ansible Playbook Bundle), wat Iech erlaabt Iech Wëssen ze packen wéi d'Infrastruktur an e Container z'installéieren. Déi. et gëtt e widderhuelenden, testbare Punkt vu Wëssen iwwer wéi d'Infrastruktur ofgebaut gëtt.

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

All dëst huet gutt geklongen bis mir an eng heterogen Infrastruktur gelaf sinn: mir brauche Windows fir Tester. Als Resultat ass d'Wësse vu wat, wou, wéi een deployéieren an testen ass an Jenkins.

Konklusioun

Wat ech geléiert hunn aus Testen 200 Linnen vun Infrastruktur Code

Infrastruktur wéi Code ass

  • Code am Repository.
  • Mënschlech Interaktioun.
  • Infrastruktur Testen.

lénks

Source: will.com

Setzt e Commentaire