Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

Pati 1: Web/Android

Note: atik sa a se yon tradiksyon nan Larisi nan atik orijinal la "Zouti DevOps yo pa sèlman pou DevOps. "Bati enfrastrikti automatisation tès soti nan grafouyen." Sepandan, tout ilistrasyon, lyen, sitasyon ak tèm yo konsève nan lang orijinal la pou evite defòme siyifikasyon an lè yo tradui an Ris. Mwen swete w kontan etidye!

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

Kounye a, espesyalite DevOps la se youn nan demann ki pi plis nan endistri IT. Si w louvri sit popilè rechèch travay epi filtre pa salè, w ap wè travay ki gen rapò ak DevOps yo nan tèt lis la. Sepandan, li enpòtan pou w konprann ke sa sitou refere a yon pozisyon 'Senior', ki vle di ke kandida a gen yon wo nivo de ladrès, konesans nan teknoloji ak zouti. Sa a tou vini ak yon wo degre de responsablite ki asosye ak operasyon an san enteripsyon nan pwodiksyon an. Sepandan, nou te kòmanse bliye sa DevOps ye. Okòmansman, li pa t 'yon moun oswa depatman espesifik. Si n ap chèche definisyon tèm sa a, n ap jwenn anpil non bèl ak kòrèk, tankou metodoloji, pratik, filozofi kiltirèl, gwoup konsèp, elatriye.

Espesyalizasyon mwen an se yon enjenyè automatisation tès (enjenyè automatisation QA), men mwen kwè ke li pa ta dwe asosye sèlman ak ekri oto-tès oswa devlope achitekti kad tès. Nan 2020, konesans nan enfrastrikti automatisation esansyèl tou. Sa a pèmèt ou òganize pwosesis automatisation a tèt ou, soti nan fè tès yo bay rezilta bay tout moun ki gen enterè yo an akò ak objektif ou yo. Kòm yon rezilta, konpetans DevOps yo se yon bezwen pou fè travay la. Ak tout bagay sa yo bon, men, malerezman, gen yon pwoblèm (spoiler: atik sa a eseye senplifye pwoblèm sa a). Pwen an se ke DevOps difisil. Ak sa a se evidan, paske konpayi yo pa pral peye anpil pou yon bagay ki fasil fè ... Nan mond lan DevOps, gen yon gwo kantite zouti, tèm, ak pratik ki bezwen metrize. Sa a se espesyalman difisil nan kòmansman an nan yon karyè epi li depann de eksperyans nan akimile teknik.

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen
Sous: http://maximelanciauxbi.blogspot.com/2017/04/devops-tools.html

Isit la nou pral pwobableman fini ak pati entwodiksyon an epi konsantre sou objektif la nan atik sa a. 

Ki sa ki atik sa a sou?

Nan atik sa a, mwen pral pataje eksperyans mwen nan bati yon enfrastrikti automatisation tès. Gen anpil sous enfòmasyon sou Entènèt la sou divès zouti ak kouman yo sèvi ak yo, men mwen ta renmen gade yo piman nan yon kontèks automatisation. Mwen kwè ke anpil enjenyè automatisation yo abitye ak sitiyasyon an lè pa gen moun eksepte ou kouri tès yo devlope oswa sousye sou kenbe yo. Kòm yon rezilta, tès yo vin demode epi ou dwe pase tan mete ajou yo. Yon fwa ankò, nan kòmansman yon karyè, sa a kapab byen yon travay difisil: avèk sajès deside ki zouti ki ta dwe ede elimine yon pwoblèm bay, ki jan yo chwazi, konfigirasyon ak kenbe yo. Gen kèk tèsteur ki ale nan DevOps (moun) pou èd epi, ann onèt, apwòch sa a ap mache. Nan anpil ka sa a ka sèlman opsyon paske nou pa gen vizibilite nan tout depandans. Men, jan nou konnen, DevOps yo trè okipe, paske yo dwe reflechi sou tout enfrastrikti konpayi an, deplwaman, siveyans, mikwosèvis ak lòt travay menm jan an depann sou òganizasyon an / ekip la. Kòm se nòmalman ka a, automatisation se pa yon priyorite. Nan yon ka konsa, nou dwe eseye fè tout sa ki posib sou pati nou depi nan kòmansman rive nan fen. Sa a pral diminye depandans, akselere workflow, amelyore konpetans nou yo ak pèmèt nou wè pi gwo foto a nan sa k ap pase.

Atik la prezante zouti ki pi popilè ak popilè epi montre kouman pou itilize yo pou konstwi yon enfrastrikti automatisation etap pa etap. Chak gwoup reprezante pa zouti ki te teste atravè eksperyans pèsonèl. Men, sa pa vle di ou dwe sèvi ak menm bagay la. Zouti yo tèt yo pa enpòtan, yo parèt epi yo vin demode. Travay jeni nou an se konprann prensip debaz yo: poukisa nou bezwen gwoup zouti sa a ak ki pwoblèm travay nou ka rezoud avèk èd yo. Se poutèt sa nan fen chak seksyon mwen kite lyen ki mennen nan zouti ki sanble ke yo ka itilize nan òganizasyon w lan.

Ki sa ki pa nan atik sa a

Mwen repete yon lòt fwa ankò ke atik la se pa sou zouti espesifik, kidonk pa pral gen okenn foure nan kòd ki soti nan dokiman an ak deskripsyon nan kòmandman espesifik. Men, nan fen chak seksyon mwen kite lyen pou etid detaye.

Sa fèt paske: 

  • materyèl sa a trè fasil jwenn nan divès sous (dokimantasyon, liv, kou videyo);
  • si nou kòmanse ale pi fon, nou pral oblije ekri 10, 20, 30 pati nan atik sa a (pandan ke plan yo se 2-3);
  • Mwen jis pa vle gaspiye tan ou paske ou ta ka vle sèvi ak lòt zouti pou reyalize menm objektif yo.

Pratike

Mwen ta reyèlman renmen materyèl sa a itil pou chak lektè, epi li pa jis li ak bliye. Nan nenpòt etid, pratik se yon eleman trè enpòtan. Pou sa mwen te prepare Repozitwa GitHub ak enstriksyon etap pa etap sou kòman yo fè tout bagay soti nan grafouyen. Genyen tou devwa k ap tann pou w asire w ke ou pa kopye liy kòmandman w ap egzekite san tèt yo.

Plan

Etap
Teknoloji
Zouti

1
Kouri lokal (prepare tès demo entènèt / android epi kouri li lokalman) 
Node.js, Selenyòm, Appium

2
Sistèm kontwòl vèsyon 
ale

3
Containerization
Docker, kadriyaj Selenyòm, Selenoid (Web, Android)

4
CI/CD
Gitlab CI

5
Nwaj platfòm
Google Cloud Platfòm

6
Orchestration
Kubernetes

7
Enfrastrikti kòm yon kòd (IaC)
Terraform, Ansible

Estrikti chak seksyon

Pou kenbe naratif la klè, yo dekri chak seksyon dapre plan sa a:

  • brèf deskripsyon teknoloji a,
  • valè pou enfrastrikti automatisation,
  • ilistrasyon eta aktyèl la nan enfrastrikti a,
  • lyen pou etidye,
  • zouti ki sanble.

1. Fè tès lokalman

Brèf deskripsyon teknoloji a

Sa a se jis yon etap preparasyon pou kouri tès Demo yo lokalman epi verifye ke yo pase. Nan pati pratik la, yo itilize Node.js, men langaj pwogramasyon an ak platfòm yo pa enpòtan tou epi ou ka itilize sa yo ki itilize nan konpayi ou. 

Sepandan, kòm zouti automatisation, mwen rekòmande pou itilize Selenium WebDriver pou platfòm entènèt ak Appium pou platfòm Android, respektivman, paske nan pwochen etap yo nou pral sèvi ak imaj Docker ki pwepare pou travay espesyalman ak zouti sa yo. Anplis, refere li a kondisyon travay yo, zouti sa yo se pi plis nan demann nan mache a.

Kòm ou ka remake, nou konsidere sèlman tès entènèt ak Android. Malerezman, iOS se yon istwa konplètman diferan (mèsi Apple). Mwen planifye pou montre solisyon ak pratik ki gen rapò ak IOS nan pati k ap vini yo.

Valè pou enfrastrikti automatisation

Soti nan yon pèspektiv enfrastrikti, kouri lokalman pa bay okenn valè. Ou tcheke sèlman ke tès yo kouri sou machin lokal la nan navigatè lokal yo ak similatè. Men, nan nenpòt ka, sa a se yon pwen depa nesesè.

Ilistrasyon eta aktyèl la nan enfrastrikti

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

Lyen pou eksplore

Zouti menm jan an

  • nenpòt langaj pwogramasyon ou renmen, an konjonksyon avèk tès Selenium/Appium;
  • nenpòt tès;
  • nenpòt kourè tès.

2. Sistèm kontwòl vèsyon (Git)

Brèf deskripsyon teknoloji a

Li pa pral yon gwo revelasyon pou nenpòt moun si mwen di ke kontwòl vèsyon se yon pati trè enpòtan nan devlopman, tou de nan yon ekip ak endividyèlman. Ki baze sou divès sous, li an sekirite yo di ke Git se reprezantan ki pi popilè. Yon sistèm kontwòl vèsyon bay anpil avantaj, tankou pataje kòd, estoke vèsyon, restore nan branch anvan yo, siveyans istwa pwojè, ak sovgad. Nou pa pral diskite sou chak pwen an detay, kòm mwen sèten ke ou trè abitye ak li epi sèvi ak li nan travay chak jou ou. Men, si toudenkou pa, Lè sa a, mwen rekòmande pou pran poz lekti atik sa a epi ranpli espas sa a pi vit ke posib.

Valè pou enfrastrikti automatisation

Epi la a ou ka poze yon kesyon rezonab: "Poukisa l ap pale nou de Git? Tout moun konnen sa epi sèvi ak li tou de pou kòd devlopman ak pou kòd tès oto. Ou pral absoliman dwa, men nan atik sa a nou ap pale de enfrastrikti ak seksyon sa a aji kòm yon aperçu pou seksyon 7: "Enfrastrikti kòm Kòd (IaC)". Pou nou, sa vle di ke tout enfrastrikti a, ki gen ladan tès, yo dekri nan fòm lan nan kòd, kidonk nou ka aplike tou sistèm vèsyon ak jwenn benefis menm jan ak pou devlopman ak kòd automatisation.

Nou pral gade IaC an plis detay nan Etap 7, men menm kounye a ou ka kòmanse itilize Git lokalman lè w kreye yon depo lokal. Gwo foto a pral elaji lè nou ajoute yon depo aleka nan enfrastrikti a.

Ilistrasyon eta aktyèl la nan enfrastrikti

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

Lyen pou eksplore

Zouti menm jan an

3. Containerization (Docker)

Brèf deskripsyon teknoloji a

Pou montre kijan kontenèrizasyon te chanje règ jwèt la, ann tounen nan tan kèk deseni. Lè sa a, moun te achte ak itilize machin sèvè pou kouri aplikasyon yo. Men, nan pifò ka yo, resous ki nesesè yo pa t konnen davans. Kòm yon rezilta, konpayi yo te depanse lajan sou achte chè, serveurs pwisan, men kèk nan kapasite sa a pa te konplètman itilize.

Etap nan pwochen nan evolisyon te machin vityèl (VM), ki te rezoud pwoblèm nan nan gaspiye lajan sou resous ki pa itilize yo. Teknoloji sa a te fè li posib pou kouri aplikasyon pou endepandan youn ak lòt nan menm sèvè a, allocation espas konplètman izole. Men, malerezman, nenpòt teknoloji gen dezavantaj li yo. Kouri yon VM mande pou yon sistèm operasyon konplè, ki konsome CPU, RAM, depo epi, tou depann de eksplwatasyon an, depans lisans yo dwe pran an kont. Faktè sa yo afekte vitès chaje epi fè portabilite difisil.

Epi kounye a nou rive nan containerization. Yon fwa ankò, teknoloji sa a rezoud pwoblèm anvan an, kòm resipyan pa sèvi ak yon OS konplè, ki libere yon gwo kantite resous epi li bay yon solisyon rapid ak fleksib pou portabilite.

Natirèlman, teknoloji containerization pa gen anyen nouvo e li te premye prezante nan fen ane 70 yo. Nan epòk sa yo, yo te fè anpil rechèch, devlopman ak tantativ. Men, se Docker ki te adapte teknoloji sa a e ki te rann li fasil aksesib pou mas yo. Sèjousi, lè nou pale de resipyan, nan pifò ka nou vle di Docker. Lè nou pale de resipyan Docker, nou vle di resipyan Linux. Nou ka itilize sistèm Windows ak macOS pou kouri kontenè, men li enpòtan pou nou konprann ke nan ka sa a yon kouch adisyonèl parèt. Pou egzanp, Docker sou Mac an silans kouri resipyan andedan yon VM Linux ki lejè. Nou pral retounen nan sijè sa a lè nou diskite sou kouri android emulateur andedan resipyan, kidonk isit la gen yon nuans trè enpòtan ki bezwen diskite an plis detay.

Valè pou enfrastrikti automatisation

Nou te jwenn ke containerization ak Docker yo fre. Ann gade sa a nan yon kontèks automatisation, paske chak zouti oswa teknoloji bezwen rezoud yon pwoblèm. Se pou nou dekri pwoblèm yo evidan nan automatisation tès nan kontèks tès UI:

  • yon gwo kantite depandans lè w ap enstale Selenyòm ak espesyalman Appium;
  • pwoblèm konpatibilite ant vèsyon navigatè, simulateur ak chofè;
  • mank de espas izole pou navigatè / similatè, ki se espesyalman kritik pou kouri paralèl;
  • difisil pou jere epi kenbe si ou bezwen kouri 10, 50, 100 oswa menm 1000 navigatè an menm tan.

Men, depi Selenium se zouti automatisation ki pi popilè ak Docker se zouti kontenèr ki pi popilè, li pa ta dwe sipriz ke yon moun te eseye konbine yo pou kreye yon zouti pwisan pou rezoud pwoblèm ki mansyone anwo yo. Ann konsidere solisyon sa yo an plis detay. 

Selenyòm gri nan docker

Zouti sa a se pi popilè nan mond Selenyòm lan pou kouri plizyè navigatè sou plizyè machin ak jere yo nan yon sant santral. Pou kòmanse, ou bezwen enskri omwen 2 pati: Hub ak Node (yo). Hub se yon ne santral ki resevwa tout demann nan tès yo epi distribye yo nan nœuds ki apwopriye yo. Pou chak Node nou ka konfigirasyon yon konfigirasyon espesifik, pou egzanp, lè nou espesifye navigatè a vle ak vèsyon li yo. Sepandan, nou toujou bezwen pran swen chofè navigatè konpatib tèt nou epi enstale yo sou nœuds yo vle. Pou rezon sa a, kadriyaj Selenyòm pa itilize nan fòm pi li yo, eksepte lè nou bezwen travay ak navigatè ki pa ka enstale sou OS Linux. Pou tout lòt ka yo, yon solisyon siyifikativman fleksib ak kòrèk ta dwe itilize imaj Docker pou kouri Selenyòm kadriyaj Hub ak Nœuds. Apwòch sa a anpil senplifye jesyon ne, paske nou ka chwazi imaj nou bezwen an ak vèsyon konpatib navigatè ak chofè ki deja enstale.

Malgre revizyon negatif sou estabilite, espesyalman lè w ap kouri yon gwo kantite Nœuds nan paralèl, kadriyaj Selenyòm se toujou zouti ki pi popilè pou fè tès Selenyòm nan paralèl. Li enpòtan sonje ke divès kalite amelyorasyon ak modifikasyon nan zouti sa a yo toujou ap parèt nan sous louvri, ki konbat divès kalite blokaj.

Selenoid pou entènèt

Zouti sa a se yon dekouvèt nan mond lan nan Selenyòm kòm li travay soti nan bwat la e li te fè lavi a nan anpil enjenyè automatisation pi fasil. Premye a tout, sa a se pa yon lòt modifikasyon nan kadriyaj Selenyòm. Olye de sa, devlopè yo te kreye yon vèsyon konplètman nouvo nan Selenyòm Hub nan Golang, ki, konbine avèk imaj ki lejè Docker pou divès navigatè, te bay UN nan devlopman nan automatisation tès. Anplis, nan ka Selenyòm Grid, nou dwe detèmine tout navigatè ki nesesè yo ak vèsyon yo davans, ki se pa yon pwoblèm lè w ap travay ak yon sèl navigatè. Men, lè li rive plizyè navigatè sipòte, Selenoid se nimewo en solisyon gras a karakteristik 'navigatè sou demann' li yo. Tout sa ki nesesè nan men nou se telechaje imaj ki nesesè yo ak navigatè davans epi mete ajou dosye a konfigirasyon ak ki Selenoid kominike. Apre Selenoid resevwa yon demann nan tès yo, li pral otomatikman lanse veso a vle ak navigatè a vle. Lè tès la fini, Selenoid pral retire veso a, kidonk libere resous pou demann nan lavni. Apwòch sa a konplètman elimine pwoblèm nan byen koni nan 'degradasyon ne' ke nou souvan rankontre nan kadriyaj Selenyòm.

Men, Ay, Selenoid se toujou pa yon bal an ajan. Nou te resevwa karakteristik 'navigatè sou demann' la, men karakteristik 'resous sou demann' la toujou pa disponib. Pou itilize Selenoid, nou dwe deplwaye li sou pyès ki nan konpitè fizik oswa sou yon VM, ki vle di nou dwe konnen davans konbyen resous yo bezwen resevwa lajan. Mwen devine sa a se pa yon pwoblèm pou ti pwojè ki kouri 10, 20 oswa menm 30 navigatè an paralèl. Men, e si nou bezwen 100, 500, 1000 oswa plis? Li pa fè okenn sans pou kenbe ak peye pou anpil resous tout tan. Nan seksyon 5 ak 6 nan atik sa a, nou pral diskite sou solisyon ki pèmèt ou echèl, kidonk siyifikativman diminye depans konpayi yo.

Selenoid pou android

Apre siksè nan Selenoid kòm yon zouti automatisation entènèt, moun te vle yon bagay ki sanble pou android. Epi li te rive - Selenoid te lage ak sipò android. Soti nan yon pwen de vi itilizatè wo nivo, prensip operasyon an se menm jan ak automatisation entènèt. Sèl diferans lan se ke olye pou yo resipyan navigatè, Selenoid kouri resipyan Emulation android. Nan opinyon mwen, sa a se kounye a zouti ki pi pwisan gratis pou kouri tès Android nan paralèl.

Mwen reyèlman pa ta renmen pale sou aspè negatif yo nan zouti sa a, paske mwen reyèlman renmen li. Men, toujou, gen menm dezavantaj yo ki aplike nan automatisation entènèt epi ki asosye ak dekale. Anplis de sa, nou bezwen pale sou yon lòt limit ki ka vini kòm yon sipriz si nou ap mete zouti a pou premye fwa. Pou kouri imaj android, nou bezwen yon machin fizik oswa VM ak sipò Virtualization enbrike. Nan gid ki jan-a, mwen demontre ki jan yo pèmèt sa a sou yon Linux VM. Sepandan, si ou se yon itilizatè macOS epi ou vle deplwaye Selenoid lokalman, Lè sa a, sa a pa pral posib pou fè tès Android. Men, ou ka toujou kouri yon Linux VM lokalman ak 'nbrid Virtualization' configuré epi deplwaye Selenoid andedan.

Ilistrasyon eta aktyèl la nan enfrastrikti

Nan kontèks atik sa a, nou pral ajoute 2 zouti pou ilistre enfrastrikti a. Sa yo se kadriyaj Selenyòm pou tès entènèt ak Selenoid pou tès Android. Nan leson patikilye GitHub la, mwen pral montre w tou kijan pou itilize Selenoid pou fè tès entènèt. 

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

Lyen pou eksplore

Zouti menm jan an

  • Gen lòt zouti kontenè, men Docker se pi popilè a. Si ou vle eseye yon lòt bagay, kenbe nan tèt ou ke zouti nou te kouvri pou fè tès Selenyòm nan paralèl pa pral travay soti nan bwat la.  
  • Kòm deja di, gen anpil modifikasyon nan kadriyaj Selenyòm, pou egzanp, Zalenium.

4.CI/CD

Brèf deskripsyon teknoloji a

Pratik nan entegrasyon kontinyèl se byen popilè nan devlopman epi li se sou par ak sistèm kontwòl vèsyon yo. Malgre sa, mwen santi ke gen konfizyon nan tèminoloji. Nan paragraf sa a mwen ta renmen dekri 3 modifikasyon nan teknoloji sa a nan pwen de vi mwen. Sou entènèt la ou pral jwenn anpil atik ak entèpretasyon diferan, epi li se absoliman nòmal si opinyon ou diferan. Bagay ki pi enpòtan an se ke ou nan menm paj la ak kòlèg ou yo.

Kidonk, gen 3 tèm: CI - Entegrasyon kontinyèl, CD - Livrezon kontinyèl epi ankò CD - Deplwaman kontinyèl. (Anba a mwen pral itilize tèm sa yo nan lang angle). Chak modifikasyon ajoute plizyè etap adisyonèl nan tiyo devlopman ou. Men pawòl la kontinyèl (kontinyèl) se bagay ki pi enpòtan. Nan kontèks sa a, nou vle di yon bagay ki rive depi nan kòmansman rive nan fen, san entèripsyon oswa entèvansyon manyèl. Ann gade CI & CD ak CD nan kontèks sa a.

  • Entegrasyon kontinyèl sa a se premye etap evolisyon an. Apre w fin soumèt nouvo kòd nan sèvè a, nou espere resevwa fidbak rapid ke chanjman nou yo ok. Tipikman, CI gen ladann zouti analiz kòd estatik ak tès inite/entèn API. Sa pèmèt nou jwenn enfòmasyon sou kòd nou an nan kèk segond/minit.
  • Kontini Kontini se yon etap ki pi avanse kote nou fè tès entegrasyon/UI. Sepandan, nan etap sa a nou pa jwenn rezilta osi vit ke ak CI. Premyèman, kalite tès sa yo pran plis tan pou yo fini. Dezyèmman, anvan nou lanse, nou dwe deplwaye chanjman nou yo nan anviwònman tès/sèn nan. Anplis, si nou ap pale de devlopman mobil, Lè sa a, yon etap adisyonèl parèt yo kreye yon bati nan aplikasyon nou an.
  • Deplwaman kontinyèl sipoze ke nou otomatikman lage chanjman nou yo nan pwodiksyon si tout tès akseptasyon yo te pase nan etap anvan yo. Anplis de sa, apre etap la lage, ou ka configured plizyè etap, tankou kouri tès lafimen sou pwodiksyon ak kolekte mezi enterè yo. Deplwaman kontinyèl se sèlman posib ak bon pwoteksyon pa tès otomatik yo. Si nenpòt entèvansyon manyèl yo mande, ki gen ladan tès, Lè sa a, sa a pa ankò Kontini (kontinyèl). Lè sa a, nou ka di ke tiyo nou an konfòme sèlman ak pratik nan livrezon kontinyèl.

Valè pou enfrastrikti automatisation

Nan seksyon sa a, mwen ta dwe klarifye ke lè nou pale sou tès UI fen-a-fen, sa vle di ke nou ta dwe deplwaye chanjman nou yo ak sèvis ki asosye pou teste anviwònman yo. Entegrasyon kontinyèl - pwosesis la pa aplikab pou travay sa a epi nou dwe pran swen pou aplike pou pi piti pratik Delivre kontinyèl. Deplwaman kontinyèl tou fè sans nan kontèks tès UI si nou pral kouri yo nan pwodiksyon an.

Epi anvan nou gade ilistrasyon chanjman achitekti a, mwen vle di kèk mo sou GitLab CI. Kontrèman ak lòt zouti CI/CD, GitLab bay yon depo aleka ak anpil lòt karakteristik adisyonèl. Kidonk, GitLab plis pase CI. Li gen ladan jesyon kòd sous, jesyon Agile, tuyaux CI/CD, zouti pou antre ak koleksyon mezi soti nan bwat la. Achitekti GitLab la konsiste de Gitlab CI/CD ak GitLab Runner. Isit la se yon deskripsyon kout soti nan sit entènèt ofisyèl la:

Gitlab CI/CD se yon aplikasyon entènèt ki gen yon API ki estoke eta li nan yon baz done, jere pwojè/konstriksyon epi li bay yon koòdone itilizatè. GitLab Runner se yon aplikasyon ki trete bati. Li ka deplwaye separeman epi li travay ak GitLab CI/CD atravè yon API. Pou tès yo kouri ou bezwen tou de egzanp Gitlab ak Runner.

Ilistrasyon eta aktyèl la nan enfrastrikti

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

Lyen pou eksplore

Zouti menm jan an

5. Cloud platfòm

Brèf deskripsyon teknoloji a

Nan seksyon sa a nou pral pale sou yon tandans popilè yo rele 'nwaj piblik'. Malgre gwo benefis teknoloji Virtualization ak Containerization ki dekri pi wo a bay, nou toujou bezwen resous enfòmatik. Konpayi achte sèvè chè oswa lwe sant done, men nan ka sa a li nesesè fè kalkil (pafwa ireyèl) sou konbyen resous nou pral bezwen, si nou pral sèvi ak yo 24/7 ak pou ki rezon. Pou egzanp, pwodiksyon mande pou yon sèvè kouri XNUMX/XNUMX, men èske nou bezwen resous menm jan an pou fè tès deyò lè travay? Li tou depann de ki kalite tès yo te fè. Yon egzanp ta dwe tès chaj / estrès ke nou planifye fè pandan lè ki pa travay yo nan lòd yo jwenn rezilta jou kap vini an. Men, definitivman disponiblite sèvè XNUMX/XNUMX pa obligatwa pou tès otomatik bout-a-fen epi sitou pa pou anviwònman tès manyèl yo. Pou sitiyasyon sa yo, li ta bon pou jwenn otan resous nesesè sou demann, sèvi ak yo, epi sispann peye lè yo pa bezwen ankò. Anplis, li ta bon pou resevwa yo imedyatman lè w fè kèk klik sourit oswa kouri yon koup nan scripts. Se pou sa nwaj piblik yo itilize. Ann gade definisyon an:

“Nwaj piblik la defini kòm sèvis enfòmatik ki ofri pa founisè twazyèm pati sou Entènèt piblik la, ki fè yo disponib pou nenpòt moun ki vle itilize oswa achte yo. Yo ka gratis oswa vann sou demann, sa ki pèmèt kliyan yo peye sèlman pou chak itilizasyon pou sik CPU, depo, oswa Pleasant yo konsome."

Gen yon opinyon ke nwaj piblik yo chè. Men, lide kle yo se diminye depans konpayi yo. Kòm mansyone pi bonè, nwaj piblik pèmèt ou jwenn resous sou demann epi peye sèlman pou tan ou itilize yo. Epitou, pafwa nou bliye ke anplwaye yo resevwa salè, ak espesyalis yo tou yon resous chè. Li dwe pran an kont ke nwaj piblik yo fè sipò enfrastrikti pi fasil, ki pèmèt enjenyè yo konsantre sou travay ki pi enpòtan. 

Valè pou enfrastrikti automatisation

Ki resous espesifik nou bezwen pou tès UI bout-a-fen? Fondamantalman sa yo se machin vityèl oswa grap (nou pral pale sou Kubernetes nan pwochen seksyon an) pou kouri navigatè ak emulateur. Plis navigatè ak Emulation nou vle kouri ansanm, plis CPU ak memwa mande ak plis lajan nou dwe peye pou li. Kidonk, nwaj piblik yo nan yon kontèks automatisation tès pèmèt nou kouri yon gwo kantite (100, 200, 1000 ...) nan navigatè / emulateur sou demann, jwenn rezilta tès yo pi vit ke posib epi sispann peye pou sa yo ensanèman resous-entansif. pouvwa. 

Founisè nwaj ki pi popilè yo se Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP). Gid ki jan-a bay egzanp sou fason pou itilize GCP, men an jeneral li pa gen pwoblèm sa ou itilize pou travay automatisation. Yo tout bay apeprè menm fonksyonalite a. Tipikman, yo chwazi yon founisè, jesyon konsantre sou tout enfrastrikti konpayi an ak kondisyon biznis, ki se pi lwen pase sijè ki abòde lan atik sa a. Pou enjenyè automatisation, li pral pi enteresan yo konpare itilizasyon founisè nwaj yo ak itilizasyon platfòm nwaj yo espesyalman pou rezon tès, tankou Sauce Labs, BrowserStack, BitBar, ak sou sa. Se konsa, ann fè li tou! Dapre mwen, Sauce Labs se fèm tès nwaj ki pi popilè, se poutèt sa mwen te itilize li pou konparezon. 

GCP vs Sauce Labs pou rezon automatisation:

Ann imajine ke nou bezwen kouri 8 tès entènèt ak 8 tès Android ansanm. Pou sa nou pral sèvi ak GCP epi kouri 2 machin vityèl ak Selenoid. Sou premye a nou pral leve 8 kontenè ak navigatè. Sou dezyèm lan gen 8 resipyan ak emulateur. Ann pran yon gade nan pri yo:  

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen
Pou kouri yon sèl veso ak Chrome, nou bezwen n1-estanda-1 machin. Nan ka a nan android li pral n1-estanda-4 pou yon sèl Emulation. An reyalite, yon fason ki pi fleksib ak pi bon mache se mete valè itilizatè espesifik pou CPU / memwa, men nan moman sa a sa a pa enpòtan pou konparezon ak Laboratwa sòs.

Ak isit la yo se tarif yo pou itilize Laboratwa sòs:

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen
Mwen kwè ou te deja remake diferans lan, men mwen pral toujou bay yon tablo ak kalkil pou travay nou an:

Resous obligatwa yo
Chak mwa
K ap travay èdtan(8 a.m. - 8 p.m.)
K ap travay èdtan+ Preemptib

GCP pou entènèt
n1-estanda-1 x 8 = n1-estanda-8
$194.18
23 jou * 12h * 0.38 = $104.88 
23 jou * 12h * 0.08 = $22.08

Sòs Labs pou entènèt
Virtual Cloud8 tès paralèl
$1.559
-
-

GCP pou android
n1-estanda-4 x 8: n1-estanda-16
$776.72
23 jou * 12h * 1.52 = $419.52 
23 jou * 12h * 0.32 = $88.32

Sòs Labs pou android
Real Device Cloud 8 tès paralèl
$1.999
-
-

Kòm ou ka wè, diferans lan nan pri a se gwo, espesyalman si ou fè tès sèlman pandan yon peryòd travay douz èdtan. Men, ou ka koupe depans menm pi lwen si ou itilize machin preemptible. Kisa li ye?

Yon VM preemptible se yon egzanp ke ou ka kreye ak kouri nan yon pri anpil pi ba pase ka nòmal. Sepandan, Compute Engine ta ka sispann (preempt) ka sa yo si li mande aksè a resous sa yo pou lòt travay. Ka preemptib yo se depase kapasite Compute Engine, kidonk disponiblite yo varye selon itilizasyon.

Si aplikasyon ou yo toleran ak fay epi yo ka kenbe tèt ak posib preempsyon egzanp, Lè sa a, ka preemptible ka diminye depans Compute Engine ou yo anpil. Pou egzanp, travay pwosesis pakèt ka kouri sou ka preemptible. Si kèk nan ka sa yo fini pandan pwosesis la, travay la ralanti men li pa sispann konplètman. Ka preemptib yo konplete travay pwosesis pakèt ou yo san yo pa mete plis travay sou ka ki egziste deja yo epi san yo pa oblije ou peye tout pri pou lòt ka nòmal yo.

Epi li toujou pa fini! An reyalite, mwen sèten pa gen moun ki fè tès pou 12 èdtan san yon repo. Men, si se konsa, Lè sa a, ou ka otomatikman kòmanse epi sispann machin vityèl lè yo pa nesesè. Tan itilizasyon aktyèl la ka redwi a 6 èdtan pa jou. Lè sa a, peman an nan yon kontèks travay nou an ap diminye a $ 11 pa mwa pou 8 navigatè. Èske sa pa bèl bagay? Men, ak machin preemptible nou dwe fè atansyon ak prepare pou entèripsyon ak enstabilite, byenke sitiyasyon sa yo ka bay ak okipe nan lojisyèl. Li vo li!

Men, pa gen okenn fason mwen di 'pa janm sèvi ak fèm tès nwaj'. Yo gen yon kantite avantaj. Premye a tout, sa a se pa sèlman yon machin vityèl, men yon solisyon automatisation tès plen véritable ak yon seri fonksyonalite soti nan bwat la: aksè aleka, mòso bwa, Ekran, anrejistreman videyo, divès navigatè ak aparèy mobil fizik. Nan anpil sitiyasyon, sa a kapab yon altènatif esansyèl chik. Platfòm tès yo itil espesyalman pou automatisation IOS, lè nwaj piblik yo ka ofri sèlman sistèm Linux/Windows. Men, nou pral pale sou iOS nan atik sa yo. Mwen rekòmande toujou gade nan sitiyasyon an ak kòmanse nan travay yo: nan kèk ka li se pi bon mache ak pi efikas yo sèvi ak nwaj piblik, ak nan lòt platfòm tès yo definitivman vo lajan an depanse.

Ilistrasyon eta aktyèl la nan enfrastrikti

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

Lyen pou eksplore

Zouti menm jan an:

6. Òkestrasyon

Brèf deskripsyon teknoloji a

Mwen gen yon bon nouvèl - nou prèske nan fen atik la! Nan moman sa a, enfrastrikti automatisation nou an konsiste de tès entènèt ak Android, ke nou kouri atravè GitLab CI an paralèl, lè l sèvi avèk zouti Docker pèmèt: Selenyòm gri ak Selenoid. Anplis, nou itilize machin vityèl ki te kreye atravè GCP pou òganize resipyan ak navigatè ak emulateur. Pou diminye depans yo, nou kòmanse machin vityèl sa yo sèlman sou demann epi sispann yo lè tès yo pa fèt. Èske gen lòt bagay ki ka amelyore enfrastrikti nou an? Repons lan se wi! Rankontre Kubernetes (K8s)!

Premyèman, ann gade ki jan mo orchestration, cluster, ak Kubernetes yo gen rapò youn ak lòt. Nan yon wo nivo, orchestration se sistèm ki deplwaye ak jere aplikasyon yo. Pou automatisation tès, aplikasyon pou kontenè sa yo se kadriyaj Selenyòm ak Selenoid. Docker ak K8 yo konplete youn ak lòt. Premye a se itilize pou deplwaman aplikasyon, dezyèm lan pou òkestrasyon. Nan vire, K8s se yon grap. Travay gwoup la se sèvi ak VM kòm nœuds, ki pèmèt ou enstale divès fonksyonalite, pwogram ak sèvis nan yon sèl sèvè (gwoup). Si nenpòt nan Nœuds yo echwe, lòt Nœuds pral ranmase, ki asire operasyon san enteripsyon nan aplikasyon nou an. Anplis de sa, K8s gen fonksyonalite enpòtan ki gen rapò ak dekale, gras a ki nou otomatikman jwenn kantite lajan an pi bon nan resous ki baze sou chaj la ak mete limit.

An verite, manyèlman deplwaye Kubernetes nan grafouyen se pa yon travay trivial ditou. Mwen pral kite yon lyen ki mennen nan gid ki pi popilè "Kubernetes The Hard Way" epi si w enterese, ou ka pratike li. Men, erezman, gen metòd altènatif ak zouti. Fason ki pi fasil la se sèvi ak Google Kubernetes Engine (GKE) nan GCP, ki pral pèmèt ou jwenn yon gwoup pare-fè nan kèk klik. Mwen rekòmande itilize apwòch sa a pou kòmanse aprann, paske li pral pèmèt ou konsantre sou aprann kijan pou itilize K8 yo pou travay ou olye pou aprann kijan eleman entèn yo ta dwe entegre ansanm. 

Valè pou enfrastrikti automatisation

Ann pran yon gade nan kèk karakteristik enpòtan ke K8s yo bay:

  • deplwaman aplikasyon: lè l sèvi avèk yon gwoup milti-nœuds olye pou yo VMs;
  • Eskalad dinamik: diminye pri resous ki itilize sèlman sou demann;
  • oto-gerizon: rekiperasyon otomatik nan gous (kòm yon rezilta ki resipyan yo tou retabli);
  • deplwaye mizajou ak ranbousman chanjman san D': mete ajou zouti, navigatè ak emulateur pa entèwonp travay itilizatè aktyèl yo.

Men, K8s yo toujou pa yon bal an ajan. Pou w konprann tout avantaj ak limit yo nan kontèks zouti n ap konsidere yo (grid Selenyòm, Selenoid), nou pral yon ti tan diskite sou estrikti K8 yo. Cluster gen de kalite Nœuds: Nœud Mèt ak Nœud Travayè. Nœuds Mèt yo responsab pou jesyon, deplwaman ak desizyon orè. Nœuds travayè yo se kote aplikasyon yo lanse. Nœuds genyen tou yon anviwònman egzekisyon veso. Nan ka nou an, sa a se Docker, ki responsab pou operasyon ki gen rapò ak veso. Men, gen tou solisyon altènatif, pou egzanp containerd. Li enpòtan pou w konprann ke dekale oswa gerizon pwòp tèt ou pa aplike dirèkteman nan resipyan yo. Sa a se aplike lè w ajoute/diminye kantite gous, ki an vire gen kontenè (anjeneral yon sèl veso pou chak gous, men depann sou travay la ka gen plis). Yerachi wo nivo a konsiste de nœuds travayè yo, andedan kote yo gen gous, andedan ki resipyan yo leve.

Karakteristik dekale a se kle epi yo ka aplike nan tou de nœuds ki nan yon gwoup node-pool ak gous nan yon nœuds. Gen 2 kalite dekale ki aplike nan tou de nœuds ak gous. Premye kalite a se orizontal - dekale rive nan ogmante kantite nœuds / gous. Kalite sa a pi pito. Dezyèm kalite a se, kòmsadwa, vètikal. Echèl se te pote soti nan ogmante gwosè a nan nœuds / gous, epi yo pa nimewo yo.

Koulye a, ann gade nan zouti nou yo nan yon kontèks tèm ki anwo yo.

Selenyòm kadriyaj

Kòm mansyone pi bonè, kadriyaj Selenyòm se yon zouti trè popilè, epi li pa sipriz ke li te veso. Se poutèt sa, li pa sipriz ke kadriyaj Selenyòm ka deplwaye nan K8s. Ou ka jwenn yon egzanp sou fason pou fè sa nan depo ofisyèl K8s la. Kòm dabitid, mwen tache lyen nan fen seksyon an. Anplis de sa, gid ki jan-a montre ki jan fè sa nan Terraform. Genyen tou enstriksyon sou fason pou echèl kantite gous ki gen veso navigatè. Men, fonksyon dekale otomatik la nan yon kontèks K8s se toujou pa yon travay konplètman evidan. Lè m te kòmanse etidye, mwen pa t jwenn okenn konsèy oswa rekòmandasyon pratik. Apre plizyè etid ak eksperyans ak sipò ekip DevOps la, nou te chwazi apwòch pou ogmante kontenè ak navigatè ki nesesè yo andedan yon sèl gous, ki sitiye andedan yon sèl ne travayè. Metòd sa a pèmèt nou aplike estrateji nan dechèl orizontal nan nœuds nan ogmante kantite yo. Mwen espere ke sa a pral chanje nan lavni an epi nou pral wè pi plis ak plis deskripsyon nan pi bon apwòch ak solisyon pare-fè, espesyalman apre liberasyon an nan Selenyòm kadriyaj 4 ak yon achitekti entèn chanje.

Selenoid:

Deplwaman selenoid nan K8s se kounye a pi gwo desepsyon. Yo pa konpatib. Nan teyori, nou ka ogmante yon veso selenoid andedan yon gous, men lè Selenoid kòmanse lanse resipyan ak navigatè, yo ap toujou andedan gous la. Sa fè dekale enposib epi, kòm yon rezilta, travay Selenoid andedan yon gwoup pa pral diferan de travay andedan yon machin vityèl. Fen istwa.

Lalin:

Konnen kou boutèy sa a lè w ap travay ak Selenoid, devlopè yo te pibliye yon zouti ki pi pwisan ki rele Lalin. Zouti sa a te fèt okòmansman pou travay ak Kubernetes epi, kòm yon rezilta, karakteristik otoscaling la ka epi yo ta dwe itilize. Anplis, mwen ta di ke nan moman sa a li ye sèl la yon zouti nan mond Selenyòm lan, ki gen sipò pou gwoup K8 natif natal soti nan bwat la (pa disponib ankò, gade pwochen zouti ). Karakteristik kle nan Lalin ki bay sipò sa a se: 

Konplètman apatrid. Selenoid estoke nan memwa enfòmasyon sou sesyon navigatè yo ap kouri kounye a. Si pou kèk rezon pwosesis li yo aksidan - Lè sa a, tout sesyon kouri yo pèdi. Okontrè, Lalin pa gen okenn eta entèn epi li ka repwodui atravè sant done yo. Sesyon navigatè yo rete vivan menm si youn oswa plizyè kopi desann.

Se konsa, Lalin se yon solisyon gwo, men gen yon pwoblèm: li pa gratis. Pri a depann sou kantite sesyon yo. Ou ka sèlman kouri 0-4 sesyon pou gratis, ki pa itil patikilyèman. Men, apati senkyèm sesyon an, w ap oblije peye $5 pou chak. Sitiyasyon an ka diferan de konpayi an konpayi, men nan ka nou an, lè l sèvi avèk Lalin se initil. Kòm mwen dekri pi wo a, nou ka kouri VMs ak Selenyòm Grid sou demann oswa ogmante kantite nœuds nan gwoup la. Pou apeprè yon tiyo, nou lanse 500 navigatè epi nou sispann tout resous apre tès yo fini. Si nou te itilize Moon, nou ta dwe peye yon lòt 500 x 5 = $2500 pa mwa, kèlkeswa konbyen fwa nou fè tès yo. Ankò, mwen pa di pa sèvi ak Lalin. Pou travay ou yo, sa a kapab yon solisyon endispansab, pou egzanp, si ou gen anpil pwojè/ekip nan òganizasyon w epi ou bezwen yon gwo gwoup komen pou tout moun. Kòm toujou, mwen kite yon lyen nan fen a epi rekòmande pou fè tout kalkil ki nesesè yo nan kontèks travay ou a.

Kalisto: (Atansyon! Sa a se pa nan atik orijinal la epi li se sèlman nan tradiksyon Ris la)

Kòm mwen te di, Selenyòm se yon zouti trè popilè, ak jaden an IT ap devlope trè vit. Pandan m t ap travay sou tradiksyon an, yon nouvo zouti pwomèt ki rele Callisto te parèt sou entènèt la (bonjou Cypress ak lòt asasen Selenyòm). Li travay natif natal ak K8s epi li pèmèt ou kouri resipyan selenoid nan gous, distribye atravè nœuds. Tout bagay ap travay soti nan bwat la, ki gen ladan autoscaling. Kokenn, men li bezwen teste. Mwen te deja jere deplwaye zouti sa a epi kouri plizyè eksperyans. Men, li twò bonè pou tire konklizyon, apre yo fin resevwa rezilta sou yon distans ki long, petèt mwen pral fè yon revizyon nan atik nan lavni. Pou kounye a mwen kite sèlman lyen pou rechèch endepandan.  

Ilistrasyon eta aktyèl la nan enfrastrikti

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

Lyen pou eksplore

Zouti menm jan an

7. Enfrastrikti kòm Kòd (IaC)

Brèf deskripsyon teknoloji a

Epi kounye a nou rive nan dènye seksyon an. Tipikman, teknoloji sa a ak travay ki gen rapò yo pa responsablite nan enjenyè automatisation. E gen rezon pou sa. Premyèman, nan anpil òganizasyon, pwoblèm enfrastrikti yo anba kontwòl depatman DevOps ak ekip devlopman yo pa vrèman pran swen sa ki fè tiyo a travay ak ki jan tout bagay ki konekte ak li bezwen sipòte. Dezyèmman, an n onèt, pratik Infrastructure as Code (IaC) toujou pa adopte nan anpil konpayi. Men, li te definitivman vin tounen yon tandans popilè e li enpòtan pou eseye patisipe nan pwosesis, apwòch ak zouti ki asosye ak li. Oswa omwen rete ajou.

Ann kòmanse ak motivasyon pou itilize apwòch sa a. Nou te deja diskite ke pou fè tès nan GitlabCI, nou pral bezwen nan yon minimòm resous yo pou kouri Gitlab Runner. Ak kouri kontenè ak navigatè / emulateur, nou bezwen rezève yon VM oswa gwoup. Anplis resous tès yo, nou bezwen yon kantite siyifikatif kapasite pou sipòte devlopman, sèn, anviwònman pwodiksyon, ki gen ladan tou baz done, orè otomatik, konfigirasyon rezo, balans chaj, dwa itilizatè, ak sou sa. Pwoblèm kle a se efò ki nesesè pou sipòte tout bagay. Gen plizyè fason nou ka fè chanjman ak dewoule mizajou. Pou egzanp, nan yon kontèks GCP, nou ka itilize konsole UI nan navigatè a epi fè tout aksyon lè nou klike sou bouton. Yon altènatif ta dwe sèvi ak apèl API pou kominike avèk antite nwaj yo, oswa itilize sèvis piblik liy lòd gcloud pou fè manipilasyon yo vle. Men, ak yon vrèman gwo kantite antite diferan ak eleman enfrastrikti, li vin difisil oswa menm enposib fè tout operasyon manyèlman. Anplis, tout aksyon manyèl sa yo enkontwolab. Nou pa ka soumèt yo pou revizyon anvan ekzekisyon, sèvi ak yon sistèm kontwòl vèsyon, epi byen vit refè chanjman ki te mennen nan ensidan an. Pou rezoud pwoblèm sa yo, enjenyè te kreye ak kreye scripts bash/shell otomatik, ki pa pi bon pase metòd anvan yo, paske yo pa tèlman fasil pou byen vit li, konprann, kenbe ak modifye nan yon style pwosedi.

Nan atik sa a ak kijan pou gide, mwen itilize 2 zouti ki gen rapò ak pratik IaC. Sa yo se Terraform ak Ansible. Gen kèk moun ki kwè ke li pa fè okenn sans yo sèvi ak yo an menm tan an, depi fonksyonalite yo se menm jan ak yo ka ranplase. Men, reyalite a se ke okòmansman yo bay travay konplètman diferan. Ak lefèt ke zouti sa yo ta dwe konplete youn ak lòt te konfime nan yon prezantasyon jwenti pa devlopè ki reprezante HashiCorp ak RedHat. Diferans konsèp la se ke Terraform se yon zouti pwovizyon pou jere sèvè yo tèt yo. Pandan ke Ansible se yon zouti jesyon konfigirasyon ki gen travay se enstale, konfigirasyon ak jere lojisyèl sou serveurs sa yo.

Yon lòt karakteristik distenktif kle nan zouti sa yo se style la kodaj. Kontrèman ak bash ak Ansible, Terraform sèvi ak yon style deklaratif ki baze sou yon deskripsyon nan eta final la vle reyalize kòm yon rezilta nan ekzekisyon. Pou egzanp, si nou pral kreye 10 VM epi aplike chanjman yo atravè Terraform, Lè sa a, nou pral jwenn 10 VM. Si nou kouri script la ankò, pa gen anyen ki pral rive paske nou deja gen 10 VM, ak Terraform konnen sou sa paske li estoke eta aktyèl la nan enfrastrikti a nan yon dosye eta. Men, Ansible itilize yon apwòch pwosedi epi, si ou mande li pou kreye 10 VM, Lè sa a, sou premye lansman an nou pral jwenn 10 VM, menm jan ak Terraform. Men, apre rekòmanse nou pral deja gen 20 VMs. Sa a se diferans ki enpòtan. Nan style pwosedi, nou pa estoke eta aktyèl la epi tou senpleman dekri yon sekans etap ki dwe fèt. Natirèlman, nou ka jere divès sitiyasyon, ajoute plizyè chèk pou egzistans resous ak eta aktyèl la, men pa gen okenn pwen nan gaspiye tan nou ak mete efò nan kontwole lojik sa a. Anplis de sa, sa ogmante risk pou yo fè erè. 

Rezime tout sa ki anwo yo, nou ka konkli ke Terraform ak notasyon deklarasyon yo se yon zouti ki pi apwopriye pou pwovizyon sèvè. Men, li pi bon delege travay la nan jesyon konfigirasyon nan Ansible. Avèk sa soti nan wout la, an n gade nan ka itilize nan kontèks la nan automatisation.

Valè pou enfrastrikti automatisation

Sèl bagay enpòtan pou w konprann isit la se ke enfrastrikti automatisation tès la ta dwe konsidere kòm yon pati nan tout enfrastrikti konpayi an. Sa vle di ke tout pratik IaC yo dwe aplike globalman nan resous yo nan tout òganizasyon an. Ki moun ki responsab pou sa a depann sou pwosesis ou yo. Ekip DevOps la gen plis eksperyans nan pwoblèm sa yo, yo wè tout foto sa k ap pase. Sepandan, enjenyè QA yo plis patisipe nan pwosesis automatisation bilding ak estrikti tiyo a, ki pèmèt yo wè pi byen tout chanjman ki nesesè yo ak opòtinite pou amelyorasyon. Opsyon ki pi bon se travay ansanm, fè echanj konesans ak lide pou reyalize rezilta yo espere. 

Men kèk egzanp sou itilizasyon Terraform ak Ansible nan yon kontèks automatisation tès ak zouti nou te diskite anvan yo:

1. Dekri karakteristik ak paramèt ki nesesè nan VM ak grap lè l sèvi avèk Terraform.

2. Sèvi ak Ansible, enstale zouti ki nesesè pou fè tès yo: Docker, Selenoid, Selenyòm Grid epi telechaje vèsyon ki nesesè yo nan navigatè / emulateur.

3. Sèvi ak Terraform, dekri karakteristik VM kote GitLab Runner pral lanse.

4. Enstale GitLab Runner ak zouti ki nesesè yo lè l sèvi avèk Ansible, mete paramèt ak konfigirasyon.

Ilistrasyon eta aktyèl la nan enfrastrikti

Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

Lyen pou eksplore:

Zouti menm jan an

Ann rezime li!

Etap
Teknoloji
Zouti
Valè pou enfrastrikti automatisation

1
Kouri lokal
Node.js, Selenyòm, Appium

  • Zouti ki pi popilè pou entènèt ak mobil
  • Sipòte anpil lang ak platfòm (ki gen ladan Node.js)

2
Sistèm kontwòl vèsyon 
ale

  • Benefis menm jan ak kòd devlopman

3
Containerization
Docker, kadriyaj Selenyòm, Selenoid (Web, Android)

  • Kouri tès nan paralèl
  • Anviwònman izole
  • Senp, fleksib vèsyon amelyorasyon
  • Sispann dinamik resous ki pa itilize yo
  • Fasil yo mete kanpe

4
CI/CD
Gitlab CI

  • Tès yon pati nan tiyo a
  • Feedback rapid
  • Vizibilite pou tout konpayi/ekip la

5
Nwaj platfòm
Google Cloud Platfòm

  • Resous sou demann (nou peye sèlman lè sa nesesè)
  • Fasil pou jere ak mete ajou
  • Vizibilite ak kontwòl tout resous yo

6
Orchestration
Kubernetes
Nan kontèks resipyan ki gen navigatè/emulateur andedan gous:

  • Eskalad / oto dekale
  • Oto-geri
  • Mizajou ak rollbacks san entèripsyon

7
Enfrastrikti kòm yon kòd (IaC)
Terraform, Ansible

  • Benefis ki sanble ak enfrastrikti devlopman
  • Tout benefis ki genyen nan vèsyon kòd
  • Fasil pou fè chanjman epi kenbe
  • Totalman otomatize

Dyagram kat jeyografik: evolisyon enfrastrikti

etap 1: lokal
Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

etap 2: VCS
Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

etap 3: Containerization 
Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

etap 4: CI/CD 
Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

etap 5: Platfòm Cloud
Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

etap 6: Òkestrasyon
Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

etap 7: IaC
Zouti DevOps yo pa sèlman pou DevOps. Pwosesis la nan bati yon enfrastrikti automatisation tès soti nan grafouyen

Ki sa ki nan pwochen?

Se konsa, sa a se nan fen atik la. Men, an konklizyon, mwen ta renmen etabli kèk akò avèk ou.

De bò kote w
Kòm mwen te di nan kòmansman an, mwen ta renmen atik la sèvi ak pratik epi ede w aplike konesans yo te genyen nan travay reyèl. Mwen ajoute ankò lyen pou gid pratik.

Men, menm apre sa, pa sispann, pratike, etidye lyen ki enpòtan ak liv, chèche konnen ki jan li fonksyone nan konpayi ou, jwenn kote ki ka amelyore epi patisipe nan li. Bon chans!

Soti nan bò kote m '

Soti nan tit la ou ka wè ke sa a te sèlman premye pati a. Malgre lefèt ke li te tounen soti yo dwe byen gwo, sijè enpòtan yo toujou pa kouvri isit la. Nan dezyèm pati a, mwen planifye gade enfrastrikti automatisation nan yon kontèks IOS. Akòz restriksyon Apple yo genyen sou kouri similatè iOS sèlman sou sistèm macOS, seri solisyon nou an diminye. Pou egzanp, nou pa kapab sèvi ak Docker pou kouri similatè a oswa nyaj piblik yo pou kouri machin vityèl. Men, sa pa vle di ke pa gen okenn lòt altènativ. Mwen pral eseye kenbe ou ajou ak solisyon avanse ak zouti modèn!

Epitou, mwen pa te mansyone byen gwo sijè ki gen rapò ak siveyans. Nan Pati 3, mwen pral gade nan zouti ki pi popilè siveyans enfrastrikti ak ki done ak mezi yo konsidere.

Epi finalman. Nan tan kap vini an, mwen planifye lage yon kou videyo sou konstriksyon enfrastrikti tès ak zouti popilè. Kounye a, gen anpil kou ak konferans sou DevOps sou entènèt la, men tout materyèl yo prezante nan yon kontèks devlopman, pa tès automatisation. Sou pwoblèm sa a, mwen reyèlman bezwen fidbak sou si wi ou non yon kou sa yo pral enteresan ak valab pou kominote a nan tèsteur ak enjenyè automatisation. Mèsi davans!

Sous: www.habr.com

Add nouvo kòmantè