Osnovne tehničke veštine potrebne za DevOps
Teško je ne biti zbunjen kada počnemo da istražujemo odakle da počnemo sa učenjem ove oblasti. Mnogo novih tehnologija se razvija konstantno i nije lako odabrati pravi put ako uzmemo u obzir da lista konstantno raste.
Dakle, pitanje je šta prvo naučiti?
Ovih šest tehničkih veština zajedničke su svakoj ulozi DevOps-a. Nakon što savladate ove veštine, spremni ste za početak apliciranja za uloge početnog nivoa ili stažiranje dok se krećete lestvicom učenja ka DevOps tehničkim veštinama:
- Linux - fundamentalno
- Programski jezik - osnovno iskustvo
- Bash
- Git
- Mreža - fundamentalno
- Public Cloud Platforme - AWS, Azure, GCP - fundamentalno
Linux
Linux je operativni sistem (OS) otvorenog koda koji je baziran na Unix-u. Većinu radnog vremena radeći na bilo kojoj DevOps poziciji provodićete u Linux svetu. Naravno i Microsoft ima svoj put baziran na Windows operativnom sistemu koji možete da sledite, ali većina servisa je na otvorenom kodu sa velikom podrškom zajednice i vodećih kompanija poput IBM, Oracle, Google.
Postoji mnogo resursa koji će vam pomoći u učenju Linux-a on line. Jedan od načina za početak mogao bi biti pregled nastavnog programa LPIC ispita i polaganje ispita za dobijanje sertifikata.
Resursi za učenje:
- Beginner’s Guide to Linux
- The Unix Programming Environment: Ne morate da znate sve što je u knjizi, ali dobro je da znate kako Linux zapravo radi.
- Unix Power Tools — Velika lista alata koja često dolazi upakovana u različite linux distribucije. Nemojte da vas plaši veličina, koristićete verovatno oko 20% samo.
- Three Easy Pieces - Dobra knjiga koja objašnjava kako OS radi.
- List of commonly used commands in Linux - Lista korisnih komadi u Linux-u
- Linux Guide
Sertifikacija
Programski jezik
Ne brinite, ne morate biti Dennis Ritchie da biste postali DevOps inženjer. U stvari, čak ni ne morate sebe nazivati programerom da biste započeli mnoge pozicije u DevOps-u.
Međutim, morate barem da poznajete osnovne programerske koncepte, kao što su petlje, promenljive, nizovi, liste i itd. To će neće biti samo korisno kada morate da pročitate ili izmenite neki kod, već biti od suštinskog značaja i prilikom pisanja skripti, yaml fajlova i automatizacije procesa.
Savetujemo da počnete sa Python-om naučite osnove, a zatim napravite nalog na platformi poput Edabita i pređite na srednji nivo. Ako dođete do tog nivoa, ne biste trebali imati velikih problema u pisanju skripti i obavljanju većine poslova automatizacije koji vam se nađu. Takođe, u nekom trenutku vašeg učenja, vredi se upoznati sa uobičajenim obrascima dizajna i algoritmima. Ovo nije neophodno za početak rada u DevOps -u, ali će vam dobro doći.
Resursi za učenje
- Codecademy basics of programming
- Python Free Interactive Tutorial
- Edabit - Sajt na kome dobijate programerske izazove.
- Hackerrank
- Common Algorithms
- Design Patterns
Sertifikacija
Bash
Bash je najvažniji skriptini jezik za automatizaciju zadataka u Unix okruženju (Powershell bi bio ekvivalent za Windows). Čak i ako više volite skriptovanje na Python-u ili bilo kojem drugom jeziku, bash je najrasprostranjeniji i bit će vam jako teško raditi ovaj posao bez znanja kako ga koristiti.
Ne morate biti čudo od programera da biste postigli većinu zadataka sa kojima ćete se svakodnevno susretati, ali određeno osnovno znanje programiranja definitivno pomaže.
Resursi za učenje
- Beginner Bash Guide
- Advance Scripting Guide
- Bash interactive tutorial
- Bash Interactive Challenges
- The Bash Guide
- Bash Katacoda
- Bash Cookbook
Osnove mreže
Danas je većina infrastrukture bazirana na javnim cloud provajderima ili Kubernetes klasterima koji se nalaze na lokacijama korisnika. Da bi uspešno kreirali infrastrukturu potrebno je da imate osnovno znanje o mrežnim pojmovima. Ne očekuje se da ste nekada bili mrežni inženjer ali da znate odgovore na ova dole pitanja je poželjno.
- Šta je ip adresa?
- Šta je subnet i subnet mask?
- Šta je ruta?
- Šta je ruter a šta je switch?
- Šta je VPC?
Učenje gore navedenog je od suštinskog značaja za rešavanje problema i kasnije dizajniranjem VPC strategije u infrastrukturi.
Resursi za učenje
Sertifikacija
Git
Git je distribuirani sistem kontrole verzija koda. Omogućava nam praćenje promena u kodu od strane tima koji zajednički sarađuje na projektu. Koriste ga svi softverski inženjering i operativni timovi. Toplo vam preporučujemo da provedete neko vreme upoznajući se sa njim i pojmovima branches, rebase, merging, itd.
Resursi za učenje
- git — the simple guide
- Learn git Branching — interactive course with challenges.
- Katacoda Interactive git
- Version Control
Cloud Platform
Postoji nekoliko javni cloud platformi koje možete izabrati za početak. Tri najveća su AWS, GCP i Azure. Većina počinje sa AWS-om jer se on često traži u oglasima za posao. Google - GCP je intuitivan i jednostavan za upotrebu. Takođe dobijate 300 dolara besplatnog kredita za početak. Azure je takođe dobar izbor ako više volite da radite na Microsoft okruženju i tu želite da vaša karijera ide.
Resursi za učenje
- Google Cloud Free Offering
- Quicklabs
- Azure
- AWS Free Tier
- Google Cloud Free Courses
- AWS and other Cloud Computing Agnostic Free Courses
Sertifikacija