Na ovo pitanje još niko nije našao precizan odgovor, i stalno se dešava da na mrežama ili u razgovorima dođe do konflikta kada se postavi ovo pitanje - jer DevOps je mitsko biće sa hiljadu ruku i obaveza i nikako da se definiše šta treba, šta ne treba, i šta zapravo radi jedan čovek na toj poziciji.
Sa ciljem da približimo IT pozicije drugim IT-jevcima, ali i budućim kolegama, kao i mamama i tatama koji misle da po cele dane blejimo na Fejsu i plaćaju nas za to, porazgovarala sam sa Đorđem Filipovićem, koji u kompaniji Levi9 radi kao Senior DevOps inženjer, kome bih se pre svega zahvalila za dobru volju i odvojeno vreme.
Pre svega, Đorđe mi je napomenuo da sebe vidi kao osobu koja sedi na dve stolice i pravi sponu između razvojnih timova (frontend i backend) i sistem administratora, a sam DevOps bi opisao kao kulturu u kojoj svi timovi imaju udela, a ne poziciju u IT-ju. Takođe je pomenuo da trenutno Levi9 nudi plaćenu DevOps tromesečnu praksu.
Kako bi detetu opisao svoju poziciju - šta tata radi?
Tata razvija alate i procese kako bi pomogao svojim kolegama programerima i testerima, da zajedno lakše i efikasnije isporuče nešto što ima vrednost, (proizvod), svojim klijentima.
Kako izgleda jedan tvoj radni dan?
Probudim se jedva i prevalim se na stolicu, pošto radim od kuće (smeh).
Jutro počinje daily-jem (radimo po scrum-u), pošto radim sa nekoliko timova, nakon toga imam sastanke sa njima, koji služe da zajedno vidimo šta je potrebno, kako bismo isplanirali dalje korake.
Onda u toku dana imam quiet time (to je deo kulture kompanije), kada radim na razvoju alata (nekad infrastruktura, nekad pipelines, nekad procesi…) i na kraju dana obično imamo coffee break i neobavezno druženje (koje sada obožavamo jer su se ljudi udaljili zbog remote rada i covid-a, a održavaju timski duh).
Koje su veštine potrebne da bi bio/la odličan DevOps inženjer?
Sve zavisi - trenutno nas ima petorica u timu i svako od nas ima neki skill set. Kao važne odlike dobrog DevOps inženjera, koje pomažu u svakodnevnom radu naveo bih: izlaženje iz komfor zone, proaktivnost, transparentnost, analitičko razmišljanje, ali je takođe važno uvek naći način da znanje u timu bude izbalansirano. Takođe je bitan stav da želis da učiš, jer je to veliki deo našeg posla i DevOps kulture, jer nema škole (smera) za DevOps… Isto sam primetio da ekstroverti bolje prolaze, ljudi koji su druželjubivi i komunikativni, jer u našem poslu non-stop radiš sa ljudima, dok su introvertnije kolege nezamenljivi članovi tima na koje se uvek možeš osloniti: deo kulture su povratne informacije koje daješ i dobijaš na dnevnom nivou, ali je važno i da budeš dosadan (konzistentan) jer si "mirođija u svakoj čorbi".
Alati koje koristiš u svakodnevnom radu su...
- Infrastruktura kao kod: Terraform (alat za automatizaciju podizanja infrastructure) - napiseš kod da kreiraš/konfigurišeš novi resurs i Ansible - alat za konfiguraciju
- CI/CD: Azure Devops, Octopus Deploy, Github
- Skripting jezici: Powershell, Python (za skripte koje se izvršavaju u cloudu u okviru serverless okruženja)
- Razvijamo aplikacije za cloud okruženje koristeći app servise, Docker, Kubernetes, itd. - to je u stvari način da hostuješ aplikaciju u cloudu
- Jira (ticket management sistem) i Confluence za dokumentaciju
Opiši nam svoju ulogu u timu.
Trenutno imam dve uloge: prva je team lead što znači da organizujem članove tima, učestvujem u code review-u, rešavam merge konflikte, raspoređujem taskove, koordiniram rad sa drugim team lead-ovima, ali takođe imam komunikaciju sa biznis stranom (product owner i delivery manager/scrum master) - moj posao je da budem poslednji filter pre nego što je task spreman za izvršenje.
Druga uloga je tech lead - go-to osoba za sva pitanja koja se tiču DevOps-a (procesi, alati) i clouda (u mom slučaju Azure) u fazi kada se postavlja arhitektura sistema ili kada dođe do problema (prilično vremena mi ode na razgovore i prenos znanja o Azure kolegama, sa ciljem da sprečim probleme pre nego što se jave).
Koliko često imaš kontakt sa ljudima (klijenti, menadžeri i drugi)?
Reći svakodnevno je previše retko, svakominutno je precizniji odgovor - ima dana kada imamo samo sastanke. Doduše, sa krajnjim korisnicima proizvoda koji razvijamo za naše klijente retko imamo kontakt, pošto radim u outsourcing kompaniji, samo u slučaju da se to od nas zatraži. Sa samim klijentom je stalno u kontaktu Delivery menadžer kao neko ko ima dvostruku ulogu i u Levi9 i u klijentskom timu.
Omiljena stvar u poslu ti je...
Kada pomognem nekome da reši problem ili lakše obavi svoj posao. Naš cilj nije samo da im pomognemo, nego da ih naučimo da i sami prihvate delić DevOps kulture, odnosno cilj je empowering da ih naučimo kako sami to rade, kako bismo mi mogli da razvijemo sledeću novu kul stvar i tako u krug. Takođe, tu su i momenti ponosa, kao što je je recimo kada pogledamo State of Devops report i vidim da smo na svim projektima u petoj fazi.
A manje omiljeni deo posla? :)
Sastanci. Pošto se poštuju scrum procedure, često sam na sastancima na kojima sam formalno potreban, a ne postoji realan razlog da tog dana budem tu. Prisustvo svakog team lead-a je važno jer obično imamo neke informacije da podelimo a kojih nisu svi bili svesni ili da potvrdimo da nema nekih prepreka da se dogovor sprovede u delo. Trudimo se da sastanke svedemo na najmanju moguću meru, ali ponekad to nije moguće pogotovo u ranim fazama projekta.
Šta je najveći izazov za tebe?
To što je nešto izazov ne znači da je negativno - za mene je to kontinuirano učenje, jer moraš stalno da učiš i da se interesuješ i od tebe se očekuje da predvidiš u stvari na koju stranu duva vetar - šta da učiš. Ovo smatram izazovom jer iako volim to da radim - sve zajedno iziskuje puno vremena, koga često nema dovoljno.
Sajtovi koje najčešće posećuješ su...
Za učenje: Udemy, Pluralsight, ExamTopics (za polaganje sertifikata, besplatan pristup bazi pitanja), Whizlabs i Youtube, Microsoft Learn (ako neko od početnika hoće da uči Azure cloud i DevOps definitivno vredi preći njihove tutorijale] i obavezno Stack Overflow.
Što se samog posla tiče, uvek ti treba nešto od dokumentacije: Terraform dokumentacija i Azure dokumentacija.