Trong mắt nhiều người, “DevOps engineer” được coi là nghề tương lai của sự thành công hàng đầu (mặc dù nó không phải là một nghề thực tế). Các công ty quốc tế ở cấp cao nhất (chỉ nêu tên một số - 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 họ. Đương nhiên, với nhu cầu cao như vậy, nhu cầu về các chuyên gia DevOps cũng đang tăng lên. Đó là lý do tại sao trong hướng dẫn này, tôi muốn nói với bạn về các câu hỏi phỏng vấn DevOps.
Chúng ta sẽ đề cập đến cả câu hỏi phỏng vấn chung và AWS DevOps, nói về một số câu hỏi cơ bản và nâng cao mà bạn mong đợi và thảo luận một số điều bạn có thể làm trước cuộc phỏng vấn xin việc để tối đa hóa kết quả phỏng vấn tiềm năng tích cực.
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: Nhữ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 là gì?
- 1.4. Câu hỏi 4: Kiểm soát phiên bản 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 được sử dụng trong DevOps là gì?
- 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â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 "phân nhánh"
- 2.2. Câu hỏi 2: Làm thế nào để sao chép Jenkins sang một máy chủ khác?
- 2.3. Câu hỏi 3: Kể tên ba phương pháp mà bạn muốn sử dụng để bảo mật Jenkins.
- 2.4. Câu hỏi 4: Mô tả "automation testing"
- 2.5. Câu hỏi 5: Những lợi ích chính của việc sử dụng ‘kiểm thử tự động hóa’ là gì?
- 2.6. Câu hỏi 6: Memcached là gì?
- 2.7. Câu hỏi 7: Nếu một số dữ liệu thay đổi, làm cách nào bạn có thể cập nhật Memcached?
- 2.8. Câu hỏi 8: Tại sao thành phần của Kiểm thử liên tục lại quan trọng đối với DevOps?
- 2.9. Câu hỏi 9: Selenium có phải là một công cụ kiểm tra tốt không?
- 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 Tích hợp liên tục?
- 3. Bí kíp phỏng vấn chung
- 4. Kết luận
Cơ bản về DevOps
Chúng ta sẽ bắt đầu với những câu hỏi cơ bản - những câu ngắn gọn và hấp dẫn. Đây là loại câu hỏi mà bạn có khả năng nhận được nhiều nhất 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!
Mặc dù vậy, các câu hỏi phỏng vấn DevOps cơ bản không có nghĩa là dễ - chúng chỉ là những câu hỏi thường không cần giải thích hoặc mở rộng thêm.
Câu hỏi 1: DevOps là gì?
Đương nhiên, "DevOps là gì?" là câu hỏi đầu tiên mà bạn sẽ bị hỏi. Nhà tuyển dụng tiềm năng của bạn thậm chí có thể yêu cầu bạn giải thích điều đó theo cách của bạn.
Nói một cách đơn giản, DevOps là một phương pháp triết học nhằm rút ngắn vòng đời của các phát triển hệ thống. Bản thân từ này là sự kết hợp của “phát triển” và “hoạt động”.
Cách mà DevOps hướng tới để đạ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: Nhữ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 là gì?
DevOps và Agility thường được đặt cùng nhau và chọi lại nhau. Một trong những câu hỏi phỏng vấn DevOps của bạn có thể là so sánh và đối chiếu hai cái này.
Một trong những điểm khác biệt chính giữa hai tính năng này là trong khi Agility hoàn toàn hướng về thời gian, DevOps lại chú trọng đến 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 nhận thời hạn.
Một điểm khác biệt lớn nữa là khi nói đến phản hồi, Agility hoàn toàn 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ó những lập luận xác đáng để hỗ trợ chúng, nhưng tự giám sát vẫn được coi là lựa chọn tốt hơn. Điều này là do nó được xem là cách khách quan hơn để xem các vấn đề tiềm ẩn. Hơn nữa, thời gian phản ứng nhanh hơn có thể đạt được khi tự giám sát hơn là từ phản hồi của khách hàng.
Câu hỏi 4: Kiểm soát phiên bản là gì?
Mọi người coi đây là một trong những câu hỏi phỏng vấn DevOps dễ dàng hơn - đó là một 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 (Integration), thử nghiệm (Testing), phân phối (Delivery) và giám sát (Mornitoring). Tất cả các phương pháp được đề cập này đều có thẻ liên tục gắn liền với chúng - chúng không chỉ xảy ra một hoặc hai lần, thay vào đó, chúng là tất cả các quá trình luôn tiếp diễn.
Câu hỏi 6: Ngôn ngữ lập trình được sử dụng trong DevOps là gì?
Chủ yếu là - Ruby, nhưng 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 có khả năng gặp một vài câu hỏi trong số này, vì AWS khá quan trọng khi nói đến DevOps.
AWS là 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 tài nguyên và sức mạnh khổng lồ (nói thẳng ra là - không giới hạn).
AWS được sử dụng trong nhiều công ty để cung cấp năng lượng cho sản phẩm của họ và phân phối sản phẩm - DevOps chỉ đơn giản là phương pháp mà nó được sử dụng.
Câu hỏi 8: "Extreme programming" là gì?
Extreme Programming (thường được gọi đơn giản hơ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, giải pháp và phương pháp làm việc đều hướng tới một mục tiêu này.
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 quen thuộc. Do đó, bạn có thể sẽ nhận được những câu hỏi phỏng vấn DevOps engineer như vậy.
Nói một cách đơn giản, một design pattern (mẫu thiết kế) là một giải pháp cho một số loại vấn đề mà nhà phát triển gặp phải.
Các mẫu này giúp các nhà phát triển mới tránh được 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 khả thi.
Có ba loại mẫu thiết kế chính mà các nhà phát triển thường tham khảo - behavioral (hành vi), creational (sáng tạo) và structural (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), tương đối 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 nghĩa là chế tác một sản phẩm từ đầu.
Câu hỏi phỏng vấn DevOps chuyên sâu hơn
Bây giờ bạn đã phần nào hiểu được các loại câu hỏi mà bạn sẽ nhận được trong cuộc phỏng vấn xin việc của mình, chúng ta có thể bắt đầu chuyển sang các câu hỏi phỏng vấn DevOps nâng cao hơn. Phần “nâng cao” ở đây là những câu hỏi này thường yêu cầu nhiều câu trả lời chuyên sâu hơn hoặc phải có phần trả lời nối tiếp sau.
Câu hỏi 1: Giải thích "phân nhánh"
Một trong những câu hỏi phỏng vấn DevOps phổ biến hơn - lời giải thích của bạn sẽ thể hiện cả kiến thức và kinh nghiệm của bạn từ công việc trước đây mà bạn đã làm.
Có ba kiểu phân nhánh chính - phân nhánh nhiệm vụ (task), tính năng (feature) và bản phát hành (release).
Task branching (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 (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 đối tượng địa lý được nói và thực hiện, nhánh chứa tính năng sau đó được kết hợp (hợp nhất) với tệp chính. Cuối cùng, release branching (phân nhánh phát hành) cho phép bạn sao chép một nhánh để khi nó được phát hành, bạn vẫn có thể thực hiện các thay đổi đối với bản sao.
Câu hỏi 2: Làm thế nào để sao chép Jenkins sang một máy chủ khác?
Việc này có thể khó vì có một số cách để thực hiện. Các nhà tuyển dụng tiềm năng có thể hỏi các câu hỏi phỏng vấn DevOps riêng biệt 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ẽ cho bạn biết về một trong những phương pháp dễ dàng 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 mà bạn muốn sử dụng để bảo mật Jenkins.
Trong số tất cả các câu hỏi phỏng vấn DevOps và câu trả lời mà bạn có thể nghĩ tới, đây là một trong những câu hỏi cung cấp cho bạn một số sự khoan hồng với lựa chọn câu trả lời của bạn. Tôi có thể cung cấp cho bạn một số gợi ý về những cách khả thi để bạn trả lời câu hỏi này:
- Chạy kiểm tra bảo mật đị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.
- Đảm bảo rằng tùy chọn bảo mật toàn cầu được bật.
Câu hỏi 4: Mô tả "automation testing"
Theo mặc định, hệ thống thủ công được sử dụng để kiểm tra hệ thống. Điều này có nghĩa là cần nhiều nhân lực và có nhiều khả năng xảy ra lỗi hơn. Tuy nhiên, kiểm thử tự động hóa cho phép thực hiện các quy trình tự động kiểm tra hệ thống cho bạn.
Câu hỏi 5: Những lợi ích chính của việc sử dụng ‘kiểm thử tự động hóa’ là gì?
Có khá nhiều lợi ích khi sử dụng kiểm thử tự động hóa ở nơi làm việc, vì vậy tôi sẽ cung cấp cho bạn một số ví dụ về những lợi ích đáng chú ý nhất.
- Như đã đề cập trước đó, ít có khả năng xảy ra lỗi hơn.
- Nó tiết kiệm cả tiền bạc và thời gian.
- Nó cho phép thực hiện các bài kiểm thử lớn mà nếu không nó sẽ mất quá nhiều thời gian.
Câu hỏi 6: Memcached là gì?
Memcached là một hệ thống bộ nhớ đệm đối tượng bộ nhớ mã 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 số dữ liệu thay đổi, làm cách nào bạn có thể 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 theo sau, vì vậy bạn nên chuẩn bị cho càng nhiều câu hỏi càng tốt.
Có hai cách để cập nhật Memcache trong trường hợp như vậy - xóa bộ nhớ cache sau mỗi lần cập nhật hoặc đặt lại các khóa sau khi cập nhật diễn ra.
Câu hỏi 8: Tại sao thành phần của Kiểm thử liên tục lại quan trọng đối với DevOps?
Tôi đã đề cập đến 4 thành phần chính của DevOps trong phần đầu tiên của hướng dẫn này, nhưng điều thực sự quan trọng là phải tìm hiểu sâu hơn về từng thành phần trong số chúng - chúng là bốn trụ cột mà DevOps dựa vào. Và đâu là cách tốt hơn để sửa đổi ngoài việc nghiên cứu các câu hỏi phỏng ván DevOps và câu trả lời ngẫu nhiên, phải không?
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 trơn tru hơn rất nhiều - trong các trường hợp khác, tất cả các bài kiểm tra sẽ được dành vào cuối giai đoạn nước rút, điều này có thể dẫn đến việc tạm dừng và do đó lãng phí rất nhiều thời gian.
Câu hỏi 9: Selenium có phải là một công cụ kiểm tra tốt không?
Có, nó đượ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 Tích hợp liên tục?
Có thể bạn đã nhận thấy, đây là đị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. Nhưng chỉ nêu tên một vài trong số những cái được biết đến hơn:
- Tự động hóa cả quá trình xây dựng và triển khai.
- Thử nghiệm nên đượ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 quá trình xây dựng - việc này sẽ nâng cao năng suất và làm trơn tru các quy trình giao tiếp.
Bí kíp phỏng vấn chung
Bây giờ chúng ta đã xem qua một số câu hỏi phỏng vấn DevOps và câu trả lời phổ biến nhất, hãy tóm gọn về một số điều chung chung hơn mà bạn cần lưu ý khi nói đến chính cuộc phỏng vấn xin việc.
Có lẽ bí kíp quan trọng nhất mà tôi có thể cho bạn là đừng suy nghĩ quá nhiều. Tất cả chúng ta đều như thế - bạn muốn công việc đó và khi ngày phỏng vấn đã lên lịch càng gần, bạn bắt đầu cảm thấy ngày càng bồn chồn hơn. Điều gì sẽ xảy ra nếu nhà tuyển dụng không thích bạn hoặc chiếc nơ của bạn? Bạn có nên thắt nơ không? Nơ là gì?
Cố gắng thư giãn - có thể bạn đang tạo ra thỏa thuận lớn hơn so với bình thường. Các nhà tuyển dụng tiềm năng sẽ cảm nhận được liệu bạn có đang căng thẳng quá hay bình tĩnh và tập trung - đ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 giải tỏa căng thẳng trước cuộc phỏng vấn - cố gắng thực hiện một số bài tập thở, tránh màn hình và nghĩ về giấc ngủ ngon hơn bằng cách chuẩn bị giường ngủ. Nghe có vẻ lạ lùng nhưng ngay cả một điều đơn giản như một tấm nệm chất lượng tốt cũng có thể ảnh hưởng đến kết quả phỏng vấn xin việc buổi sáng của bạn.
Ngoài ra, đừng lạm dụng nghiên cứu quá nhiều về các câu hỏi phỏng vấn DevOps - nếu bạn đến phỏng vấn và trông như một thây ma không ngủ trong một tuần, điều đó sẽ không giúp ích gì cho trường hợp của bạn. Học tập và chuẩn bị là quan trọng, nhưng ngủ và nghỉ ngơi cũng vậy.
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à khi ngày cuối cùng đến - chỉ cần không làm gì cả.
Vâng, tôi hoàn toàn nghiêm túc.
Đây là một phương pháp học phổ biến nói chung. 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 - khỏi lượng thông tin khổng lồ và căng thẳng. Xem phim, đi dạo - cố gắng không nghĩ về cuộc phỏng vấn xin việc sắp tới.
Trong cuộc phỏng vấn thực tế, chỉ có một điều bạn cần làm - thể hiện bản thân như chính là bạn. Đừng cố gắng hành động hay ho, điều đó sẽ không tốt cho bạn về lâu dài. Hãy cứ là chính bạn - những người phỏng vấn bạn sẽ đánh giá cao đ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 làm điên đảo thế giới - với rất nhiều công ty nổi tiếng đang áp dụng nó, sự phát triển về 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ữ như “DevOps coding” hoặc “câu hỏi phỏng vấn DevOps engineer” ở khắp nơi trên internet - thật tệ, thậm chí tôi đã sử dụng chúng trong hướng dẫn này! Sự thật mà nói, chúng không chính xác - không có cái gọi là “DevOps coder” hay “DevOps engineer" - DevOps không phải là một loại nghề nghiệp hay chức danh công việc như tôi đã giải thích trong câu hỏi 1, DevOps là gì. Tuy nhiên, mọi người đã quá quen với việc sử dụng thuật ngữ này, đến mức việc tham chiếu nó trở nên dễ dàng hơn nhiều so với việc thực sự đi theo hướng tiếp tuyến để giải thích toàn bộ sự việc.
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, tôi tham khảo các câu hỏi phỏng vấn Memcache, Jenkins, Selenium và AWS DevOps và cung cấp cho bạn một số bí kíp chung mà bạn có thể áp dụng cả trước và trong khi phỏng vấn xin việc. Tôi chúc bạn nhiều may mắn trong cuộc phỏng vấn đó!