Week 15: Infrastruktura kao Kod (IaC)

Postoji vise nacina na koje mozete kreirati i upravljati infrastrukturom unutar AWS. Nove resurse mozete podignuti koristeci korisnicki interfejs - AWS kozolu, komand line interfejs odnosno terminal ili koristeci Amazon Software Develpment Kit.

Ukoliko manuelno kreiarte vase resurse, vrlo brzo cete shvatiti da taj pristup i nije najbolji, klikanjem kroz konzolu moze biti naporno i podlozno je greskama. Migracijom na cloud okruzenja omoguceno nam je da infrastrukturu konfigurisemo i radimo sa njom na drugacije nacine nego sto je to bio slucaj u standardnim data centrima. Kompletna infrastruktura vase aplikacije moze biti podignuta u nekoliko sekundi, skaliranje moze biti napravljeno bez unaprijed planiranog prosirenja kpaciteta a API svakog od servisa nam omogucava da sa njima komunicirarmo koristeci programske jezike koje vec koristimo za razvoj nasih aplikacija. Kako bi se dodatno udaljili od tradicionalnog manuelnog (rucnog) pristupa odrzavanju i konfiguraciji infrastrukture u upotrebu se uvelo nesto sto nazivamo Infrastruktura kao Kod.

Infrastructure as Code (IaC) - je paradigma koja omogucava da se prema vasoj infrastrukturi odnosite na identican nacin kao i prema kodu bilo koje aplikacije.

Zahvaljuci takvom pristupu vasa infrastruktura moze biti pohranjena unutar version kontrol sistema (git) gdje mozete pratiti izmjene napravljene nad vasom infrastrukturom,izvrsavati testove nad njom,ali takodjer planirati te kontrolisati izmjene. Takodjer vi na ovaj nacin uvijek imate poznato zadnje dobro stanje vase infrastrukture sto vam omogucava da uradite rollback izmjena ukoliko je doslo do problema. Neki od trenutno najpopularnijih alata za IaC su:

  • Amazon CloudFormation

  • Terrafrom

  • Plumi

  • Amazon CDK

CloudFormation

  • CloudFormation Template

    • predstavlja dokument napisan u JSON-u ili YAML-u

    • definise LOGICKE resurse - ono STA kreiramo

    • koristi se za kreiranje Stack-ova

  • CloudFormation Stack

    • koriste se za kreiranje FIZICKIH resursa iz logickih koji su definisani u template-u

    • svaka izmjena nad logickih resursima unutar template fajla, nakon update-a Stack-a bice izvrsena nad fizickim resursima

    • brisanjem Stack-a obrisati ce se i svi fizicki resursi

  • Parametri

    • Template Parametri prihvataju input, ulazne podatke koji su uneseni putem Console/CLI/API. Koriste se za kreiranje ili update Stack-a.

    • Pseudo Parametri - upravljane od strane AWS i zavise od okruzenja u kojem se kreira Stack

  • AWS CloudFormation ChangeSet - omogucava pregled izmjena nad resursima prije izvrsavanja nad Stack-om

  • Drift detection - detekcija svih izmjena koje su izvrsene manuelno nad resursima koji su kreirani iz Stack-a.

Terrafrom

Snimci predavanja

DevOps Mentorship Program - Week 15 - Alma Kazija - IaC CloudFormation (#tier-1-group-1)

DevOps Mentorship Program - Week 15 - Dragan Pavlovic - IaC Terrafrom (#tier-1-group-2)

Materijali za ucenje

Korisni alati

Zadatak

Materijali za dodatno citanje

Last updated