Source: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraform
Ovaj primjer sadrzi kod koji je primjer organizacije Terrafrom konfiguracije za vece infrastrukture, u primjeru se koriste:
2 AWS racuna
2 regiona
2 odvojena okruzenja (produkcijsko
and testno
). Svako okruzenje je smjesteno unutar posebnog AWS racuna i resursi se prostiru izmedju 2 regije.
Svako okruzenje koristi razlicitu verziju infrastrukturnog modula (alb
) preuzetog sa Terraform Registry-a
Svako okruzenje koristi istu verziju internog modula modules/network
posto je taj modul preuzet iz lokalnog direktorija.
U velikim projektima kao sto je opisano ovdje prednosti koristenja Terragrunta postaju ocigledne. Pogledajte Primjeri organizacije koda sa Terragruntom.
Idealan za projekte gdje je infrastruktura logicki razdvojena (radvojeni AWS racuni)
Dobar kada nema potrebe da mijenjate resurse koji su dijeljeni izmedju AWS racuna (jedno okruzenje = jedan AWS racun = jedan Terraform fajl stanja)
Dobar kada nema potrebe za orkestracijom izmjena izmedju okruzenja
Dobar kada su resursi infrastrukture u razilicitim okruzenjima sa svrhom i kada se ne mogu generalizovati (npr: neki resursi se ne koriste u jednom od okruzenja ili u nekom od regiona)
Kako projekat raste, bit ce teze odrzati ova okruzenja u azuriranom stanju. Razmislite o upotrebi infrastruktrurnih modula za zadatke koji se ponavljaju.
Izvor:
Ovaj primjer sadrzi kod koji je primjer organizacije Terrafrom konfiguracije za male infrastrukture bez vanjskih zavisnosti.
Idealan za pocetak i izmjene u hodu
Idealan za male resurs module
Dobar za male i linearne infrastrukturne module (npr: )
Dobar za mali broj resursa (manje od 20-30)
Jedan fajl stanja za sve resurse moze uciniti proces rada sa Terrafromom sporim ukoliko broj resursa poraste (razmislite o upotrebi argumenta -target da bi ogranicili broj resursa)
Izvor:
Ovaj primjer sadrzi kod koji je primjer organizacije Terrafrom konfiguracije za infrastrukture srednje velicine, u ovom primjeru se koriste:
2 AWS racuna
2 odvojena okruzenja (produkcijsko
and testno
). Svako okruzenje je smjesteno unutar posebnog AWS racuna i nemaju dodairnih tacaka.
Svako okruzenje koristi razlicitu verziju infrastrukturnog modula (alb
) preuzetog sa
Svako okruzenje koristi istu verziju internog modula modules/network
posto je taj modul preuzet iz lokalnog direktorija.
Idealan za projekte gdje je infrastruktura logicki razdvojena (radvojeni AWS racuni)
Dobar kada nema potrebe da mijenjate resurse koji su dijeljeni izmedju AWS racuna (jedno okruzenje = jedan AWS racun = jedan Terraform fajl stanja)
Dobar kada nema potrebe za orkestracijom izmjena izmedju okruzenja
Dobar kada su resursi infrastrukture u razilicitim okruzenjima sa svrhom i kada se ne mogu generalizovati (npr: neki resursi se ne koriste u jednom od okruzenja ili u nekom od regiona)
Kako projekat raste, bit ce teze odrzati ova okruzenja u azuriranom stanju. Razmislite o upotrebi infrastruktrurnih modula za zadatke koji se ponavljaju.
Nekoliko resursa, bez vanjskih zavisnosti. Jedan AWS racun. Jedna regija. Jedno okruzenje. | Zavrseno |
Nekoliko AWS racuna i okruzenja, skolski primjer infrastrukturnih modula koristeci Terrafrom | Zavrseno |
Vise AWS racuna, mnogo regiona, hitna potreba da se smanji kopiranje i ponavljanje koda, velika upotreba konpozicija. Koristi se Terrafrom | Rad u toku |
vrlo velika | Nekoliko razlicitih cloud provajdera(AWS, GCP, Azure). Deplojment na vise cloud platformi. Koristi se Terrafrom. | Nije zapoceto |
mala | Nekoliko AWS racuna i okruzenja, skolski primjer infrastrukturnih modula koristeci Terrafrom | Nije zapoceto |
srednja | Vise AWS racuna, mnogo regiona, hitna potreba da se smanji kopiranje i ponavljanje koda, velika upotreba konpozicija. Koristi se Terrafrom | Nije zapoceto |
velika | Nekoliko razlicitih cloud provajdera(AWS, GCP, Azure). Deplojment na vise cloud platformi. Koristi se Terragrunt. | Nije zapoceto |