Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Sigana yén pamekar Terraform nawiskeun prakték pangsaéna anu lumayan pikeun damel sareng infrastruktur AWS. Ngan aya nuansa. Kana waktu, jumlah lingkungan nambahan, masing-masing mibanda fitur sorangan. Méh salinan tumpukan aplikasi muncul di daérah tatangga. Sareng kode Terraform kedah disalin sareng diédit sacara saksama dumasar kana sarat énggal atanapi janten salju salju.

Laporan kuring ngeunaan pola di Terraform pikeun merangan huru-hara sareng rutin manual dina proyék ageung sareng panjang.

video:

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Abdi 40, abdi parantos di IT salami 20 taun. Kuring parantos damel di Ixtens salami 12 taun. Kami kalibet dina ecommerce-disetir-pangwangunan. Sareng kuring parantos ngalaksanakeun prakték DevOps salami 5 taun.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Carita kuring bakal ngeunaan pangalaman kuring dina proyék di perusahaan anu namina kuring moal nyarios, nyumput di tukangeun perjanjian non-panyingkepan.

Angka dina slide dituduhkeun pikeun ngartos skala proyék. Sareng sadaya anu kuring bakal nyarios salajengna aya hubunganana sareng Amazon.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Kuring ngagabung proyék ieu 4 sababaraha taun ka pengker. Jeung refactoring infrastruktur éta dina ayunan pinuh sabab proyék geus tumuwuh. Sareng pola anu dianggo henteu cocog deui. Sareng tinangtukeun sadaya rencana rencanana tina proyék éta, éta diperyogikeun pikeun ngahasilkeun anu énggal.

Hatur nuhun ka Matvey, anu kamari ngawartoskeun kami naon anu lumangsung dina Dodo Pizza. Ieu naon anu lumangsung di dieu 4 sababaraha taun ka pengker.

Pamekar sumping sareng ngamimitian ngadamel kode infrastruktur.

Alesan anu paling atra naha ieu diperyogikeun nyaéta waktos ka pasar. Ieu diperlukeun pikeun mastikeun yén tim DevOps teu bottleneck salila rollout. Sareng diantara anu sanésna, Terraform sareng Wayang dianggo dina tingkat anu munggaran.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Terraform mangrupikeun proyék open source ti HashiCorp. Sareng pikeun anu henteu terang naon ieu, sababaraha slide salajengna.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Infrastruktur salaku kode hartosna urang tiasa ngajelaskeun infrastruktur urang sareng naroskeun sababaraha robot pikeun mastikeun yén urang nampi sumber daya anu dijelaskeun.

Salaku conto, urang peryogi mesin virtual. Kami bakal ngajelaskeun sareng nambihan sababaraha parameter anu diperyogikeun.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Saatos ieu, urang bakal ngonpigurasikeun aksés ka Amazon dina konsol. Sarta kami bakal ménta rencana Terraform. Rencana Terraform bakal nyarios: "Oke, urang tiasa ngalakukeun hal-hal ieu pikeun sumber anjeun." Sarta sahanteuna hiji sumberdaya bakal ditambahkeun. Sareng henteu aya parobihan anu dipiharep.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Sakali anjeun bahagia sareng sadayana, anjeun tiasa naroskeun Terraform pikeun nerapkeun sareng Terraform bakal nyiptakeun conto pikeun anjeun, sareng anjeun bakal nampi mesin virtual dina méga anjeun.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Salajengna proyék kami ngembang. Urang nambahkeun sababaraha parobahan aya. Urang ménta deui instansi, urang tambahkeun 53 éntri.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Sarta kami ngulang. Mangga rencanana. Urang tingali parobahan naon rencanana. Urang ngalamar. Sareng ieu kumaha infrastruktur urang tumbuh.

Terraform nganggo anu disebut file kaayaan. Nyaéta, sadaya parobihan anu ka Amazon disimpen dina file dimana unggal sumber anu anjeun jelaskeun, aya sumber anu saluyu anu didamel di Amazon. Ku kituna, nalika katerangan ngeunaan sumberdaya robah, Terraform terang persis naon anu kudu dirobah dina Amazon.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Berkas kaayaan ieu asalna ngan ukur file. Sareng kami simpen aranjeunna dina Git, anu henteu pikaresepeun pisan. Batur sok poho pikeun ngalakukeun parobahan, sarta loba konflik timbul.

Ayeuna kasebut nyaéta dimungkinkeun pikeun ngagunakeun backend, nyaéta Terraform dieusian di mana LIPI jeung ku nu konci file kaayaan kudu disimpen. Sarta Terraform sorangan bakal ngurus meunang file kaayaan ieu, ngalakonan sagala magic jeung nempatkeun deui hasil ahir.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Infrastruktur urang ngembang. Ieu kode kami. Sareng ayeuna urang henteu ngan ukur hoyong nyiptakeun mesin virtual, urang hoyong gaduh lingkungan uji.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Terraform ngamungkinkeun anjeun pikeun nyiptakeun hal sapertos modul, nyaéta, ngajelaskeun hal anu sami dina sababaraha folder.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Na, contona, dina nguji, nelepon modul ieu sarta meunang hal anu sarua sakumaha lamun urang geus dieksekusi Terraform nerapkeun dina modul sorangan. Pikeun nguji bakal aya kode ieu.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Pikeun produksi, urang tiasa ngirim sababaraha parobihan ka dinya, sabab dina nguji urang henteu peryogi instansi ageung; dina produksi, instansi ageung ngan ukur mangpaat.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Lajeng abdi bakal balik deui ka proyék. Éta mangrupikeun tugas anu sesah, infrastruktur anu direncanakeun ageung pisan. Sareng ieu kedah kumaha waé nempatkeun sadaya kode supados langkung gampang pikeun sadayana: boh pikeun anu ngalaksanakeun pangropéa dina kode ieu sareng pikeun anu ngarobih. Sareng direncanakeun yén pamekar naon waé tiasa angkat sareng ngalereskeun infrastruktur anu diperyogikeun pikeun bagian na tina platformna.

Ieu mangrupikeun tangkal diréktori anu disarankeun ku HashiCorp sorangan upami anjeun gaduh proyék ageung sareng masuk akal pikeun ngabagi sadayana infrastruktur kana sababaraha lembar leutik, sareng ngajelaskeun unggal potongan dina folder anu misah.

Ngabogaan perpustakaan éksténsif sumberdaya, anjeun tiasa nelepon kira hal anu sarua dina nguji sarta dina produksi.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Dina kasus urang, ieu henteu sapinuhna cocog, sabab tumpukan tés pikeun pamekar atanapi pikeun uji kedah kumaha waé langkung saderhana. Tapi kuring henteu hoyong ngaliwat polder sareng nerapkeunana dina sekuen anu diperyogikeun, sareng hariwang yén pangkalan data bakal naék, teras conto anu ngagunakeun database ieu bakal naék. Ku alatan éta, sadaya tés diluncurkeun tina hiji polder. modul sarua disebut aya, tapi sagalana geus rengse dina hiji ngajalankeun.

Terraform ngurus sagala katergantungan. Sarta eta salawasna nyiptakeun sumberdaya dina urutan ku kituna anjeun bisa meunangkeun alamat IP, contona, ti conto anyar dijieun, sarta meunang alamat IP ieu dina catetan route53.

Salaku tambahan, platformna ageung pisan. Sareng ngaluncurkeun tumpukan tés, sanaos sajam, sanaos 8 jam, mangrupikeun usaha anu mahal.

Sarta kami ngajadikeun otomatis hal ieu. Sarta Jenkins pakasaban diwenangkeun urang ngajalankeun tumpukan. Di jerona, perlu pikeun ngaluncurkeun pamundut tarik kalayan parobihan anu badé diuji ku pamekar, netepkeun sadaya pilihan, komponén, sareng dimensi anu diperyogikeun. Upami anjeunna hoyong nguji kinerja, maka anjeunna tiasa nyandak langkung seueur conto. Upami anjeunna ngan ukur kedah pariksa yén sababaraha bentuk dibuka, maka anjeunna tiasa ngamimitian dina upah minimum. Sareng ogé nunjukkeun naha klaster diperyogikeun atanapi henteu, jsb.

Lajeng Jenkins nyorong skrip cangkang, nu rada dirobah kode dina folder Terraform. Kuring ngaleungitkeun file anu teu perlu sareng nambihan file anu diperyogikeun. Lajeng kalawan hiji ngajalankeun Terraform nerapkeun tumpukan éta diangkat.

Teras aya léngkah-léngkah sanés anu kuring henteu hoyong lebet.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Kusabab kanyataan yén pikeun nguji kami peryogi langkung seueur pilihan tibatan dina produksi, kami kedah ngadamel salinan modul supados dina salinan ieu kami tiasa nambihan fitur anu diperyogikeun ngan ukur pikeun uji.

Sareng kajantenan yén dina uji coba kuring hoyong nguji parobihan anu antukna bakal di produksi. Tapi kanyataanna, hiji hal anu diuji, sarta rada béda dipaké dina produksi. Tur aya putus leutik dina pola yén dina produksi sagala parobahan diterapkeun ku tim operasi. Sareng sakapeung tétéla yén parobihan anu sakuduna dituju tina tés ka produksi tetep dina versi anu sanés.

Salaku tambahan, aya masalah sapertos anu parantos nambihan jasa énggal, anu rada béda ti sababaraha anu parantos aya. Na tinimbang ngaropéa hiji modul aya, urang kudu nyieun salinan eta tur nambahkeun parobahan diperlukeun.

Intina, Terraform sanés basa anu nyata. Ieu deklarasi. Upami urang kedah nyatakeun hiji hal, maka urang nyatakeun éta. Sarta eta sadayana jalan.

Di sawatara titik, nalika salah sahiji requests tarikan kuring keur dibahas, salah sahiji kolega kuring ngomong yén aya teu kudu nyieun snowflakes. Kuring wondered naon anjeunna dimaksudkeun. Aya kanyataan ilmiah yén teu aya dua snowflakes idéntik di dunya, aranjeunna sadayana rada béda. Sareng pas kuring nguping ieu, kuring langsung ngarasa beurat pinuh ku kode Terraform. Kusabab nalika éta diperlukeun pikeun mindahkeun tina versi ka versi, Terraform diperlukeun putus ranté parobahan, ie kode éta euweuh cocog sareng versi salajengna. Sareng urang kedah ngadamel pamenta tarik, anu nutupan ampir satengah tina file dina infrastruktur, pikeun nyangking infrastruktur kana versi Terraform salajengna.

Sarta sanggeus snowflake saperti mucunghul, sadaya kode Terraform nu urang geus robah jadi badag, tumpukan badag salju.

Pikeun pamekar éksternal anu aya di luar operasi, ieu henteu masalah teuing pikeun anjeunna, sabab anjeunna dijieun pamundut tarikan, sumberdaya na dimimitian. Sareng éta sadayana, éta sanés perhatian na deui. Sareng tim DevOps, anu mastikeun sadayana OK, diwajibkeun ngadamel sadaya parobihan ieu. Sareng biaya parobihan ieu ningkat pisan, pisan sareng unggal snowflake tambahan.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Aya carita ngeunaan kumaha murid dina seminar ngagambar dua bunderan sampurna kalawan kapur tulis dina papan tulis. Sareng guru heran kumaha anjeunna tiasa ngagambar kalayan lancar tanpa kompas. Murid éta ngajawab: "Saderhana pisan, kuring dua taun di tentara pikeun ngagiling daging."

Sareng tina opat taun kuring aub dina proyék ieu, kuring parantos ngalaksanakeun Terraform sakitar dua taun. Na, tangtosna, abdi gaduh sababaraha trik, sababaraha saran ngeunaan kumaha carana simplify kode Terraform, dianggo kalayan eta kawas basa programming sarta ngurangan beungbeurat dina pamekar anu kudu tetep kode ieu nepi ka tanggal.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Hal kahiji Abdi hoyong mimitian ku Symlinks. Terraform ngagaduhan seueur kodeu ulang. Contona, panggero ka panyadia di ampir unggal titik dimana urang nyieun sapotong infrastruktur anu sarua. Sareng logis pikeun nempatkeun éta dina polder anu misah. Jeung dimana wae panyadia diperlukeun pikeun nyieun Symlinks kana file ieu.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Salaku conto, dina produksi anjeun nganggo anggap peran, anu ngamungkinkeun anjeun kéngingkeun hak aksés kana sababaraha akun Amazon éksternal. Sareng parantos ngarobih hiji file, sadaya anu sésana dina tangkal sumberdaya bakal ngagaduhan hak anu diperyogikeun supados Terraform terang mana bagéan Amazon anu kedah diaksés.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Dimana Symlinks gagal? Salaku Cenah mah, Terraform boga file kaayaan. Jeung maranéhna pisan, pisan cool. Tapi hal éta Terraform initializes backend di tempat pisan munggaran. Sareng anjeunna henteu tiasa nganggo variabel naon waé dina parameter ieu; aranjeunna kedah salawasna ditulis dina téks.

Jeung salaku hasilna, lamun batur nyieun sumberdaya anyar, anjeunna nyalin sababaraha kode ti polder séjén. Sarta anjeunna bisa nyieun kasalahan jeung konci atawa jeung LIPI. Contona, manehna nyieun hal sandbox tina sandbox, lajeng ngajadikeun eta dina produksi. Ku kituna bisa tétéla yén ember dina produksi bakal dipaké ti sandbox nu. Tangtu, maranéhna bakal manggihan eta gancang. Ieu bakal mungkin pikeun ngalereskeun ieu kumaha bae, tapi éta téh runtah waktu jeung, nepi ka extent sababaraha, sumberdaya.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Naon anu bisa urang pigawé salajengna? Sateuacan damel sareng Terraform, anjeun kedah ngamimitian. Dina initialization, Terraform ngundeur sadaya plugins. Di sawatara titik aranjeunna dibeulah tina monolith kana arsitéktur microservice langkung. Sareng anjeun kedah teras-terasan ngalakukeun Terraform init supados narik sadaya modul, sadaya plugins.

Sareng anjeun tiasa nganggo skrip cangkang, anu, mimitina, tiasa nampi sadaya variabel. Aksara cangkang henteu diwatesan ku cara naon waé. Jeung, kadua, jalur. Upami urang sok nganggo jalur anu aya dina gudang salaku konci pikeun file kaayaan, maka, sasuai, kasalahan di dieu bakal dileungitkeun.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Dimana kuring bisa meunangkeun data? file JSON. Terraform ngamungkinkeun anjeun nyerat infrastruktur henteu ngan ukur dina hcl (Basa Konfigurasi HashiCorp), tapi ogé dina JSON.

JSON gampang dibaca tina skrip cangkang. Sasuai, anjeun tiasa nempatkeun file konfigurasi sareng LIPI di sababaraha tempat. Sareng nganggo ember ieu dina kode Terraform sareng dina skrip cangkang pikeun initialization.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Naha éta penting pikeun boga ember pikeun Terraform? Kusabab aya hiji hal saperti file kaayaan jauh. Nyaéta, nalika kuring ngumpulkeun sababaraha sumber, pikeun ngawartosan Amazon: "Mangga angkat conto," kuring kedah netepkeun seueur parameter anu diperyogikeun.

Sareng identifiers ieu disimpen dina sababaraha folder anu sanés. Sareng kuring tiasa angkat sareng nyarios: "Terraform, punten lumpat ka file kaayaan sumber daya éta sareng kéngingkeun pangidentifikasi ieu." Ku kituna hiji unifikasi tangtu muncul antara wewengkon atawa lingkungan béda.

Teu salawasna mungkin ngagunakeun file kaayaan jauh. Contona, anjeun nyieun VPC ku leungeun. Sareng kode Terraform anu nyiptakeun VPC nyiptakeun VPC anu béda-béda anu bakal nyandak waktos anu lami sareng anjeun kedah nyaluyukeun hiji kana anu sanés, janten anjeun tiasa nganggo trik ieu.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Nyaéta, ngadamel modul anu sigana ngadamel VPC sareng, saolah-olah, masihan anjeun identifiers, tapi nyatana ngan saukur aya file kalayan nilai hardcoded anu tiasa dianggo pikeun nyiptakeun conto anu sami.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Teu salawasna perlu nyimpen file kaayaan dina awan. Salaku conto, nalika nguji modul, anjeun tiasa nganggo inisialisasi backend, dimana filena ngan saukur disimpen dina disk nalika tés.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Ayeuna saeutik ngeunaan nguji. Naon anu anjeun tiasa uji dina Terraform? Meureun loba mungkin, tapi kuring bakal ngobrol ngeunaan 4 hal ieu.

HashiCorp gaduh pamahaman kumaha kode Terraform kedah diformat. Sareng Terraform fmt ngamungkinkeun anjeun pikeun pormat kode anu anjeun édit dumasar kana kapercayaan ieu. Sasuai, tés kedah mariksa naha pormatna cocog sareng anu diwariskeun HashiCorp, ku kituna henteu kedah ngarobih lokasi kurung, jsb.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Anu salajengna nyaéta validasi Terraform. Éta henteu langkung seueur tibatan mariksa sintaksis - ala, naha sadayana kurung dipasangkeun. Naon anu penting di dieu? Infrastruktur urang lega pisan. Aya loba daddies béda dina. Sarta dina unggal anjeun kudu ngajalankeun Terraform sangkan méré konfirmasi.

Sasuai, pikeun nyepetkeun tés, urang ngajalankeun sababaraha prosés paralel nganggo paralel.

Paralel mangrupikeun hal anu saé pisan, anggo.

Tapi unggal waktos Terraform ngamimitian, éta angkat ka HashiCorp sareng naros, "Naon versi plugin panganyarna? Sareng plugin anu kuring gaduh dina cache - naha éta anu leres atanapi anu salah?" Sareng ieu ngalambatkeun dina unggal léngkah.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Upami anjeun nyarioskeun ka Terraform dimana plugins, teras Terraform bakal nyarios: "Oke, ieu sigana mangrupikeun hal anu pang anyarna anu aya. Abdi moal kamana-mana, kuring bakal langsung ngamimitian validasi kode Terraform anjeun.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Pikeun ngeusian folder sareng plugins anu diperyogikeun, kami ngagaduhan kode Terraform anu saderhana anu ngan ukur kedah diinisialisasi. Di dieu, tangtosna, anjeun kedah netepkeun sadaya panyadia anu kumaha waé ilubiung dina kode anjeun, upami henteu Terraform bakal nyarios: "Kuring henteu terang panyadia anu tangtu sabab henteu aya dina cache."

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Salajengna nyaéta rencana Terraform. Sakumaha ceuk kuring, pangwangunan téh siklus. Urang nyieun parobahan kode. Teras anjeun kedah terang naon parobihan anu direncanakeun pikeun infrastruktur.

Sareng nalika infrastrukturna ageung pisan, anjeun tiasa ngarobih hiji modul, ngalereskeun sababaraha lingkungan uji atanapi sababaraha wilayah khusus sareng ngarobih sababaraha tatangga. Ku alatan éta, rencana Terraform kedah dilakukeun pikeun sakabéh infrastruktur sareng nunjukkeun parobahan naon anu direncanakeun.

Anjeun tiasa ngalakukeun ieu smartly. Contona, urang nulis Aksara Python nu ngabéréskeun kagumantungan. Sareng gumantung kana anu dirobih: modul Terraform atanapi ngan ukur komponén khusus, éta ngadamel rencana pikeun sadaya folder anu gumantung.

Rencana Terraform kedah dilakukeun upami dipénta. Sahenteuna éta naon urang ngalakukeun.

Tangtosna, éta hadé pikeun ngalakukeun tés pikeun unggal parobihan, pikeun unggal komitmen, tapi rencana mangrupikeun hal anu mahal. Sareng dina pamundut tarik urang nyarios, "Punten pasihan abdi rencanana." Robot dimimitian. Sareng ngirimkeun koméntar atanapi ngagantelkeun sadaya rencana anu dipiharep tina parobihan anjeun.

Rencana mangrupikeun hal anu mahal. Butuh waktu sabab Terraform angkat ka Amazon sareng naroskeun, "Naha conto ieu masih aya? Naha autoscale ieu gaduh parameter anu sami? Sareng pikeun ngagancangkeun ieu, anjeun tiasa nganggo parameter sapertos refresh=false. Ieu ngandung harti yén Terraform bakal ngaunduh kaayaan tina S3. Sarta eta bakal yakin yén nagara éta bakal persis cocog naon di Amazon.

Rencana Terraform sapertos kitu langkung gancang, tapi nagara kedah saluyu sareng infrastruktur anjeun, nyaéta dimana waé, kadang-kadang refresh Terraform kedah ngamimitian. Refresh Terraform ngalakukeun éta: kaayaan cocog sareng naon anu aya dina infrastruktur anu saleresna.

Sareng urang kedah ngobrol ngeunaan kaamanan. Ieu dimana urang kedah ngamimitian. Dimana anjeun ngajalankeun Terraform sareng Terraform dijalankeun dina infrastruktur anjeun aya kerentanan. Nyaéta, anjeun dasarna ngalaksanakeun kodeu. Sareng upami pamundut tarik ngandung sababaraha jinis kode jahat, maka éta tiasa dieksekusi dina infrastruktur anu ngagaduhan seueur aksés. Janten ati-ati dimana anjeun ngajalankeun rencana Terraform.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Hal salajengna Abdi hoyong ngobrol ngeunaan nguji pamaké-data.

Naon pamaké-data? Dina Amazon, nalika urang nyieun hiji conto, urang bisa ngirim surat tangtu kalawan conto - meta data . Nalika instance dimimitian, biasana awan init sok aya dina instansi ieu. Awan init maca surat ieu sareng nyarios: "Muhun, dinten ieu kuring mangrupikeun pangimbang beban." Sareng saluyu sareng perjanjian ieu anjeunna ngalaksanakeun sababaraha tindakan.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Tapi, hanjakalna, nalika urang ngadamel rencana Terraform sareng Terraform diterapkeun, data-pamaké sigana sapertos jumlah bubur sapertos kieu. Nyaéta, anjeunna ngan saukur ngirim anjeun hash. Sareng sadaya anu anjeun tiasa tingali dina rencana nyaéta naha bakal aya parobihan atanapi naha hash bakal tetep sami.

Tur upami Anjeun salah teu nengetan ieu, lajeng sababaraha file téks rusak bisa mungkas nepi di Amazon, dina infrastruktur nyata.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Alternatipna, nalika executing, Anjeun bisa nangtukeun teu sakabéh infrastruktur, tapi ngan template. Sareng dina kode ucapkeun: "Punten tingalikeun template ieu dina layar kuring." Sareng salaku hasilna, anjeun tiasa kéngingkeun citak tina naon data anjeun bakal katingali dina Amazon.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Pilihan séjén nyaéta ngagunakeun modul pikeun ngahasilkeun data-pamaké. Anjeun bakal nerapkeun modul ieu. Anjeun nampi file dina disk. Bandingkeun sareng referensi. Janten, upami sababaraha lalaki mutuskeun pikeun ngabenerkeun data pangguna sakedik, maka tés anjeun bakal nyarios: "Muhun, aya sababaraha parobihan di ditu di dieu - ieu normal."

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Hal salajengna anu kuring hoyong ngobrolkeun nyaéta Larapkeun Otomatis Terraform.

Tangtosna, éta rada pikasieuneun pikeun nerapkeun Terraform dina modeu otomatis, sabab saha anu terang naon parobihan anu aya di dinya sareng kumaha cilaka pikeun infrastruktur hirup.

Pikeun lingkungan tés, ieu sadayana normal. Nyaéta, padamelan anu nyiptakeun lingkungan tés nyaéta anu diperyogikeun ku sadayana pamekar. Sareng ekspresi sapertos "sadayana damel pikeun kuring" sanes meme anu lucu, tapi buktina yén hiji jalma bingung, ngangkat tumpukan, sareng ngajalankeun sababaraha tés dina tumpukan ieu. Sareng anjeunna mastikeun yén sadayana henteu kunanaon sareng nyarios: "Oke, kodeu anu kuring leupaskeun parantos diuji."

Dina produksi, sandbox jeung lingkungan sejen nu leuwih kritis bisnis, Anjeun sabagean bisa ngagunakeun sababaraha sumber rada aman sabab teu ngakibatkeun saha dying. Ieu mangrupikeun: grup skala otomatis, grup kaamanan, peran, route53, sareng daptarna tiasa ageung ageung. Tapi perhatikeun naon anu lumangsung, baca laporan aplikasi otomatis.

Dimana bahaya atawa pikasieuneun panawaran, contona, lamun ieu sababaraha sumber pengkuh ti database a, teras nampi laporan yén aya parobahan unapplied dina sababaraha sapotong infrastruktur. Sareng insinyur, dina pangawasan, ngamimitian padamelan pikeun nerapkeun atanapi ngalakukeun tina konsol na.

Amazon gaduh hal sapertos perlindungan Terminate. Sareng éta tiasa ngajagi dina sababaraha kasus tina parobihan anu henteu diperyogikeun pikeun anjeun. Nyaéta, Terraform angkat ka Amazon sareng nyarios: "Kuring kedah maéhan conto ieu pikeun ngadamel anu sanés." Sareng Amazon nyarios: "Hapunten, sanés dinten ayeuna. Kami ngagaduhan panyalindungan Terminasi."

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Jeung icing on jajan téh optimasi kode. Nalika urang damel sareng kode Terraform, urang kedah ngaliwat sajumlah parameter anu ageung ka modul. Ieu mangrupikeun parameter anu dipikabutuh pikeun nyiptakeun sababaraha jinis sumberdaya. Jeung kode kabukti kana daptar badag tina parameter nu kudu diliwatan ti modul ka modul, ti modul ka modul, utamana lamun modul nu nested.

Jeung hese pisan macana. Hésé pisan pikeun marios ieu. Sarta sering pisan tétéla yén sababaraha parameter ngalaman review sarta aranjeunna henteu persis naon diperlukeun. Sarta ieu waragad waktu jeung duit pikeun ngalereskeun engké.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Ku alatan éta, kuring nyarankeun Anjeun make hal saperti parameter kompléks nu ngawengku hiji tangkal tangtu nilai. Nyaéta, anjeun peryogi sababaraha jinis folder dimana anjeun gaduh sadayana nilai anu anjeun hoyongkeun dina sababaraha lingkungan.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Sareng ku nelepon modul ieu, anjeun tiasa kéngingkeun tangkal anu dibangkitkeun dina hiji modul umum, nyaéta, dina modul umum anu dianggo sami pikeun sadayana infrastruktur.

Dina modul ieu anjeun tiasa ngalakukeun sababaraha itungan ngagunakeun fitur panganyarna sapertos di Terraform salaku locals. Lajeng, kalawan hiji kaluaran, masihan sababaraha parameter kompléks, nu bisa ngawengku hashes Asép Sunandar Sunarya, jsb.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Ieu dimana sagala manggihan pangalusna Kuring geus réngsé. Sareng kuring hoyong nyarioskeun carita ngeunaan Columbus. Nalika anjeunna milarian artos pikeun ekspedisi pikeun ngajalajah India (sakumaha anjeunna panginten harita), teu aya anu percanten ka anjeunna sareng aranjeunna panginten mustahil. Lajeng anjeunna nyarios: "Pastikeun yén endog henteu murag." Kabéh bankers, pisan euyeub tur meureun jalma pinter, diusahakeun kumaha bae nempatkeun endog, sarta eta terus ragrag. Lajeng Columbus nyandak endog jeung dipencet saeutik. Cangkang kusut jeung endogna tetep teu obah. Ceuk maranéhna, "Oh, éta teuing gampang!" Sareng Columbus ngawaler: "Leres, éta saderhana teuing. Sareng nalika kuring muka India, sadayana bakal nganggo jalur perdagangan ieu."

Sareng naon anu kuring nyarioskeun ka anjeun sigana mangrupikeun hal anu saderhana sareng sepele. Sareng nalika anjeun diajar ngeunaan éta sareng mimitian nganggo éta, éta dina urutan hal. Jadi mangpaatkeun. Sareng upami ieu mangrupikeun hal anu normal pikeun anjeun, maka sahenteuna anjeun terang kumaha nempatkeun endog supados henteu murag.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Hayu urang jumlah:

  • Coba ulah snowflakes. Jeung pangsaeutikna snowflakes, pangsaeutikna sumberdaya anjeun bakal kudu nyieun sagala parobahan sapanjang infrastruktur badag Anjeun.
  • Parobahan konstan. Hartina, nalika sababaraha parobahan lumangsung dina kode, Anjeun kudu mawa infrastruktur anjeun kana patuh kana parobahan ieu gancang-gancang. Teu kudu aya kaayaan dimana batur datang ka katingal Elasticsearch dua atawa tilu bulan engké, ngajadikeun rencana Terraform, tur aya kebat parobahan anu anjeunna teu nyangka. Sarta diperlukeun loba waktu pikeun nempatkeun sagalana deui dina urutan.
  • Tés jeung automation. Beuki kode anjeun ditutupan ku tés sareng fitur, langkung yakin yén anjeun ngalakukeun sadayana kalayan leres. Sareng pangiriman otomatis bakal ningkatkeun kapercayaan anjeun sababaraha kali.
  • Kodeu pikeun tés sareng lingkungan produksi kedah ampir sami. Praktis, sabab produksi masih saeutik béda jeung masih bakal aya sababaraha nuansa nu bakal balik saluareun lingkungan test. Tapi sanajan kitu, tambah atanapi dikurangan, ieu tiasa dipastikeun.
  • Sareng upami anjeun ngagaduhan seueur kode Terraform sareng peryogi seueur waktos pikeun ngamutahirkeun kodeu ieu, maka éta henteu telat pikeun refactor sareng kéngingkeun dina kaayaan anu saé.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

  • Infrastruktur anu teu tiasa dirobih. pangiriman AMI on jadwal.
  • Struktur pikeun route53 nalika anjeun gaduh seueur éntri sareng anjeun hoyong aranjeunna dina urutan anu konsisten.
  • Ngalawan wates laju API. Ieu nalika Amazon nyarios, "Éta, kuring henteu tiasa nampi pamundut deui, punten antosan." Sareng satengah kantor ngantosan dugi ka tiasa ngaluncurkeun infrastrukturna.
  • Spot instansi. Amazon sanés acara anu murah sareng bintik-bintik ngamungkinkeun anjeun ngahémat pisan. Tur aya anjeun tiasa ngabejaan sakabeh laporan ngeunaan eta.
  • Kaamanan sareng peran IAM.
  • Milarian sumber anu leungit, nalika anjeun gaduh conto anu teu dipikanyaho di Amazone, aranjeunna tuang artos. Sanaos instansi hargana $100-150 per bulan, éta langkung ti $1 per taun. Milarian sumber daya sapertos kitu mangrupikeun usaha anu nguntungkeun.
  • Jeung instansi ditangtayungan.

Pola dina Terraform pikeun merangan huru-hara sareng rutin manual. Maxim Kostrikin (Ixtens)

Sakitu wae kanggo abdi. Terraform keren pisan, anjeun anggo. Hatur nuhun!

patarosan

Hatur nuhun laporan! file kaayaan anjeun dina S3, tapi kumaha anjeun ngajawab masalah anu sababaraha urang tiasa nyandak file kaayaan ieu sareng nyobian rék dilegakeun?

Anu mimiti, urang teu puguh. Bréh, aya umbul, nu urang ngalaporkeun yén urang keur dipake dina sababaraha sapotong kode. Nyaéta, sanaos kanyataan yén infrastrukturna ageung pisan, ieu sanés hartosna yén batur terus-terusan ngagunakeun hiji hal. Sareng nalika aya fase aktip, ieu mangrupikeun masalah; kami nyimpen file kaayaan di Git. Ieu penting, disebutkeun batur bakal nyieun hiji file kaayaan, sarta kami kudu sacara manual nunda babarengan dina urutan pikeun sagalana nuluykeun. Ayeuna teu aya masalah sapertos kitu. Sacara umum, Terraform ngarengsekeun masalah ieu. Sareng upami aya anu terus robih, maka anjeun tiasa nganggo konci, anu nyegah naon anu anjeun nyarios.

Naha anjeun nganggo open source atanapi perusahaan?

Henteu aya perusahaan, nyaéta sadayana anu anjeun tiasa angkat sareng unduh gratis.

Ngaran abdi Stanislav. Kuring hayang nyieun tambahan leutik. Anjeun nyarioskeun fitur Amazon anu ngamungkinkeun anjeun ngajantenkeun conto anu teu tiasa dikirangan. Ieu ogé aya dina Terraform sorangan; dina blok Kahirupan Kadua anjeun tiasa netepkeun larangan dina parobahan atanapi larangan karusakan.

Waktos diwatesan. titik alus.

Kuring ogé hayang nanya dua hal. Anu mimiti, anjeun ngobrol ngeunaan tés. Naha anjeun nganggo alat uji? Kuring ngadéngé plugin Test Dapur. Sugan aya nu leuwih. Sareng kuring ogé hoyong naroskeun ngeunaan Nilai Lokal. Kumaha aranjeunna dasarna béda ti Variabel Input? Jeung naha kuring teu bisa parameterize hal ngan ngaliwatan Nilai Lokal? Kuring diusahakeun angka kaluar topik ieu, tapi kumaha bae kuring teu bisa angka kaluar sorangan.

Urang bisa ngobrol leuwih jéntré di luar kamar ieu. Alat-alat pangujian kami parantos didamel nyalira. Henteu aya anu diuji. Sacara umum, aya pilihan nalika tés otomatis nyokot infrastruktur wae, pariksa yén éta OK, lajeng ngancurkeun sagalana kalawan laporan yén infrastruktur anjeun masih dina bentuk alus. Kami henteu gaduh ieu kusabab tumpukan tés dijalankeun unggal dinten. Jeung éta cukup. Sareng upami aya anu mimiti rusak, éta bakal mimiti rusak tanpa urang pariksa deui di tempat anu sanés.

Ngeunaan Ajén Lokal, hayu urang neruskeun obrolan di luar rohangan.

Halo! Hatur nuhun laporan! Pisan informatif. Anjeun nyarios yén anjeun gaduh seueur jinis kode anu sami pikeun ngajelaskeun infrastruktur. Dupi anjeun dianggap ngahasilkeun kode ieu?

Patarosan hébat, hatur nuhun! Intina nyaéta nalika urang nganggo infrastruktur salaku kode, urang nganggap yén urang ningali kodeu sareng ngartos naon infrastruktur anu aya di tukangeun kode éta. Upami kodeu dibangkitkeun, maka urang kedah ngabayangkeun kode naon anu bakal dibangkitkeun pikeun ngartos naon infrastruktur anu bakal aya. Boh urang ngahasilkeun kode, ngalakukeun eta, sarta dasarna hal anu sarua kajadian. Janten urang ngiringan jalur anu kami tulis, kami ngagaduhan. Ditambah generator mucunghul saeutik engké nalika urang mimiti nyieun eta. Tur éta geus telat robah.

Dupi anjeun uninga nanaon ngeunaan jsonnet?

Entong

Tingali, ieu mangrupikeun hal anu saé pisan. Kuring ningali kasus khusus dimana anjeun tiasa nerapkeun éta sareng ngahasilkeun struktur data.

Generators anu alus mun anjeun boga aranjeunna, sakumaha dina lulucon ngeunaan hiji mesin cukur. Nyaéta, mimitina rupa béda, tapi lajeng unggal jalma boga beungeut sarua. Generators dianggo saé pisan. Tapi, hanjakalna, beungeut urang rada béda. Ieu masalah.

Ngan kasampak. Hatur nuhun!

Nami abdi Maxim, abdi ti Sberbank. Anjeun ngobrol saeutik ngeunaan kumaha anjeun nyobian mawa Terraform ka sarua jeung basa programming. Naha henteu langkung gampang ngagunakeun Ansible?

Ieu hal pisan béda. Anjeun tiasa nyiptakeun sumber di Ansible, sareng Wayang tiasa nyiptakeun sumber di Amazon. Tapi Terraform langsung diasah.

Naha anjeun ngan ukur gaduh Amazon?

Éta sanés yén urang ngan ukur gaduh Amazon. Kami ampir ngan ukur gaduh Amazon. Tapi fitur konci éta Terraform émut. Dina Ansible, upami anjeun nyarios: "Pasihan abdi 5 conto," maka éta bakal naék, teras anjeun nyarios: "Sareng ayeuna kuring peryogi 3." Sareng Terraform bakal nyarios: "Oke, kuring bakal maéhan 2," sareng Ansible bakal nyarios: "Oké, ieu 3 pikeun anjeun." Jumlahna 8.

Halo! Hatur nuhun laporan anjeun! Ieu pisan metot ngadangu ngeunaan Terraform. Abdi hoyong geuwat nyieun komentar leutik ngeunaan kanyataan yén Terraform masih teu boga release stabil, jadi ngubaran Terraform kalawan caution hébat.

Hiji sendok alus keur dinner. Nyaéta, upami anjeun peryogi solusi, teras sakapeung anjeun ditunda naon anu teu stabil, jsb, tapi éta tiasa dianggo sareng éta ngabantosan kami.

Patarosan ieu. Anjeun nganggo backend Jauh, anjeun nganggo S 3. Naha anjeun henteu nganggo backend resmi?

Resmi?

Awan Terraform.

Iraha anjeunna muncul?

Sakitar 4 sasih kapengker.

Upami éta muncul 4 sababaraha taun ka pengker, maka kuring sigana bakal ngajawab patarosan anjeun.

Geus aya fungsi diwangun-di na konci, tur anjeun bisa nyimpen hiji file kaayaan. Cobaan. Tapi kuring henteu acan nguji éta ogé.

Urang keur iinditan dina karéta badag nu ngalir di speed tinggi. Jeung anjeun teu bisa ngan nyokot sababaraha mobil jeung buang eta jauh.

Anjeun ngobrol ngeunaan snowflakes, naha anjeun teu make cabang? Kunaon teu jalan kitu?

Pendekatan kami nyaéta sakabéh infrastruktur aya dina hiji gudang. Terraform, Wayang, sadaya naskah anu aya hubunganana sareng ieu, sadayana aya dina hiji gudang. Ku cara ieu urang tiasa mastikeun yén parobahan incremental diuji hiji-hiji. Upami éta sakumpulan cabang, maka proyék sapertos kitu ampir teu mungkin pikeun dijaga. Genep bulan kaliwat, sarta aranjeunna diverge jadi loba nu éta ngan sababaraha jenis hukuman. Ieu anu kuring hoyong kabur sateuacan refactoring.

Jadi teu jalan?

Ieu teu jalan pisan.

Dina cabang kuring motong kaluar slide folder. Nyaéta, upami anjeun ngalakukeun pikeun unggal tumpukan tés, contona, tim A gaduh folder sorangan, tim B gaduh folder sorangan, teras ieu ogé henteu jalan. Kami nyiptakeun kode lingkungan tés ngahijikeun anu cukup fleksibel pikeun nyocogkeun ka sadayana. Hartina, urang ngalayanan hiji kode.

Halo! Nami abdi Yura! Hatur nuhun laporan! Patarosan ngeunaan modul. Anjeun nyarios anjeun nganggo modul. Kumaha anjeun ngabéréskeun masalah upami parobihan parantos dilakukeun kana hiji modul anu henteu cocog sareng parobihan jalma sanés? Naha anjeun kumaha waé versi modul atanapi nyobian mawa wunderwaffle pikeun nyumponan dua syarat?

Ieu masalah tumpukan salju badag. Ieu anu urang sangsara nalika sababaraha parobihan anu teu bahaya tiasa ngarobih sababaraha bagian tina infrastruktur. Sareng ieu bakal katingali ngan saatos sababaraha waktos.

Maksudna, teu acan direngsekeun?

Anjeun nyieun modul universal. Hindarkeun snowflakes. Jeung sagalana bakal jalan kaluar. Bagian kadua laporan ngeunaan kumaha carana nyingkahan ieu.

Halo! Hatur nuhun laporan! Abdi hoyong netelakeun. Di balik layar aya tumpukan badag anu kuring datang. Kumaha distribusi wayang jeung peran dihijikeun?

Pamaké-data.

Nyaeta, anjeun ngan nyiduh kaluar file jeung kumaha bae ngaéksekusi eta?

Data pangguna mangrupikeun catetan, nyaéta nalika urang ngadamel klon gambar, Daemon naék di dinya sareng, nyobian terang saha anjeunna, maca catetan yén anjeunna mangrupikeun penyeimbang beban.

Nyaeta, ieu sababaraha jenis prosés misah nu dibikeun jauh?

Kami henteu nyiptakeunana. Urang make eta.

Halo! Kuring ngan boga patarosan ngeunaan pamaké - data. Anjeun ngomong yén aya masalah aya, yén batur bisa ngirim hal ka tempat salah. Naha aya sababaraha cara pikeun nyimpen data-pamaké dina Git anu sami, supados salawasna écés naon anu dimaksud data-pamaké?

Urang ngahasilkeun pamaké-data ti template. Nyaéta, sababaraha variabel anu dianggo di dinya. Sareng Terraform ngahasilkeun hasil ahir. Kituna, anjeun teu bisa ngan kasampak dina citakan jeung nyebutkeun naon anu bakal kajadian, sabab sagala masalah anu patali jeung kanyataan yén pamekar nu nyangka yén anjeunna ngalirkeun string dina variabel ieu, tapi hiji Asép Sunandar Sunarya dipaké aya. Sareng anjeunna - bam sareng kuring - kitu-kitu, kitu-kitu, garis salajengna, sareng sadayana rusak. Upami ieu mangrupikeun sumber énggal sareng jalma anu nyandak éta sareng ningali yén aya anu henteu jalan, maka éta gancang direngsekeun. Sareng upami grup autoscale ieu diropéa, maka dina sababaraha waktos instansi dina grup autoscale mimiti diganti. Sareng bang, aya anu henteu jalan. Éta nyeri.

Tétéla yén hijina solusi pikeun nguji?

Leres, anjeun ningali masalahna, anjeun tambahkeun léngkah tés di dinya. Hartina, kaluaran ogé bisa diuji. Panginten éta henteu saé, tapi anjeun ogé tiasa nempatkeun sababaraha tanda - pariksa yén data pangguna dipaku di dieu.

Nami abdi Timur. Ieu pisan cool nu aya laporan ngeunaan kumaha carana leres ngatur Terraform.

Abdi henteu acan ngamimitian.

Jigana nu meureun dina konferensi salajengna bakal aya. Kuring boga patarosan basajan. Naha anjeun hardcoding nilai dina modul misah tinimbang ngagunakeun tfvars, i.e. naha modul kalawan nilai hadé ti tfvars?

Hartina, kuring kudu nulis didieu (slide: Produksi / lingkungan / settings.tf): domain = variabel, domain vpcnetwork, variabel vpcnetwork na stvars - abdi tiasa meunang hal anu sarua?

Éta kahayang urang ngalakukeun. Urang tingal modul sumber setelan, contona.

Intina, ieu tfvars sapertos. Tfvars pisan merenah dina lingkungan nguji. Kuring boga tfvars pikeun instansi badag, keur leutik. Sareng kuring ngalungkeun hiji file kana polder. Sareng kuring ngagaduhan anu dipikahoyong. Nalika urang motong infrastruktur, urang hoyong éta mungkin pikeun nempo tur langsung ngartos sagalana. Sarta sangkan tétéla nu kudu kasampak di dieu, lajeng kasampak di tfvars.

Éta mungkin gaduh sadayana dina hiji tempat?

Leres, tfvars nyaéta nalika anjeun gaduh hiji kode. Sareng dianggo di sababaraha tempat anu béda-béda kalayan nuansa anu béda. Satuluyna anjeun bakal buang tfvars tur meunangkeun nuances Anjeun. Sarta kami infrastruktur salaku kode dina formulir purest na. Kuring nempo jeung ngarti.

Halo! Naha anjeun mendakan kaayaan dimana panyadia awan ngaganggu naon anu anjeun damel Terraform? Hayu urang ngédit metadata. Aya konci ssh. Jeung Google terus nyimpen metadata sarta konci na aya. Sareng Terraform sok nyerat yén éta ngagaduhan parobihan. Sanggeus unggal ngajalankeun, sanajan euweuh robah, anjeunna salawasna nyebutkeun yen anjeunna bakal ngamutahirkeun widang ieu ayeuna.

Kalayan konci, tapi enya, bagian tina infrastruktur kapangaruhan ku hal ieu, nyaéta Terraform teu tiasa ngarobih nanaon. Urang ogé moal bisa ngarobah nanaon ku leungeun urang. Kami bakal hirup sareng ayeuna.

Hartina, anjeun geus encountered hal kawas ieu, tapi teu datang nepi ka nanaon, kumaha manéhna ngalakukeun eta jeung ngalakukeun eta sorangan?

Hanjakal enya.

Halo! Ngaran abdi Starkov Stanislav. Surat. ru Grup. Kumaha anjeun ngabéréskeun masalah ngahasilkeun tag dina ..., kumaha anjeun ngalangkunganana? Salaku I ngartos eta, ngaliwatan pamaké - data pikeun nangtukeun ngaran host, nyetél Wayang on? Jeung bagian kadua patarosan. Kumaha anjeun ngajawab masalah ieu di SG, i.e. mun anjeun ngahasilkeun SG, ratusan instansi tina tipe sarua, naon ngaran nu bener pikeun aranjeunna?

Éta conto anu penting pisan pikeun kami, kami namina kalayan saé. Anu henteu diperyogikeun, aya catetan yén ieu mangrupikeun grup autoscale. Sarta dina téori anjeun bisa kuku eta handap tur meunangkeun nu anyar.

Sedengkeun pikeun masalah tag, teu aya masalah sapertos, tapi aya tugas kitu. Sareng kami nganggo tag pisan, beurat pisan, sabab infrastrukturna ageung sareng mahal. Sareng urang kedah ningali dimana artos éta, ku kituna tag ngamungkinkeun urang pikeun ngarecah naon anu kamana. Sareng, sasuai, milarian hal anu hartosna seueur artos diséépkeun di dieu.

Naon deui éta patarosan ngeunaan?

Nalika SG nyiptakeun ratusan instansi, naha aranjeunna kedah dibédakeun kumaha waé?

Henteu, henteu. Dina unggal conto aya agén anu ngalaporkeun yén kuring ngagaduhan masalah. Upami agén ngalaporkeun, maka agén terang ngeunaan anjeunna sareng, sahenteuna, alamat IP na aya. Geus bisa kabur. Bréh, kami nganggo Konsul pikeun Papanggihan, dimana Kubernetes henteu. Sareng Konsul ogé nunjukkeun alamat IP tina conto éta.

Hartina, anjeun museurkeun husus dina IP, sarta henteu dina ngaran host?

Teu mungkin pikeun nganapigasi ku nami host, nyaéta aya seueur. Aya identifiers conto - AE, jsb Anjeun tiasa manggihan eta wae, anjeun tiasa buang kana pilarian.

Halo! Kuring sadar yén Terraform mangrupikeun hal anu saé, cocog pikeun méga.

Henteu ngan.

Ieu mangrupikeun patarosan anu dipikaresep ku kuring. Lamun mutuskeun pindah, nyebutkeun, mun bulistir Metal en masse kalayan sagala instansi Anjeun? Naha bakal aya masalah? Atanapi anjeun masih kedah nganggo produk sanés, contona, Ansible anu sami anu disebatkeun di dieu?

Ansible sakedik ngeunaan hal anu sanés. Nyaéta, Ansible parantos jalan nalika instance parantos ngamimitian. Sareng Terraform tiasa dianggo sateuacan instance dimimitian. Ngalih ka Bare Metal - euweuh.

Henteu ayeuna, tapi bisnis bakal datang sareng nyarios: "Hayu."

Pindah ka awan anu sanés - leres, tapi aya trik anu rada béda di dieu. Anjeun kudu nulis kode Terraform dina cara sapertos nu bisa pindah ka sababaraha awan séjén kalawan kirang usaha .

Mimitina, tugasna disetél yén sadaya infrastruktur urang agnostik, nyaéta awan naon waé kedah cocog, tapi dina sababaraha waktos bisnis nyerah sareng nyarios: "Oké, dina N taun ka hareup urang moal kamana-mana, urang tiasa nganggo jasa. ti Amazon"

Terraform ngidinan Anjeun pikeun nyieun Front-Ahir jobs, ngonpigurasikeun PagerDuty, data doc, jsb Éta loba buntut. Anjeunna praktis bisa ngadalikeun sakuliah dunya.

Hatur nuhun laporan! Kuring ogé parantos nganggo Terraform salami 4 taun ayeuna. Dina tahap transisi lemes mun Terraform, mun infrastruktur, mun déskripsi déklaratif, kami Nyanghareupan kaayaan dimana batur ngalakukeun hiji hal ku leungeun, jeung anjeun nyobian sangkan rencana. Sareng kuring ngagaduhan sababaraha kasalahan di dinya. Kumaha anjeun nungkulan masalah sapertos kitu? Kumaha anjeun manggihan sumberdaya leungit nu geus didaptarkeun?

Utamana ku leungeun jeung panon urang, lamun urang ningali hal aneh dina laporan, urang analisa naon anu lumangsung di dinya, atawa urang ngan maéhan. Sacara umum, pamundut tarik mangrupikeun hal anu umum.

Mun aya kasalahan, anjeun rollback? Dupi anjeun nyobian ngalakukeun ieu?

Henteu, ieu mangrupikeun kaputusan jalma dina waktos anjeunna ningali masalah.

sumber: www.habr.com