Trong con mắt mọi người, “DevOps engineer” được coi là một nghề nghiệp tương lai của sự thành công (mặc dù đó không phải là một nghề thực sự). Vậy DevOps là gì? Các công ty quốc tế ở cấp cao nhất (xin kể một vài tên như - Netflix, Facebook, Amazon) đang nhanh chóng triển khai hệ thống DevOps vào quy trình làm việc của mình. Đương nhiên, nhu cầu cần có các chuyên gia DevOps cũng tăng lên. Đó là lý do tại sao trong hướng dẫn này, tôi muốn bàn bạc về các câu hỏi phỏng vấn DevOps.
Tôi biết có thể bạn đã tham gia một số khóa học DevOps trước đó, nhưng hãy để tôi giới thiệu một số câu hỏi phỏng vấn chung và AWS DevOps, sau đó là các câu hỏi nâng cao hơn và một số điều bạn có thể làm trước mỗi buổi phỏng vấn.
Mục lục
- 1. Cơ bản về DevOps
- 1.1. Câu hỏi 1: “DevOps” là gì?
- 1.2. Câu hỏi 2: Các dạng công cụ DevOps phổ biến nhất là gì?
- 1.3. Câu hỏi 3: Sự khác biệt chính so với Agility?
- 1.4. Câu hỏi 4: Version control là gì?
- 1.5. Câu hỏi 5: 4 thành phần chính của DevOps là gì?
- 1.6. Câu hỏi 6: Ngôn ngữ lập trình nào được sử dụng trong DevOps?
- 1.7. Câu hỏi 7: AWS phù hợp với DevOps như thế nào?
- 1.8. Câu hỏi 8: ‘Extreme Programming’ là gì?
- 1.9. Câu hỏi 9: ‘design pattern’ là gì?
- 1.10. Câu hỏi 10: CBD’s là gì?
- 2. Các câu hỏi phỏng vấn DevOps chuyên sâu hơn
- 2.1. Câu hỏi 1: Giải thích "branching"
- 2.2. Câu hỏi 2: Làm thế nào để sao chép Jenkins sang máy chủ khác?
- 2.3. Câu hỏi 3: Kể tên ba phương pháp bạn sử dụng để bảo vệ Jenkins?
- 2.4. Câu hỏi 4: Mô tả kiểm tra tự động hóa ‘automation testing’.
- 2.5. Câu hỏi 5: Lợi ích chính khi sử dụng “kiểm tra tự động hóa” là gì?
- 2.6. Question 6: What’s Memcached?
- 2.7. Câu hỏi 7: Nếu một vài dữ liệu thay đổi, làm thế nào để cập nhật Memcached?
- 2.8. Câu hỏi 8: Tại sao thành phần của Continuous testing lại quan trọng đối với DevOps?
- 2.9. Câu hỏi 9: Liệu Selenium có phải là một công cụ thử nghiệm tốt?
- 2.10. Câu hỏi 10: Làm thế nào bạn có thể tối đa hóa hiệu quả của Continuous Integration?
- 3. Một vài bí kíp phỏng vấn chung
- 4. Kết luận
Cơ bản về DevOps
Chúng tôi sẽ bắt đầu với những câu hỏi cơ bản ngắn thường thấy khi bắt đầu cuộc phỏng vấn xin việc.
Ưu đãi mới nhất đang hoạt động ngay bây giờ:
GET 50% OFF
DataCamp Black Friday Sale
During this DataCamp Black Friday, you can access the top-rated courses with a 50% discount. Enroll now for way less!
Tuy nhiên, các câu hỏi phỏng vấn DevOps cơ bản không có nghĩa là chúng dễ, đơn giản bạn chỉ cần trả lời mà ít khi phải giải thích thêm.
Câu hỏi 1: “DevOps” là gì?
Rõ ràng, “DevOps là gì” là câu hỏi đầu tiên mà bạn dễ bắt gặp nhất. Nhà tuyển dụng có lẽ chỉ muốn kiểm tra cách bạn giải thích khái niệm bằng ngôn ngữ của mình mà thôi.
Nói một cách đơn giản, DevOps là một phương pháp triết học rút ngắn vòng đời phát triển hệ thống. Bản thân từ này là sự kết hợp giữa “development” và “operations”.
Cách mà DevOps nhắm đến để đạt được điều này là thực hiện tự động hóa và giám sát sự kiện (và thử nghiệm!) thông qua toàn bộ quá trình xây dựng phần mềm.
Câu hỏi 2: Các dạng công cụ DevOps phổ biến nhất là gì?
Git, Jenkins, Docker và Selenium là một số công cụ phổ biến hơn được sử dụng trong DevOps.
Câu hỏi 3: Sự khác biệt chính so với Agility?
DevOps và Agility thường được đặt cùng nhau và chống lại nhau. Một trong những câu hỏi phỏng vấn DevOps có thể sẽ là so sánh và đối chiếu hai loại này.
Một trong những khác biệt chính giữa hai loại đó là trong khi Agility hoàn toàn hướng đến thời gian, DevOps đặt trọng tâm tương tự về cả thời gian và chất lượng. Bằng cách này, chất lượng cao được đảm bảo cùng với mọi thứ được giao đúng hạn.
Một điểm khác biệt lớn nữa là khi có phản hồi, Agility dựa vào khách hàng, trong khi DevOps chỉ sử dụng tính năng tự giám sát. Cả hai phương pháp đều có lý lẽ hợp lý để chứng mình, nhưng tự giám sát vẫn được coi là lựa chọn tốt hơn bởi vì nó khách quan hơn khi xem xét các vấn đề tiềm năng. Hơn nữa, nếu tự giám sát, thời gian phản ứng nhanh hơn so với phản hồi từ khách hàng.
Câu hỏi 4: Version control là gì?
Đây được coi là một trong những câu hỏi phỏng vấn DevOps dễ nhất - đó là cách để theo dõi tất cả các phiên bản trước của các tệp cụ thể.
Câu hỏi 5: 4 thành phần chính của DevOps là gì?
Tích hợp, thử nghiệm, trung chuyển và giám sát. Tất cả các phương thức này đều có thẻ continuous gắn liền với chúng - chúng không chỉ đơn giản xảy ra một hoặc hai lần, thay vào đó, chúng đều là các quy trình đang diễn ra.
Câu hỏi 6: Ngôn ngữ lập trình nào được sử dụng trong DevOps?
Chủ yếu là Ruby, ngoài ra, Python cũng có thể được sử dụng.
Câu hỏi 7: AWS phù hợp với DevOps như thế nào?
Đây là một trong những câu hỏi phỏng vấn AWS DevOps bạn sẽ gặp vì AWS khá quan trọng khi nói đến DevOps.
AWS là từ viết tắt của Amazon Web Services. Nó đảm bảo khả năng mở rộng kinh doanh bằng cách sử dụng nguồn lực và sức mạnh to lớn (không giới hạn).
AWS được sử dụng trong nhiều công ty để tăng năng lượng cho sản phẩm và phân phối sản phẩm - DevOps đơn giản là phương thức mà nó được sử dụng.
Câu hỏi 8: ‘Extreme Programming’ là gì?
Exreme Programming (thường được gọi đơn giản là XP) là một phương pháp phát triển phần mềm. Mục tiêu chính của XP là sự hài lòng của khách hàng - tất cả các mục tiêu, nghị quyết và phương pháp làm việc đều hướng tới mục tiêu này.
Rất nhiều công ty sử dụng DevOps cũng thường sử dụng XP.
Câu hỏi 9: ‘design pattern’ là gì?
Đây là một trong nhiều thuật ngữ phổ biến mà những người làm việc với mô hình DevOps phải làm quen. Do đó, bạn có khả năng cao gặp nhưng câu hỏi phỏng vấn DevOps engineer kiểu như thế này.
Nói một cách đơn giản, một “design pattern” là một giải pháp cho một số vấn đề mà nhà phát triển gặp phải.
Các patterns này giúp các nhà phát triển mới tránh các vấn đề và sự cố có thể xảy ra bằng cách, ...hiển thị các mẫu và giải pháp có thể.
Có ba loại design pattern chính mà các nhà phát triển thường tham khảo - hành vi, sáng tạo và cấu trúc.
Câu hỏi 10: CBD’s là gì?
CBD, hay Component-Based Development (Phát triển dựa trên thành phần), là một cách duy nhất để tiếp cận phát triển sản phẩm.
Với CBD, các nhà phát triển tìm kiếm các thành phần đã có, được chế tạo tốt và được thử nghiệm để tạo thành một sản phẩm hoàn toàn mới và nguyên bản. Điều này được thực hiện thay vì quy trình thông thường, đó là chế tạo một sản phẩm từ đầu.
Các câu hỏi phỏng vấn DevOps chuyên sâu hơn
Bây giờ bạn đã tưởng tượng ra các câu hỏi liên quan đến DevOps dành cho DevOps engineer sẽ như thế nào. Chúng ta hãy cùng tìm hiểu sâu hơn các câu hỏi phỏng vấn nâng cáo. Phần nâng cao hơn ở đây là các câu hỏi thường đòi hỏi câu trả lời sâu sắc hoặc có dẫn đến các câu hỏi tiếp theo.
Câu hỏi 1: Giải thích "branching"
Một trong những câu hỏi phỏng vấn DevOps phổ biến liên quan đến lời giải thích mà bạn thể hiện được cả kiến thức và kinh nghiệm từ công việc trước đây.
Có ba loại phân nhánh chính (branching) - phân nhánh nhiệm vụ, tính năng và phát hành.
Task branching hay phân nhánh nhiệm vụ bao gồm mỗi nhiệm vụ trong các nhánh khác nhau, với các phím tác vụ được bao gồm trong tên nhánh. Feature branching hay phân nhánh tính năng lưu trữ các thay đổi và sửa đổi của một tính năng trong một chi nhánh. Khi công việc với tính năng được đưa ra và thực hiện, nhánh chứa tính năng này sau đó được kết hợp (hợp nhất) với tệp chủ. Cuối cùng, release branching hay phân nhánh phát hành cho phép bạn nhân bản một nhánh để khi nó phát hành, bạn vẫn có thể thay đổi bản sao.
Câu hỏi 2: Làm thế nào để sao chép Jenkins sang máy chủ khác?
Các nhà tuyển dụng có thể hỏi các câu hỏi phỏng vấn DevOps xoay quanh cùng một chủ đề và mong đợi nhiều câu trả lời khác nhau. Tuy nhiên, tôi sẽ nói với bạn về một trong những phương pháp dễ nhất để sao chép công việc Jenkins từ máy chủ này sang máy chủ khác.
Có lẽ cách đơn giản nhất để thực hiện là sao chép thư mục công việc và chỉ cần đổi tên nó. Sau đó, chỉ cần chuyển công việc mới sang máy chủ khác.
Câu hỏi 3: Kể tên ba phương pháp bạn sử dụng để bảo vệ Jenkins?
Tôi có thể cung cấp cho bạn một số gợi ý về những cách có thể bạn có thể trả lời câu hỏi này:
- Chạy kiểm toán an ninh định kỳ.
- Định cấu hình giới hạn quyền truy cập vào dữ liệu được lưu trữ tại Jenkins.
- Hãy chắc chắn rằng tùy chọn bảo mật toàn cầu được bật.
Câu hỏi 4: Mô tả kiểm tra tự động hóa ‘automation testing’.
Mặc định là các hệ thống thủ công được sử dụng để kiểm tra các hệ thống. Điều này dẫn đến việc nguồn nhân lực được yêu cầu và khả năng xảy ra lỗi sẽ cao hơn. Tuy nhiên, kiểm tra tự động hóa cho phép thực hiện các quy trình tự động kiểm tra các hệ thống cho bạn.
Câu hỏi 5: Lợi ích chính khi sử dụng “kiểm tra tự động hóa” là gì?
Có khá nhiều lợi ích khi sử dụng kiểm tra tự động hóa tại nơi làm việc, tôi liệt kê ra đây một số lợi ích đáng chú ý nhất.
- Như đã đề cập, lỗi ít có khả năng xảy ra.
- Tiết kiệm cả tiền bạc và thời gian.
- Cho phép thực hiện các bài kiểm tra lớn mà thường các bài kiểm tra này sẽ mất quá nhiều thời gian
Question 6: What’s Memcached?
Memcached là một hệ thống lưu trữ bản sao các đối tượng (object) bộ nhớ nguồn mở. Memcached chủ yếu được sử dụng để tránh các tác vụ tìm nạp dữ liệu SQL lặp đi lặp lại sẽ mất nhiều thời gian thực hiện đồng thời.
Câu hỏi 7: Nếu một vài dữ liệu thay đổi, làm thế nào để cập nhật Memcached?
Đây là một trong hàng trăm câu hỏi phỏng vấn DevOps engineer. Các chủ đề cụ thể như Memcached thường có các câu hỏi tiếp nối tiếp, vì vậy, bạn cần chuẩn bị các câu hỏi liên quan càng nhiều càng tốt.
Có hai cách để cập nhật Memcache theo kịch bản như vậy - xóa bộ nhớ cache sau mỗi lần cập nhật hoặc đặt lại khóa sau khi cập nhật xảy ra.
Câu hỏi 8: Tại sao thành phần của Continuous testing lại quan trọng đối với DevOps?
Tôi đã đề cập 4 thành phần chính của DevOps trước đó, và chúng ta cần đào sâu hơn về từng thành phần, 4 trụ cột mà DevOps dựa lên. Và còn cách nào tốt hơn là xem lại các câu trả lời co những câu phỏng vấn ngẫu nhiên về DevOps như kiểu này phải không?
Continuous testing (Kiểm tra liên tục) cho phép các nhà phát triển thực hiện kiểm tra liên tục sau mỗi lần cập nhật mới được triển khai vào hệ thống. Bằng cách đó, quá trình sẽ trở nên suôn sẻ hơn - nếu không thì, tất cả các bài kiểm tra sẽ được dành riêng vào cuối giai đoạn nước rút, có thể dẫn đến sự cố lớn và do đó lãng phí rất nhiều thời gian.
Câu hỏi 9: Liệu Selenium có phải là một công cụ thử nghiệm tốt?
Có, Selenium được coi là một trong những công cụ kiểm tra tốt hơn cho các hoạt động dựa trên DevOps. Selenium là mã nguồn mở, có thể được sử dụng trên các trình duyệt khác nhau, có cộng đồng tuyệt vời, hỗ trợ tùy chọn thử nghiệm phân tán và cuối cùng nhưng không kém phần quan trọng là hoàn toàn miễn phí.
- Dễ sử dụng
- Cung cấp nội dung chất lượng
- Minh bạch giá cả
- Chứng chỉ miễn phí sau hoàn thành
- Tập trung vào các kỹ năng khoa học dữ liệu
- Thời gian học tập linh hoạt
- Thiết kế đơn giản (không có thông tin không cần thiết)
- Khóa học chất lượng cao (ngay cả khóa miễn phí)
- Đa dạng tính năng
- Chương trình nanodegree
- Phù hợp với doanh nghiệp
- Chứng chỉ hoàn thành trả phí
- Được tạo dựng tốt trong ngành
- Đa dạng các tính năng để lựa chọn
- Các khóa học trình độ đại học
- Các khóa học trình độ đại học
- Phù hợp với doanh nghiệp
- Trả phí cho chứng chỉ hoàn thành
Câu hỏi 10: Làm thế nào bạn có thể tối đa hóa hiệu quả của Continuous Integration?
Như bạn thấy thấy, đây là một định dạng phổ biến cho các câu hỏi phỏng vấn DevOps - việc thực hiện các quy trình liên tục thường là một điểm rất quan trọng đối với nhà tuyển dụng.
Có rất nhiều điều bạn có thể làm để tối đa hóa hiệu quả khi tích hợp liên tục (continuous integration). Dưới đây là một vài trong số những hiệu quả nổi bật hơn cả:
- Tự động hóa cả việc xây dựng và triển khai.
- Thử nghiệm phải được thực hiện trong một môi trường được sao chép chính xác (nhân bản) trong đó các quy trình sản xuất sẽ diễn ra.
- Cho phép mọi người xem kết quả của một bản dựng - điều này sẽ nâng cao năng suất và làm trơn tru các quá trình giao tiếp.
Một vài bí kíp phỏng vấn chung
Chúng ta đã đi qua một số câu hỏi câu hỏi và câu trả lời phỏng vấn DevOps phổ biến nhất từ “DevOps là gì”, hãy trò chuyện thêm về một số điều chung nhất cần ghi nhớ khi đi phỏng vấn xin việc.
Có lẽ bí kíp quan trọng nhất mà tôi đưa ra là đừng quá cả nghĩ về nó. Chúng ta đã gần tới đích - lịch phỏng vấn đã được đặt ra và bạn bắt đầu cảm thấy lo lắng? Điều gì sẽ xảy ra nếu nhà tuyển dụng không thích bạn hay thắt nơ của bạn? Bạn có nên đeo nơ không? Thắt nơ là gì?
Hãy cố gắng thư giãn. Nhà tuyển dụng hoàn toàn có thể cảm nhận rằng bạn đang bình tĩnh hay lo lắng và điều này có thể ảnh hưởng nghiêm trọng đến kết quả của cuộc phỏng vấn.
Vì vậy, đừng quên rũ bỏ hết căng thẳng và áp lực trước mỗi cuộc phỏng vấn. - hãy thử các bài tập hít thở sâu, tránh màn hình và suy nghĩ về những giấc ngủ ngon bằng cách trải giường trước khi đi ngủ. Nghe có vẻ lạ nhưng ngay cả một điều đơn giản như nệm chất lượng tốt cũng có thể ảnh hưởng ít nhiều đến kết quả phỏng vấn đấy.
Ngoài ra, cũng không nên tìm hiểu ngày đêm với DevOps nếu như bạn không muốn xuất hiện trước nhà tuyển dụng như thây ma. Tham gia các khóa học DevOps là quan trọng nhưng ngủ đủ và nghỉ ngơi cũng cần thiết không kém.
Những gì bạn có thể làm là cố gắng một tuần trước cuộc phỏng vấn, và ngày cuối cùng trước ngày phỏng vấn thì không nên làm gì cả.
Đây là một phương pháp học tập phổ biến nói chung. Bằng cách làm như vậy, bạn cho phép bộ não của mình được nghỉ ngơi và phục hồi - thầm dần các kiến thức từ các khóa học DevOps trước đó.
Trong cuộc phỏng vấn thực tế, hãy chứng tỏ bản thân mình. Không cần tỏ ra khác lạ. Hãy là chính bạn. Nhà tuyển dụng sẽ trân trọng điều đó.
Bạn có biết?
Bạn đã bao giờ băn khoăn nền tảng học online nào tốt nhất cho sự nghiệp của bạn chưa?
Kết luận
Triết lý DevOps đang gây bão trên toàn thế giới - với rất nhiều công ty nổi tiếng đã áp dụng. Sự gia tăng mức độ phổ biến của phương pháp này là không thể phủ nhận.
Bạn có thể thấy các thuật ngữ “DevOps coding” hay “DevOps engineer interview questions” ở mọi nơi trên Internet và tôi cũng sử dụng nó trong hướng dẫn DevOps này. Thành thật mà nói, các từ này chưa chính xác vì không có cái nào gọi là “DevOps coder” hay “DevOps engineer” ở đây. DevOps không phải tên một nghề hay chức danh. Tuy nhiên, mọi người đã quá quen với việc sử dụng thuật ngữ này, đến nỗi việc ám chỉ nó trở nên dễ dàng hơn nhiều so với việc giải thích lại vấn đề.
Trong hướng dẫn này, chúng tôi đã nói về một số câu hỏi phỏng vấn DevOps chung và các câu hỏi phỏng vấn Memcache, Jenkins, Selenium và AWS DevOps cũng như đưa ra một số lời khuyên mà bạn có thể áp dụng trước và trong khi phỏng vấn xin việc. Chúc bạn may mắn với các cuộc phỏng vấn trong tương lai!