46 câu hỏi và câu trả lời phỏng vấn DevOps thường gặp [2023]

Spread the love

Bạn muốn biết những câu hỏi cần hỏi trong cuộc phỏng vấn DevOps tiếp theo của mình? Bắt đầu với hướng dẫn hữu ích của chúng tôi.

Thuật ngữ DevOps được đặt ra vào năm 2007-2008 nhưng hiện đã trở thành một trong những nghề nghiệp phổ biến nhất trong công nghệ phần mềm. DevOps là một sự thay đổi văn hóa tác động đến mọi khía cạnh của quá trình phát triển và vận hành.

Hai nhóm (phát triển và vận hành) làm việc cùng nhau từ lập kế hoạch và xây dựng đến giám sát và lặp lại. Đây là những câu hỏi phổ biến nhất mà bạn có thể gặp phải nếu tìm kiếm vai trò kỹ sư DevOps.

Mục lục

DevOps là gì?

DevOps là hình thức phát triển và vận hành ngắn. Thực hành công nghệ phần mềm này tập hợp các nhóm phát triển và vận hành lại với nhau để tự động hóa mọi giai đoạn của dự án. Nhóm DevOps tập trung vào quản lý tài nguyên, giao tiếp và làm việc theo nhóm.

Các giai đoạn khác nhau trong phương pháp DevOps là gì

  • Sự phát triển không ngừng. Đây là giai đoạn lập kế hoạch và mã hóa.
  • Hội nhập liên tục. Đây là giai đoạn nhóm phát triển tích hợp các thành phần khác nhau và đảm bảo mã không bị hỏng.
  • Thử nghiệm liên tục. Đây là giai đoạn thử nghiệm tự động và được lên lịch trước.
  • Triển khai liên tục. Giai đoạn này đảm bảo quá trình phát triển diễn ra suôn sẻ, không ảnh hưởng đến hiệu suất của toàn bộ ứng dụng.
  • Giám sát liên tục. Giai đoạn này đảm bảo hiệu quả tổng thể của ứng dụng.
  • Phản hồi liên tục. Các vấn đề và hiệu suất, theo báo cáo của người dùng cuối, được phân tích.
  • Hoạt động liên tục. Cho phép nhà phát triển xây dựng các phiên bản tốt hơn của sản phẩm và phát hiện sự cố nhanh chóng.

Lợi ích của DevOps là gì?

  • Giao hàng nhanh hơn và tốt hơn
  • Khả năng mở rộng lớn hơn
  • Giải quyết vấn đề nhanh chóng
  • Sử dụng tài nguyên tốt hơn

Đặt tên cho một số KPI DevOps

  • Tần suất triển khai
  • Thây đổi độ lơn âm thanh
  • thời gian triển khai
  • Tỷ lệ triển khai không thành công
  • phát hiện thời gian
  • Tỷ lệ thoát lỗi

Sự khác biệt giữa DevOps và nhanh nhẹn

DevOps là một nền văn hóa thúc đẩy sự hợp tác giữa tất cả các thành viên trong nhóm tham gia vào quá trình phát triển và bảo trì phần mềm.

Agile là một phương pháp phát triển được thiết kế để làm cho các nhóm làm việc hiệu quả và thúc đẩy các bản phát hành dựa trên nhu cầu thay đổi.

  Làm thế nào để mở khóa tìm thấy iPhone bị mất

Vai trò của AWS trong DevOps là gì

AWS có một tập hợp các dịch vụ linh hoạt giúp các công ty phát triển ứng dụng một cách đáng tin cậy và nhanh chóng. Các dịch vụ AWS đơn giản hóa việc triển khai mã, cung cấp & đơn giản hóa cơ sở hạ tầng, tự động hóa quy trình phát hành phần mềm và giám sát hiệu suất cơ sở hạ tầng.

Công dụng của SSH là gì?

SSH (Secure Shell) là một giao thức cho phép kết nối an toàn giữa các máy tính khác nhau. SSH phục vụ các mục đích khác nhau, chẳng hạn như cung cấp; xác thực mạnh mẽ, mã hóa mạnh mẽ, duy trì tính toàn vẹn của kết nối, kết nối và bảo mật mạnh mẽ.

Tích hợp liên tục là gì?

Tích hợp liên tục cho phép các nhà phát triển phần mềm hợp nhất mã của họ vào kho lưu trữ trung tâm. Sau đó, mã được thực hiện thông qua các bản dựng và thử nghiệm tự động.

Quản lý cấu hình là gì?

Đó là quy trình kỹ thuật của hệ thống nhằm thiết lập và duy trì tính nhất quán về hiệu suất của hệ thống/sản phẩm cũng như các thuộc tính chức năng và vật lý trong suốt vòng đời của nó.

Thử nghiệm liên tục là gì?

Đây là thử nghiệm được lên lịch trước và tự động của một ứng dụng khi quá trình phát triển diễn ra.

Git là gì?

Đây là một công cụ mã nguồn mở và miễn phí để quản lý mã nguồn. Công cụ này được thiết kế để xử lý các dự án lớn và nhỏ.

Đề cập đến một số lệnh Git cơ bản

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>

Giải thích sự khác biệt giữa Git merge và Git rebase

Lệnh hợp nhất Git cho phép các nhà phát triển hợp nhất các nhánh Git khác nhau trong khi nhật ký xác nhận của các nhánh tương ứng vẫn còn nguyên.

Lệnh Git rebase cho phép các nhà phát triển tích hợp các thay đổi từ nhánh này sang nhánh khác và nhật ký được thay đổi sau khi quá trình hoàn tất.

Giải thích sự khác biệt giữa Git fetch và Git pull

Git tìm nạp yêu cầu git truy xuất/kiểm tra siêu dữ liệu mới nhất từ ​​​​bản gốc. Tuy nhiên, nó không thực hiện bất kỳ chuyển tập tin nào mà chỉ kiểm tra.

Git pull kiểm tra và mang các thay đổi từ kho lưu trữ từ xa đến dự án cục bộ.

Xung đột hợp nhất là gì?

Xung đột hợp nhất xảy ra khi bạn hợp nhất hai nhánh với các cam kết cạnh tranh. Xung đột hợp nhất thường xảy ra khi các nhà phát triển khác nhau thay đổi cùng một dòng mã hoặc tệp.

Kiểm soát phiên bản là gì và các loại khác nhau là gì?

Kiểm soát phiên bản (kiểm soát nguồn) là quá trình theo dõi và quản lý các thay đổi đối với mã phần mềm.

Đây là những loại kiểm soát phiên bản khác nhau;

  • Tập trung– có một bản sao mã nguồn “trung tâm” duy nhất trên một máy chủ và tất cả các thay đổi được chuyển giao cho bản sao ‘trung tâm’. Subversion (SVN) và Perforce là những ví dụ về kiểm soát phiên bản tập trung.
  • Phân tán (DVCS)-không có máy chủ trung tâm để lưu trữ tất cả các tệp của dự án. Git và Mercurial là những ví dụ về DVCS.

Lợi ích của việc sử dụng kiểm soát phiên bản là gì?

  • Giúp các nhà phát triển duy trì hiệu quả và sự linh hoạt
  • Cung cấp nhật ký đầy đủ về mọi thay đổi đối với dự án/tệp
  • Cải thiện truy xuất nguồn gốc
  • Giúp quản lý sáp nhập và phân nhánh
  • Cho phép cộng tác

phân nhánh là gì?

Phân nhánh đề cập đến việc tạo một phiên bản mới/riêng biệt của kho lưu trữ chính. Các nhánh cho phép bạn làm việc trên nhiều phần khác nhau của dự án mà không ảnh hưởng đến nhánh chính.

Chiến lược phân nhánh là gì?

Chiến lược hợp nhất là các phương pháp mà các nhóm phát triển phần mềm áp dụng khi viết, hợp nhất và triển khai mã. Cách tiếp cận như vậy đảm bảo rằng các lỗi và lỗi được sửa ở giai đoạn chi nhánh trước khi chúng được hợp nhất với dự án chính.

  IMVU có xóa tài khoản không hoạt động không?

Thử nghiệm tự động hóa là gì và cách tự động hóa thử nghiệm trong DevOps?

Kiểm thử tự động là một kỹ thuật tự động xem xét và xác thực mã. Kiểm thử tự động hóa được thực hiện để kiểm tra xem các tiêu chuẩn chất lượng về chức năng (logic nghiệp vụ), kiểu mã và trải nghiệm người dùng có được đáp ứng hay không.

Kiểm thử tự động được thực hiện bằng các công cụ như Selenium và Katalon.

Jenkinsfile là gì?

Jenkinsfile là một tệp văn bản chứa định nghĩa về đường dẫn Jenkins. Jenkinsfile được kiểm tra trong kho lưu trữ kiểm soát nguồn. Một số công dụng của nó là; nó cho phép một dấu vết kiểm tra cho quy trình, cho phép xem xét và lặp lại mã trên quy trình, đồng thời cung cấp một nguồn thông tin xác thực duy nhất trong quy trình.

Giải thích kiến ​​trúc trong Jenkins

Jenkins có kiến ​​trúc master-slave. Điều này có nghĩa là có nhiều ‘nô lệ’ làm việc cho một ‘ông chủ’. Do đó, Bản dựng phân tán của Jenkins có thể chạy các thử nghiệm giống hệt nhau trên các môi trường khác nhau, với các kết quả được thu thập và kết hợp trên nút chính để theo dõi.

Các plugin Jenkins hàng đầu là gì?

  • Plugin đại dương xanh cho Jenkins
  • Plugin gửi thư cho Jenkins
  • Plugin Git cho Jenkins
  • Plugin Jira cho Jenkins
  • Plugin docker cho Jenkins
  • Plugin tích hợp Maven cho Jenkins
  • Plugin Kubernetes cho Jenkins
  • Plugin SonarQube cho Jenkins
  • Plugin Amazon EC2 cho Jenkins

Selenium IDE là gì?

Selenium IDE là một công cụ ghi lại các tương tác của trình duyệt cho các trường hợp thử nghiệm. Bạn có thể đặt các điểm ngắt, kiểm tra và tạm dừng các biến khi xảy ra lỗi với Môi trường phát triển tích hợp Selenium.

Các thành phần Selenium khác nhau là gì?

Các loại thử nghiệm khác nhau trong Selenium là gì?

  • Thử nghiệm đầu cuối
  • kiểm thử hồi quy
  • Thử nghiệm hệ thống
  • Kiểm tra năng suất
  • kiểm tra khả năng tương thích

Các ngoại lệ khác nhau trong Selenium là gì?

  • ElementNotSelectableException
  • NoAlertPresentException
  • Ngoại lệ Selector không hợp lệ
  • NoSuchSessionException
  • StaleElementReferenceException
  • NoSuchWindowException
  • NoSuchFrameException
  • NoSuchElementException
  • Hết thời gian ngoại lệ
  • ElementNotVisibleException

Driver.close() và driver.quit() trong WebDriver là gì?

Lệnh driver.close() đóng cửa sổ trình duyệt tại tiêu điểm. Nếu chỉ có một trình duyệt được mở, nó sẽ đóng toàn bộ phiên trình duyệt.

Lệnh driver.quit() đóng toàn bộ phiên trình duyệt với cửa sổ bật lên, tab và cửa sổ của trình duyệt.

Dockerfile là gì?

Dockerfile là một tài liệu văn bản với tất cả các lệnh mà người dùng có thể sử dụng trên một dòng lệnh để lắp ráp một hình ảnh.

Sự khác nhau giữa docker image và docker container

Hình ảnh Docker là các mẫu chỉ đọc được tạo bằng mã nguồn, công cụ, thư viện, phần phụ thuộc bên ngoài và các tệp khác cần thiết để bất kỳ ứng dụng nào chạy thành công trên bất kỳ hệ điều hành hoặc nền tảng nào.

Bộ chứa docker là một hộp chạy các mẫu hình ảnh docker.

Giải thích kiến ​​trúc của Docker

Docker tuân theo kiến ​​trúc Client-Server và bao gồm Docker Client, Docker Host và Docker Registry.

Docker Client sử dụng REST API và các câu lệnh để giao tiếp với Server (Docker Daemon).

Docker Client sử dụng CLI để chạy các lệnh này

docker build

docker pull

docker run
  • Docker Host cung cấp một môi trường để thực thi và chạy các ứng dụng. Được tạo thành từ daemon docker, lưu trữ, hình ảnh, vùng chứa và mạng.
  • Docker Registry quản lý và lưu trữ Docker image.

Nền tảng đám mây hỗ trợ docker

Các nền tảng hỗ trợ lưu trữ docker là;

Nagios là gì?

Nagios là một công cụ giám sát toàn bộ cơ sở hạ tầng CNTT để đảm bảo rằng các quy trình kinh doanh, hệ thống, dịch vụ và ứng dụng đang hoạt động bình thường.

Nagios hoạt động như thế nào?

  • Giám sát. Nhân viên CNTT định cấu hình Nagios để giám sát các giao thức mạng, chỉ số hệ thống, ứng dụng, cơ sở hạ tầng mạng, dịch vụ và máy chủ.
  • cảnh báo. Nagios gửi cảnh báo khi các thành phần quan trọng bị lỗi. Cảnh báo có thể thông qua SMS, mã tùy chỉnh hoặc email.
  • Phản ứng. Nhóm CNTT thừa nhận cảnh báo và hành động.
  • Báo cáo. Các báo cáo cung cấp bản ghi lịch sử về thông báo, ngừng hoạt động, phản hồi cảnh báo và sự kiện để xem xét sau này được tạo.
  • Bảo trì. Thời gian chết theo lịch trình ngăn cảnh báo được gửi trong quá trình bảo trì.
  Cách tìm phiên bản Minecraft

Đề cập đến một số Plugin trong Nagios

  • Các plugin Nagios chính thức do nhóm chính thức phát triển và duy trì
  • Các plugin tùy chỉnh do cá nhân/doanh nghiệp viết để phù hợp với nhu cầu cá nhân
  • Plugin cộng đồng-được phát triển bởi các thành viên của cộng đồng Nagios

Giải thích ảo hóa với Nagios

Nagios cung cấp khả năng giám sát các số liệu khác nhau trên các nền tảng ảo hóa khác nhau. Nagios có thể chạy từ nhiều nền tảng ảo hóa khác nhau như Xen, Amazon EC2, VMware và Microsoft Virtual PC.

Nagios giúp giám sát như thế nào?

Nagios sử dụng các tác nhân như NRPE, check_mk hoặc SNMP để thu thập số liệu thống kê trên máy chủ của bạn và gửi cảnh báo nếu số liệu vượt quá ngưỡng được xác định trước.

Nagios sử dụng số cổng nào cho mục đích giám sát?

SNMP, cổng 161 và 162

Máy phân tích mạng Nagios là gì?

Bộ phân tích mạng Nagios là một phần mềm phân tích dữ liệu dòng chảy cho phép người dùng chủ động giải quyết các hành vi bất thường, sự cố ngừng hoạt động và các mối đe dọa bảo mật trước khi làm gián đoạn hoạt động kinh doanh. Công cụ cấp thương mại này cung cấp cái nhìn sâu sắc mở rộng về lưu lượng mạng và cơ sở hạ tầng CNTT.

Các biến ảnh hưởng đến kế thừa và đệ quy trong Nagios

  • Đặt tên-một mẫu ‘tên’ có thể kế thừa các biến/thuộc tính của đối tượng.
  • Sử dụng- chỉ định tên đối tượng của mẫu mà bạn muốn kế thừa các biến/thuộc tính.
  • Đăng ký cho biết liệu tên của đối tượng mẫu có được ‘đăng ký’ với Nagios hay không.

Con rối là gì?

Con rối là một công cụ nguồn mở để quản lý và triển khai cấu hình phần mềm.

Bản kê khai con rối là gì?

Tệp kê khai con rối là tệp chứa ngôn ngữ cấu hình con rối mô tả cách định cấu hình tài nguyên.

Mã con rối là gì?

Mã con rối là mã khai báo, nghĩa là bạn mô tả nó bằng trạng thái mong muốn của hệ thống chứ không phải các bước cần thiết để đạt được trạng thái đó.

Đầu bếp là gì?

Chef là một công cụ quản lý cấu hình giúp chuyển đổi cơ sở hạ tầng thành mã. Công cụ này tập trung vào việc viết mã thay vì quy trình thủ công.

Đầu bếp làm việc như thế nào?

Công việc của Chef bắt đầu khi quản trị viên hoặc nhà phát triển hệ thống xác định các tác vụ sẽ được tự động hóa. Sau đó, sách dạy nấu ăn và công thức nấu ăn (các chương trình nhỏ được viết bằng ngôn ngữ dành riêng cho miền) sẽ được ghi lại và kiểm tra bằng nhiều công cụ khác nhau như Test Kitchen, ChefSpec và Foodcritic.

Nếu sách dạy nấu ăn và công thức nấu ăn hoạt động như mong đợi, thì chúng sẽ được triển khai tới máy chủ Đầu bếp bằng cách sử dụng các công cụ dòng lệnh của đầu bếp và dao. Một quy trình triển khai đầu bếp có máy chủ Đầu bếp, máy trạm và các nút. Bạn có thể chọn từ hơn 3000 mẫu sách dạy nấu ăn và tùy chỉnh chúng theo nhu cầu của mình. Sau đó, Bếp trưởng sẽ lo những công việc còn lại.

Tóm lược

Theo Glassdoor, mức lương trung bình của một kỹ sư DevOps là $104281 mỗi năm tại Hoa Kỳ. Mặc dù DevOps là một nghề mới, nhưng giờ đây chúng ta có thể thấy ngày càng nhiều công ty tuyển dụng cho vai trò này và xuất bản nhiều khóa học khác nhau để trang bị cho các chuyên gia những kỹ năng cần thiết. Trên đây là một số câu hỏi mà bạn có thể sẽ gặp trong cuộc phỏng vấn DevOps.

Bạn cũng có thể khám phá một số khóa học trực tuyến tốt để học DevOps.

x