Rekrutacja na DevOpsa, o co pytać?

0

Hej pracuje w jakimś projekcie C++.
Do tej pory w projekcie DevOps nie był potrzebny, mój skill wystarczał jak trzeba coś było zrobić (średnio wychodziło parę dni w miesiącu)
Projekt się rozrasta, wspiera coraz więcej platform i konfiguracji. W końcu manager stwierdził, że warto zatrudnić profesjonalnego DevOps (w sumie się ciesze, bo przez ten czas rozwinąłem w sobie niechęć do Jenkisa).

No, ale problem polega na tym, że z moimi umiejętnościami w tym temacie trudno będzie przeprowadzić rekrutację.
Niedługo będę prowadził pierwszą rozmowę i muszę się jakoś przygotować.

Dlatego prosiłbym o wszelką pomoc: linki rady o co najlepiej pytać DevOpsa

Zakres technologii:

  • Jenkins
  • Bitbucket
  • Platformy: Windows, MacOS, Linux
  • Azure
  • Docker (Linux/Windows)
  • cmake C++ JavaScript python

Kto wie, może rady mi da ktoś kogo potem spotkam na rekrutacji :)

Na razie znalazłem coś takiego: https://www.simplilearn.com/tutorials/devops-tutorial/devops-interview-questions

4

A to nie lepiej pytać o to, co ty robiłeś i czy koleś to umie, albo przynajmniej zna podstawy?

3

Zapytaj:

  • dostal w spadku duzy system na cloudzie -> jakby zrobil optymalizacje kosztow za clouda.
  • rzeczy ktore macie w projekcie i z ktorymi sie woziles albo fajnie byloby ogarnac.

Zalezy tez jaki macie system i w jakiej skali. ale z tematow:

  • pipelines w Jenkinsie
  • CI/CD as a code
  • automatyzacja deploymentu
  • skalowanie systemow w cloudzie i autoskalowanie
  • wypytac o elementy clouda (nie znam Azurowego, ale na AWS to chocby: Lambdy, EC2, SPOT, Load Balancery, S3 i co tam jeszcze uzywacie)
  • polaczenie CI/CD + z testami integracyjnymi + nazedzie do review kodu
2

Polecam oprócz pytania o to co ty normalnie robisz sprawdzić też podstawy. Z operacyjnych rzeczy zróbcie jakąś źle skonfigurowaną VMkę w Azure (usługa umarła, firewalle są spieprzone, routing jest spieprzony, usługa zbindowana do localhosta, uprawnienia są złe, tego typu rzeczy), niech zdiagnozuje. Podobnie dać przynajmniej jakiś prosty skrypt do zaklepania (np zbierz dane z takiego serwisu, wrzuć je do jakiegoś innego jeśli spełniają jakiś warunek) żeby było wiadomo czy taki jegomość umie sobie skleić kilka narzędzi na raz.

4
UglyMan napisał(a):

A to nie lepiej pytać o to, co ty robiłeś i czy koleś to umie, albo przynajmniej zna podstawy?

Zależy od tego, co konkretnie robił @MarekR22 i jak. Żeby się nie skończyło wałkowaniem pytaniami o rzeczy mocno specyficzne dla danego projektu :) IMO o takie rzeczy jest sens pytać najwyżej żeby sprawdzić, jak kandydat myśli, a nie zmuszać go do zgadywania co ktoś narzezał w swoim CI/CD, którego on na oczy nie widział.

Zgadzam się w dużej mierze z @WhiteLightning

  • koszty w chmurze
  • pipeline as code
  • co by zawarł w takim pipeline CI/CD i dlaczego, w jakim celu
  • rzeczy poza samym Jenkinsem (tudzież innym build serwerem)
    • integracje z chmurą
    • integracje z VCS, zależnie czego używacie np. githooki, status publishery itd.
    • zarządzanie artefaktami (obrazy, binarki, RPMy, JARy czy co tam macie), wersjonowanie
    • observability - logowanie, metryki, traceability, co powinny zawierać
    • inne narzędzia których używacie lub byłyby użyteczne np. Terraform, Ansible, Sumologic, Grafana, Prometheus, Datadog, Artifactory, k8s, konkretne usługi w chmurze... tu już zależy co robicie
    • skalowalność, jakie widzi możliwości, z czym by się wiązało np. wprowadzenie shardingu, a z czym replikacji, co by się stało gdyby wepchnąć jeszcze cache po drodze itp itd.
    • dostępność usług, co by zrobił żeby zapewnić high availability, na co by patrzył, na jakich poziomach można by zapewnić redundancję itp
    • różne przydatne komponenty i wzorce chmurowe np. sidecary, load balancery etc.
    • jak by podszedł do tematu multi-tenancy (jeżeli was to dotyka), czy jakoś by to wpłynęło np. na jego odpowiedzi wyżej
    • jak by podszedł do deploymentów, jakie by to miało wady / zalety (np. blue/green, canary, shadowing itp.)
    • jeśli bawicie się w mikroserwisy (wymieniasz różne technologie i chmurę) to piłuj z tego do bólu, pytaj co by zrobił żeby ten proces CI/CD był bezbolesny, co robić a czego unikać
    • bezpieczeństwo infrastruktury
  • co by zrobił gdyby - i tu scenariusz gdzie coś się posypało w CI/CD, nie działa, coś jest flaky etc - jak z życia to nawet lepiej.
  • jeśli ten DevOps miałby nie tylko opiekować się Waszymi procesami, ale np. też administracją Jenkinsa, to pewnie o te kwestie też trzeba będzie wypytać (np. zarządzanie uprawnieniami, worker nodami etc) - podobnie zresztą np. z zarządzaniem uprawnieniami w chmurze

EDIT: po namyśle, na tyle na ile możesz pilnuj też jakie ma podejście do ludzi którzy się nie znają, czy chętnie dzieli się wiedzą itd. Na dłuższą metę niby macie mieć to odrębne stanowisko devopsa w zespole, ale tak z moich obserwacji developerzy nieraz są jednak zdani na siebie, albo "opsowanie" rozkłada się na cały zespół (zresztą tak ma to chyba nawet wyglądać w metodyce DevOps).

0
Zing napisał(a):

Polecam oprócz pytania o to co ty normalnie robisz sprawdzić też podstawy. Z operacyjnych rzeczy zróbcie jakąś źle skonfigurowaną VMkę w Azure (usługa umarła, firewalle są spieprzone, routing jest spieprzony, usługa zbindowana do localhosta, uprawnienia są złe, tego typu rzeczy), niech zdiagnozuje. Podobnie dać przynajmniej jakiś prosty skrypt do zaklepania (np zbierz dane z takiego serwisu, wrzuć je do jakiegoś innego jeśli spełniają jakiś warunek) żeby było wiadomo czy taki jegomość umie sobie skleić kilka narzędzi na raz.

Pomysł mi się bardzo podoba. Test praktyczny jest zawsze najbardziej miarodajny niż jakieś pytania teoretyczne.
Problem polega na tym, że wsparcie Azure właśnie wchodzi do projektu i cały team jest w tym temacie zielony, więc skonstruowanie nawet złej konfiguracji jest dość sporym wyzwaniem.

4

Pytania zależą od oczekiwań. Nie ma sensu pytać o to jak zrealizować w Azure georedundancję, jeżeli jej nie będziecie używać.

3

A jak przyszły senior devops zada kilka pytań:
dlaczego miałbym pracować w firmie u @MarekR22 ?
czego nowego się w tej pracy nauczę?
jakie umiejętności/wiedzę rozwinę?
co mnie ma skłonić do rozstania się z firmą gdzie teraz pracuję?
ile zarobię?
jak się mają proponowane zarobki do pracy u konkurencji?

pytanie przyszłego devopsa i @MarekR22 razem to będzie dopiero kompletna układanka

4

Można spytać, czy wie, czym jest DevOps. Tak pro forma, bo jeśli ktoś wie, to przecież na taką rekrutację nie przyjdzie.

0

Dzięki za pomoc, coś poskładam z tego wszystkiego i przygotuję sobie jakiś dokumencik (bardziej po to, by wszystkich kandydatów pytać o to samo i mieć usystematyzowany system oceny).

1

Daj znać, jakbyś miał na koniec jakieś info, jak kandydaci ocenili rekrutację. :)

1

hej i jak Ci poszło z rekrutacja? Pytam, ponieważ sam chciałbym spróbować swoich sil na junior cloud enginnera w azure. W zasadzie moja wiedza to na ten moment czysto teoretyczna z zajęć podyplomowych oraz licznych kursów. Po wielu labach jakie wykonałem, myślę ze mam opanowane podstawy typu:

  • Tworzenie i zarządzanie środowiskami do ciągłej integracji i ciągłego wdrażania
  • Zarządzanie konfiguracją aplikacji oraz sekretami
  • Wdrożenie procesu ciągłej integracji
  • Zarządzanie jakością kodu i politykami bezpieczeństwa
  • Wykorzystanie kontenerów
  • Automatyzacja deploymentu poprzez narzędzia (Jenkins)

i nie ukrywam, ze chciałbym zacząć nabywać gdzieś tej praktyki produkcyjnej. Przeglądając ogłoszenia większość oczekuje już doświadczenia, tylko gdzie je nabyć? :)

1
trancex napisał(a):

i nie ukrywam, ze chciałbym zacząć nabywać gdzieś tej praktyki produkcyjnej. Przeglądając ogłoszenia większość oczekuje już doświadczenia, tylko gdzie je nabyć? :)

Jeśli pracujesz jako programista w firmie, w której nie ma "działu programowania" i "działu wdrażania" tylko jest devops, to ktoś z zespołu (lub cały zespół) zajmuje się mniej więcej tym, co tu wymieniłeś. Jak jednak jest taki podział to jest szansa, że środowiska nie-produkcyjne nadal są zarządzane w mniejszym lub większym stopniu przez zespół, nawet jeśli produkcją zajmuje się jakiś-tam odrębny departament pod innymi wszystkimi świętymi. Zawsze to jakiś start :)

0

Ułożyłem jakieś podstawowe pytania, byłem przekonany, że za proste, a dwóch kandydatów się kompletnie wyłożyło.
I mowie to o tak prostych rzeczach jak:

  • jak wycofać commit w git, który jest już w zdalnym repozytorium
  • napisz prosty programik w python (jedno z podstawowych zadań ze SPOJ). Dla kogoś kto programował profesjonalnie powinno zająć maks 2 minuty, troszkę więcej jeśli kandydat chciał pokazać jak się pisze testy (byłby duży plus). Jeden nie był w stanie napisać dosłownie dwóch linijek, drugi dał rozwiązanie o dużej złożoności (ale położył cześć z Jenkins i docker).

Nie mam pojęcia jak po 2-3 latach doświadczenia w branży można było położyć te proste pytania.

Niestaty nie przygotowałem źle skonstruowanego środowiska do naprawienia :(

Może podchodzę do tematu zbyt ambitnie, ale z drugiej strony potrzebny nam ktoś z konkretnym doswiadczeniem, kto będzie uczył innych a nie odwrotnie.

Trzeci kandydat ma bardziej zachęcające CV.

Silv napisał(a):

Daj znać, jakbyś miał na koniec jakieś info, jak kandydaci ocenili rekrutację. :)

Na razie nie mam żadnej informacji zwrotnej. Wiem jedynie, że kandydaci taka dostali (dostaną).

0

to ja nie mam doświadczenia w programowaniu w pythonie, ale krotki kodzik na losowanie liczb w lotto napisze :D. Musze się podszkolić w networkingu, czy w bash i wtedy w takim razie spróbuję gdzieś na junior cloud enginner. Ogólnie z mojej perspektywy mogę pracować gdzieś za darmo, byle żeby zobaczyć jak to działa na live projektach i nabrać doświadczenia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1