46 자주 묻는 DevOps 인터뷰 질문 및 답변[2023]

게시 됨: 2023-01-12

다음 DevOps 인터뷰에서 어떤 질문을 해야 하는지 알고 싶으십니까? 편리한 가이드로 시작하세요.

DevOps라는 용어는 2007-2008년에 만들어졌지만 이제 소프트웨어 엔지니어링에서 가장 인기 있는 직업 중 하나가 되었습니다. DevOps는 개발 및 운영의 모든 측면에 영향을 미치는 문화적 변화입니다.

두 팀(개발 및 운영)은 계획 및 빌드에서 모니터링 및 반복에 이르기까지 함께 작업합니다. 다음은 DevOps 엔지니어 역할을 찾는 경우 접할 수 있는 가장 일반적인 질문입니다.

DevOps란 무엇입니까?

데브옵스란?

DevOps는 개발 및 운영의 짧은 형태입니다. 이 소프트웨어 엔지니어링 관행은 개발 및 운영 팀을 모아 프로젝트의 모든 단계를 자동화합니다. DevOps 팀은 리소스 관리, 커뮤니케이션 및 팀워크에 중점을 둡니다.

DevOps 방법론의 다른 단계는 무엇입니까

  • 지속적인 개발. 계획 및 코딩 단계입니다.
  • 지속적인 통합. 이것은 개발 팀이 다양한 구성 요소를 통합하고 코드가 손상되지 않도록 하는 단계입니다.
  • 지속적인 테스트. 이것은 미리 예약되고 자동화된 테스트 단계입니다.
  • 지속적인 배포. 이 단계는 전체 앱의 성능에 영향을 미치지 않는 번거로움 없는 개발을 보장합니다.
  • 지속적인 모니터링. 이 단계는 앱의 전반적인 효율성을 보장합니다.
  • 지속적인 피드백. 최종 사용자가 보고한 문제 및 성능을 분석합니다.
  • 지속적인 운영. 개발자가 제품의 더 나은 버전을 빌드하고 문제를 빠르게 감지할 수 있습니다.

DevOps의 이점은 무엇입니까?

  • 더 빠르고 더 나은 제품 배송
  • 확장성 향상
  • 빠른 문제 해결
  • 자원 활용도 향상

몇 가지 DevOps 도구 이름 지정

  • Jenkins와 같은 지속적인 통합 도구
  • Git과 같은 버전 관리
  • Maven과 같은 빌드 도구
  • Chef와 같은 구성 관리 도구
  • Docker와 같은 컨테이너 플랫폼

일부 DevOps KPI 이름 지정

  • 배포 빈도
  • 볼륨 변경
  • 배포 시간
  • 실패한 배포 비율
  • 시간 감지
  • 결함 회피율

DevOps와 애자일의 차이점

DevOps는 소프트웨어 개발 및 유지 관리에 관련된 모든 팀원 간의 협업을 촉진하는 문화입니다.

Agile은 팀의 생산성을 높이고 변화하는 요구 사항에 따라 릴리스를 추진하도록 설계된 개발 방법론입니다.

DevOps에서 AWS의 역할은 무엇입니까

AWS는 기업이 안정적이고 신속하게 애플리케이션을 개발할 수 있도록 지원하는 유연한 서비스 세트를 보유하고 있습니다. AWS 서비스는 코드 배포, 인프라 프로비저닝 및 간소화, 소프트웨어 릴리스 프로세스 자동화, 인프라 성능 모니터링을 간소화합니다.

SSH의 용도는 무엇입니까?

SSH(Secure Shell)는 서로 다른 컴퓨터 간에 보안 연결을 허용하는 프로토콜입니다. SSH는 오퍼링과 같은 다양한 목적을 제공합니다. 강력한 인증, 강력한 암호화, 연결 무결성 유지, 강력한 연결 및 보안.

지속적인 통합이란 무엇입니까?

지속적인 통합을 통해 소프트웨어 개발자는 코드를 중앙 리포지토리에 병합할 수 있습니다. 그런 다음 자동화된 빌드 및 테스트를 통해 코드를 가져옵니다.

구성 관리란 무엇입니까?

수명 주기 동안 시스템/제품의 성능과 기능 및 물리적 특성의 일관성을 설정하고 유지하는 시스템의 엔지니어링 프로세스입니다.

지속적인 테스트 란 무엇입니까?

이는 개발이 진행됨에 따라 사전에 예약되고 자동화된 애플리케이션 테스트입니다.

힘내 란 무엇입니까?

이것은 소스 코드 관리를 위한 오픈 소스 및 무료 도구입니다. 이 도구는 크고 작은 프로젝트를 처리하도록 설계되었습니다.

몇 가지 기본 Git 명령 언급

  • 힘내 클론
 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>

Git 병합과 Git rebase의 차이점 설명

Git 병합 명령을 사용하면 개발자가 각 분기의 커밋 로그를 그대로 유지하면서 서로 다른 Git 분기를 병합할 수 있습니다.

Git rebase 명령을 사용하면 개발자가 한 분기에서 다른 분기로 변경 사항을 통합할 수 있으며 프로세스가 완료되면 로그가 변경됩니다.

Git 페치와 Git 풀의 차이점 설명

Git 가져오기는 git에게 원본에서 최신 메타데이터를 검색/확인하도록 지시합니다. 그러나 파일 전송은 하지 않고 확인만 합니다.

Git 풀은 원격 저장소에서 로컬 프로젝트로 변경 사항을 확인하고 가져옵니다.

병합 충돌이란 무엇입니까?

병합 충돌은 두 분기를 경쟁 커밋과 병합할 때 발생합니다. 병합 충돌은 일반적으로 다른 개발자가 동일한 코드 또는 파일 줄을 변경할 때 발생합니다.

버전 제어란 무엇이며 다른 유형은 무엇입니까?

버전 제어(소스 제어)는 소프트웨어 코드의 변경 사항을 추적하고 관리하는 프로세스입니다.

이들은 다양한 유형의 버전 제어입니다.

  • 중앙 집중식 – 서버에 소스 코드의 단일 "중앙" 복사본이 있고 모든 변경 사항이 '중앙' 복사본에 커밋됩니다. Subversion(SVN) 및 Perforce는 중앙 집중식 버전 제어의 예입니다.
  • 분산형(DVCS) - 모든 프로젝트 파일을 저장할 중앙 서버가 없습니다. Git과 Mercurial은 DVCS의 예입니다.

버전 제어를 사용하면 어떤 이점이 있습니까?

  • 개발자가 효율성과 민첩성을 유지하도록 지원
  • 프로젝트/파일에 대한 모든 변경 사항에 대한 완전한 로그를 제공합니다.
  • 추적성 향상
  • 병합 및 분기 관리에 도움
  • 협업 가능

분기란 무엇입니까?

분기는 기본 리포지토리의 별도/새 버전을 생성하는 것을 의미합니다. 분기를 사용하면 기본 분기에 영향을 주지 않고 프로젝트의 다양한 부분에서 작업할 수 있습니다.

분기 전략이란 무엇입니까?

병합 전략은 소프트웨어 개발 팀이 코드를 작성, 병합 및 배포할 때 채택하는 방법론입니다. 이러한 접근 방식을 통해 버그와 실수가 기본 프로젝트와 병합되기 전에 분기 단계에서 수정됩니다.

자동화 테스트란 무엇이며 DevOps에서 테스트를 자동화하는 방법은 무엇입니까?

자동화 테스트는 코드를 자동으로 검토하고 유효성을 검사하는 기술입니다. 기능(비즈니스 로직), 코드 스타일 및 사용자 경험에 대한 품질 표준이 충족되었는지 확인하기 위해 자동화 테스트가 수행됩니다.

자동화 테스트는 Selenium 및 Katalon과 같은 도구를 사용하여 수행됩니다.

젠킨스파일이란?

Jenkinsfile은 Jenkins 파이프라인의 정의를 포함하는 텍스트 파일입니다. Jenkinsfile이 소스 제어 리포지토리에 체크인됩니다. 그 용도 중 일부는 다음과 같습니다. 파이프라인에 대한 감사 추적을 허용하고 파이프라인에서 코드 검토 및 반복을 허용하며 파이프라인에서 신뢰할 수 있는 단일 소스를 제공합니다.

Jenkins의 아키텍처 설명

Jenkins에는 마스터-슬레이브 아키텍처가 있습니다. 이것은 하나의 '주인'을 위해 일하는 많은 '노예'가 있음을 의미합니다. 따라서 Jenkins 분산 빌드는 서로 다른 환경에서 동일한 테스트를 실행할 수 있으며 결과는 모니터링을 위해 마스터 노드에서 수집 및 결합됩니다.

최고의 Jenkins 플러그인은 무엇입니까?

  • Jenkins용 Blue Ocean 플러그인
  • Jenkins용 메일러 플러그인
  • Jenkins용 Git 플러그인
  • Jenkins용 Jira 플러그인
  • Jenkins용 도커 플러그인
  • Jenkins용 Maven 통합 플러그인
  • Jenkins용 Kubernetes 플러그인
  • Jenkins용 SonarQube 플러그인
  • Jenkins용 Amazon EC2 플러그인

셀레늄 IDE란?

Selenium IDE는 테스트 사례에 대한 브라우저 상호 작용을 기록하는 도구입니다. Selenium 통합 개발 환경에서 오류가 발생하면 중단점을 설정하고 변수를 확인하고 일시 중지할 수 있습니다.

다른 Selenium 구성 요소는 무엇입니까?

  • 셀레늄 IDE
  • 셀레늄 RC
  • 셀레늄 웹드라이버
  • 셀레늄 그리드

Selenium의 다양한 유형의 테스트는 무엇입니까?

  • 종단 간 테스트
  • 회귀 테스트
  • 시스템 테스트
  • 성능 시험
  • 호환성 테스트

Selenium의 다른 예외는 무엇입니까?

  • ElementNotSelectableException
  • NoAlertPresentException
  • InvalidSelectorException
  • NoSuchSessionException
  • StaleElementReferenceException
  • NoSuchWindow예외
  • NoSuchFrameException
  • NoSuchElementException
  • 시간 초과 예외
  • ElementNotVisibleException

WebDriver의 driver.close() 및 driver.quit()는 무엇입니까?

driver.close() 명령은 포커스가 있는 브라우저 창을 닫습니다. 하나의 브라우저만 열려 있으면 전체 브라우저 세션을 닫습니다.

driver.quit() 명령은 브라우저 팝업, 탭 및 창으로 전체 브라우저 세션을 닫습니다.

Dockerfile이란 무엇입니까?

Dockerfile은 사용자가 이미지를 어셈블하기 위해 명령줄에서 사용할 수 있는 모든 명령이 포함된 텍스트 문서입니다.

도커 이미지와 도커 컨테이너의 차이점

Docker 이미지는 소스 코드, 도구, 라이브러리, 외부 종속성 및 모든 운영 체제 또는 플랫폼에서 애플리케이션을 성공적으로 실행하는 데 필요한 기타 파일로 제작된 읽기 전용 템플릿입니다.

도커 컨테이너는 도커 이미지 템플릿을 실행하는 상자입니다.

Docker의 아키텍처 설명

Docker는 클라이언트-서버 아키텍처를 따르며 Docker 클라이언트, Docker 호스트 및 Docker 레지스트리로 구성됩니다.

Docker 클라이언트 는 REST API 및 명령을 사용하여 서버(Docker Daemon)와 통신합니다.

Docker 클라이언트는 CLI를 사용하여 이러한 명령을 실행합니다.

 docker build docker pull docker run
  • Docker 호스트 는 응용 프로그램을 실행하고 실행할 수 있는 환경을 제공합니다. 도커 데몬, 스토리지, 이미지, 컨테이너 및 네트워크로 구성됩니다.
  • Docker Registry 는 Docker 이미지를 관리하고 저장합니다.

도커를 지원하는 클라우드 플랫폼

도커 호스팅을 지원하는 플랫폼은 다음과 같습니다.

  • 카마테라
  • 구글 클라우드 런
  • A2 호스팅
  • StackPath
  • Sloppy.io
  • 아마존 ECS
  • 마이크로소프트 애저
  • HostPresto
  • 불트르

나기오스란?

Nagios는 전체 IT 인프라를 모니터링하여 비즈니스 프로세스, 시스템, 서비스 및 애플리케이션이 제대로 작동하는지 확인하는 도구입니다.

Nagios는 어떻게 작동합니까?

  • 모니터링 . IT 직원은 네트워크 프로토콜, 시스템 메트릭, 애플리케이션, 네트워크 인프라, 서비스 및 서버를 모니터링하도록 Nagios를 구성합니다.
  • 경고 . 중요한 구성 요소가 실패하면 Nagios가 경고를 보냅니다. 경고는 SMS, 사용자 정의 코드 또는 이메일을 통해 이루어질 수 있습니다.
  • 응답 . IT 팀은 경고를 확인하고 조치를 취합니다.
  • 보고서 . 나중에 검토할 수 있도록 알림, 중단, 경고 응답 및 이벤트의 기록 레코드를 제공하는 보고서가 생성됩니다.
  • 유지 보수 . 예약된 가동 중지 시간은 유지 관리 중에 경고가 전송되지 않도록 합니다.

Nagios의 일부 플러그인 언급

  • 공식 Nagios 플러그인 -공식 팀에서 개발 및 유지 관리
  • 맞춤형 플러그인 - 개인의 필요에 맞게 개인/기업이 작성
  • 커뮤니티 플러그인 - Nagios 커뮤니티 구성원이 개발

Nagios로 가상화 설명

Nagios는 다양한 가상화 플랫폼에서 다양한 메트릭을 모니터링하는 기능을 제공합니다. Nagios는 Xen, Amazon EC2, VMware 및 Microsoft Virtual PC와 같은 다양한 가상화 플랫폼에서 실행할 수 있습니다.

Nagios는 모니터링을 어떻게 지원합니까?

Nagios는 NRPE, check_mk 또는 SNMP와 같은 에이전트를 사용하여 서버에서 통계를 수집하고 메트릭이 미리 정의된 임계값을 초과하면 경고를 보냅니다.

Nagios는 모니터링 목적으로 어떤 포트 번호를 사용합니까?

SNMP, 포트 161 및 162

Nagios 네트워크 분석기란 무엇입니까?

Nagios 네트워크 분석기는 사용자가 비즈니스 운영을 중단하기 전에 비정상적인 동작, 정전 및 보안 위협을 사전에 해결할 수 있는 sflow 데이터 분석 소프트웨어입니다. 이 상용 등급 도구는 네트워크 트래픽 및 IT 인프라에 대한 확장된 통찰력을 제공합니다.

Nagios에서 상속 및 재귀에 영향을 미치는 변수

  • 이름 - 개체 변수/속성을 상속할 수 있는 템플릿 '이름'입니다.
  • 사용 지정 변수/속성을 상속하려는 템플릿의 객체 이름.
  • 등록 은 템플릿 개체의 이름을 Nagios에 '등록'해야 하는지 여부를 나타냅니다.

꼭두각시 란 무엇입니까?

Puppet은 소프트웨어 구성 관리 및 배포를 위한 오픈 소스 도구입니다.

Puppet 매니페스트란 무엇입니까?

Puppet 매니페스트는 리소스 구성 방법을 설명하는 Puppet 구성 언어가 포함된 파일입니다.

꼭두각시 코드는 무엇입니까?

꼭두각시 코드는 선언적 코드입니다. 즉, 원하는 시스템 상태에 도달하는 데 필요한 단계가 아니라 원하는 상태를 사용하여 설명합니다.

셰프란?

Chef는 인프라를 코드로 변환하는 구성 관리 도구입니다. 이 도구는 수동 프로세스 대신 코드 작성에 중점을 둡니다.

셰프는 어떻게 일하나요?

Chef의 작업은 시스템 관리자 또는 개발자가 자동화할 작업을 정의할 때 시작됩니다. 그런 다음 Test Kitchen, ChefSpec 및 Foodcritic과 같은 다양한 도구를 사용하여 요리책 및 레시피(도메인별 언어로 작성된 작은 프로그램)를 캡처하고 테스트합니다.

쿡북과 레시피가 예상대로 작동하면 knife 및 chef 명령줄 도구를 사용하여 Chef 서버에 배포됩니다. Chef 배포 프로세스에는 Chef 서버, 워크스테이션 및 노드가 있습니다. 3000개가 넘는 요리책 템플릿 중에서 선택하고 필요에 맞게 사용자 지정할 수 있습니다. 셰프가 나머지 작업을 처리합니다.

요약

Glassdoor에 따르면 DevOps 엔지니어의 평균 급여는 미국에서 연간 $104281입니다. DevOps는 새로운 직업이지만 이제 더 많은 회사가 이 역할을 위해 고용하고 전문가에게 필수 기술을 갖추도록 다양한 과정을 게시하는 것을 볼 수 있습니다. 위는 DevOps 인터뷰에서 접할 수 있는 몇 가지 질문입니다.

DevOps를 배우기 위한 좋은 온라인 과정을 탐색할 수도 있습니다.