× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Hơn 50 câu hỏi và câu trả lời phỏng vấn DevOps hàng đầu năm 2024

25/05/2024 03:05

Dưới đây là một số câu hỏi và câu trả lời phỏng vấn DevOps phổ biến nhất có thể giúp bạn trong khi chuẩn bị cho các vai trò DevOps trong ngành.

Nếu bạn đã hoàn thành Khóa học DevOps của mình và bắt đầu chuẩn bị cho các vai trò phát triển và vận hành trong ngành CNTT, thì bạn biết rằng đây là một lĩnh vực đầy thách thức và cần có sự chuẩn bị thực sự để thâm nhập. Dưới đây là một số câu hỏi và câu trả lời phỏng vấn DevOps phổ biến nhất có thể giúp bạn trong khi chuẩn bị cho các vai trò DevOps trong ngành.

Câu hỏi phỏng vấn chung về DevOps

1. Bạn biết gì về DevOps?

Câu trả lời của bạn phải đơn giản và dễ hiểu. Bắt đầu bằng cách giải thích tầm quan trọng ngày càng tăng của DevOps trong ngành CNTT. Thảo luận cách tiếp cận như vậy nhằm mục đích tổng hợp nỗ lực của các nhóm phát triển và vận hành nhằm đẩy nhanh việc phân phối các sản phẩm phần mềm với tỷ lệ thất bại tối thiểu. Bao gồm cách DevOps trở thành một phương pháp thực hành giá trị gia tăng, trong đó các kỹ sư phát triển và vận hành cùng chung tay trong suốt vòng đời của sản phẩm hoặc dịch vụ, ngay từ giai đoạn thiết kế đến thời điểm triển khai.

2. DevOps khác với phương pháp linh hoạt như thế nào?

DevOps là một nền văn hóa cho phép nhóm phát triển và nhóm vận hành làm việc cùng nhau. Điều này dẫn đến việc phát triển , thử nghiệm, tích hợp, triển khai và giám sát phần mềm liên tục trong suốt vòng đời.

Agile là một phương pháp phát triển phần mềm tập trung vào việc phát hành phần mềm lặp đi lặp lại, tăng dần, nhỏ và nhanh chóng cùng với phản hồi của khách hàng. Nó giải quyết những khoảng trống và xung đột giữa khách hàng và nhà phát triển.

 

DevOps giải quyết các khoảng trống và xung đột giữa Nhà phát triển và Hoạt động CNTT.

3. Một số công cụ DevOps phổ biến nhất là gì?

Các công cụ DevOps phổ biến nhất bao gồm:

  1. Selen
  2. con rối
  3. đầu bếp
  4. Git
  5. Jenkins
  6. Ansible
  7. Docker

4. DevOps có những giai đoạn nào?

Các giai đoạn khác nhau của vòng đời DevOps như sau:

  • Kế hoạch: Ban đầu, cần có kế hoạch cho loại ứng dụng cần phát triển. Có được một bức tranh sơ bộ về quá trình phát triển luôn là một ý tưởng hay.
  • Mã: Ứng dụng được mã hóa theo yêu cầu của người dùng cuối. 
  • Build: Xây dựng ứng dụng bằng cách tích hợp các mã khác nhau được hình thành ở các bước trước.
  • Kiểm tra: Đây là bước quan trọng nhất trong quá trình phát triển ứng dụng. Kiểm tra ứng dụng và xây dựng lại nếu cần thiết.
  • Tích hợp: Nhiều mã từ các lập trình viên khác nhau được tích hợp thành một.
  • Triển khai: Mã được triển khai vào môi trường đám mây để sử dụng thêm. Nó được đảm bảo rằng bất kỳ thay đổi mới nào đều không ảnh hưởng đến hoạt động của một trang web có lưu lượng truy cập cao.
  • Vận hành: Các hoạt động được thực hiện trên mã nếu được yêu cầu.
  • Giám sát: Hiệu suất ứng dụng được theo dõi. Những thay đổi được thực hiện để đáp ứng yêu cầu của người dùng cuối.

5. Đề cập đến một số lợi ích cốt lõi của DevOps.

Những lợi ích cốt lõi của DevOps như sau:

Lợi ích kỹ thuật

  • Cung cấp phần mềm liên tục
  • Các vấn đề ít phức tạp hơn để quản lý
  • Phát hiện sớm và sửa lỗi nhanh hơn

Lợi ích kinh doanh

  • Cung cấp các tính năng nhanh hơn
  • Môi trường hoạt động ổn định
  • Cải thiện giao tiếp và hợp tác giữa các nhóm

Cũng đọc: Làm thế nào để trở thành Kỹ sư DevOps?

6. Bạn sẽ tiếp cận một dự án cần triển khai DevOps như thế nào?

Các phương pháp tiếp cận tiêu chuẩn sau đây có thể được sử dụng để triển khai DevOps trong một dự án cụ thể:

Giai đoạn 1

Đánh giá quy trình hiện tại và việc thực hiện trong khoảng hai đến ba tuần để xác định các lĩnh vực cần cải thiện để nhóm có thể lập lộ trình thực hiện.

Giai đoạn 2

Tạo bằng chứng về khái niệm (PoC). Sau khi được chấp nhận và phê duyệt, nhóm có thể bắt đầu triển khai thực tế và triển khai kế hoạch dự án.

Giai đoạn 3

Dự án hiện đã sẵn sàng để triển khai DevOps bằng cách sử dụng tính năng kiểm soát/tích hợp/thử nghiệm/triển khai/phân phối và giám sát phiên bản theo từng bước.

Bằng cách làm theo các bước thích hợp để kiểm soát phiên bản , tích hợp, thử nghiệm, triển khai, phân phối và giám sát, dự án hiện đã sẵn sàng để triển khai DevOps. 

7. Sự khác biệt giữa phân phối liên tục và triển khai liên tục là gì?

Giao hàng liên tục

Triển khai liên tục

Đảm bảo mã có thể được triển khai an toàn vào sản xuất Mọi thay đổi vượt qua các bài kiểm tra tự động sẽ được triển khai tự động vào sản xuất
Đảm bảo các ứng dụng và dịch vụ kinh doanh hoạt động như mong đợi Làm cho quá trình phát triển và phát hành phần mềm nhanh hơn và mạnh mẽ hơn
Cung cấp mọi thay đổi cho môi trường giống như sản xuất thông qua thử nghiệm tự động nghiêm ngặt Không có sự chấp thuận rõ ràng từ nhà phát triển và đòi hỏi phải có văn hóa giám sát phát triển

 

8. Vai trò của quản lý cấu hình trong DevOps là gì?

  • Cho phép quản lý và thay đổi nhiều hệ thống.
  • Chuẩn hóa cấu hình tài nguyên, từ đó quản lý cơ sở hạ tầng CNTT.
  • Nó giúp quản trị và quản lý nhiều máy chủ và duy trì tính toàn vẹn của toàn bộ cơ sở hạ tầng.

9. Việc giám sát liên tục giúp bạn duy trì toàn bộ kiến ​​trúc của hệ thống như thế nào?

Giám sát liên tục trong DevOps là quá trình phát hiện, xác định và báo cáo mọi lỗi hoặc mối đe dọa trong toàn bộ cơ sở hạ tầng của hệ thống.

  • Đảm bảo rằng tất cả các dịch vụ, ứng dụng và tài nguyên đang chạy đúng cách trên máy chủ.
  • Theo dõi trạng thái của máy chủ và xác định xem các ứng dụng có hoạt động chính xác hay không.
  • Cho phép kiểm tra liên tục, kiểm tra giao dịch và giám sát có kiểm soát.

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

AWS có vai trò sau trong DevOps:

  • Dịch vụ linh hoạt: Cung cấp các dịch vụ linh hoạt, sẵn sàng sử dụng mà không cần cài đặt hay thiết lập phần mềm.
  • Được xây dựng cho quy mô: Bạn có thể quản lý một phiên bản duy nhất hoặc mở rộng quy mô lên hàng nghìn bằng cách sử dụng dịch vụ AWS.
  • Tự động hóa: AWS cho phép bạn tự động hóa các tác vụ và quy trình, giúp bạn có thêm thời gian để đổi mới
  • Bảo mật: Bằng cách sử dụng AWS Identity and Access Management (IAM), bạn có thể đặt quyền và chính sách của người dùng.
  • Hệ sinh thái đối tác lớn: AWS hỗ trợ một hệ sinh thái lớn gồm các đối tác tích hợp và mở rộng dịch vụ AWS.

11. Kể tên ba KPI DevOps quan trọng.

Ba KPI quan trọng như sau:

  • Thời gian chờ phục hồi sau sự cố: Đây là thời gian trung bình cần thiết để khôi phục sau sự cố.
  • Tần suất triển khai: Tần suất triển khai xảy ra. 
  • Tỷ lệ triển khai không thành công: Số lần triển khai không thành công.

12. Giải thích thuật ngữ "Cơ sở hạ tầng dưới dạng mã" (IaC) vì nó liên quan đến quản lý cấu hình.

  • Viết mã để quản lý cấu hình, triển khai và cung cấp tự động.
  • Quản lý trung tâm dữ liệu bằng các tệp định nghĩa mà máy có thể đọc được thay vì cấu hình phần cứng vật lý.
  • Đảm bảo tất cả máy chủ của bạn và các thành phần cơ sở hạ tầng khác được cung cấp nhất quán và dễ dàng. 
  • Quản trị môi trường điện toán đám mây hay còn gọi là cơ sở hạ tầng dưới dạng dịch vụ (IaaS) .

13. IaC được triển khai bằng AWS như thế nào?

Bắt đầu bằng cách nói về các cơ chế lâu đời trong việc ghi lệnh vào tệp tập lệnh và kiểm tra chúng trong một môi trường riêng trước khi triển khai cũng như cách IaC thay thế phương pháp này. Tương tự như các mã được viết cho các dịch vụ khác, với sự trợ giúp của AWS, IaC cho phép các nhà phát triển viết, kiểm tra và duy trì các thực thể cơ sở hạ tầng theo cách mô tả, sử dụng các định dạng như JSON hoặc YAML. Điều này cho phép phát triển dễ dàng hơn và triển khai nhanh hơn các thay đổi cơ sở hạ tầng.

14. Tại sao DevOps lại nổi bật trong vài năm qua?

Trước khi nói về mức độ phổ biến ngày càng tăng của DevOps, hãy thảo luận về bối cảnh hiện tại của ngành. Bắt đầu với một số ví dụ về cách các công ty lớn như Netflix và Facebook đang đầu tư vào DevOps để tự động hóa và tăng tốc triển khai ứng dụng cũng như cách điều này đã giúp họ phát triển hoạt động kinh doanh của mình. Lấy Facebook làm ví dụ, bạn sẽ chỉ ra các mô hình sở hữu mã và triển khai liên tục của Facebook cũng như cách những mô hình này đã giúp Facebook mở rộng quy mô nhưng đồng thời vẫn đảm bảo chất lượng trải nghiệm. Hàng trăm dòng mã được triển khai mà không ảnh hưởng đến chất lượng, tính ổn định và bảo mật.

Trường hợp sử dụng tiếp theo của bạn sẽ là Netflix. Công ty phát trực tuyến và video theo yêu cầu này tuân theo các phương pháp tương tự với các quy trình và hệ thống hoàn toàn tự động. Đề cập đến cơ sở người dùng của hai tổ chức này: Facebook có 2 tỷ người dùng trong khi Netflix truyền phát nội dung trực tuyến tới hơn 100 triệu người dùng trên toàn thế giới.

Đây là những ví dụ tuyệt vời về cách DevOps có thể giúp các tổ chức đảm bảo tỷ lệ phát hành thành công cao hơn, giảm thời gian thực hiện giữa các lần sửa lỗi, hợp lý hóa và phân phối liên tục thông qua tự động hóa và giảm tổng chi phí nhân lực.

Bây giờ chúng ta sẽ xem xét bộ Câu hỏi phỏng vấn DevOps tiếp theo bao gồm - Git, Selenium, Jenkins.

15. Sự khác biệt cơ bản giữa DevOps & Agile là gì?

Sự khác biệt chính giữa Agile và DevOps được tóm tắt dưới đây:

Đặc trưng

agile

DevOps

Phạm vi công việc

Chỉ có agile

Cần tự động hóa cùng với Agility

Khu vực tập trung

Ưu tiên chính là Thời gian và thời hạn

Quản lý chất lượng và thời gian được ưu tiên như nhau

Nguồn phản hồi

Nguồn phản hồi chính - khách hàng

Nguồn phản hồi chính - bản thân (công cụ được sử dụng để giám sát)

Thực tiễn hoặc quy trình tuân theo 

Các phương pháp thực hành như Agile Kanban, Scrum, v.v. đều được tuân thủ.

Các quy trình và thực tiễn như Phát triển liên tục (CD), Tích hợp liên tục (CI), v.v., đều được tuân thủ.

Sprint phát triển hoặc chu kỳ phát hành

Chu kỳ phát hành thường nhỏ hơn.

Chu kỳ phát hành nhỏ hơn, cùng với phản hồi ngay lập tức.

agile

Chỉ có sự agile phát triển hiện diện.

Cả trong hoạt động và phát triển đều tuân theo sự agile.

16. Các mô hình phản đối của DevOps là gì?

Các khuôn mẫu là những thông lệ phổ biến thường được các tổ chức tuân theo. Một khuôn mẫu phản đối được hình thành khi một tổ chức tiếp tục mù quáng đi theo một khuôn mẫu đã được người khác áp dụng nhưng không hiệu quả với họ. Một số lầm tưởng về DevOps bao gồm:

  • Không thể thực hiện DevOps → Chọn nhầm người
  • DevOps ⇒ Quản lý sản xuất được thực hiện bởi các nhà phát triển
  • Giải pháp cho mọi vấn đề của tổ chức ⇒ DevOps
  • DevOps == Quy trình 
  • DevOps == Linh hoạt
  • Không thể thực hiện DevOps → Tổ chức là duy nhất
  • Cần tạo một nhóm riêng cho DevOps

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

Dưới đây là những lợi ích của việc sử dụng Kiểm soát phiên bản:

  • Tất cả các thành viên trong nhóm có thể tự do làm việc trên bất kỳ tệp nào vào bất kỳ lúc nào với Hệ thống kiểm soát phiên bản (VCS). Sau này, VCS sẽ cho phép nhóm tích hợp tất cả các sửa đổi vào một phiên bản duy nhất.
  • VCS yêu cầu cung cấp bản tóm tắt ngắn gọn về những gì đã thay đổi mỗi khi chúng tôi lưu phiên bản mới của dự án. Chúng tôi cũng có thể kiểm tra chính xác những gì đã được sửa đổi trong nội dung của tệp. Do đó, chúng tôi sẽ có thể biết ai đã thực hiện những thay đổi nào đối với dự án.
  • Bên trong VCS, tất cả các biến thể và phiên bản trước đó đều được lưu trữ đúng cách. Chúng tôi sẽ có thể yêu cầu bất kỳ phiên bản nào vào bất kỳ lúc nào và chúng tôi sẽ có thể truy xuất ảnh chụp nhanh của toàn bộ dự án trong tầm tay.
  • Một VCS được phân phối, chẳng hạn như Git, cho phép tất cả các thành viên trong nhóm truy xuất toàn bộ lịch sử của dự án. Điều này cho phép các nhà phát triển hoặc các bên liên quan khác sử dụng kho Git cục bộ của bất kỳ thành viên nào trong nhóm ngay cả khi máy chủ chính ngừng hoạt động bất kỳ lúc nào.

18. Mô tả các chiến lược phân nhánh mà bạn đã sử dụng.

Để kiểm tra kiến ​​thức của chúng tôi về mục đích của việc phân nhánh và kinh nghiệm của chúng tôi về việc phân nhánh ở công việc trước đây, câu hỏi này thường được hỏi. 

Các chủ đề dưới đây có thể giúp trả lời câu hỏi phỏng vấn DevOps này -

  • Phân nhánh phát hành - Chúng ta có thể sao chép nhánh phát triển để tạo nhánh Phát hành khi nó có đủ chức năng cho một bản phát hành. Nhánh này khởi động chu kỳ phát hành tiếp theo, do đó không có tính năng mới nào có thể được đóng góp ngoài thời điểm này. Những thứ có thể đóng góp là tạo tài liệu, sửa lỗi và các tác vụ khác liên quan đến phát hành. Bản phát hành được hợp nhất thành bản chính và được cấp số phiên bản sau khi sẵn sàng xuất xưởng. Nó cũng nên được hợp nhất trở lại nhánh phát triển, nhánh này có thể đã phát triển kể từ lần phát hành đầu tiên.
  • Phân nhánh tính năng - Mô hình phân nhánh này duy trì tất cả các sửa đổi cho một tính năng cụ thể có trong một nhánh. Nhánh được hợp nhất thành nhánh chính sau khi tính năng này đã được kiểm tra và phê duyệt hoàn toàn bằng cách sử dụng các thử nghiệm tự động.
  • Phân nhánh nhiệm vụ - Trong mô hình phân nhánh này, mọi nhiệm vụ được triển khai trong nhánh tương ứng của nó. Khóa tác vụ được đề cập trong tên chi nhánh. Chúng ta chỉ cần nhìn vào khóa tác vụ trong tên nhánh để biết mã nào thực hiện tác vụ nào.

19. Bạn có thể giải thích khái niệm “Dịch chuyển sang trái để giảm thất bại” trong DevOps không?

Shift left là một ý tưởng DevOps nhằm cải thiện tính bảo mật, hiệu suất và các yếu tố khác. Hãy lấy một ví dụ: nếu xem xét tất cả các quy trình trong DevOps, chúng ta có thể nói rằng tính bảo mật đã được kiểm tra trước bước triển khai. Chúng ta có thể thêm bảo mật trong giai đoạn phát triển, ở bên trái, bằng cách sử dụng phương pháp dịch chuyển trái. [sẽ được mô tả trong sơ đồ] Chúng tôi có thể tích hợp với tất cả các giai đoạn, bao gồm cả trước khi phát triển và trong quá trình thử nghiệm, không chỉ phát triển. Điều này rất có thể sẽ nâng cao mức độ bảo mật bằng cách phát hiện lỗi ở giai đoạn đầu.

 

Giành được Chứng chỉ DevOps được mong muốn nhất!

Chương trình thạc sĩ kỹ sư DevOpsKHÁM PHÁ CHƯƠNG TRÌNH
Giành được Chứng chỉ DevOps được mong muốn nhất!

 

20. Mô hình triển khai Xanh/Xanh là gì?

Đây là phương pháp triển khai liên tục thường được sử dụng để giảm thời gian ngừng hoạt động. Đây là nơi lưu lượng truy cập được chuyển từ phiên bản này sang phiên bản khác. Để bao gồm phiên bản mã mới, chúng tôi phải thay thế mã cũ bằng phiên bản mã mới. 

Phiên bản mới tồn tại trong môi trường xanh và phiên bản cũ tồn tại trong môi trường xanh. Sau khi thực hiện các thay đổi đối với phiên bản trước, chúng tôi cần một phiên bản mới từ phiên bản cũ để thực thi phiên bản mới hơn của phiên bản đó.

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

Kiểm tra liên tục cấu thành việc chạy các thử nghiệm tự động như một phần của quy trình phân phối phần mềm nhằm cung cấp phản hồi tức thì về các rủi ro kinh doanh có trong bản phát hành gần đây nhất. Để ngăn chặn sự cố khi chuyển đổi từng bước trong vòng đời phân phối Phần mềm và cho phép nhóm Phát triển nhận được phản hồi ngay lập tức, mọi bản dựng đều được kiểm tra liên tục theo cách này. Điều này giúp tăng đáng kể tốc độ trong năng suất của nhà phát triển vì nó loại bỏ yêu cầu chạy lại tất cả các thử nghiệm sau mỗi lần cập nhật và xây dựng lại dự án.

22. Kiểm thử tự động là gì?

Kiểm thử tự động hoặc kiểm thử thủ công Tự động hóa là quá trình tự động hóa một quy trình thủ công để kiểm thử một ứng dụng hoặc hệ thống. Kiểm thử tự động đòi hỏi phải sử dụng các công cụ kiểm thử độc lập cho phép bạn phát triển các tập lệnh kiểm thử có thể chạy nhiều lần mà không cần sự tương tác của con người.

23. Lợi ích của Kiểm thử tự động là gì?

Một số ưu điểm của Kiểm thử tự động là -

  • Giúp tiết kiệm tiền bạc và thời gian.
  • Việc thực hiện không cần giám sát có thể được thực hiện dễ dàng.
  • Ma trận thử nghiệm lớn có thể được kiểm tra dễ dàng.
  • Thực thi song song được kích hoạt.
  • Giảm lỗi do con người tạo ra, giúp cải thiện độ chính xác.
  • Thực hiện nhiệm vụ kiểm tra lặp đi lặp lại được hỗ trợ.

24. Làm cách nào để tự động hóa Kiểm thử trong vòng đời DevOps?

Các nhà phát triển có nghĩa vụ cam kết tất cả các thay đổi mã nguồn đối với kho lưu trữ DevOps được chia sẻ.

Mỗi khi có thay đổi trong mã, các công cụ Tích hợp liên tục giống như Jenkins sẽ lấy nó từ kho lưu trữ chung này và triển khai nó để Kiểm tra liên tục, việc này được thực hiện bởi các công cụ như Selenium.

25. Tại sao Kiểm thử liên tục lại quan trọng đối với DevOps?

Bất kỳ sửa đổi nào đối với mã đều có thể được kiểm tra ngay lập tức bằng Kiểm tra liên tục. Điều này ngăn ngừa những lo ngại như vấn đề về chất lượng và độ trễ phát hành có thể xảy ra bất cứ khi nào thử nghiệm lớn bị trì hoãn cho đến cuối chu kỳ. Bằng cách này, Kiểm tra liên tục cho phép phát hành thường xuyên và chất lượng cao hơn.

26. Các yếu tố chính của công cụ Kiểm tra liên tục là gì?

Các yếu tố chính của Kiểm tra liên tục là:

  • Tối ưu hóa kiểm tra: Nó đảm bảo rằng các bài kiểm tra tạo ra kết quả đáng tin cậy và thông tin có thể thực hiện được. Quản lý dữ liệu thử nghiệm, Quản lý tối ưu hóa thử nghiệm và Bảo trì thử nghiệm là những ví dụ về các khía cạnh.
  • Phân tích nâng cao: Để tránh các vấn đề xảy ra ngay từ đầu và đạt được nhiều thành tựu hơn trong mỗi lần lặp, nó sử dụng tự động hóa trong các lĩnh vực như đánh giá/ưu tiên phạm vi, phân tích hiệu ứng thay đổi và phân tích mã tĩnh.
  • Phân tích chính sách: Nó đảm bảo rằng tất cả các quy trình đều phù hợp với nhu cầu kinh doanh đang thay đổi của tổ chức và tất cả các yêu cầu tuân thủ đều được đáp ứng.
  • Đánh giá rủi ro: Tối ưu hóa phạm vi kiểm thử, nợ kỹ thuật, nhiệm vụ giảm thiểu rủi ro và đánh giá chất lượng đều được đề cập để đảm bảo quá trình xây dựng sẵn sàng chuyển sang giai đoạn tiếp theo.
  • Ảo hóa dịch vụ: Đảm bảo có sẵn các kịch bản thử nghiệm trong thế giới thực. Trực quan hóa dịch vụ cung cấp quyền truy cập vào bản trình bày ảo về các giai đoạn thử nghiệm cần thiết, đảm bảo tính khả dụng của nó và giảm thời gian thiết lập môi trường thử nghiệm.
  • Yêu cầu Truy xuất nguồn gốc: Nó đảm bảo rằng không cần phải làm lại và đáp ứng các tiêu chí thực tế. Để xác định nhu cầu nào cần xác nhận bổ sung, đang gặp nguy hiểm và hoạt động như mong đợi, đánh giá đối tượng sẽ được sử dụng.

Câu hỏi phỏng vấn DevOps về quản lý mã nguồn: Git

27. Giải thích sự khác biệt giữa hệ thống kiểm soát phiên bản tập trung và phân tán (VCS).

Hệ thống kiểm soát phiên bản tập trung

  • Tất cả các phiên bản tập tin được lưu trữ trên một máy chủ trung tâm
  • Không nhà phát triển nào có bản sao của tất cả các tệp trên hệ thống cục bộ
  • Nếu máy chủ trung tâm gặp sự cố, toàn bộ dữ liệu của dự án sẽ bị mất

Hệ thống điều khiển phân tán

  • Mọi nhà phát triển đều có bản sao của tất cả các phiên bản mã trên hệ thống của họ
  • Cho phép các thành viên trong nhóm làm việc ngoại tuyến và không dựa vào một vị trí duy nhất để sao lưu
  • Không có mối đe dọa nào, ngay cả khi máy chủ gặp sự cố

28. Lệnh git tải bất kỳ kho lưu trữ nào từ GitHub về máy tính của bạn là gì?

Lệnh git tải bất kỳ kho lưu trữ nào từ GitHub về máy tính của bạn là git clone.

29. Làm cách nào để đẩy một tệp từ hệ thống cục bộ của bạn sang kho GitHub bằng Git?

Đầu tiên, kết nối kho lưu trữ cục bộ với kho lưu trữ từ xa của bạn:

git remote thêm nguồn gốc [địa chỉ web được sao chép]      

// Ví dụ: git remote thêm Origin  https://github.com/Simplilearn-github/test.git

Thứ hai, đẩy tệp của bạn vào kho lưu trữ từ xa:

git đẩy nguồn gốc chính

30. Kho lưu trữ trống khác với cách khởi tạo kho lưu trữ Git tiêu chuẩn như thế nào?

Sử dụng phương pháp tiêu chuẩn:

khởi tạo git

  • Bạn tạo một thư mục làm việc với git init
  • Thư mục con .git được tạo với tất cả lịch sử sửa đổi liên quan đến git

Sử dụng cách trần trụi

git init --bare

  • Nó không chứa bất kỳ bản sao nào đang hoạt động hoặc đã được kiểm tra của các tệp nguồn
  • Kho lưu trữ trống lưu trữ lịch sử sửa đổi git trong thư mục gốc của kho lưu trữ của bạn, thay vì thư mục con .git

31. Lệnh CLI nào sau đây có thể được sử dụng để đổi tên tệp?

  1. git rm
  2. git mv
  3. git rm -r
  4. Không có điều nào ở trên

Câu trả lời đúng là B) git mv

32. Quy trình hoàn nguyên một cam kết đã được đẩy và công khai là gì?

Có hai cách để bạn có thể hoàn nguyên một cam kết: 

  1. Xóa hoặc sửa tệp xấu trong một cam kết mới và đẩy nó vào kho lưu trữ từ xa. Sau đó cam kết nó vào kho lưu trữ từ xa bằng cách sử dụng:

    git commit –m "commit message"

  2. Tạo một cam kết mới hoàn tác tất cả các thay đổi đã được thực hiện trong cam kết xấu. Sử dụng lệnh sau:

    git Revert <commit id>

Ví dụ: git hoàn nguyên 56de0938f

33. Giải thích sự khác biệt giữa git get và git pull.

Tìm nạp Git

Kéo Git

Tìm nạp Git chỉ tải xuống dữ liệu mới từ kho lưu trữ từ xa Git pull cập nhật nhánh HEAD hiện tại với những thay đổi mới nhất từ ​​máy chủ từ xa
Không tích hợp bất kỳ dữ liệu mới nào vào tệp làm việc của bạn Tải xuống dữ liệu mới và tích hợp nó với các tệp đang làm việc hiện tại
Người dùng có thể chạy tìm nạp Git bất kỳ lúc nào để cập nhật các nhánh theo dõi từ xa Cố gắng hợp nhất các thay đổi từ xa với những thay đổi cục bộ của bạn

Lệnh - git tìm nguồn gốc

                  git tìm nạp –-tất cả

Lệnh - git pull Origin master

34. Kho lưu trữ Git là gì?

Một nhà phát triển đang làm việc với chi nhánh hiện tại muốn chuyển sang chi nhánh khác để làm việc khác, nhưng nhà phát triển đó không muốn thực hiện các thay đổi đối với công việc còn dang dở của bạn. Giải pháp cho vấn đề này là Git stash. Git stash lấy các tệp được theo dõi đã sửa đổi của bạn và lưu chúng vào một chồng các thay đổi chưa hoàn thành mà bạn có thể áp dụng lại bất kỳ lúc nào.

35. Giải thích khái niệm phân nhánh trong Git.

Giả sử bạn đang làm việc trên một ứng dụng và muốn thêm một tính năng mới vào ứng dụng. Bạn có thể tạo một nhánh mới và xây dựng tính năng mới trên nhánh đó.

  • Theo mặc định, bạn luôn làm việc trên nhánh chính
  • Các vòng tròn trên nhánh thể hiện các cam kết khác nhau được thực hiện trên nhánh
  • Sau khi thực hiện xong tất cả các thay đổi, bạn có thể hợp nhất nó với nhánh chính

36. Sự khác biệt giữa Git Merge và Git Rebase là gì?

Giả sử bạn đang làm việc trên một tính năng mới trong một nhánh chuyên dụng và một thành viên khác trong nhóm cập nhật nhánh chính với các cam kết mới. Bạn có thể sử dụng hai chức năng này:

Hợp nhất Git

Để kết hợp các cam kết mới vào nhánh tính năng của bạn, hãy sử dụng hợp nhất Git.

  • Tạo một cam kết hợp nhất bổ sung mỗi khi bạn cần kết hợp các thay đổi
  • Tuy nhiên, nó làm ô nhiễm lịch sử nhánh tính năng của bạn

Cơ sở Git

Để thay thế cho việc hợp nhất, bạn có thể khởi động lại nhánh tính năng thành chính.

  • Kết hợp tất cả các cam kết mới trong nhánh chính
  • Nó tạo ra các cam kết mới cho mọi cam kết trong nhánh ban đầu và viết lại lịch sử dự án

37. Làm thế nào để bạn tìm thấy danh sách các tập tin đã được thay đổi trong một cam kết cụ thể?

Lệnh lấy danh sách các tệp đã được thay đổi trong một cam kết cụ thể là:

git diff-tree –r {commit hash}

Ví dụ: git diff-tree –r 87e673f21b

  • Cờ -r hướng dẫn lệnh liệt kê các tệp riêng lẻ
  • hàm băm cam kết sẽ liệt kê tất cả các tệp đã được thay đổi hoặc thêm vào trong cam kết đó

38. Xung đột hợp nhất trong Git là gì và làm cách nào để giải quyết nó?

Xung đột hợp nhất Git xảy ra khi bạn hợp nhất các nhánh cạnh tranh để giành được các cam kết và Git cần sự trợ giúp của bạn để quyết định những thay đổi nào sẽ kết hợp trong lần hợp nhất cuối cùng.

Chỉnh sửa thủ công tệp bị xung đột để chọn những thay đổi mà bạn muốn giữ lại trong lần hợp nhất cuối cùng.

Giải quyết bằng trình chỉnh sửa xung đột GitHub

Điều này được thực hiện khi xung đột hợp nhất xảy ra sau khi cạnh tranh thay đổi dòng. Ví dụ: điều này có thể xảy ra khi mọi người thực hiện các thay đổi khác nhau trên cùng một dòng của cùng một tệp trên các nhánh khác nhau trong kho Git của bạn.

  • Giải quyết xung đột hợp nhất bằng trình chỉnh sửa xung đột:
  • Dưới tên kho lưu trữ của bạn, nhấp vào "Kéo yêu cầu".
  • Trong trình đơn thả xuống "Yêu cầu kéo", hãy nhấp vào yêu cầu kéo có xung đột hợp nhất mà bạn muốn giải quyết
  • Ở gần cuối yêu cầu kéo của bạn, hãy nhấp vào "Giải quyết xung đột".
  • Quyết định xem bạn chỉ muốn giữ lại những thay đổi của chi nhánh của mình, những thay đổi của chi nhánh kia hay thực hiện một thay đổi hoàn toàn mới, có thể kết hợp các thay đổi từ cả hai chi nhánh.
  • Xóa các điểm đánh dấu xung đột <<<<<<<, =======, >>>>>>> và thực hiện các thay đổi bạn muốn trong lần hợp nhất cuối cùng.
  • Nếu bạn có nhiều xung đột hợp nhất trong tệp của mình, hãy cuộn xuống tập hợp các điểm đánh dấu xung đột tiếp theo và lặp lại các bước bốn và năm để giải quyết xung đột hợp nhất của bạn.
  • Khi bạn đã giải quyết tất cả các xung đột trong tệp, hãy nhấp vào Đánh dấu là đã giải quyết.

  • Nếu bạn có nhiều tệp có xung đột, hãy chọn tệp tiếp theo bạn muốn chỉnh sửa ở phía bên trái của trang trong phần "tệp xung đột" và lặp lại các bước từ bốn đến bảy cho đến khi bạn giải quyết được tất cả xung đột hợp nhất trong yêu cầu kéo của mình.

  • Khi bạn đã giải quyết xong xung đột hợp nhất, hãy nhấp vào Cam kết hợp nhất. Điều này hợp nhất toàn bộ nhánh cơ sở vào nhánh đầu của bạn.

  • Để hợp nhất yêu cầu kéo của bạn, hãy nhấp vào Hợp nhất yêu cầu kéo.

  • Xung đột hợp nhất được giải quyết bằng dòng lệnh.
  • Mở Git Bash.
  • Điều hướng đến kho lưu trữ Git cục bộ có chứa xung đột hợp nhất.

  • Tạo danh sách các tệp mà xung đột hợp nhất ảnh hưởng. Trong ví dụ này, tệp styleguide.md có xung đột khi hợp nhất.

Trạng thái Git

  • Mở bất kỳ trình soạn thảo văn bản nào, chẳng hạn như Sublime Text hoặc Atom và điều hướng đến tệp có xung đột khi hợp nhất.
  • Để xem phần đầu của xung đột hợp nhất trong tệp của bạn, hãy tìm kiếm tệp cho điểm đánh dấu xung đột "<<<<<<<. Mở nó và bạn sẽ thấy những thay đổi từ nhánh cơ sở sau dòng "<<< <<<< ĐẦU."
  • Tiếp theo, bạn sẽ thấy "========", phân chia các thay đổi của bạn với các thay đổi trong nhánh khác, theo sau là ">>>>>>> BRANCH-NAME".

  • Quyết định xem bạn chỉ muốn giữ lại những thay đổi của chi nhánh của mình, những thay đổi của chi nhánh kia hay thực hiện một thay đổi hoàn toàn mới, có thể kết hợp các thay đổi từ cả hai chi nhánh.
  • Xóa các điểm đánh dấu xung đột "<<<<<<<", "=======", ">>>>>>>>" và thực hiện các thay đổi bạn muốn trong lần hợp nhất cuối cùng.

        Trong ví dụ này, cả hai thay đổi đều được kết hợp vào lần hợp nhất cuối cùng:

  • Thêm hoặc thực hiện các thay đổi của bạn. 

  • Cam kết thay đổi của bạn với một nhận xét.

Giờ đây, bạn có thể hợp nhất các nhánh trên dòng lệnh hoặc đẩy các thay đổi của mình vào kho lưu trữ từ xa trên GitHub và hợp nhất các thay đổi của bạn trong yêu cầu kéo.

39. Git chia đôi là gì? Làm cách nào bạn có thể sử dụng nó để xác định nguồn gốc của lỗi (hồi quy)?

Git bisect là một công cụ sử dụng tìm kiếm nhị phân để xác định vị trí cam kết đã gây ra lỗi.

Lệnh chia đôi Git -

git chia đôi <lệnh phụ> <tùy chọn>

Lệnh git bisect được sử dụng để tìm lỗi thực hiện cam kết trong dự án bằng cách sử dụng thuật toán tìm kiếm nhị phân.

Cam kết xảy ra lỗi được gọi là cam kết “xấu”, và cam kết trước khi lỗi xảy ra được gọi là cam kết “tốt”. Chúng tôi truyền đạt điều tương tự đến công cụ git bisect và nó chọn một cam kết ngẫu nhiên giữa hai điểm cuối và nhắc xem điểm cuối đó là điểm “tốt” hay “xấu”. Quá trình tiếp tục cho đến khi phạm vi được thu hẹp và phát hiện ra cam kết chính xác đã đưa ra thay đổi chính xác.

 

40. Giải thích một số lệnh Git cơ bản.

Một số lệnh Git cơ bản được tóm tắt trong bảng bên dưới -

Yêu cầu

Mục đích

khởi tạo git

Được sử dụng để bắt đầu một kho lưu trữ mới.

cấu hình git:

  • git config –global user.name “[tên]”
  • git config –global user.email “[địa chỉ email]”

Điều này giúp đặt tên người dùng và email của người nhận cam kết.

git clone <đường dẫn kho>

Được sử dụng để tạo bản sao cục bộ của kho lưu trữ hiện có.

git thêm:

  • git add <tên tệp được phân tách bằng dấu phẩy>
  • git thêm .

Được sử dụng để thêm một hoặc nhiều tệp vào khu vực tổ chức.

cam kết git:

  • cam kết git -a 
  • git commit -m “<thêm tin nhắn cam kết>”

Tạo ảnh chụp nhanh hoặc bản ghi của (các) tệp nằm trong khu vực tổ chức.

git khác biệt:

  • git diff [nhánh đầu tiên] [nhánh thứ hai]
  • git diff -theo giai đoạn

Được sử dụng để hiển thị sự khác biệt giữa hai nhánh/sự khác biệt được đề cập trong các tệp trong khu vực tổ chức so với phiên bản hiện tại.

trạng thái git

Liệt kê tất cả các tập tin sẽ được cam kết.

git rm <tên tệp>

Được sử dụng để xóa (các) tệp khỏi thư mục làm việc hiện tại và cũng sắp xếp nó.

git hiển thị <cam kết>

Hiển thị các thay đổi nội dung và siêu dữ liệu của cam kết được đề cập.

nhánh git:

  • nhánh git [tên nhánh]
  • nhánh git -d [tên nhánh]
  • nhánh git

Việc đầu tiên tạo ra một chi nhánh hoàn toàn mới.

Thứ hai được sử dụng để xóa nhánh được đề cập.

Phần cuối cùng liệt kê tất cả các chi nhánh hiện có và cũng nêu bật chi nhánh mà chúng tôi hiện đang có.

 

Giành được Chứng chỉ DevOps được mong muốn nhất!

Chương trình thạc sĩ kỹ sư DevOpsKHÁM PHÁ CHƯƠNG TRÌNH
Giành được Chứng chỉ DevOps được mong muốn nhất!

 

Câu hỏi phỏng vấn DevOps để tích hợp liên tục: Jenkins

41. Giải thích kiến ​​trúc chủ-nô của Jenkins.

  • Bậc thầy Jenkins lấy mã từ kho GitHub từ xa mỗi khi có cam kết mã.
  • Nó phân phối khối lượng công việc cho tất cả nô lệ của Jenkins.
  • Theo yêu cầu của chủ Jenkins, các nô lệ thực hiện, xây dựng, thử nghiệm và đưa ra các báo cáo thử nghiệm.

42. Jenkinsfile là gì?

Jenkinsfile chứa định nghĩa về đường dẫn Jenkins và được kiểm tra trong kho lưu trữ kiểm soát nguồn. Nó là một tập tin văn bản.

  • Nó cho phép xem xét và lặp lại mã trên đường ống.
  • Nó cho phép theo dõi kiểm tra đường ống.
  • Có một nguồn thông tin chính xác duy nhất cho quy trình có thể được xem và chỉnh sửa.

43. Lệnh nào sau đây chạy Jenkins từ dòng lệnh?

  1. java –jar Jenkins.war
  2. java –war Jenkins.jar
  3. java –jar Jenkins.jar
  4. java –war Jenkins.war

Câu trả lời đúng là A) java –jar Jenkins.war

44. Những khái niệm nào là khía cạnh chính của quy trình Jenkins?

  • Đường ống: Mô hình đường ống CD do người dùng xác định . Mã của quy trình xác định toàn bộ quá trình xây dựng, bao gồm xây dựng, thử nghiệm và phân phối ứng dụng
  • Nút: Một máy là một phần của môi trường Jenkins và có khả năng thực thi một đường ống
  • Bước: Một nhiệm vụ duy nhất cho Jenkins biết phải làm gì tại một thời điểm cụ thể
  • Giai đoạn: Xác định một tập hợp con các nhiệm vụ riêng biệt về mặt khái niệm được thực hiện trong toàn bộ quy trình (các giai đoạn xây dựng, thử nghiệm, triển khai)

45. File nào dùng để định nghĩa dependency trong Maven?

  1. xây dựng.xml
  2. pom.xml
  3. phụ thuộc.xml
  4. Phiên bản.xml

Câu trả lời đúng là B) pom.xml

46. ​​Giải thích hai loại quy trình trong Jenkins cùng với cú pháp của chúng.

Jenkins cung cấp hai cách phát triển mã quy trình: Viết theo kịch bản và Khai báo.

  •  Đường dẫn tập lệnh: Nó dựa trên tập lệnh Groovy làm Ngôn ngữ dành riêng cho miền của họ. Một hoặc nhiều khối nút thực hiện công việc cốt lõi trong toàn bộ đường ống.

Cú pháp:

  1. Thực thi quy trình hoặc bất kỳ giai đoạn nào của quy trình trên bất kỳ tác nhân có sẵn nào
  2. Xác định giai đoạn xây dựng
  3. Thực hiện các bước liên quan đến giai đoạn xây dựng
  4. Xác định giai đoạn thử nghiệm
  5. Thực hiện các bước liên quan đến giai đoạn thử nghiệm
  6. Xác định giai đoạn triển khai
  7. Thực hiện các bước liên quan đến giai đoạn triển khai

  • Đường ống khai báo: Nó cung cấp một cú pháp đơn giản và thân thiện để xác định một đường ống. Ở đây, khối đường ống xác định công việc được thực hiện trong toàn bộ đường ống.

Cú pháp:

  1. Thực thi quy trình hoặc bất kỳ giai đoạn nào của quy trình trên bất kỳ tác nhân có sẵn nào
  2. Xác định giai đoạn xây dựng
  3. Thực hiện các bước liên quan đến giai đoạn xây dựng
  4. Xác định giai đoạn thử nghiệm
  5. Thực hiện các bước liên quan đến giai đoạn thử nghiệm
  6. Xác định giai đoạn triển khai
  7. Thực hiện các bước liên quan đến giai đoạn triển khai

47. Làm cách nào để tạo bản sao lưu và sao chép tệp trong Jenkins?

Để tạo tệp sao lưu, hãy sao lưu định kỳ thư mục JENKINS_HOME của bạn.

Để tạo bản sao lưu thiết lập Jenkins, hãy sao chép thư mục JENKINS_HOME. Bạn cũng có thể sao chép thư mục công việc để sao chép hoặc sao chép công việc hoặc đổi tên thư mục.

48. Làm thế nào bạn có thể sao chép Jenkins từ máy chủ này sang máy chủ khác?

  • Di chuyển công việc từ bản cài đặt Jenkins này sang bản cài đặt khác bằng cách sao chép thư mục công việc tương ứng.
  • Tạo bản sao của công việc hiện có bằng cách tạo bản sao của thư mục công việc với một tên khác.
  • Đổi tên công việc hiện có bằng cách đổi tên thư mục.

49. Kể tên ba cơ chế bảo mật mà Jenkins sử dụng để xác thực người dùng.

  • Jenkins sử dụng cơ sở dữ liệu nội bộ để lưu trữ dữ liệu và thông tin đăng nhập của người dùng.
  • Jenkins có thể sử dụng máy chủ Giao thức truy cập thư mục nhẹ (LDAP) để xác thực người dùng. 
  • Jenkins có thể được cấu hình để sử dụng cơ chế xác thực mà máy chủ ứng dụng đã triển khai sử dụng. 

50. Bản dựng tùy chỉnh của plugin cốt lõi được triển khai như thế nào?

Các bước để triển khai bản dựng tùy chỉnh của plugin cốt lõi:

  • Sao chép tệp .hpi vào $JENKINS_HOME/plugins
  • Xóa thư mục phát triển của plugin
  • Tạo một tệp trống có tên <plugin>.hpi.pinned
  • Khởi động lại Jenkins và sử dụng bản dựng plugin cốt lõi tùy chỉnh của bạn

Xem thêm tại: https://www.simplilearn.com/tutorials/devops-tutorial/devops-interview-questions