Kelių debesų aplinkos valdymas naudojant „Terraform“.
Infrastruktūrų valdymo darbas gali būti gana bauginantis, ypač jei tai susiję su keliais debesų paslaugų teikėjais, pvz., AWS, Azure ir Google Cloud. Kai kurios dažniausiai pasitaikančios problemos yra skirtingos API ir išteklių konfigūracijos bei nuoseklaus ir keičiamo dydžio valdymo trūkumas. Kadangi „Terraform“ veikia pagal teikėjo-agnostikos principą, jis paprastai yra lengvas ir paprastai atlieka šį darbą ir padeda valdyti išteklius, ypač įvairiuose debesyse, naudojant vieną konfigūravimo kalbą. Šiuo raštu sieksime išspręsti pasikartojančius kelių debesų iššūkius ir parodyti keletą pavyzdžių, kad skaitytojas būtų aiškus. teraformų kūrimo paslaugos.
Kelių debesų infrastruktūros poreikis
Laikui bėgant, plėtra vyksta, o įmonės ir įmonės pereina prie kelių debesų strategijos, kurios vienintelis tikslas yra išvengti pardavėjų užsiblokavimo. Jie tai daro norėdami gauti naudos iš kiekvieno teikėjo paslaugų ir padidinti pasiekiamumą paskirstydami darbo krūvį skirtinguose debesyse. Šiame kelyje iškylantys sunkumai ir kliūtys yra:
- Skirtingos API ir įrankiai: kiekvienas debesies paslaugų teikėjas siūlo skirtingus sprendimų rinkinius ir unikalias API bei valdymo įrankius.
- Įvairios paslaugų konfigūracijos: išteklių apibrėžimai įvairiose debesyse skiriasi.
- Nuoseklumas ir automatizavimas: gali būti sunku išlaikyti diegimo ir valdymo nuoseklumą, kai kalbama apie kelis debesis.
Pagrindinis „Terraform“ vaidmuo čia yra ne tik išspręsti kiekvieną iš šių problemų, bet ir apibrėžti jų infrastruktūrą kaip kodą ir pasiūlyti vieningą požiūrį į išteklių aprūpinimą ir valdymą.
„Terraform“ teikėjai: raktas į kelių debesų palaikymą
Norėdami išspręsti tikrąjį klausimą, kaip „Terraform“ palaiko kelių debesų palaikymą? Tai daroma naudodama savo teikėjo modelį, kuris leidžia lengvai valdyti skirtingų debesų infrastruktūrą ta pačia konfigūracijos kalba. Šie teikėjai iš esmės yra jungiamieji taškai tarp Terraform ir debesies platformų, tokių kaip AWS, Azure ir kt.
Kaip veikia paslaugų teikėjai
Teikėjas yra papildinys, kuris atskleidžia konkretų debesų paslaugos. „Terraform“ sudaro AWS, „Azure“, „Google Cloud“ ir kt. teikėjai. Šie teikėjai yra atsakingi už API sąveikų ir išteklių kūrimą. Norėdami įdarbinti kelis teikėjus arba debesis vienoje Terraform konfigūracijoje, turite juos deklaruoti tokiu būdu:
# AWS teikėjas
teikėjas „aws“ {
regionas = „us-west-1”
}
# Azure teikėjas
teikėjas „azurerm“ {
funkcijos {}
}(
# Google Cloud Provider
teikėjas „google” {
projektas = „mano projekto ID“
regionas = „us-central1“
}
Išteklių tiekimas keliuose debesyse
Apibrėžę teikėjus, galite pradėti išteklių teikimo procesą įvairiuose debesyse. Tai atliksite tame pačiame konfigūracijos dokumente. Toliau parodyta, kaip galite sukurti Ec2 egzempliorių AWS. Ji taip pat atlieka tą patį procesą kaip ir virtualioji mašina „Azure“.
Pavyzdys: kelių debesų išteklių konfigūracija
# AWS EC2 egzempliorius
išteklius „aws_instance“ „web“ {
ami = „ami-0c55b159cbfafe1f0”
instance_type = „t2.micro”
žymės = {
Pavadinimas = „AWS-Web-Instance”
}
}
# Azure virtuali mašina
išteklius „azurerm_virtual_machine“ „vm“ {
pavadinimas = „Azure-Web-VM“
vieta = „JAV vakarai“
Resource_group_name = „pavyzdys-ištekliai”
network_interface_ids = (azurerm_network_interface.main.id)
vm_size = „Standartinis_A1_v2”
os_profile {
kompiuterio_pavadinimas = „hostname”
admin_username = „adminuser”
}
os_profile_linux_config {
disable_password_authentication = tiesa
}
}
Šiame pavyzdyje matome, kaip:
- AWS EC2 egzempliorius formuojamas naudojant aws_instance išteklių.
- „Azure“ virtualioji mašina kuriama naudojant azurerm_virtual_machine išteklius.
„Terraform“ modulių naudojimas pakartotiniam naudojimui ir mastelio keitimui
Jei norite valdyti daugybę debesų, jums reikia daugkartinio infrastruktūros kodo. Terraform modulių pagalba galima supakuoti infrastruktūrą į loginius vienetus, kurie vėliau tampa daugkartinio naudojimo ir dalijimosi. Pavyzdžiui, jei kada nors turėsite įdiegti panašius išteklius AWS ir Azure, atliksite tą patį procesą, kad sukurtumėte modulį, kuris ištrauks šią konfigūraciją.
Pavyzdys: kelių debesų modulio kūrimas
# main.tf (šakninis modulis)
modulis „aws_instance” {
šaltinis = „./modules/aws”
instance_name = „AWS-Web”
}
modulis „azure_vm” {
šaltinis = „./modules/azure”
vm_name = „Azure-Web“
}
Ši sąranka leidžia kūrėjams valdyti kelių debesų infrastruktūrą naudojant vieną modulį, nes jis yra nuoseklesnis ir sumažina kodo dubliavimą.
Saugus kredencialų tvarkymas
Kita problema, kylanti naudojant kelių debesų aplinkų valdymą, yra apsaugoti ir apsaugoti prieigą prie kiekvieno debesies teikėjo API. Galite be vargo tvarkyti kredencialus naudodami Terraformakuriame yra aplinkos kintamųjų arba slaptų valdymo sprendimų, pvz., „HashiCorp Vault“ arba „AWS Secrets Manager“. Štai kaip galite saugiai perduoti kredencialus:
eksportuoti AWS_ACCESS_KEY_ID=jūsų_prieigos_raktas
eksportuoti AWS_SECRET_ACCESS_KEY=jūsų_slaptas_raktas
eksportuoti ARM_CLIENT_ID=jūsų_kliento_id
eksportuoti ARM_CLIENT_SECRET=jūsų_kliento_paslaptį
eksportuoti GOOGLE_CREDENTIALS=$(cat path_to_credentials.json)
Kai naudojate Terraform integraciją su slapto valdymo įrankiais, galite taktiškai apsaugoti savo kredencialus, nepatekdami į konfigūracijos failus.
Būsenos failų tvarkymas kelių debesų aplinkoje
Vaidmuo ir reikšmė Terraform valstybės valdymas failai yra labai svarbūs kelių debesų valdymui ir išteklių tvarkymui. Jis stebės jūsų infrastruktūrą. Atitinkamas iššūkis yra išlaikyti, kad valstybė būtų bendra, dalijama ir apsaugota dirbant skirtingose aplinkose ir komandose. Taip pat yra galimybė failą saugoti nuotoliniu būdu, kad nekiltų konfliktų ir komandos bendradarbiavimas liktų nepakitęs.
„Terraform“ siūlo visavertį palaikymą įvairioms nuotolinėms programoms, visų pirma S3, „Azure Blob Storage“ ir kt.
Pavyzdys: nuotolinės būsenos naudojimas su AWS S3
terraform {
backend „s3” {
kibiras = „mano-terraformos būsena“
raktas = „state/terraform.tfstate”
regionas = „us-west-1”
}
}
Geriausia kelių debesų aplinkų valdymo praktika
- Naudokite daugkartinio naudojimo modulius: surūšiuokite infrastruktūros kodą į daugkartinio naudojimo modulius, kurie padės užtikrinti nuoseklumą visuose debesyse ir tiekėjams.
- Išsaugoti būseną nuotoliniu būdu: naudokite nuotolines programas, kad išvengtumėte būsenos failų konfliktų ir padidintumėte bei palaikytumėte bendradarbiavimą.
- Automatizuoti naudojant CI / CD: automatizuokite infrastruktūros aprūpinimą naudodamiesi CI/CD vamzdynai tai sumažins rankinį ir klaidingą darbą bei varginančius darbus.
- Išnaudokite kelių aplinkų darbo sritis: naudokite Terraform darbo sritis, kad galėtumėte tvarkyti įvairias aplinkas.
Galiausiai,
Nebūtų klaidinga manyti, kad „Terraform“ yra linkusi pateikti atsakymus ir sprendimus į daugybę iššūkių, susijusių su kelių debesų valdymu. Tai ekspertų ir ideali platforma, skirta valdyti kelių debesų aplinką naudojant vieną kalbą. „Terraform“ taip pat supaprastina įmonių infrastruktūros valdymą. Naudodama tiekėjus, modulius ir nuotolinį būsenos valdymą, „Terraform“ gali pasiekti precedento neturintį dalyką, įgalindama nuoseklumą, automatizavimą ir keičiamo dydžio diegimą įvairiuose debesyse. Jei taip pat norite išspręsti ir spręsti tokio pobūdžio realaus pasaulio iššūkius kelių debesų platformose ir tiekėjus, susisiekite su mumis el. (apsaugotas el. paštu). Xavor pasirūpins visais jūsų „Terraform“ poreikiais ir atlaikys aukščiau nurodytus iššūkius su didžiausiu sąžiningumu ir meistriškumu.