Tin tức và phân tích của tất cả các thiết bị di động

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

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

Bạn muốn biết nên hỏi những câu hỏi nào 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 chạm đế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. Dướ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 đang tìm kiếm vai trò kỹ sư DevOps.

DevOps là gì?

DevOps là một hình thức phát triển và vận hành ngắn gọn. Hoạt động kỹ thuật phần mềm này tập hợp các nhóm phát triển và vận hành để tự động hóa từng bước 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 nhóm.

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

  • 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 mà nhóm phát triển tích hợp các thành phần khác nhau và đảm bảo rằng 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 kế hoạch trước.
  • Triển khai liên tục. Giai đoạn này đảm bảo sự phát triển liền mạch 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 tính 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 do người dùng cuối báo cáo sẽ được phân tích.
  • Hoạt động liên tục. Nó cho phép các nhà phát triển tạo ra các phiên bản sản phẩm tốt hơn và phát hiện vấn đề một cách nhanh chóng.

Ưu điểm của DevOps là gì?

  • Giao sản phẩm 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

Kể tên một số KPI DevOps

  • Tần suất triển khai
  • Thay đổi âm lượng
  • Thời gian thực hiện
  • Tỷ lệ thất bại triển khai
  • Phát hiện thời gian
  • Tỷ lệ thoát lỗi

Sự khác biệt giữa DevOps và Agile

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 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ế để giúp các nhóm làm việc hiệu quả hơn và đưa ra các bản phát hành dựa trên nhu cầu thay đổi.

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

AWS có một bộ dịch vụ linh hoạt giúp doanh nghiệp xây dựng ứng dụng một cách đáng tin cậy và nhanh chóng. Dịch vụ AWS đơn giản hóa việc triển khai mã, cung cấp và đơ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.

Việc sử dụng SSH là gì?

SSH (Secure Shell) là 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ụ nhiều mục đích khác nhau 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 kết nối, kết nối mạnh mẽ và bảo mật.

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 kết hợp mã của họ vào kho lưu trữ trung tâm. Mã sau đó được tự động biên dịch và kiểm tra.

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

Đây là một quy trình kỹ thuật 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 vật lý và chức năng trong suốt vòng đời của nó.

Kiểm tra liên tục là gì?

Đây là quá trình thử nghiệm ứng dụng được lên kế hoạch và tự động hóa khi nó phát triển.

Git là gì?

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

Liệt kê 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 vẫn giữ nguyên nhật ký cam kết của các nhánh tương ứng.

Lệnh rebase Git 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ý sẽ được thay đổi sau khi quá trình hoàn tất.

Giải thích sự khác biệt giữa tìm nạp Git và kéo Git

Tìm nạp Git yêu cầu git tìm nạp/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ỳ việc chuyển tập tin nào mà chỉ kiểm tra.

Git pull kiểm tra và di chuyển các thay đổi từ kho lưu trữ từ xa sang 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à loại của nó 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à các 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” trên máy chủ và tất cả các thay đổi được thực hiện đối với 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 phối (DVCS) – Không có máy chủ trung tâm để lưu trữ tất cả các tệp dự án. Git và Mercurial là ví dụ về DVCS.

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

  • Nó giúp các nhà phát triển làm việc hiệu quả và 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 khả năng truy xuất nguồn gốc
  • Giúp quản lý việc 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 riêng/mới của kho lưu trữ chính. Các nhánh cho phép bạn làm việc trên các 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à nhóm phát triển sử dụng khi viết, hợp nhất và triển khai mã. Cách tiếp cận này đảm bảo rằng các lỗi và sai sót được khắc phục ở giai đoạn nhánh trước khi được sáp nhập vào dự án chính.

Kiểm thử tự động là gì và làm cách nào để tự động kiểm thử trong DevOps?

Kiểm tra tự động là một kỹ thuật để tự động xem xét và xác thực mã. Kiểm tra tự động được thiết kế để xác minh rằng 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 đáp ứng.

Kiểm tra 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 đường dẫn Jenkins. Jenkinsfile được kiểm tra dựa trên kho lưu trữ kiểm soát nguồn. Một số công dụng của nó là; cho phép tạo 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 sự thật duy nhất trong quy trình.

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

Jenkins có kiến ​​trúc chủ-nô lệ. Điều này có nghĩa là nhiều “nô lệ” làm việc cho một “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 trong các môi trường khác nhau và kết quả được thu thập và kết hợp trong nút chính để theo dõi.

Các plugin Jenkins tốt nhất 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
  • Phích cắm Amazon EC2 cho Jenkins

IDE Selenium là gì?

Selenium IDE là một công cụ ghi lại các tương tác trình duyệt cho các trường hợp thử nghiệm. Trong môi trường phát triển tích hợp Selenium, bạn có thể đặt điểm dừng cũng như kiểm tra và giữ các biến trong trường hợp có lỗi.

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

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

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

Các trường hợp ngoại lệ khác nhau trong Selenium là gì?

  • Ngoại lệ ElementNotSelectable
  • NoAlertPresentException
  • Ngoại lệ bộ chọn không hợp lệ
  • NoSuchSessionNgoại lệ
  • Phần tử cũTham khảoNgoại lệ
  • Không có như vậyCửa sổNgoại lệ
  • NoSuchFrameNgoại lệ
  • NoSuchElementException
  • Ngoại lệ hết thời gian chờ
  • ElementNotVisibleException

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

Lệnh driver.close() đóng cửa sổ trình duyệt đang được lấy nét. 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ổ trình duyệt.

Dockerfile là gì?

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

Sự khác biệt giữa hình ảnh docker và vùng chứa docker

Hình ảnh Docker là các mẫu chỉ đọc được xây dựng 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 để mọi ứng dụng chạy thành công trên mọi hệ điều hành hoặc nền tảng.

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

Thảo luận về kiến ​​trúc Docker

Docker chạy trên kiến ​​trúc client-server và bao gồm Docker Client, Docker Host và Docker Register.

Docker Client sử dụng API REST và các lệnh để giao tiếp với máy chủ (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ôi trường để thực thi và chạy các ứng dụng. Nó bao gồm một daemon docker, bộ lưu trữ, hình ảnh, vùng chứa và kết nối mạng.
  • Docker Đăng ký quản lý và lưu trữ hình ảnh Docker.

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à công cụ giám sát toàn bộ cơ sở hạ tầng CNTT để đảm bảo các quy trình, hệ thống, dịch vụ và ứng dụng kinh doanh hoạt động bình thường.

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

  • Giám sát. Nhân viên CNTT cấu hình Nagios để giám sát các giao thức mạng, số liệu hệ thống, ứng dụng, cơ sở hạ tầng mạng, dịch vụ và máy chủ.
  • Đáng báo động. 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ể được gửi qua SMS, mã tùy chỉnh hoặc email.
  • Trả lời. Nhóm CNTT xác nhận cảnh báo và thực hiện hành động.
  • Báo cáo. Báo cáo được tạo với bản ghi lịch sử về thông báo, thời gian ngừng hoạt động, phản hồi cảnh báo và sự kiện để xem xét sau.
  • BẢO TRÌ. Thời gian ngừng hoạt động theo lịch trình sẽ ngăn không cho gửi cảnh báo trong quá trình bảo trì.

Thay thế một số plugin trong Nagios

  • Các plugin Nagios chính thức được phát triển và duy trì bởi nhóm chính thức
  • Các plugin tùy chỉnh được viết bởi cá nhân/công ty để đáp ứng 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 về ảo hóa với Nagios

Nagios cung cấp khả năng giám sát các chỉ số khác nhau trên các nền tảng ảo hóa khác nhau. Nagios có thể chạy trên 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 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

Trình phân tích mạng Nagios là gì?

Nagios Network Analyser là 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, ngừng hoạt động và rủi ro 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 khả năng hiển thị nâng cao về lưu lượng mạng và cơ sở hạ tầng CNTT.

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

  • Tên – “Tên” của mẫu có thể kế thừa các biến/thuộc tính đối tượng.
  • Sử dụng – chỉ định tên của đối tượng mẫu mà bạn muốn kế thừa các biến/thuộc tính.
  • Đăng ký cho biết tên đối tượng mẫu có nên được “đăng ký” trong Nagios hay không.

Marionette là gì?

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

Tuyên ngôn con rối là gì?

Tệp kê khai Puppet là một tệp chứa ngôn ngữ cấu hình Puppet 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ó theo 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 đến 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 một đầu bếp bắt đầu khi quản trị viên hệ thống hoặc lập trình viên xác định các nhiệm vụ cần tự động hóa. 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) sau đó đượ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 đến máy chủ đầu bếp bằng cách sử dụng các công cụ dòng lệnh dành cho đầu bếp và dao. Quá trình triển khai đầu bếp bao gồm máy chủ đầu bếp, máy trạm và nút. Bạn có thể chọn từ hơn 3.000 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 đó đầu bếp sẽ làm phần còn lại của công việc.

bản tóm tắt

Theo Glassdoor, mức lương trung bình của kỹ sư DevOps ở Mỹ là 104.281 USD mỗi năm. Mặc dù DevOps là một nghề nghiệp 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 vị 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 bạn có thể gặp trong cuộc phỏng vấn DevOps.

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

Mục lục