Olakšajmo upravljanje IT infrastrukturom automatizacijom.
Nekada davno, sve što je imalo veze sa instalacijom, konfiguracijom i održavanjem infrastrukture obavljalo se ručno. Mnogo ljudi je bilo uključeno u timove i sve je zavisilo od manuelnog rada. Ovakav proces je nosio veliki rizik od ljudskih grešaka, što je dovodilo do loše dostupnosti, sigurnosti i performansi aplikacija.
Ne treba zanemariti ni ukupan trošak ovakve infrastrukture.
Srećom, zahvaljujući modernim tehnologijama i filozofijama kao što je DevOps, ovo više nije problem.
Sada imamo na raspolaganju brojne alate za izvršavanje zadataka kreiranja, postavljanja i upravljanja infrastrukturom. Uz pomoć odgovarajućeg softvera, moguće je automatizovati celokupnu infrastrukturu uz minimalno ljudsko učešće. Ne govorimo samo o jednostavnim zadacima, već i o složenim operacijama kao što su obezbeđivanje infrastrukture i kompletno podešavanje aplikacija.
Automatizacija infrastrukture predstavlja proces postavljanja hardverskih i softverskih komponenti, operativnih sistema, mrežnih uređaja i skladišta podataka korišćenjem IaC (Infrastructure as Code) pristupa. Ljudska intervencija je potrebna samo za pisanje koda koji sadrži sve detalje za kreiranje i implementaciju potrebnih komponenti.
U nastavku je lista najpopularnijih alata za automatizaciju infrastrukture koji se široko koriste u industriji.
Ansible
Ansible je open-source IT mehanizam koji ne zahteva instalaciju agenata, a služi za automatizaciju primene aplikacija, upravljanje konfiguracijom i IT orkestraciju. Osnovan je 2012. godine i napisan je u Python-u, jeziku koji je trenutno veoma popularan. Za implementaciju automatizacije, Ansible koristi „playbook“-ove, gde su sve konfiguracije napisane u YAML formatu, koji je lako čitljiv ljudima.
Ako ste početnik, preporučujemo da pogledate ovaj Ansible uvod.
Ansible ima arhitekturu bez agenata, što znači da nije potrebno instalirati poseban softver na svim serverima. On koristi model zasnovan na principu „push“, gde je potrebno imati lokalni sistem sa svim potrebnim konfiguracijama koje se zatim šalju na ciljne servere.
Karakteristike Ansible-a:
- Automatizacija se postiže korišćenjem jednostavnog, ljudima čitljivog jezika.
- Arhitektura bez agenata omogućava povezivanje sa serverima putem jednostavnog SSH protokola.
- Model „push“ gura konfiguracije sa lokalne mašine na server.
- Izgrađen je na Python-u, što mu omogućava da podržava mnoge Python biblioteke i funkcionalnosti.
- Red Hat tim inženjera je kreirao bogatu kolekciju Ansible modula.
Za preduzeća, Red Hat nudi Ansible Tower.
Ansible veštine su korisne za sistemske administratore, developere i inženjere infrastrukture. Ukoliko vam je potreban početni kurs, pogledajte ovaj Udemy tutorijal.
SaltStack
SaltStack omogućava brzo upravljanje infrastrukturom, konfiguracijom i orkestracijom. U poređenju sa sličnim alatima kao što su Chef i Puppet, brzina SaltStack-a je značajna prednost. Prvo izdanje ovog alata se pojavilo 2011. godine, i kao Ansible, takođe je napisan u Python-u.
SaltStack koristi master-slave arhitekturu, gde je Salt Master glavni demon koji upravlja svim procesima, dok su Salt Minions demonski procesi instalirani na svakom upravljanom sistemu. Salt Master šalje potrebne konfiguracije i komande Salt Minionima, koji ih izvršavaju na svojoj mašini kako bi implementirali IT automatizaciju.
Karakteristike SaltStack-a:
- Dizajniran je za veliku brzinu i obim, može da podrži do 10.000 „miniona“ po „masteru“.
- Veoma je jednostavan za podešavanje, ima jedinstvenu arhitekturu za udaljeno izvršavanje.
- Konfiguracione datoteke u SaltStack-u podržavaju različite vrste jezika.
- Može paralelno da izvršava komande na udaljenim sistemima, što doprinosi brzoj primeni automatizacije.
- Pruža jednostavan programski interfejs korišćenjem Python API-ja.
Chef
Jedan od glavnih uzroka incidenata u produkciji je nedosledna konfiguracija aplikacija ili infrastrukture. Ovo je čest problem, a Chef ima za cilj da reši ovaj problem.
Chef je alat za upravljanje konfiguracijom infrastrukture. Napisan je u Ruby-u, a prvo izdanje je objavio OpsCode 2009. godine.
Chef Infrastructure Management proizvod održava sva okruženja u skladu sa istim konfiguracijama u infrastrukturi. On pruža različite alate kao što su Chef Infra, Chef Automate, Chef Enterprise i Chef Community za upravljanje infrastrukturom.
Karakteristike Chef Infrastructure Management-a:
- Konfiguracije su napisane u YAML formatu, jeziku koji je lako savladati.
- Ima više razvojnih alata za pisanje kuvara (konfiguracija), testiranje i rešavanje zavisnosti.
- Funkcije jednostavne saradnje u Enterprise izdanju omogućavaju lako upravljanje složenim okruženjima.
- Podržava integraciju sa stotinama DevOps alata kao što su GitHub, Jenkins i Azure Terraform.
Bolt
Bolt je jedan od open-source projekata kompanije Puppet.
To je alat za orkestraciju bez agenata namenjen IT automatizaciji. Korišćenjem Bolta možete automatizovati sve svoje manuelne zadatke koje inače morate da obavljate ručno, kao što su postavljanje aplikacija, rešavanje problema sa serverima, zaustavljanje i ponovno pokretanje servisa, ažuriranje sistema itd.
Pošto Bolt ne koristi agente, ne morate da instalirate nikakav softver na udaljenim ciljnim mašinama. Potrebno je samo instalirati Bolt na vaš lokalni sistem, a možete da povežete udaljene sisteme koristeći SSH ili WinRM.
Karakteristike Bolta:
- Planovi (kombinacija komandi, skripti i zadataka) se pišu u YAML formatu, koji je jednostavan za korišćenje i učenje.
- Postoji mnogo već gotovih planova i radnih tokova dostupnih na Puppet Forge (biblioteka modula).
- Omogućava jednostavan prelazak sa Bolta na Puppet Enterprise za bolju skalabilnost.
Terraform
Terraform je open-source alat za obezbeđivanje infrastrukture koji se koristi za kreiranje i primenu infrastrukture kroz pristup „Infrastruktura kao kod“ (IaC). Razvila ga je kompanija HashiCorp, a prvo izdanje se pojavilo 2014. godine.
Pogledajte Terraform uvod za početnike.
Terraform odlično radi sa pružaocima usluga u oblaku kao što su AWS, Azure, GCP i Alibaba. Možete lako primenjivati i upravljati infrastrukturom na bilo kom od ovih provajdera koristeći Terraform. Trenutno mnoge organizacije koriste Terraform za upravljanje svojim Kubernetes klasterima.
Prednosti Terraforma:
- Sa lakoćom upravlja konfiguracijom nepromenljive infrastrukture.
- Može da izvrši kompletnu orkestraciju infrastrukture, a ne samo upravljanje konfiguracijom.
- Koristi HashiCorp Configuration Language (HCL), koji je lako čitljiv ljudima i vrlo jednostavan za učenje.
- Pruža već gotove module i provajdere za stotine alata i tehnologija na Terraform Registry.
Jednom kada odlučite da ga koristite, nemojte zaboraviti da pratite ove Terraform najbolje prakse.
Zaključak
Ovo je bio moj pregled najpopularnijih rešenja za automatizaciju infrastrukture koja su dostupna organizacijama srednje veličine i velikim preduzećima. Ako ulazite u DevOps domen i želite da automatizujete svoju infrastrukturu i monotone zadatke koji su uključeni u nju, sada je pravo vreme da odaberete jedno od gore navedenih rešenja i započnete automatizaciju.