DevOps không cần biết code?

Nay phỏng vấn một bạn vào team DevOps role 2y exp, mình có hỏi thử:

Em có biết ngôn ngữ lập trình nào không?

Bạn ấy không code thậm trí là chưa code thật sự ngày nào cả nhưng bạn cũng đã trả lời thành thật mang tính cố gắng và xây dựng:

Em chưa code qua ngày nào đúng nghĩa ở vị trí Dev anh ạ, như CV em cũng có note em làm Sysadmin ý anh và em qua làm DevOps thì em thấy DevOps là làm hạ tầng, là viết pipeline với YAML là cũng đủ việc rồi anh ạ, chắc đến vài năm nữa em cũng nghĩ rằng mình sẽ chưa đụng đến code để tập trung vào hạ tầng và sau nếu có cơ hội thì em sẽ học code nhưng em cũng thấy dành thời gian cho code chưa chắn mang được giá trị anh ạ – Đại ý như vậy còn mình không chắc 100% từng từ câu nói mà mình nhớ ý thôi

Thật sự, mình nghe cũng khá lăn tăn. Không phải vì bạn sai hoàn toàn, mà vì cái suy nghĩ ấy đang lan rất nhanh trong cộng đồng.

“DevOps không cần biết code” ai đã gieo cái tư tưởng đó nhỉ?

Theo mình nghĩ thì tư duy này có thể đến từ hai nhóm:

  • Một là những bạn học trái ngành, chuyển sang DevOps vì nghĩ “không cần biết code”.
  • Hai là chính các anh/chị DevOps đời đầu (ý kiến cá nhân do mình gặp qua nhiều) hay Sysadmin, giỏi hạ tầng nhưng yếu code, vô tình phát biểu kiểu “làm DevOps không cần giỏi lập trình đâu”.

Dần dần, nó trở thành lời ru ngủ:

DevOps là viết YAML, là Terraform, là Ansible, không cần biết Python, không cần biết bash làm gì dưới hood đâu.

Nhưng thật ra, mình xin khẳng định với các bạn: DevOps không biết code thì chỉ dừng lại ở mức “Kỹ sư vận hành hạ tầng dùng công cụ hiện đại”. Không bao giờ chạm tới được chiều sâu.

Tại sao DevOps cần biết code?

  1. Pipeline lỗi, không debug nổi script thì ai sửa? Bạn viết CI/CD bằng GitHub Actions, GitLab hay Jenkins đều phải gỡ lỗi shell script, check biến môi trường, xử lý exit code. Không biết code, bạn mù tịt khi flow fail (anh em bảo ném hết vào cho AI sửa hộ thì coi trừng, hiểu mới dùng chứ dùng khi không hiểu thêm tính thiếu cẩn thận bye bye hệ thống).

  2. Monitor hệ thống, không hiểu log app thì đọc cái gì? Nhiều bạn DevOps thấy log lỗi là NullPointerException, Timeout, 400 Bad Request,… mà không hiểu được ý nghĩa bên trong app là gì. Không biết code, bạn không hiểu logic backend.

  3. Infra-as-Code cũng là… code. Bạn xài Terraform, Pulumi, Ansible, CDK,… đều là ngôn ngữ lập trình. Muốn tối ưu hay viết reusable module, buộc phải hiểu lập trình.

  4. Thực thi triết lý Dev + Ops phải… hiểu Dev. Làm DevOps là để kéo Dev và Ops lại gần nhau. Không biết code, bạn nói chuyện với Dev thế nào? Bạn hiểu pain của họ ở đâu?

Thật ra theo mình DevOps chính là “lập trình viên của hạ tầng”

Mình có nói trong buổi phỏng vấn:

Em đang apply vào một vị trí mà người ta trả lương cao hơn System Admin chính là vì em phải biết code.

Thành thật đi, nếu không viết được 1 script để migrate dữ liệu, không patch được code backend khi emergency, không biết viết test case cho infra module thì bạn có khác gì người vận hành thời xưa?

Kết thôi

Mình không bắt DevOps phải thành full-stack developer. Nhưng ít nhất:

  • Biết Python, hoặc bash scripting cơ bản.
  • Biết cách đọc code backend.
  • Biết debug logic CI/CD không chỉ dừng lại ở UI.

Nếu bạn làm DevOps mà né code, thì giống như làm bác sĩ mà không chịu học giải phẫu nhìn bệnh thì được, nhưng không bao giờ mổ được.

Anh em trong nghề, nếu đang thấy mình giống vậy, thì nên học code lại từ hôm nay. Còn nếu bạn thấy mình không cần code thật cứ phản bác, mình luôn sẵn sàng lắng nghe.

Article Thumbnail
Article Thumbnail
Datadog Webinar: Modernize AWS Logs at Scale
Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận