GrowUp Articles

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

5 nghề nghiệp tiềm năng dành cho người học SQL

Cẩm nang nghề nghiệp| 2020-02-10
Chuyên gia SQL là chìa khóa để thực hiện nhiệm vụ quản lý dữ liệu. Nếu bạn có hứng thú với nghề nghiệp bằng kỹ năng SQL, thì sẽ có khá nhiều sự lựa chọn dành cho bạn.

Những kỹ năng IT hàng đầu được nhà tuyển dụng tìm kiếm năm 2020

Cẩm nang nghề nghiệp| 2020-02-07
Kỹ năng chuyên môn là nền tảng và điều kiện cần để bạn ứng tuyển thành công môt việc làm ngành IT. Và dưới đây là những kỹ năng IT, kiến thức cần thiết nhất.

Học C++ có phải là lựa chọn sáng suốt cho người mới lập trình

Cẩm nang nghề nghiệp| 2020-01-02
C++ được biết đến là một ngôn ngữ rất mạnh mẽ. Vậy hãy cùng tham khảo những thông tin dưới đây để xem chúng ta có nên bắt đầu học C++ không nhé!

CV xin việc là gì? Những lưu ý quan trọng mà bạn phải biết khi viết CV

Cẩm nang nghề nghiệp| 2020-01-02
Bạn đang tự hỏi CV xin việc là gì? Phải viết CV xin việc như thế nào mới được xem là hoàn hảo trong mắt nhà tuyển dụng. Câu trả lời sẽ có ngay trong bài viết này.

Magento là gì? Lí do vì sao nên sử dụng Magento?

Cẩm nang nghề nghiệp| 2019-12-25
Hàng trăm ngàn thương hiệu có cửa hàng online sử dụng các open sources trong đó Magento là cái tên được ưu tiên, vậy nó mang lại cho các nhà phát triển những lợi ích gì?

Khái quát về nghề UX Design - Tất cả bạn cần để bắt đầu

Cẩm nang nghề nghiệp| 2019-12-23
UX Design (User Experience design) là một lĩnh vực vô cùng rộng lớn, đa ngành và hấp dẫn. Nó định hình các sản phẩm và dịch vụ chúng ta sử dụng hàng ngày.