Tổng hợp các câu hỏi phỏng vấn DevOps thường gặp và gợi ý trả lời

Bạn có phải là kỹ sư của DevOps hay đang nghĩ đến việc làm DevOps? Nếu là vậy thì tương lai IT đang nằm trong tay bạn. Công ty nghiên cứu hàng đầu - Forrester tuyên bố năm 2018 là ‘Năm của DevOps và ước tính rằng 50% các tổ chức trên toàn thế giới đang vận dụng DevOps’. Dưới đây là danh sách 10 câu hỏi phỏng vấn DevOps thường gặp nhất, cũng là khái quát nhất mà nhà tuyển dụng sẽ hỏi nhằm xem xét khả năng và sự hiểu biết của bạn về DevOps.

Tổng hợp các câu hỏi phỏng vấn DevOps thường gặp và gợi ý trả lời
Tổng hợp các câu hỏi phỏng vấn DevOps thường gặp và gợi ý trả lời

Trong bài viết này, GrowUpWork đã liệt kê các câu hỏi có thể mà người phỏng vấn tuyển dụng DevOps thường gặp nhất. Danh sách này đã được xây dựng dựa trên bí quyết của những người training về DevOps, chuyên gia trong ngành với kinh nghiệm của gần 30.000 người học DevOps từ 60 quốc gia.

Điều cốt yếu mà chúng ta cần hiểu chính là DevOps không chỉ đơn thuần được xem như một tập hợp các công nghệ mà là một cách tư duy, một phong cách làm việc. DevOps yêu cầu một sự thay đổi tư duy kết hợp các hoạt động với sự phát triển và đòi hỏi một chuỗi công cụ liên kết của các công nghệ để tạo điều kiện cho sự thay đổi hợp tác. Do khái niệm DevOps vẫn còn ở giai đoạn rất mới, nên việc áp dụng DevOps cũng như băng thông cần thời gian và điều kiện cần thiết để thích nghi tùy theo từng tổ chức. Tuy nhiên, bạn có thể lập ra danh mục các kỹ năng DevOps để chuẩn bị trở thành một ứng cử viên kỹ sư DevOps hoàn hảo cho bất kỳ loại tổ chức nào.

Nhưng trước hết hãy cùng nhìn sơ lại công việc và vai trò của một Kỹ sư DevOps trong một tổ chức.

Vai trò của một Kỹ sư DevOps

Để lập ra các vai trò của DevOps, các tổ chức đã tìm kiếm một bộ kỹ năng rõ ràng. Những yếu tố quan trọng nhất trong số này là:

  • Trải nghiệm với các công cụ tự Hệ thống hạ tầng tự động (Infrastructure automation) như Chef, Puppet, Ansible, SaltStack hoặc Windows PowerShell DSC.
  • Thành thạo các ngôn ngữ web như Ruby, Python, PHP hoặc Java.
  • Kỹ năng giao tiếp giúp bạn phối hợp hiệu quả giữa các nhóm.

Nếu bạn có các kỹ năng trên, thì bạn đã sẵn sàng để bắt đầu chuẩn bị cho cuộc phỏng vấn ứng tuyển để trở thành Kỹ sư DevOps. 
Để cấu trúc các câu hỏi dưới đây dựa vào vị trí của ứng viên. Hầu hết các câu trả lời này được viết từ quan điểm của bạn - một chuyên gia DevOps tiềm năng.

Những câu hỏi phỏng vấn DEVOPS khái quát

Danh mục này sẽ bao gồm các câu hỏi không liên quan đến bất kỳ giai đoạn DevOps cụ thể nào. Các câu hỏi này nhằm kiểm tra sự hiểu biết của bạn về DevOps thay vì tập trung vào một công cụ cụ thể hoặc một giai đoạn.

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

Sự khác biệt giữa hai khái niệm được liệt kê trong bảng dưới đây:

Đặc điểm DevOps Aglie
Tốc độ Nhanh chóng trong cả phát triển và vận hành Chỉ phát triển sự nhanh chóng
Quy trình/Tiến trình thực hiện Liên quan đến các quá trình như CI, CD, CT, v.v. Liên quan đến các tiến trình như Agile Scrum, Agile Kanban, v.v.
Giá trị hiệu quả Tính kịp thời & chất lượng có mức độ ưu tiên như nhau Tính kịp thời là ưu tiên chính
Chu kỳ release/Chu trình phát triển  Chu trình phát triển ngắn với feedback ngay lâp tức Chu trình phát triển ngắn
Nguồn để Feedback Tự phản hồi nhờ Công cụ giám sát (Monitoring tools) Phản hồi từ khách hàng
Phạm vi công việc Sự nhanh chóng và sự tự động hóa cần thiết Sự nhanh chóng

Q2. Sự cần thiết của DevOps là gì?

Kỹ sư DevOps làm gì? Vai trò Nhiệm vụ và Thu nhập
Kỹ sư DevOps làm gì? Vai trò Nhiệm vụ và Thu nhập

Có thể bạn quan tâm: Kỹ sư DevOps làm gì? Vai trò và Nhiệm vụ

Theo GrowUpWork, bạn nên bắt đầu trả lời câu hỏi phỏng vấn DevOps này bằng cách giải thích xu hướng chung của thị trường. Thay vì “release” các bộ tính năng lớn, các công ty đang cố gắng xem liệu các tính năng nhỏ có thể mang đến cho khách hàng của họ thông qua một chuỗi các release hay không. Điều này có nhiều lợi thế như phản hồi nhanh từ khách hàng, chất lượng phần mềm tốt hơn, vv dẫn đến sự hài lòng của khách hàng cao hơn. Để đạt được điều này, các công ty bắt buộc phải:

  • Tăng tần suất triển khai
  • Tỷ lệ thất bại thấp hơn của bản phát hành mới
  • Rút ngắn thời gian dẫn giữa các lần sửa
  • Thời gian trung bình phải được rút ngắn để phục hồi trong trường sản phẩm mới release bị sập.

DevOps đáp ứng tất cả các yêu cầu này và giúp đạt được sự liền mạch trong phân phối phần mềm. Bạn có thể đưa ra ví dụ về các công ty như Etsy, Google và Amazon đã áp dụng DevOps để đạt được mức hiệu suất không tưởng ngay cả năm năm trước. Họ đang thực hiện hàng chục, hàng trăm hoặc thậm chí hàng ngàn triển khai mã mỗi ngày trong khi vẫn mang lại sự ổn định, độ tin cậy và bảo mật đẳng cấp thế giới.

Nếu nhà tuyển dụng phải kiểm tra kiến ​​thức của bạn về DevOps, bạn nên biết sự khác biệt giữa Agile và DevOps. Câu hỏi tiếp theo cũng sẽ liên quan đến chủ đề này.

Q3. DevOps khác với Agile / SDLC như thế nào?

Phân biệt DevOps với Agile
Phân biệt DevOps với Agile

Do có rất nhiều ứng viên nhầm lẫn, nên đây là câu hỏi phỏng vấn DevOps giúp nhà tuyển dụng tìm ra ứng viên thực sự am hiểu về DevOps
GrowUpWork gợi ý bạn trả lời với lời giải thích như sau:

Agile là một tập hợp các giá trị và nguyên tắc về cách sản xuất, tức là phát triển phần mềm. Ví dụ: nếu bạn có một số ý tưởng và bạn muốn biến những ý tưởng đó thành phần mềm hoạt động, bạn có thể sử dụng các giá trị và nguyên tắc Agile như một cách để làm điều đó. Tuy nhiên, phần mềm đó chỉ có thể hoạt động trên máy tính xách tay của nhà phát triển, hoặc trong môi trường thử nghiệm. Bạn muốn có một cách nhanh chóng, dễ dàng và lặp lại phần mềm đó vào cơ sở hạ tầng sản xuất, một cách an toàn và đơn giản. Để làm điều đó, bạn cần các công cụ và kỹ thuật trong phương pháp DevOps.

Bạn có thể tóm tắt bằng cách nói phương pháp Agile tập trung vào phát triển phần mềm, trong khi DevOps chịu trách nhiệm phát triển cũng như triển khai phần mềm theo cách an toàn và đáng tin cậy nhất có thể.

Bạn đã nắm rõ các công cụ DevOps? Và tiếp sau đây là câu hỏi liên quan đến chủ đề này

Q4. Cho biết các công cụ DevOps thông dụng? Bạn đã từng làm việc trên những công cụ nào?

Top 10 công cụ DevOps hàng đầu năm 2019

Khi được nhà tuyển dụng đặt câu hỏi phỏng vấn DevOps này, bạn hãy lần lượt nêu tên và phạm vi chức năng của chúng như dưới đây:

  • Git: Version Control System tool (đây là công cụ với hệ thống kiểm soát các version)
  • Jenkins: Continuous Integration tool - CI tool (Công cụ tích hợp liên tục)
  • Selenium: Continuous Testing tool (Công cụ kiểm tra liên tục)
  • Puppet, Chef, Ansible: Configuration Management and Deployment tools (Quản lý cấu hình và triển khai)
  • Nagios: Continuous Monitoring tool (Công cụ kiểm soát liên tục)
  • Docker: Containerization tool

Bạn cũng có thể đề cập đến bất kỳ công cụ nào khác nếu bạn muốn, nhưng hãy đảm bảo bạn bao gồm các công cụ trên trong câu trả lời của mình.
Phần thứ hai của câu hỏi bạn có thể trả lời theo một trong hai trường hợp sau:

  1. Nếu bạn có kinh nghiệm với tất cả các công cụ trên thì bạn có thể nói rằng tôi đã làm việc trên tất cả các công cụ này để phát triển phần mềm chất lượng tốt và triển khai các phần mềm đó một cách dễ dàng, thường xuyên và đáng tin cậy.
  2. Nếu bạn chỉ có kinh nghiệm với một số công cụ trên thì hãy đề cập đến các công cụ đó và nói rằng tôi có chuyên môn về các công cụ này và có cái nhìn tổng quan về phần còn lại của các công cụ.

Để tiếp nối phần thứ hai của câu hỏi này, nhà tuyển dụng muốn chắc chắn rằng bạn thực sự có kinh nghiệm làm việc với các công cụ, họ sẽ hỏi câu 5

Q5. Làm thế nào để tất cả các công cụ DevOps này làm việc cùng nhau?

Dưới đây là một chuỗi logic chung mà bạn nên trình bày cho câu hỏi phỏng vấn DevOps này, Đó là chuỗi logic, nơi mọi thứ được tự động hóa để phân phối liền mạch. Tuy nhiên, chuỗi này có thể thay đổi tùy theo yêu cầu, mục tiêu của từng tổ chức.

  1. Các Dev phát triển code và source code này được quản lý bởi các công cụ Hệ thống kiểm soát phiên bản (Version Control System - VCS) như Git, v.v.
  2. Các nhà phát triển gửi code này đến kho Git và mọi thay đổi được thực hiện trong code được cam kết với Kho lưu trữ này.
  3. Jenkins lấy mã này từ kho lưu trữ bằng cách sử dụng plugin Git và xây dựng nó bằng các công cụ như Ant hoặc Maven.
  4. Các công cụ quản lý cấu hình như Puppet triển khai & cung cấp môi trường thử nghiệm và sau đó Jenkins phát hành mã này trên môi trường thử nghiệm mà thử nghiệm được thực hiện bằng các công cụ như Selenium.
  5. Sau khi mã được kiểm tra, Jenkins gửi nó để triển khai trên máy chủ sản xuất (ngay cả máy chủ sản xuất cũng được cung cấp và duy trì bởi các công cụ như Puppet).
  6. Sau khi triển khai. Nó liên tục được theo dõi bởi các công cụ như Nagios.
  7. Docker container cung cấp môi trường thử nghiệm để kiểm tra các tính năng xây dựng.
Sự phối hợp các công cụ DevOps
Sự phối hợp các công cụ DevOps

Q6. Những Ưu điểm của DevOps là gì?

Đối với câu trả lời này, bạn có thể sử dụng kinh nghiệm trong quá khứ của mình và giải thích cách DevOps giúp bạn trong công việc trước đây. Nếu bạn không có kinh nghiệm như vậy, thì bạn có thể đề cập đến những lợi thế dưới đây.

Lợi ích về mặt kỹ thuật:

  • Phân phối phần mềm liên tục
  • Các vấn đề ít phức tạp hơn để khắc phục
  • Giải quyết vấn đề nhanh hơn

Lợi ích về mặt kinh doanh:

  • Cung cấp nhanh hơn các tính năng
  • Môi trường hoạt động ổn định hơn
  • Có nhiều thời gian hơn để gia tăng giá trị (thay vì sửa chữa / bảo trì)

Q7. Điều quan trọng nhất mà DevOps giúp chúng ta đạt được là gì?

Gợi ý trả lời câu hỏi phỏng vấn DevOps này: Điều quan trọng nhất mà DevOps giúp chúng ta đạt được là đưa các thay đổi vào sản xuất càng nhanh càng tốt trong khi giảm thiểu rủi ro trong việc đảm bảo và tuân thủ chất lượng phần mềm. Đây là mục tiêu chính của DevOps. 
Ngoài ra, bạn có thể thêm nhiều điểm sáng tích cực khác của DevOps. Ví dụ: giao tiếp rõ ràng hơn và mối quan hệ làm việc tốt hơn giữa các nhóm, tức là cả nhóm Ops và nhóm Dev hợp tác với nhau để cung cấp phần mềm chất lượng tốt, từ đó dẫn đến sự hài lòng của khách hàng cao hơn.

Q8. Trong trường hợp nào mà DevOps có thể được áp dụng (công nghiệp / đời thực)?

Vận dụng DevOps vào thực tiễn
Vận dụng DevOps vào thực tiễn

Có nhiều ngành đang sử dụng DevOps để bạn có thể đề cập đến hay bạn cũng có thể tham khảo ví dụ dưới đây:
Etsy là một trang web thương mại điện tử mạng ngang hàng (P2P) tập trung vào các mặt hàng và vật tư thủ công hoặc cổ điển, cũng như các mặt hàng độc đáo sản xuất tại nhà máy. Etsy phải vật lộn với các cập nhật trang web chậm, rắc rối thường xuyên khiến trang web bị sập. Nó ảnh hưởng đến doanh số của hàng triệu người dùng Etsy, đó là những người bán hàng thông qua thị trường trực tuyến.
Với sự giúp đỡ của đội ngũ quản lý kỹ thuật mới, Etsy đã chuyển đổi từ mô hình thác nước (Waterfall Model) của mình, phương pháp mà toàn bộ các triển khai (deployments) được diễn ra bốn giờ hai lần mỗi tuần, sang một cách tiếp cận nhanh nhẹn hơn. Ngày nay, nó có một đường ống triển khai hoàn toàn tự động và các hoạt động phân phối liên tục của nó đã được báo cáo dẫn đến hơn 50 triển khai (deployments) mỗi ngày với ít gián đoạn hơn.

Q9. Giải thích sự hiểu biết và chuyên môn của bạn về phát triển phần mềm (software development) và hoạt động kỹ thuật (technical operations) của một tổ chức bạn đã làm việc trong quá khứ.

Đối với câu trả lời này, hãy chia sẻ kinh nghiệm trong quá khứ của bạn và cố gắng giải thích mức độ linh hoạt của bạn trong công việc. Hoặc bạn có thể tham khảo ví dụ dưới đây:
Các kỹ sư của DevOps hầu như luôn làm việc trong môi trường trực tuyến kinh doanh quan trọng 24/7. Tôi đã thích nghi với các nhiệm vụ theo yêu cầu và sẵn sàng nhận trách nhiệm hệ thống trực tiếp theo thời gian thực. Tôi thành công các quy trình tự động để hỗ trợ triển khai phần mềm liên tục. Tôi có kinh nghiệm với các public/private clouds, các công cụ như Chef hoặc Puppet, viết script và tự động hóa với các công cụ như Python và PHP và cơ bản về Agile.

Có thể bạn quan tâmTop 10 tài liệu lập trình Python cơ bản và nâng cao 

Q10. Các quan niệm sai lầm về DevOps là gì?

Một mô hình được sử dụng phổ biến thường được tuân theo. Nếu một mẫu thường được người khác chấp nhận không hoạt động cho tổ chức của bạn và bạn tiếp tục làm theo nó một cách mù quáng, thì về cơ bản, bạn đang áp dụng sai DevOps. Một số quan điểm sai lầm thường gặp nhất như:

  • DevOps chỉ là một quá trình
  • Agile y hệt DevOps?
  • Cần một nhóm chuyên DevOps riêng
  • Devops sẽ giải quyết tất cả các vấn đề của chúng ta
  • DevOps có nghĩa là Nhà phát triển Quản lý Sản xuất
  • DevOps là quản lý release theo định hướng Dev
    • DevOps không phải là hướng phát triển.
    • DevOps không phải là hoạt động điều khiển IT.
  • Chúng ta không thể làm được DevOps - Do chúng ta khác biệt
  • Chúng ta không thể làm được DevOps - Do chúng ta tuyển sai người

Với bộ câu hỏi phỏng vấn DevOps này bạn đã tự tin hơn để diễn đạt khả năng làm việc theo phương pháp mới đang là xu hướng này trước nhà tuyển dụng?! Chúc bạn thành công!

Gợi ý tìm việc:


Tin tức liên quan

Lộ trình học Java Developer dành cho mọi lứa tuổi

News|2024-10-20
Bạn muốn theo học ngành lập trình Java? Bạn chưa biết học và phát triển bản thân như thế nào? Hãy tham khảo lộ trình học Java Developer từ chuyên gia sau đây để tìm thấy hướng đi tốt nhất cho bản thân.

Tương lai ngành lập trình game liệu còn đủ tốt để theo đuổi?

News|2024-10-18
Tương lai ngành lập trình game như thế nào? Liệu có mạo hiểm khi chọn ngành này? Làm sao để trở thành một Game Developer giỏi? Tất cả câu trả lời chính xác sẽ có trong thông tin sau đây.

Phân biệt nghề nghiệp: AI Developer và AI Engineer

News|2024-10-17
AI Developer và AI Engineer là gì? Chúng có sự khác nhau như thế nào? Làm sao để chọn đúng ngành khi lựa chọn giữa AI Developer và Engineer? Thông tin sau sẽ giúp bạn hiểu rõ về 2 lĩnh vực này.

Machine Learning Engineer Là Gì? Tiềm năng và thách thức của ML Engineer

News|2024-10-14
Machine Learning Engineer là gì? Làm sao để phát triển đối với công việc ML Engineer? Tất cả thông tin chi tiết và cách thành công khi định hướng Machine Learning Engineer sẽ có trong chia sẻ sau đây.

IT start-up là gì? những ví dụ và lời khuyên để startup thành công?

News|2024-10-11
IT Start-up là gì? Làm sao để khởi nghiệp thành công với ngành IT? Những thông tin và kinh nghiệm sau đây sẽ giúp bạn hiểu rõ về IT Start-up.

IT Manager là gì? Cách để bạn trở thành một IT Manager giỏi

News|2024-09-29
IT Manager là gì? Làm công việc này cần những kỹ năng nào? Làm sao để trở thành một IT Manager giỏi? Hãy tham khảo thông tin sau đây từ chuyên gia và bạn sẽ nhanh chóng trở thành người quản lý IT xuất sắc.