Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Usa ka pamaagi Ang IaC (Infrastructure as Code) naglangkob dili lamang sa code nga gitipigan sa repository, apan usab sa mga tawo ug mga proseso nga naglibot niini nga code. Posible ba nga magamit pag-usab ang mga pamaagi gikan sa pagpalambo sa software hangtod sa pagdumala sa imprastraktura ug paghulagway? Maayo nga ideya nga ibutang kini nga ideya sa hunahuna samtang imong basahon ang artikulo.

Iningles nga bersyon

Kini usa ka transcript sa akong nga pasundayag sa DevopsConf 2019-05-28.

Mga slide ug video

Imprastraktura isip kasaysayan sa bash

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ibutang ta nga mianhi ka sa usa ka bag-ong proyekto, ug sila moingon kanimo: β€œKami adunay Imprastraktura isip Code". Sa pagkatinuod kini nahimo Imprastraktura isip kasaysayan sa bash o pananglitan Dokumentasyon isip kasaysayan sa bash. Kini usa ka tinuod nga sitwasyon, pananglitan, ang susama nga kaso gihulagway ni Denis Lysenko sa usa ka pakigpulong Giunsa pag-ilis ang tibuuk nga imprastraktura ug magsugod sa pagkatulog nga maayo, gisultihan niya kung giunsa nila nakuha ang usa ka managsama nga imprastraktura alang sa proyekto gikan sa kasaysayan sa bash.

Uban sa pipila ka tinguha, makaingon kita niana Imprastraktura isip kasaysayan sa bash kini sama sa code:

  1. reproducibility: Mahimo nimong kuhaon ang kasaysayan sa bash, ipadagan ang mga mando gikan didto, ug mahimo nimo, sa ingon, makakuha usa ka pagsumpo sa pagtrabaho ingon usa ka output.
  2. pag-bersiyon: nahibal-an nimo kung kinsa ang misulod ug kung unsa ang ilang gibuhat, pag-usab, dili kini usa ka kamatuoran nga kini magdala kanimo sa usa ka nagtrabaho nga pagsumpo sa exit.
  3. kasaysayan: ang istorya kung kinsa ang nagbuhat unsa. dili ra nimo magamit kung mawala nimo ang server.

Unsay akong buhaton?

Imprastraktura isip Code

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Bisan ang usa ka talagsaon nga kaso sama sa Imprastraktura isip kasaysayan sa bash mahimo nimo kini ibira pinaagi sa mga dunggan Imprastraktura isip Code, apan kung gusto namong buhaton ang usa ka butang nga mas komplikado kaysa sa maayo nga daan nga LAMP server, moabut kami sa konklusyon nga kini nga code kinahanglan nga usbon, usbon, pauswagon. Sunod gusto namon nga tagdon ang mga parallel tali sa Imprastraktura isip Code ug software development.

MAUGA

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Sa usa ka proyekto sa pagpalambo sa sistema sa pagtipig, adunay usa ka subtask matag karon ug unya i-configure ang SDS: Nagpagawas kami usa ka bag-ong pagpagawas - kini kinahanglan nga ilunsad alang sa dugang nga pagsulay. Ang buluhaton yano ra kaayo:

  • log in dinhi pinaagi sa ssh ug ipatuman ang command.
  • kopyaha ang file didto.
  • correct ang config dinhi.
  • sugdi ang serbisyo didto
  • ...
  • PABILIN!

Alang sa gihulagway nga lohika, ang bash labaw pa sa igo, labi na sa unang mga yugto sa proyekto, kung kini nagsugod pa. Kini dili daotan nga mogamit ka ug bash, apan sa paglabay sa panahon adunay mga hangyo sa pag-deploy sa usa ka butang nga susama, apan gamay nga lahi. Ang una nga butang nga naa sa hunahuna mao ang copy-paste. Ug karon aduna na kitay duha ka susama kaayo nga mga script nga halos pareho ra ang gibuhat. Sa paglabay sa panahon, ang gidaghanon sa mga script mitubo, ug nag-atubang kami sa kamatuoran nga adunay usa ka piho nga lohika sa negosyo alang sa pag-deploy sa usa ka pag-install nga kinahanglan nga i-synchronize tali sa lainlaing mga script, kini medyo komplikado.

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Kini nahimo nga adunay ingon nga praktis sama sa DRY (Do not Repeat Yourself). Ang ideya mao ang paggamit pag-usab sa kasamtangan nga code. Kini paminawon nga yano, apan wala kami makaabut niini dayon. Sa among kaso, kini usa ka banal nga ideya: ang pagbulag sa mga config gikan sa mga script. Mga. lohika sa negosyo kung giunsa ang pag-install gi-deploy nga gilain, gilain ang mga config.

SOLID para sa CFM

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Sa paglabay sa panahon ang proyekto mitubo ug natural nga pagpadayon mao ang pagtunga sa Ansible. Ang panguna nga hinungdan sa hitsura niini mao nga adunay kahanas sa team ug kana nga bash wala gidisenyo alang sa komplikado nga lohika. Ang Ansible nagsugod usab nga adunay komplikado nga lohika. Aron mapugngan ang komplikadong lohika nga mahimong kagubot, adunay mga prinsipyo sa pag-organisar sa code sa pagpalambo sa software SOLID Usab, pananglitan, si Grigory Petrov sa taho nga "Ngano nga ang usa ka espesyalista sa IT nanginahanglan usa ka personal nga tatak" nagpatunghag pangutana nga ang usa ka tawo gidisenyo sa paagi nga mas dali alang kaniya ang pag-operate sa pipila nga mga sosyal nga entidad, sa pagpauswag sa software niini. mga butang. Kon atong hiusahon kining duha ka ideya ug ipadayon ang pagpalambo niini, atong mamatikdan nga mahimo usab natong gamiton SOLID aron mas sayon ​​ang pagmentinar ug pag-usab niini nga lohika sa umaabot.

Ang Prinsipyo sa Usa ka Responsibilidad

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ang matag klase naghimo lamang og usa ka buluhaton.

Dili kinahanglan nga isagol ang code ug maghimo monolithic divine spaghetti monsters. Ang imprastraktura kinahanglan nga naglangkob sa yano nga mga tisa. Kini nahimo nga kung imong gibahin ang Ansible nga playbook sa gagmay nga mga piraso, basaha ang Ansible nga mga tahas, nan kini dali nga mapadayon.

Ang Bukas nga Sirado nga Prinsipyo

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Bukas/sirado nga prinsipyo.

  • Bukas sa extension: nagpasabot nga ang kinaiya sa usa ka entidad mahimong mapalapdan pinaagi sa paghimo og bag-ong mga tipo sa entidad.
  • Sirado aron mabag-o: Ingon usa ka sangputanan sa pagpalapad sa pamatasan sa usa ka entidad, wala’y mga pagbag-o nga kinahanglan himuon sa code nga naggamit sa mga entidad.

Sa sinugdan, gipakatap namo ang imprastraktura sa pagsulay sa mga virtual machine, apan tungod sa kamatuoran nga ang lohika sa negosyo sa deployment lahi sa pagpatuman, gidugang namo ang paglansad sa baremetall nga walay problema.

Ang Liskov Substitution nga Prinsipyo

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ang prinsipyo sa pagpuli ni Barbara Liskov. Ang mga butang sa usa ka programa kinahanglan nga mapulihan sa mga higayon sa ilang mga subtype nga wala usba ang husto nga pagpatuman sa programa

Kung tan-awon nimo kini nga mas lapad, dili kini usa ka bahin sa bisan unsang partikular nga proyekto nga mahimong magamit didto SOLID, kini kasagaran mahitungod sa CFM, pananglitan, sa laing proyekto gikinahanglan ang pag-deploy sa usa ka boxed Java nga aplikasyon sa ibabaw sa nagkalain-laing Java, mga server sa aplikasyon, mga database, OS, ug uban pa. Gamit kini nga pananglitan, akong hisgotan ang dugang nga mga prinsipyo SOLID

Sa among kaso, adunay usa ka kasabutan sulod sa team sa imprastraktura nga kung among gi-install ang imbjava o oraclejava nga papel, nan kami adunay usa ka java binary executable. Kini gikinahanglan tungod kay Ang mga tahas sa upstream nagdepende sa kini nga pamatasan; gipaabut nila ang java. Sa samang higayon, kini nagtugot kanato sa pag-ilis sa usa ka java nga pagpatuman/bersyon sa lain nga walay pagbag-o sa aplikasyon deployment logic.

Ang problema dinhi nahimutang sa kamatuoran nga imposible nga ipatuman kini sa Ansible, ingon nga resulta diin ang pipila ka mga kasabutan makita sulod sa team.

Ang Interface Segregation nga Prinsipyo

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Prinsipyo sa pagbulag sa interface: "Daghang mga interface nga piho sa kliyente mas maayo kaysa usa ka interface sa kinatibuk-ang katuyoan.

Sa sinugdan, gisulayan namon nga ibutang ang tanan nga mga pagbag-o sa pag-deploy sa aplikasyon sa usa ka Ansible nga playbook, apan lisud nga suportahan, ug ang pamaagi kung kami adunay usa ka eksternal nga interface nga gitakda (gipaabut sa kliyente ang port 443), unya ang usa ka imprastraktura mahimong ma-assemble gikan sa indibidwal. mga tisa alang sa usa ka piho nga pagpatuman.

Ang Dependency Inversion nga Prinsipyo

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ang prinsipyo sa pagsalig sa pagsalig. Ang mga module sa mas taas nga lebel kinahanglan dili magdepende sa mga module sa ubos nga lebel. Ang duha ka matang sa modules kinahanglang magdepende sa abstraction. Ang mga abstraction kinahanglan dili magdepende sa mga detalye. Ang mga detalye kinahanglan magdepende sa mga abstraction.

Dinhi ang pananglitan ibase sa usa ka antipattern.

  1. Usa sa mga kustomer adunay usa ka pribado nga panganod.
  2. Nag-order kami og mga virtual machine sulod sa panganod.
  3. Apan tungod sa kinaiyahan sa panganod, ang pag-deploy sa aplikasyon nahigot kung diin ang hypervisor ang VM naa.

Mga. Ang taas nga lebel nga lohika sa pagdeploy sa aplikasyon nag-agay uban ang mga dependency sa ubos nga lebel sa hypervisor, ug kini nagpasabut nga mga problema kung gigamit pag-usab kini nga lohika. Ayaw pagbuhat niini nga paagi.

interaction

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ang imprastraktura isip code dili lamang mahitungod sa code, kondili mahitungod usab sa relasyon tali sa code ug sa mga tawo, mahitungod sa mga interaksyon tali sa mga developers sa imprastraktura.

Bus factor

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ibutang ta nga naa kay Vasya sa imong proyekto. Nahibal-an ni Vasya ang tanan bahin sa imong imprastraktura, unsa ang mahitabo kung kalit nga mawala si Vasya? Kini usa ka tinuod nga kahimtang, tungod kay mahimo siyang maigo sa usa ka bus. Usahay mahitabo. Kung kini mahitabo ug ang kahibalo bahin sa code, ang istruktura niini, kung giunsa kini molihok, ang mga pagpakita ug mga password wala ipang-apod-apod sa grupo, nan mahimo nimong masugatan ang daghang dili maayo nga mga sitwasyon. Aron maminusan kini nga mga peligro ug ipanghatag ang kahibalo sa sulod sa team, mahimo nimong gamiton ang lainlaing mga pamaagi

Pagpares sa Devopsing

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Dili ingon isip usa ka joke, nga ang mga admin nag-inom og beer, nag-ilis sa mga password, ug usa ka analogue sa pares nga programming. Mga. duha ka mga inhenyero naglingkod sa usa ka kompyuter, usa ka keyboard ug magsugod sa pag-set up sa imong imprastraktura nga magkauban: pag-set up sa usa ka server, pagsulat sa usa ka Ansible nga papel, ug uban pa. Nindot kini paminawon, apan wala kini nagtrabaho alang kanamo. Apan ang mga espesyal nga kaso niini nga praktis nagtrabaho. Ang usa ka bag-ong empleyado moabut, ang iyang magtutudlo naghimo sa usa ka tinuud nga buluhaton kauban niya, nagtrabaho ug nagbalhin sa kahibalo.

Ang laing espesyal nga kaso mao ang tawag sa insidente. Sa panahon sa usa ka problema, usa ka grupo sa mga naa sa katungdanan ug sa mga nalambigit magtigum, usa ka lider ang gitudlo, nga nag-ambit sa iyang screen ug nagpahayag sa tren sa hunahuna. Ang ubang mga partisipante nagsunod sa mga hunahuna sa lider, espiya sa mga limbong gikan sa console, susiha nga wala sila'y nawala nga linya sa log, ug pagkat-on og bag-ong mga butang mahitungod sa sistema. Kini nga pamaagi mas kanunay nga nagtrabaho kaysa dili.

Pagsusi sa Code

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Sa tinuud, mas epektibo ang pagsabwag sa kahibalo bahin sa imprastraktura ug kung giunsa kini molihok gamit ang pagrepaso sa code:

  • Ang imprastraktura gihulagway pinaagi sa code sa repository.
  • Ang mga pagbag-o mahitabo sa usa ka lahi nga sanga.
  • Atol sa usa ka hangyo sa paghiusa, imong makita ang delta sa mga pagbag-o sa imprastraktura.

Ang highlight dinhi mao nga ang mga tigrepaso gipili nga tagsa-tagsa, sumala sa usa ka iskedyul, i.e. uban sa pipila ka matang sa kalagmitan nga mosaka ka sa usa ka bag-ong piraso sa imprastraktura.

estilo sa code

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Sa paglabay sa panahon, ang mga away nagsugod sa pagpakita sa panahon sa mga pagsusi, tungod kay ... Ang mga reviewer adunay kaugalingong estilo ug ang rotation sa mga reviewer nagbutang kanila og lain-laing mga estilo: 2 ka espasyo o 4, camelCase o snake_case. Dili mahimo nga ipatuman dayon kini.

  • Ang unang ideya mao ang pagrekomendar sa paggamit sa linter, human sa tanan, ang tanan usa ka engineer, ang tanan maalamon. Apan ang lainlaing mga editor, OS, dili kombenyente
  • Kini nahimong usa ka bot nga misulat sa paghinay sa matag problema nga pasalig ug gilakip ang linter output. Apan sa kadaghanan nga mga kaso adunay mas importante nga mga butang nga buhaton ug ang code nagpabilin nga wala ma-fix.

Green Build Master

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Milabay ang panahon, ug nakahinapos na mi nga ang commit nga dili makapasar sa pipila ka mga pagsulay dili itugot sa master. Voila! Nag-imbento kami sa Green Build Master, nga gipraktis sa software development sa dugay nga panahon:

  • Ang pag-uswag nagpadayon sa usa ka lahi nga sanga.
  • Nagdagan ang mga pagsulay sa kini nga thread.
  • Kung mapakyas ang mga pagsulay, ang code dili himuon nga master.

Sakit kaayo ang paghimo niini nga desisyon, tungod kay... nagpahinabog daghang kontrobersiya, apan takus kini, tungod kay... Ang mga review nagsugod sa pagdawat sa mga hangyo alang sa mga panagsama nga walay mga kalainan sa estilo, ug sa paglabay sa panahon ang gidaghanon sa mga problema nga mga dapit nagsugod sa pagkunhod.

Pagsulay sa IaC

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Dugang sa pagsusi sa estilo, mahimo nimong gamiton ang ubang mga butang, pananglitan, aron masusi nga ang imong imprastraktura mahimo nga ma-deploy. O susiha nga ang mga pagbag-o sa imprastraktura dili mosangpot sa pagkawala sa salapi. Ngano kaha nga gikinahanglan kini? Ang pangutana komplikado ug pilosopikal, mas maayo nga tubagon sa usa ka istorya nga sa usa ka paagi adunay usa ka auto-scaler sa Powershell nga wala magsusi sa mga kondisyon sa utlanan => daghang mga VM ang gibuhat kaysa gikinahanglan => ang kliyente migasto og mas daghang salapi kaysa giplano. Dili kaayo kini makapahimuot, apan posible nga makuha kini nga sayup sa nauna nga mga yugto.

Mahimong mangutana ang usa, nganong gihimong mas komplikado pa ang komplikadong imprastraktura? Ang mga pagsulay alang sa imprastraktura, sama sa code, dili bahin sa pagpayano, apan bahin sa pagkahibalo kung giunsa molihok ang imong imprastraktura.

IaC Testing Pyramid

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Pagsulay sa IaC: Static Analysis

Kung imong i-deploy ang tibuuk nga imprastraktura sa usa ka higayon ug susihon kung kini molihok, mahimo nimong makita nga nagkinahanglag daghang oras ug nanginahanglan daghang oras. Busa, ang basehan kinahanglan nga usa ka butang nga dali nga molihok, adunay daghan niini, ug kini naglangkob sa daghang mga primitive nga mga lugar.

Lisud ang Bash

Atong tan-awon ang usa ka gamay nga pananglitan. pilia ang tanang mga file sa kasamtangan nga direktoryo ug kopyaha ngadto sa laing lokasyon. Ang unang butang nga moabut sa hunahuna:

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

Unsa kaha kung adunay luna sa ngalan sa file? Aw, ok, maalamon kami, nahibal-an namon kung unsaon paggamit ang mga kinutlo:

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

Maayong pagkabuhat? Dili! Unsa kaha kung wala sa direktoryo, i.e. dili molihok ang globbing.

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

Maayong pagkabuhat karon? Dili... Nakalimot kung unsay naa sa file name n.

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

Mga gamit sa static nga pagtuki

Ang problema gikan sa miaging lakang mahimong madakpan kung nakalimtan namon ang mga kinutlo, tungod niini adunay daghang mga tambal sa kinaiyahan Shellcheck, sa kinatibuk-an adunay daghan niini, ug lagmit makakita ka og linter alang sa imong stack ubos sa imong IDE.

Pinulongan
Galamiton

bash
Shellcheck

Ruby
RuboCop

python
pylint

ansible
Ansible Lint

Pagsulay sa IaC: Mga Pagsulay sa Yunit

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Sama sa among nakita gikan sa miaging pananglitan, ang mga linter dili makagagahum sa tanan ug dili makatudlo sa tanan nga mga lugar nga adunay problema. Dugang pa, pinaagi sa pagtandi sa pagsulay sa pagpalambo sa software, mahinumduman nato ang mga pagsulay sa yunit. Ang naa dayon sa hunahuna mao sunit, junit, rspec, pytest. Apan unsa ang buhaton sa ansible, chef, saltstack ug uban pa nga sama nila?

Sa sinugdanan pa lang nagstorya mi SOLID ug nga ang atong imprastraktura kinahanglan nga naglangkob sa gagmay nga mga tisa. Miabot na ang ilang panahon.

  1. Ang imprastraktura gibahin sa gagmay nga mga tisa, pananglitan, Ansible nga mga tahas.
  2. Usa ka matang sa palibot ang gipakatap, kini man docker o usa ka VM.
  3. Among gipadapat ang among Ansible nga papel niini nga palibot sa pagsulay.
  4. Gisusi namon nga ang tanan nagtrabaho sama sa among gipaabut (nagdagan kami mga pagsulay).
  5. Mag decide mi nga ok or dili ok.

Pagsulay sa IaC: Mga himan sa Pagsulay sa Unit

Pangutana, unsa ang mga pagsulay alang sa CFM? Mahimo nimong ipadagan ang script, o mahimo nimong gamiton ang mga andam nga solusyon alang niini:

cfm
Galamiton

Ansible
Testinfra

ulo
Si Inspec

ulo
Serverspec

saltstack
Tsismis

Pananglitan para sa testinfra, pagsusi nga tiggamit test1, test2 anaa ug anaa sa usa ka grupo 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

Unsa ang pilion? Ang pangutana komplikado ug dili klaro, ania ang usa ka pananglitan sa mga pagbag-o sa mga proyekto sa github alang sa 2018-2019:

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Mga balangkas sa IaC Testing

Ang pangutana mitungha: unsaon paghiusa ang tanan ug paglansad niini? Mahimo kuhaa ug buhata kini sa imong kaugalingon kung adunay igo nga gidaghanon sa mga inhenyero. O mahimo nimong kuhaon ang mga andam nga solusyon, bisan kung dili kaayo daghan niini:

cfm
Galamiton

Ansible
Molekyul

ulo
Pagsulay sa Kusina

Terraform
Terratest

Pananglitan sa mga pagbag-o sa mga proyekto sa github alang sa 2018-2019:

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Molekul vs. Testkitchen

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Sa sinugdan kami gisulayan gamit ang testkitchen:

  1. Paghimo usa ka VM nga managsama.
  2. Ibutang ang Ansible nga mga tahas.
  3. Pagdagan inspeksyon.

Alang sa 25-35 nga mga tahas nagtrabaho kini 40-70 minuto, nga taas.

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ang sunod nga lakang mao ang pagbalhin sa jenkins / docker / ansible / molekula. Sa idiologically ang tanan managsama

  1. Lint nga mga playbook.
  2. Linya sa mga papel.
  3. Ilunsad ang sudlanan
  4. Ibutang ang Ansible nga mga tahas.
  5. Dagan ang testingfra.
  6. Susiha ang pagka-impotency.

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ang linting alang sa 40 nga mga tahas ug mga pagsulay alang sa usa ka dosena nagsugod sa mga 15 minuto.

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Unsa ang pilion nagdepende sa daghang mga hinungdan, sama sa stack nga gigamit, kahanas sa team, ug uban pa. dinhi ang tanan nagdesisyon alang sa ilang kaugalingon kung giunsa pagsira ang pangutana sa pagsulay sa Unit

Pagsulay sa IaC: Mga Pagsulay sa Paghiusa

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ang sunod nga lakang sa pyramid sa pagsulay sa imprastraktura mao ang mga pagsulay sa panagsama. Parehas sila sa mga pagsulay sa Unit:

  1. Ang imprastraktura gibahin sa gagmay nga mga tisa, pananglitan Ansible nga mga tahas.
  2. Usa ka matang sa palibot ang gipakatap, kini man docker o usa ka VM.
  3. Alang niini nga pagsulay nga palibot magamit Daghan ug Mahimong mga tahas.
  4. Gisusi namon nga ang tanan nagtrabaho sama sa among gipaabut (nagdagan kami mga pagsulay).
  5. Mag decide mi nga ok or dili ok.

Sa halos pagsulti, wala namo gisusi ang pasundayag sa usa ka indibidwal nga elemento sa sistema sama sa mga pagsulay sa yunit, among gisusi kung giunsa ang pag-configure sa server sa kinatibuk-an.

Pagsulay sa IaC: Katapusan hangtod Katapusan nga mga Pagsulay

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Sa ibabaw sa piramide kita gitimbaya sa End to End nga mga pagsulay. Mga. Wala namo gisusi ang performance sa usa ka bulag nga server, usa ka bulag nga script, o usa ka bulag nga brick sa among imprastraktura. Gisusi namon nga daghang mga server ang nagkonektar nga magkauban, ang among imprastraktura molihok sama sa among gipaabut. Ikasubo, wala pa ako nakakita nga andam nga gihimo nga mga solusyon sa kahon, tingali tungod kay ... Ang imprastraktura kasagaran talagsaon ug lisud i-template ug maghimo og balangkas alang sa pagsulay. Ingon usa ka sangputanan, ang matag usa naghimo sa ilang kaugalingon nga mga solusyon. Adunay usa ka panginahanglan, apan walay tubag. Busa, sultihan ko ikaw kung unsa ang naa aron maduso ang uban sa maayong mga hunahuna o kuskusin ang akong ilong sa kamatuoran nga ang tanan naimbento kaniadto sa wala pa kita.

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Usa ka proyekto nga adunay daghang kasaysayan. Gigamit kini sa dagkong mga organisasyon ug tingali ang matag usa kaninyo dili direkta nga nagtabok sa mga agianan niini. Gisuportahan sa aplikasyon ang daghang mga database, panagsama, ug uban pa. Ang pagkahibalo kung unsa ang hitsura sa imprastraktura mao ang daghang mga docker-compose nga mga file, ug nahibal-an kung unsang mga pagsulay ang pagdagan kung diin nga palibot ang Jenkins.

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Kini nga laraw nagtrabaho sa dugay nga panahon, hangtod sa sulod sa balangkas research wala namo gisulayan nga ibalhin kini sa Openshift. Ang mga sudlanan nagpabilin nga pareho, apan ang palibot sa paglansad nausab (hello DRY pag-usab).

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ang ideya sa panukiduki nagpadayon, ug sa openshift nakit-an nila ang usa ka butang sama sa APB (Ansible Playbook Bundle), nga nagtugot kanimo sa pag-pack sa kahibalo kung giunsa ang pag-deploy sa imprastraktura sa usa ka sudlanan. Mga. adunay usa ka masubli, masulayan nga punto sa kahibalo kung giunsa ang pag-deploy sa imprastraktura.

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Tanan kini maayo nga paminawon hangtod nga midagan kami sa usa ka heterogenous nga imprastraktura: kinahanglan namon ang Windows alang sa mga pagsulay. Ingon usa ka sangputanan, ang kahibalo kung unsa, asa, kung giunsa ang pag-deploy, ug pagsulay naa sa jenkins.

Panapos

Ang Akong Nakat-onan gikan sa Pagsulay sa 200 ka Linya sa Infrastructure Code

Ang imprastraktura sama sa Code

  • Code sa repositoryo.
  • Interaksyon sa tawo.
  • Pagsulay sa imprastraktura.

sumpay

Source: www.habr.com

Idugang sa usa ka comment