DevOps interview Q&A (1st PART)
11 marca 2020
Cześć 👋przygotowaliśmy dla Was zestawienie pytań dla DevOps’a. W pierwszej części 26 pytań z zakresu ogólnego o DevOps, GIT i Chef.
Już za tydzień druga część 26 pytań, gdzie omówimy dalej Chef’a, Dockera, Ansible raz Jenskins.
Śledźcie nasze profile:
- facebook – https://www.facebook.com/exiooIT
- LinkedIn – https://www.linkedin.com/company/exioo/
gdzie wrzucimy drugą cześć. Poniżej zestaw pytań 👇👇👇
- Wyjaśnij, czym jest DevOps?
Jest to termin w dziedzinie IT, który jest niczym innym jak praktyką, która kładzie nacisk na współpracę i komunikację zarówno twórców oprogramowania, jak i innych specjalistów w dziedzinie technologii informatycznych. Koncentruje się na szybszym dostarczaniu oprogramowania i obniżaniu wskaźnika awaryjności wydań. - Wymień, jakie są kluczowe aspekty lub zasady DevOps?Kluczowe aspekty lub zasada DevOps to:
* Infrastructure as code (Infrastruktura jako kod)
* Continous deployment (Ciągłe wdrażanie)
* Automation (Automatyzacja)
* Monitoring (Monitorowanie)
* Security (Bezpieczeństwo) - Jakie są podstawowe operacje DevOps związane z tworzeniem aplikacji i infrastrukturą?Podstawowe operacje DevOps to:
* Application development (Rozwój aplikacji)
* Code building (Budowanie kodu)
* Code coverage (Pokrycie kodu)
* Unit testing (Testy jednostkowe)
* Packaging (Pakowanie)
* Deployment (Rozlokowanie) - Czym jest GIT?GIT to rozpowszechniona wersja systemu kontroli i system zarządzania kodami źródłowymi (SCM), z naciskiem na szybką i wydajną obsługę małych i dużych projektów.
- Co to jest repozytorium w GIT?Repozytorium zawiera katalog o nazwie .git, w którym git przechowuje wszystkie swoje metadane dla repozytorium. Zawartość katalogu .git jest prywatna dla git.
- Jaka jest różnica między GIT a SVN?Różnica między GIT a SVN jest nastepująca:
a) Git jest rzadziej preferowany do obsługi bardzo dużych plików lub często zmienianych plików binarnych, podczas gdy SVN może obsługiwać wiele projektów przechowywanych w tym samym repozytorium.
b) GIT nie obsługuje „commitów” w wielu gałęziach lub tagach. Subversion pozwala na tworzenie folderów w dowolnym miejscu w układzie repozytorium.
c) Gits są niezmienne, podczas gdy Subversion pozwala użytkownikom traktować tag jako gałąź i tworzyć wiele poprawek w katalogu głównego tagu. - Jakie są zalety korzystania z GIT?
* Data redundancy and replication (Nadmiarowość i replikacja danych)
* High availability (Wysoka dostępność)
* Tylko jeden katalog git na repozytorium
* Doskonałe wykorzystanie dysku i wydajność sieci
* Collaboration friendly (Przyjazny dla współpracy)
* Każdy rodzaj projektów może korzystać z GIT - Dlaczego GIT jest lepszy niż Subversion?GIT to system kontroli wersji oprogramowania typu open source; pozwoli ci uruchomić „versions” projektu, które pokazują zmiany wprowadzone w kodzie w miarę upływu czasu, a także pozwala zachować wstecz, jeśli to konieczne i cofnąć te zmiany. Wielu programistów może kontrolować i przesyłać zmiany, a następnie każda zmiana może zostać przypisana do konkretnego programisty.
- Co to jest „Staging Area” lub „Index” w GIT?Przed ukończeniem zatwierdzeń można je sformatować i przejrzeć w obszarze pośrednim znanym jako „Staging Area” lub „Index”.
- Co to jest skrytka GIT?
Skrytka GIT pobiera bieżący stan katalogu roboczego i indeksu, i umieszcza w stacku na później i zwraca czysty katalog roboczy. Jeśli więc jesteś w trakcie wykonywania czegoś i chcesz przeskoczyć do innej pracy, a jednocześnie nie chcesz stracić bieżącej edycji, możesz użyć skrytki GIT. - Jaka jest funkcja git clone?
Komenda git clone tworzy kopię istniejącego repozytorium Git. Aby uzyskać kopię centralnego repozytorium, „klonowanie” jest najczęstszym sposobem wykorzystywanym przez programistów. - Co zawiera obiekt zatwierdzania (commit object)?
* Zestaw plików reprezentujących stan projektu w danym momencie
* Odwołanie do nadrzędnych obiektów zatwierdzania
* Nazwę SHAI, 40-znakowy ciąg, który jednoznacznie identyfikuje obiekt zatwierdzenia. - Jak utworzyć repozytorium w Git?
Aby utworzyć repozytorium w Git, utwórz katalog dla projektu, jeśli nie istnieje, a następnie uruchom polecenie „git init”. Po uruchomieniu tego polecenia katalog .git zostanie utworzony w katalogu projektu, katalog nie musi być pusty. - Jaki jest cel rozgałęziania w GIT?
Celem rozgałęzienia w GIT jest to, że możesz utworzyć własną gałąź i przeskakiwać między tymi gałęziami. Pozwoli ci to przejść do poprzedniej pracy nie naruszając najnowszej. - Jaki jest typowy wzór rozgałęziania w GIT?
Powszechnym sposobem tworzenia gałęzi w GIT jest utrzymanie jednej gałęzi jako „Main” oraz utworzenie kolejnej gałęzi w celu wdrożenia nowych funkcji. Ten wzorzec jest szczególnie przydatny, gdy wielu projektantów pracuje nad jednym projektem. - Co to jest „conflict” w git?
„Conflict” powstaje, gdy zatwierdzenie, które ma zostać scalone, ma pewne zmiany w jednym miejscu, a obecne zatwierdzenie ma również zmianę w tym samym miejscu. Git nie będzie w stanie przewidzieć, która zmiana powinna mieć pierwszeństwo. - Co to jest kontrola wersji GIT?Za pomocą kontroli wersji GIT można śledzić historię kolekcji plików, wlacznie z funkcja przywracania kolekcji plików do innej wersji. Każda wersja przechwytuje migawkę systemu plików w określonym momencie. Zbiór plików i ich pełna historia są przechowywane w repozytorium.
- Co to jest Chef?
Chef to potężne narzędzie do zarządzania konfiguracją i narzędzie do automatyzacji. Przekształca infrastrukturę firmy w ustrukturyzowany format kodu. Dzięki Chef możesz opracowywać skrypty, które mogą służyć do automatyzacji procesów informatycznych i biznesowych. - Omów główne komponenty narzędzia Chef.* Architekturę Chef-a można podzielić na serwer, stację roboczą i węzeł.
* Serwer Chef – serwer ten można uważać za centralny magazyn, w którym gromadzone są wszystkie dane niezbędne do skonfigurowania węzłów.
* Chef Node – węzeł może być uznany za klienta odpowiedzialnego za udostępnianie danych w sieci i jest oparty na architekturze szefa-klienta.
* Stacja robocza Chef – stacja robocza Chef-a może być uważana za hosta do modyfikowania danych konfiguracyjnych i Coookbooks, które są następnie przekazywane do serwera Chef-a. - Czym jest Chef resource i jakie są jego funkcje?Chef resource można postrzegać jako części infrastruktury używanej do instalowania lub uruchamiania usługi. Tutaj omówimy niektóre ważne zasoby Chef-a:
* Pożądany stan elementu konfiguracji można opisać
* Aby doprowadzić określony przedmiot do stanu, będziesz wiedział, jakie są kroki
* Możesz wybrać zasoby, takie jak pakiet, szablon lub usługi
* Możesz wymienić właściwości zasobów i inne potrzebne szczegóły
* Możesz pogrupować zasoby w przepisy opisujące działającą konfigurację. - Co to są zasoby Chef-a i jego funkcje?Kiedy grupujesz zasoby, zostaje ono przekonwertowane na Recipe, co opisuje działającą konfigurację i zasady. Korzystając z Recipe, możesz uzyskać wszystko, co jest konieczne do skonfigurowania określonego systemu. Oto kilka ważnych funkcji Recipe:
* Dzięki Chef Recipe możesz zainstalować składniki oprogramowania
* Możesz zarządzać wdrażaniem plików i aplikacji
* Możesz wykonać inne przepisy, używając jednego przepisu. - Co to jest Chef Node i jakie jest jego znaczenie?
Można traktować węzeł jako fizyczny serwer lub maszyne wirtualna, która jest składnikiem architektury Chef-a. Z jego pomocą, można wykonać dowolny zasób. - Jaka jest różnica między Cookbook a Recipe w Chef?
Gdy grupujesz zasoby razem, otrzymujesz Recipe, co jest przydatne w wykonywaniu konfiguracji i zasad. Po połączeniu przepisów otrzymujesz Cookbook, co jest łatwe do zarządzania w porównaniu do Recipe. - Jaka jest różnica między Cookbook a Recipe w Chef?
Gdy akcja dla zasobu Chef-a nie zostanie zdefiniowana, automatycznie wybierze akcję domyślną (Default). - Jak działa repozytorium Chef?
Można myśleć o repozytorium Chef jako o kolekcji Cookbooks, ról, środowisk, data bags i innych. Możliwe jest zsynchronizowanie repozytorium Chef-a z Gitem i systemem kontroli wersji w celu poprawy jego wydajności. - Wyjaśnij, czym jest lista uruchomieniowa (run-list) w Chef?
Lista uruchomieniowa (run-list) jest wymagana do określenia przepisów (Recipies), które są potrzebne do jej dzialania oraz kolejności, w której przepisy będą wykonywane.Niektóre zalety listy uruchomieniowej obejmują:
* Zapewnia, że przepisy działają w tej samej kolejności, w jakiej zostały określone
* Węzeł, na którym ma zostać wykonana lista uruchomieniowa, musi zostać określony.
* Jest przenoszony ze stacji roboczej na serwer Chef-a i konsolę zarządzania.
