46 najczęściej zadawanych pytań i odpowiedzi dotyczących wywiadów DevOps [2023]

Chcesz wiedzieć, jakie pytania zadać podczas następnej rozmowy kwalifikacyjnej DevOps? Zacznij od naszego podręcznego przewodnika.

Termin DevOps został ukuty w latach 2007-2008, ale obecnie stał się jedną z najpopularniejszych karier w inżynierii oprogramowania. DevOps to zmiana kulturowa, która dotyka każdego aspektu programowania i operacji.

Dwa zespoły (rozwój i operacje) współpracują ze sobą od planowania i budowania po monitorowanie i iterację. Oto najczęstsze pytania, z którymi możesz się spotkać, jeśli szukasz roli inżyniera DevOps.

Spis treści:

Co to jest DevOps?

DevOps to krótka forma rozwoju i operacji. Ta praktyka inżynierii oprogramowania łączy zespoły programistyczne i operacyjne w celu zautomatyzowania każdego etapu projektu. Zespół DevOps koncentruje się na zarządzaniu zasobami, komunikacji i pracy zespołowej.

Jakie są różne fazy w metodologii DevOps

  • Ciągły rozwój. To jest faza planowania i kodowania.
  • Ciągła integracja. Jest to faza, w której zespół programistów integruje różne komponenty i zapewnia, że ​​kod się nie zepsuje.
  • Ciągłe testowanie. Jest to wstępnie zaplanowana i zautomatyzowana faza testowania.
  • Ciągłe wdrażanie. Ta faza zapewnia bezproblemowy rozwój, który nie wpływa na wydajność całej aplikacji.
  • Ciągłe monitorowanie. Ta faza zapewnia ogólną skuteczność aplikacji.
  • Ciągła informacja zwrotna. Analizowane są problemy i wydajność zgłaszane przez użytkowników końcowych.
  • Operacje ciągłe. Umożliwia programistom tworzenie lepszych wersji produktu i szybkie wykrywanie problemów.

Jakie są zalety DevOps?

  • Szybsza i lepsza dostawa produktów
  • Większa skalowalność
  • Szybkie rozwiązanie problemu
  • Lepsze wykorzystanie zasobów

Nazwij niektóre KPI DevOps

  • Częstotliwość wdrażania
  • Zmień głośność
  • Czas wdrożenia
  • Wskaźniki nieudanych wdrożeń
  • Wykrywanie czasu
  • Wskaźnik ucieczki defektów

Różnica między DevOps a agile

DevOps to kultura, która sprzyja współpracy między wszystkimi członkami zespołu zaangażowanymi w rozwój i utrzymanie oprogramowania.

Agile to metodologia programistyczna zaprojektowana, aby zwiększać produktywność zespołów i wprowadzać wydania w oparciu o zmieniające się potrzeby.

Jaka jest rola AWS w DevOps

AWS posiada zestaw elastycznych usług, które pomagają firmom w niezawodnym i szybkim tworzeniu aplikacji. Usługi AWS upraszczają wdrażanie kodu, udostępnianie i upraszczanie infrastruktury, automatyzację procesów wydawania oprogramowania oraz monitorowanie wydajności infrastruktury.

Jakie jest zastosowanie SSH?

SSH (Secure Shell) to protokół umożliwiający bezpieczne połączenie między różnymi komputerami. SSH służy różnym celom, takim jak oferowanie; silne uwierzytelnianie, silne szyfrowanie, utrzymanie integralności połączenia, silne połączenie i bezpieczeństwo.

Co to jest ciągła integracja?

Ciągła integracja umożliwia twórcom oprogramowania łączenie ich kodu w centralne repozytorium. Kod jest następnie poddawany automatycznym kompilacjom i testom.

Co to jest zarządzanie konfiguracją?

Jest to proces inżynierii systemu mający na celu ustanowienie i utrzymanie spójności wydajności systemu/produktu oraz atrybutów funkcjonalnych i fizycznych w całym jego cyklu życia.

Co to jest ciągłe testowanie?

Jest to zaplanowane i zautomatyzowane testowanie aplikacji w miarę rozwoju.

Co to jest Git?

Jest to otwarte i bezpłatne narzędzie do zarządzania kodem źródłowym. To narzędzie jest przeznaczone do obsługi małych i dużych projektów.

Wymień kilka podstawowych poleceń Gita

git clone <https://name-of-the-repository-link>
git branch <branch-name>
git checkout <name-of-your-branch>
git add <file>
git commit -m "commit message"
git push <remote> <branch-name>
git pull <remote>

Wyjaśnij różnicę między Git merge a Git rebase

Polecenie łączenia Git umożliwia programistom łączenie różnych gałęzi Git, podczas gdy dzienniki zatwierdzeń odpowiednich gałęzi pozostają nienaruszone.

Polecenie Git rebase umożliwia programistom integrowanie zmian z jednej gałęzi do drugiej, a dzienniki są zmieniane po zakończeniu procesu.

Wyjaśnij różnicę między Git fetch a Git pull

Git fetch mówi gitowi, aby pobrał/sprawdził najnowsze metadane z oryginału. Jednak nie wykonuje żadnego transferu plików, a jedynie sprawdza.

Git pull sprawdza i przenosi zmiany ze zdalnego repozytorium do lokalnego projektu.

Co to jest konflikt scalania?

Konflikty scalania występują, gdy scalasz dwie gałęzie z konkurującymi zatwierdzeniami. Konflikty scalania zwykle występują, gdy różni programiści zmieniają ten sam wiersz kodu lub plik.

Czym jest kontrola wersji i jakie są jej rodzaje?

Kontrola wersji (kontrola źródła) to proces śledzenia i zarządzania zmianami w kodzie oprogramowania.

Są to różne rodzaje kontroli wersji;

  • Scentralizowane – mają jedną „centralną” kopię kodu źródłowego na serwerze, a wszystkie zmiany są wprowadzane do „centralnej” kopii. Subversion (SVN) i Perforce to przykłady scentralizowanej kontroli wersji.
  • Rozproszony (DVCS) — nie ma centralnego serwera do przechowywania wszystkich plików projektu. Git i Mercurial to przykłady DVCS.

Jakie są korzyści z używania kontroli wersji?

  • Pomaga programistom zachować wydajność i elastyczność
  • Daje pełny dziennik każdej zmiany w projekcie/pliku
  • Popraw identyfikowalność
  • Pomaga w zarządzaniu łączeniem i rozgałęzianiem
  • Umożliwia współpracę

Co to jest rozgałęzienie?

Rozgałęzianie odnosi się do tworzenia oddzielnej/nowej wersji głównego repozytorium. Gałęzie umożliwiają pracę nad różnymi częściami projektu bez wpływu na główną gałąź.

Czym są strategie rozgałęzień?

Strategie scalania to metodologie stosowane przez zespoły programistów podczas pisania, łączenia i wdrażania kodu. Takie podejście gwarantuje, że błędy i pomyłki są naprawiane na etapie gałęzi, zanim zostaną scalone z głównym projektem.

Czym jest testowanie automatyczne i jak zautomatyzować testowanie w DevOps?

Testy automatyczne to technika automatycznego przeglądania i sprawdzania poprawności kodu. Testy automatyczne mają na celu sprawdzenie, czy spełnione zostały standardy jakości dotyczące funkcjonalności (logiki biznesowej), stylu kodu i doświadczenia użytkownika.

Testy automatyczne wykonuje się za pomocą narzędzi takich jak Selenium i Katalon.

Co to jest Jenkinsfile?

Jenkinsfile to plik tekstowy zawierający definicję potoku Jenkinsa. Jenkinsfile jest sprawdzany w repozytorium kontroli źródła. Niektóre z jego zastosowań to; pozwala na ścieżkę audytu dla potoku, pozwala na przegląd kodu i iterację na potoku oraz zapewnia pojedyncze źródło prawdy w potoku.

Wyjaśnij architekturę w Jenkins

Jenkins ma architekturę pan-niewolnik. Oznacza to, że dla jednego „pana” pracuje wielu „niewolników”. Jenkins Distributed Build może zatem przeprowadzać identyczne testy w różnych środowiskach, a wyniki są zbierane i łączone w węźle głównym w celu monitorowania.

Jakie są najlepsze wtyczki Jenkinsa?

  • Wtyczka Blue Ocean dla Jenkinsa
  • Wtyczka Mailer dla Jenkinsa
  • Wtyczka Git dla Jenkinsa
  • Wtyczka Jira dla Jenkinsa
  • Wtyczka Docker dla Jenkinsa
  • Wtyczka integracji Maven dla Jenkinsa
  • Wtyczka Kubernetes dla Jenkinsa
  • Wtyczka SonarQube dla Jenkinsa
  • Wtyczka Amazon EC2 dla Jenkinsa

Co to jest Selenium IDE?

Selenium IDE to narzędzie, które rejestruje interakcje przeglądarki dla przypadków testowych. W zintegrowanym środowisku programistycznym Selenium można ustawiać punkty przerwania oraz sprawdzać i wstrzymywać zmienne w przypadku wystąpienia błędów.

Jakie są różne komponenty Selenium?

Jakie są różne rodzaje testów w Selenium?

  • Testowanie od końca do końca
  • Testy regresyjne
  • Testowanie systemu
  • Test wydajności
  • Testy zgodności

Jakie są różne wyjątki w Selenium?

  • ElementNotSelectableException
  • NoAlertPresentException
  • InvalidSelectorException
  • NoSuchSessionException
  • StaleElementReferenceException
  • NoSuchWindowException
  • NoSuchFrameException
  • NoSuchElementException
  • Wyjątek limitu czasu
  • ElementNotVisibleException

Czym są driver.close() i driver.quit() w WebDriver?

Polecenie driver.close() zamyka okno przeglądarki na fokusie. Jeśli otwarta jest tylko jedna przeglądarka, zamyka całą sesję przeglądarki.

Polecenie driver.quit() zamyka całą sesję przeglądarki z wyskakującymi okienkami, kartami i oknami przeglądarki.

Co to jest plik Docker?

Dockerfile to dokument tekstowy ze wszystkimi poleceniami, których użytkownik może użyć w wierszu poleceń do złożenia obrazu.

Różnice między obrazami dokera a kontenerem dokera

Obrazy platformy Docker to szablony tylko do odczytu utworzone z kodami źródłowymi, narzędziami, bibliotekami, zależnościami zewnętrznymi i innymi plikami potrzebnymi do pomyślnego działania dowolnej aplikacji w dowolnym systemie operacyjnym lub na dowolnej platformie.

Kontener dokera to pudełko, które uruchamia szablony obrazu dokera.

Omów architekturę Dockera

Docker działa w architekturze klient-serwer i obejmuje Docker Client, Docker Host i Docker Registry.

Docker Client używa interfejsów API REST i poleceń do komunikacji z serwerem (Docker Daemon).

Docker Client używa interfejsu CLI do uruchamiania tych poleceń

docker build

docker pull

docker run
  • Docker Host zapewnia środowisko do wykonywania i uruchamiania aplikacji. Składa się z demona dokera, magazynu, obrazów, kontenerów i sieci.
  • Docker Registry zarządza i przechowuje obrazy Docker.

Platformy chmurowe obsługujące platformę docker

Platformy obsługujące hosting dokerów to;

Co to jest Nagios?

Nagios to narzędzie, które monitoruje całą infrastrukturę IT, aby zapewnić prawidłowe działanie procesów biznesowych, systemów, usług i aplikacji.

Jak działa Nagios?

  • Monitorowanie. Personel IT konfiguruje Nagios do monitorowania protokołów sieciowych, metryk systemowych, aplikacji, infrastruktury sieciowej, usług i serwerów.
  • Alarmowanie. Nagios wysyła alerty w przypadku awarii krytycznych komponentów. Alerty mogą być wysyłane za pośrednictwem wiadomości SMS, niestandardowego kodu lub wiadomości e-mail.
  • Odpowiedź. Zespół IT potwierdza alerty i podejmuje działania.
  • Raporty. Generowane są raporty zawierające historyczny zapis powiadomień, przestojów, odpowiedzi na alerty i zdarzenia do późniejszego przeglądu.
  • Konserwacja. Zaplanowane przestoje zapobiegają wysyłaniu alertów podczas konserwacji.

Wymień niektóre wtyczki w Nagios

  • Oficjalne wtyczki Nagios opracowane i utrzymywane przez oficjalny zespół
  • Niestandardowe wtyczki napisane przez osoby/firmy w celu zaspokojenia indywidualnych potrzeb
  • Wtyczki społeczności — opracowane przez członków społeczności Nagios

Wyjaśnij wirtualizację za pomocą Nagios

Nagios oferuje możliwość monitorowania różnych wskaźników na różnych platformach wirtualizacyjnych. Nagios może działać z różnych platform wirtualizacyjnych, takich jak Xen, Amazon EC2, VMware i Microsoft Virtual PC.

Jak Nagios pomaga w monitorowaniu?

Nagios używa agentów, takich jak NRPE, check_mk lub SNMP, do zbierania statystyk na Twoim serwerze i wysyłania alertów, jeśli metryki przekroczą predefiniowany próg.

Jakich numerów portów używa Nagios do celów monitorowania?

SNMP, porty 161 i 162

Co to jest analizator sieci Nagios?

Analizator sieci Nagios to oprogramowanie do analizy danych sflow, które pozwala użytkownikom proaktywnie rozwiązywać nieprawidłowe zachowania, awarie i zagrożenia bezpieczeństwa przed przerwaniem operacji biznesowych. To narzędzie klasy komercyjnej oferuje rozszerzony wgląd w ruch sieciowy i infrastrukturę IT.

Zmienne wpływające na dziedziczenie i rekursję w Nagios

  • Nazwa — „nazwa” szablonu, która może dziedziczyć zmienne/właściwości obiektu.
  • Użyj- określ nazwę obiektu szablonu, z którego chcesz dziedziczyć zmienne/właściwości.
  • Register wskazuje, czy nazwa obiektu szablonu powinna być „zarejestrowana” w Nagios.

Co to jest Marionetka?

Puppet to narzędzie typu open source do zarządzania konfiguracją oprogramowania i wdrażania.

Co to jest manifest kukiełkowy?

Manifest Puppet to plik zawierający język konfiguracji Puppet opisujący sposób konfigurowania zasobów.

Czym jest kod Marionetki?

Kod marionetkowy jest kodem deklaratywnym, co oznacza, że ​​opisujesz go za pomocą pożądanego stanu systemu, a nie kroków potrzebnych do osiągnięcia tego stanu.

Co to jest szef kuchni?

Chef to narzędzie do zarządzania konfiguracją, które konwertuje infrastrukturę na kod. To narzędzie koncentruje się na pisaniu kodu zamiast procesu ręcznego.

Jak pracuje szef kuchni?

Praca szefa kuchni zaczyna się, gdy administratorzy systemu lub programiści zdefiniują zadania do zautomatyzowania. Książki kucharskie i przepisy (małe programy napisane w języku specyficznym dla domeny) są następnie przechwytywane i testowane przy użyciu różnych narzędzi, takich jak Test Kitchen, ChefSpec i Foodcritic.

Jeśli książki kucharskie i przepisy działają zgodnie z oczekiwaniami, są następnie wdrażane na serwerze szefa kuchni przy użyciu narzędzi wiersza polecenia noża i szefa kuchni. Proces wdrażania szefa kuchni obejmuje serwer szefa kuchni, stacje robocze i węzły. Możesz wybierać spośród ponad 3000 szablonów książek kucharskich i dostosowywać je do swoich potrzeb. Następnie szef kuchni zajmie się resztą pracy.

Streszczenie

Według Glassdoor średnia pensja inżyniera DevOps w USA wynosi 104281 USD rocznie. Mimo że DevOps to nowa kariera, teraz możemy zobaczyć więcej firm zatrudniających do tej roli i publikujących różne kursy, aby wyposażyć profesjonalistów w podstawowe umiejętności. Powyżej znajduje się kilka pytań, które prawdopodobnie napotkasz podczas rozmowy kwalifikacyjnej DevOps.

Możesz także zapoznać się z dobrymi kursami online, aby nauczyć się DevOps.