DevOps interview Q&A (2nd PART)
1) Jakie znaczenie ma Chef starter kit?
Starter kit jest potrzebny do tworzenia plików konfiguracyjnych w Chef. Dostarcza informacji na temat interakcji z serwerem i definiowania pliku konfiguracyjnego. Starter kit można łatwo pobrać i używać go w wybranym miejscu na stacji roboczej.
2) Jak wygląda proces aktualizacji Chef Cookbook?
Przedstawiamy kroki, które należy wykonać, aby zaktualizować Chef Cookbook:
• Ze stacji roboczej uruchom Knife SSH
• Uruchom SSH i Chef-client bezpośrednio na serwerze
• Możesz użyć Chef-client jako demona do ponownego uruchomienia usługi w razie potrzeby
3) Jakich informacji potrzebujesz w procesie bootstrappingu w Chef?
Jeśli chcesz bootstrapować w Chef, potrzebujesz następujących informacji:
• Nazwa hosta lub publiczny adres IP węzła
• Nazwa użytkownika i hasło do logowania do określonego węzła
• Używanie kluczy jako uwierzytelnienia zamiast poświadczeń logowania
4) Co to jest Docker?
Docker można zdefiniować jako platformę kontenerową, która łączy wszystkie aplikacje w pakiecie, dzięki czemu posiadane sa wszystkie zależności do uruchamiania aplikacji w dowolnym środowisku. Oznacza to, że aplikacja będzie działała bezproblemowo w dowolnym środowisku, a to ułatwia przygotowanie aplikacji gotowej na produkt. To, co robi Docker, to pakowanie oprogramowania, które jest potrzebne w systemie plików, który ma wszystko do uruchamiania kodu, zapewniając środowisko wykonawcze oraz wszystkie niezbędne biblioteki i narzędzia systemowe. Technologia konteneryzacji, taka jak Docker, będzie dzielić to samo jądro systemu operacyjnego z maszyną i dlatego tak jest ekstremalnie szybka. Oznacza to, że nalezy uruchomić Dockera tylko na początku, a potem, ponieważ system operacyjny już działa, nastapi płynny i bezproblemowy proces.
5) Jaka jest korzyść z używania Dockera w porównaniu do Hypervisore’a?
Chociaż Docker i Hypervisor mogą ogólnie wykonywać tę samą pracę, istnieje wiele różnic między nimi pod względem sposobu działania. Docker może być uważany za lekki, ponieważ zużywa znacznie mniej zasobów, a także hostuje jądro, a nie tworzy je jak Hypervisor.
6) Jakie są unikalne cechy Dockera w porównaniu z innymi technologiami konteneryzacji?
• Możesz uruchomić swój kontener Docker na komputerze lub w systemie informatycznym przedsiębiorstwa
• Wraz z Docker Hub, który jest repozytorium wszystkich kontenerów, możesz wdrażać i pobierać wszystkie swoje aplikacje z centralnej lokalizacji
• Możesz nawet udostępniać swoje aplikacje wraz z utworzonymi kontenerami.
7) Co to jest Dockera image?
Dockera image pomaga tworzyć kontenery Docker. Możesz utworzyć Docker image za pomocą polecenia kompilacji, dzięki czemu tworzy on kontener, który zaczyna się, gdy zaczyna działać. Wszystkie docker images są przechowywane w rejestrze Dockera, podobnie jak publiczny rejestr dokerów. Mają one minimalną liczbę warstw w obrazie, dzięki czemu w sieci jest minimalna ilość danych.
8) Co to jest Docker container?
Jest to kompleksowy zestaw aplikacji, w tym wszystkie jego zależności, które współużytkują to samo jądro systemu operacyjnego wraz z innymi kontenerami działającymi w osobnych procesach w systemie operacyjnym w przestrzeni użytkownika. Docker nie jest powiązany z żadną infrastrukturą IT, dlatego może działać na dowolnym systemie komputerowym lub w chmurze. Możesz utworzyć Docker container za pomocą Docker images, a następnie uruchomić go lub użyć obrazów już utworzonych w Docker Hub. Aby uprościć rzeczy, powiedzmy, że Docker containery są tylko instancjami wykonawczymi Docker image.
9) Co to jest Docker Hub?
Możesz myśleć o Docker Hub jako rejestrze w chmurze, która pozwala łączyć repozytoria kodu, tworzyć obrazy i testować je. Możesz także przechowywać swoje pushed images lub możesz połączyć się z Docker Cloud, aby obrazy mogły zostać wdrożone na hoście. Dysponujesz scentralizowanym zasobem do wyszukiwania obrazów kontenerów, którego można używać do współpracy zespołów, automatyzacji przepływu pracy, dystrybucji i zarządzania zmianami poprzez tworzenie potoku programowania.
10) Jakie jest zastosowanie Dockerfile?
Dockerfile można traktować jako zestaw instrukcji, które należy przekazać do Docker, aby obrazy mogły być budowane na podstawie określonych instrukcji w Dockerfile. Można myśleć o Dockerfile jako dokumencie tekstowym, który zawiera wszystkie polecenia potrzebne do utworzenia
Docker image. Można utworzyć automatyczną kompilację, która umożliwia wykonywanie wielu wierszy poleceń jedna po drugiej.
11) Jaki jest proces tworzenia Docker container?
Można użyć dowolnego określonego Docker image do utworzenia Docker container za pomocą poniższego polecenia.
docker run -t -i command name
To polecenie nie tylko tworzy kontener, ale także uruchamia go dla Ciebie. Jeśli chcesz sprawdzić, czy Docker container został utworzony, czy nie, musisz mieć następujące polecenie, które wyświetli wszystkie Docker containers wraz z hostem, na którym działa Docker container.
docker ps –a
12) Co to jest Ansible?
Ansible to platforma automatyzacji typu open source, która może pomóc w zarządzaniu konfiguracją, automatyzacji zadań i wdrażaniu aplikacji. Ansible używa SSH zainstalowanego na wszystkich systemach, w przeciwieństwie do innych programów konfiguracyjnych, które działają na architekturze agenta. Ansible wykonuje również IT orchestration, w których uruchamiasz zadania i tworzysz chain of events, które mają miejsce na różnych serwerach i urządzeniach. Jest napisany w języku Pythonie, który musi być zainstalowany na zdalnym hoście. Ansible jest bardzo łatwy w konfiguracji, ale jest to bardzo potężne narzędzie do wdrażania oprogramowania.
13) Opowiedz o architekturze Ansible.
Ansible pracuje w „agentless architecture”. Działa poprzez podłączenie do twoich węzłów i wypycha do nich moduły Ansible, które są małymi programami. Moduły te są zapisywane w węzłach zasobów pożądanego stanu systemu. Za pomocą SSH Ansible wykonuje te moduły i usuwa je po zakończeniu. Ponieważ ansibles są oparte na agentless architecture, twoja pula modułów może znajdować się na dowolnym komputerze, bez konieczności używania serwera, deamons lub baz danych. Potrzebujesz tylko programu terminalowego, edytora tekstu i systemu kontroli wersji, aby sprawdzać zmiany w swoich treściach. „Autorized_key” Ansible służy do wskazywania, jakie maszyny będą korzystać z których hostów.
14) Porównaj Ansible z Puppet
Ansible: Ansible jest bardzo prosty w konfiguracji. Jest to prosta technologia napisana w języku YAML. Opiera się na agentless architecture, która nie wymaga od węzłów lokalnej instalacji deamon’ów. Ułatwia automatyczny przepływ pracy w celu zapewnienia ciągłej i bezproblemowej dostawy. Ansible nie obsługuje system Windows. Ma dobre GUI, a CLI akceptuje polecenia w prawie każdym języku.
Puppet: Puppet jest złożoną technologią w porównaniu z Ansible. Jest napisana w języku Ruby. Działa na łatwej instalacji i ułatwia wizualizację i raportowanie. Nie jest oparty na agentless architecture, w przeciwieństwie do Ansible, Puppet obsługuje dla prawie wszystkich głównych systemów operacyjnych. Warunkiem korzystania z Puppet jest to, że użytkownik musi nauczyć się Puppet DSL.
15) Jak zachować secret data w playbook?
Jeśli chcesz zachować secret data w zawartosci Ansible i nadal udostępniać je publicznie, możesz użyć Vault w playbooks.
16) Kiedy należy przetestować playbooks i role?
W Ansible testy są dodawane w nowych playbookach lub w istniejących. Dlatego większość zadań związanych z testowaniem oferuje przejrzysty hosting za każdym razem, a dzięki tej metodzie musisz wprowadzić bardzo niewielkie zmiany w kodowaniu.
17) Co to jest Ansible role?
Pierwszym krokiem w tworzeniu Ansible role jest utworzenie directory structure.
18) Wymień niektóre zalety korzystania z Ansible.
• Agentless – jego struktura pracy wykorzystuje agentless architecture. Węzły nie są wymagane do instalowania i uruchamiania deamonów w tle w celu połączenia z maszyną sterującą.
• Niskie koszty ogólne – dzięki modelowi agentless, Ansibles zmniejsza koszty ogólne sieci, uniemożliwiając węzłom odpytywanie maszyny sterującej.
• Bezpieczny i spójny – Ansible używa SSH i Pythona tylko na zarządzanych węzłach. Zapewnia to bezpieczeństwo i ochronę. Ponadto Ansible zapewnia spójne środowisko.
• Niezawodny – Ansible playbook może być idempotent, jeśli zostanie starannie napisany. Zapobiega to nieoczekiwanym skutkom ubocznym w zarządzanych systemach.
• Dobra wydajność – Ansible zapewnia nieskazitelną wydajność. Mimo że jest bardzo łatwy w konfiguracji, jest to potężne narzędzie do wdrażania aplikacji za pomocą SSH.
19) Jakie są wymagania wstępne dotyczące oprogramowania, które należy spełnić przed zainstalowaniem Jenkins?
Warunkiem wstępnym instalacji oprogramowania Jenkins jest zainstalowanie Java Development Kit. Do instalacji potrzebna jest Jakarta Enterprise Edition. Jenkins jest również wyposażony we wbudowane środowisko wykonawcze Jetty, którego można używać, jeśli WebSphere lub Tomcat nie są dostępne.
20) Jak skonfigurować i używać narzędzi third-party tools w Jenkins?
Oto niektóre z kroków używanych do pracy z narthird-party tools w Jenkins.
• Najpierw musisz zainstalować oprogramowanie third-party.
• Musisz mieć wtyczkę, która obsługuje third-party tool.
• Musisz skonfigurować third-party tool w admin console.
• Następnie możesz użyć plug-in z Jenkins build job.
21) Jak wykonać kopię zapasową Jenkins build jobs?
W konfiguracji XML każda kompilacja Jenkins jest przechowywana. Po skopiowaniu tego folderu tworzona jest kopia zapasowa konfiguracji wszystkich zadań kompilacji zarządzanych przez wzorzec Jenkins. Jeśli możesz przeprowadzić integrację z Jenkins Git, to dobrze. Po skopiowaniu zawartości folderu zobaczysz, że zadania kompilacji opisane w folderze zostaną przywrócone przy następnym uruchomieniu serwera Jenkins.
22) Jakie kroki są zawarte w Jenkins pipeline?
Kompletny Jenkins pipeline będzie obejmował zbudowanie projektu z kodu źródłowego, przepuszczenie go przez różne unity, integrację, testowanie pod kątem akceptacji i wydajności użytkownika, a następnie wdrożenie aplikacji na serwerze aplikacji.
Tak więc kroki w Jenkins pipeline będą obejmować:
1. Build
2. Test
3. Deploy
23) Wyjaśnij, co to jest narzędzie Jenkins?
Jenkins można traktować jako narzędzie do automatyzacji oprogramowania typu open source, które służy do continuous integration. Będziesz mógł stale testować swoje projekty oprogramowania, aby programiści mogli zintegrować zmiany z projektem. Możesz także zintegrować z dużą liczbą technologii testowania i deployu.
24) Podaj niektóre zalety korzystania z Jenkinsa?
• Otrzymasz automatyczny raport kompilacji za każdym razem, gdy zostanie dokonana zmiana w kodzie źródłowym
• Będziesz w stanie osiągnąć ciągłą integrację z zasadami metodologii agile
• Możesz zautomatyzować projekt wydania maven za pomocą kilku prostych kroków
• Błędy można łatwo wyśledzić we wczesnym etapie rozwoju.
25) Jakie są wymagania dotyczące używania Jenkinsa?
• Repozytorium kodu źródłowego, takie jak repozytorium Git
• Skrypt kompilacji, taki jak skrypt Maven, który jest sprawdzany w repozytorium.
26) Jak zaplanować kompilacje w Jenkins?
Oto kilka kroków do planowania kompilacji w Jenkins
• Najpierw powinieneś zrobić commit do zarządzania kodem źródłowym
• Musisz ukończyć pozostałe kompilacje
• Musisz zaplanować jego uruchomienie w określonym czasie
• Podaj manual build request
