Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 5 — DevOps vs SRE vs Platform Engineering

Đã đọc 0/14 mục · còn khoảng 14 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Mở đầu — vì sao bài này quan trọng

Nếu bạn mở LinkedIn hay TopCV lúc này và gõ ba từ khóa: "DevOps Engineer", "SRE" (Site Reliability Engineer), và "Platform Engineer", bạn sẽ thấy hàng trăm tin tuyển dụng ở Việt Nam, và điều thú vị là rất nhiều tin trong số đó mô tả gần như giống hệt nhau: "quản lý CI/CD, làm việc với Kubernetes, monitoring, tự động hóa hạ tầng...". Chính sự chồng lấn này khiến ba khái niệm bị nhầm lẫn trầm trọng — cả với người mới lẫn với nhiều nhà tuyển dụng.

Hiểu rõ sự khác biệt không phải là chuyện "học thuộc định nghĩa để trả lời phỏng vấn". Nó ảnh hưởng trực tiếp đến ba quyết định quan trọng trong sự nghiệp của bạn: (1) bạn nên đầu tư kỹ năng theo hướng nào, (2) bạn nên chọn công ty có mô hình tổ chức phù hợp với thế mạnh của mình ra sao, và (3) khi vào công ty rồi, bạn hiểu được vì sao team mình được tổ chức theo cách đó — để không kỳ vọng sai và không đổ lỗi nhầm chỗ.

Ở bài trước chúng ta đã nói về CALMS — bộ khung văn hóa của DevOps. Bài này ta sẽ làm rõ một chuyện tinh tế hơn: DevOps là một văn hóa/triết lý, còn SRE và Platform Engineering là những cách triển khai cụ thể để hiện thực hóa triết lý đó trong tổ chức. Nắm được điều này, bạn sẽ không còn bối rối khi ai đó hỏi "vậy DevOps Engineer và SRE khác nhau chỗ nào?".

Khái niệm cốt lõi

DevOps — văn hóa và tập hợp thực hành, không phải một chức danh

DevOps ra đời khoảng năm 2009 như một phản ứng chống lại "bức tường" giữa đội phát triển (Dev) và đội vận hành (Ops). Trước đó, Dev viết code rồi "ném qua tường" cho Ops chạy; khi có sự cố, Dev đổ tại hạ tầng, Ops đổ tại code. DevOps là câu trả lời: một văn hóa cộng tác cộng với tập hợp thực hành (automation, CI/CD, monitoring, infrastructure as code) giúp Dev và Ops cùng chịu trách nhiệm cho toàn bộ vòng đời của phần mềm — từ lúc viết đến lúc chạy trên production.

Điểm mấu chốt cần nhớ: DevOps không phải là một job title gốc. Ban đầu không ai đặt tên "DevOps Engineer" cả — đó là một triết lý về cách tổ chức làm việc. Chức danh "DevOps Engineer" là sản phẩm phụ của thị trường lao động: khi các công ty muốn tuyển người "làm được các thực hành DevOps", họ cần một cái tên để ghi vào tin tuyển dụng, và thế là "DevOps Engineer" ra đời. Patrick Debois — người được xem là cha đẻ của phong trào — từng nói vui rằng DevOps là "mọi thứ bạn làm để khắc phục việc chia tách Dev và Ops". Nói cách khác, DevOps mô tả một mục tiêu và cách tư duy, không mô tả một vị trí cố định.

Trên thực tế ở Việt Nam, "DevOps Engineer" thường là người: dựng và duy trì pipeline CI/CD, quản lý hạ tầng bằng code (Terraform, Ansible), vận hành Kubernetes, thiết lập monitoring, và tự động hóa mọi thứ tự động hóa được. Đó là một vai trò rộng và thiên về nền tảng chung.

SRE — cách Google hiện thực hóa DevOps bằng kỹ thuật

SRE (Site Reliability Engineering) ra đời ở Google từ năm 2003, trước cả khi từ "DevOps" phổ biến. Ben Treynor Sloss, người sáng lập nhóm SRE đầu tiên, mô tả nó bằng một câu kinh điển: "SRE là những gì xảy ra khi bạn giao nhiệm vụ vận hành (operations) cho một kỹ sư phần mềm."

Nghĩa là gì? Thay vì có một đội Ops làm việc thủ công (bấm nút, chạy lệnh, thức đêm restart server), SRE lấy tư duy của kỹ sư phần mềm áp vào bài toán vận hành: coi độ tin cậy (reliability) như một bài toán kỹ thuật cần giải bằng code, chứ không phải bằng sức người.

SRE có vài đặc trưng rất riêng, đây cũng là những khái niệm bạn sẽ học sâu ở các bài sau nên ở đây tôi chỉ giới thiệu để phân biệt:

  • SLI/SLO/Error Budget: SRE định lượng độ tin cậy. Ví dụ đặt mục tiêu (SLO) rằng 99.9% request phải thành công. Phần "được phép lỗi" (0.1% còn lại) chính là error budget — ngân sách lỗi. Nếu chưa tiêu hết ngân sách, đội được phép release nhanh; nếu tiêu hết, phải dừng release để tập trung vá ổn định.
  • Toil: SRE có nguyên tắc giới hạn "toil" (công việc lặp đi lặp lại, thủ công) không quá 50% thời gian; phần còn lại dành để viết code tự động hóa, loại bỏ chính công việc thủ công đó.
  • Blameless postmortem: khi sự cố xảy ra, tập trung vào lỗi hệ thống chứ không đổ lỗi cá nhân.
Điểm khác biệt so với DevOps Engineer: SRE tập trung sâu vào độ tin cậy và vận hành production của một hoặc một số dịch vụ cụ thể. Google có công thức nổi tiếng: "class SRE implements DevOps" — nghĩa là SRE là một cách triển khai cụ thể (một "class" hiện thực hóa) của "interface" DevOps.

Platform Engineering — biến DevOps thành sản phẩm nội bộ

Platform Engineering là khái niệm mới nhất trong ba cái, bùng nổ từ khoảng 2020–2022. Nó ra đời để giải quyết một vấn đề mà chính DevOps tạo ra khi bị hiểu sai.

Khi DevOps được áp dụng theo kiểu "you build it, you run it" (bạn xây thì bạn tự vận hành), nhiều tổ chức đẩy toàn bộ gánh nặng hạ tầng cho từng đội phát triển sản phẩm. Hậu quả: mỗi lập trình viên backend phải tự học Kubernetes, tự viết Terraform, tự cấu hình pipeline. Đây gọi là cognitive load (gánh nặng nhận thức) quá tải — lập trình viên đáng lẽ tập trung viết tính năng thì lại loay hoay với YAML.

Platform Engineering giải bài toán này bằng cách xây một Internal Developer Platform (IDP) — một nền tảng nội bộ do một đội chuyên trách (platform team) xây dựng và coi các lập trình viên trong công ty như khách hàng của mình. Thay vì mỗi dev tự dựng hạ tầng, platform team cung cấp các "self-service" (tự phục vụ): dev chỉ cần điền vài dòng cấu hình hoặc bấm nút là có ngay môi trường, pipeline, database — mọi thứ phức tạp được che giấu (abstraction) phía sau.

Điểm khác biệt cốt lõi: Platform Engineering mang tư duy sản phẩm vào hạ tầng. Nền tảng nội bộ được đối xử như một sản phẩm thật, có người dùng, có trải nghiệm, có vòng lặp phản hồi.

Bảng so sánh nhanh để ghim vào đầu

Tiêu chíDevOpsSREPlatform Engineering
Bản chấtVăn hóa + thực hànhCách hiện thực hóa DevOps bằng kỹ thuậtXây nền tảng nội bộ như một sản phẩm
Trọng tâmXóa rào cản Dev–Ops, tự động hóaReliability (SLO, error budget, toil)Trải nghiệm lập trình viên, self-service
"Khách hàng"Toàn tổ chứcDịch vụ production cần ổn địnhChính các lập trình viên nội bộ
Xuất hiện~2009~2003 (Google)~2020
Câu thần chú"Break the wall""SRE implements DevOps""DevOps as a product"

Tình huống thực tế

Ví dụ 1 — Startup fintech 30 người ở TP.HCM: "DevOps Engineer" gánh tất cả

Một startup ví điện tử ở Sài Gòn với khoảng 30 kỹ sư tuyển một bạn với chức danh "DevOps Engineer". Trên thực tế, bạn này làm mọi thứ: dựng pipeline GitLab CI, viết Terraform cho AWS, quản lý cụm EKS (Kubernetes), cấu hình Prometheus/Grafana, và cả trực khi hệ thống sập lúc 2 giờ sáng.

Diễn giải: Ở quy mô này, tách riêng SRE hay Platform team là xa xỉ và không cần thiết. Một người "full-stack hạ tầng" là hợp lý. Đây đúng nghĩa là DevOps ở dạng rộng nhất — một người hiện thực hóa toàn bộ tinh thần DevOps.

Bài học: Ở công ty nhỏ, đừng kỳ vọng ranh giới rõ ràng giữa ba vai trò. "DevOps Engineer" ở đây gần như đồng nghĩa "người lo toàn bộ hạ tầng và vận hành". Nếu bạn mới vào nghề, môi trường này cực kỳ tốt để học rộng, dù áp lực on-call khá nặng.

Ví dụ 2 — Grab/công ty công nghệ lớn khu vực Đông Nam Á: tách SRE ra riêng

Hãy hình dung một công ty công nghệ lớn ở Đông Nam Á (kiểu Grab, Shopee, VNG) với hàng trăm microservice và hàng chục triệu người dùng. Ở quy mô này, dịch vụ thanh toán mà lỗi 5 phút thôi là mất tiền thật và mất niềm tin người dùng.

Công ty tách riêng đội SRE để phụ trách các dịch vụ trọng yếu (payment, matching tài xế, đặt hàng). Đội SRE này đặt SLO cụ thể — ví dụ dịch vụ đặt xe phải đạt 99.95% thành công — và quản lý error budget. Có một quý, dịch vụ tìm tài xế lỗi vặt liên tục và tiêu gần hết error budget; đội SRE liền yêu cầu đội product dừng ra tính năng mới, dồn sức ổn định hệ thống trong hai tuần trước khi được release tiếp.

Diễn giải: Đây là điều mà một "DevOps Engineer" đơn thuần hiếm khi có thẩm quyền làm. SRE có quyền dựa trên dữ liệu (error budget) để phanh lại tốc độ phát triển vì mục tiêu ổn định.

Bài học: Khi công ty đủ lớn và độ tin cậy trở thành yếu tố sống còn, SRE xuất hiện như một chuyên môn sâu, đo lường được, có quyền lực dựa trên số liệu chứ không phải cảm tính.

Ví dụ 3 — Tập đoàn 300 lập trình viên: lập Platform team để cứu năng suất

Một ngân hàng số / tập đoàn công nghệ Việt Nam có khoảng 300 lập trình viên chia thành 40 squad sản phẩm. Ban đầu họ áp dụng "you build it, you run it" triệt để. Kết quả: mỗi squad tự viết Terraform theo một kiểu, tự dựng pipeline khác nhau, mất trung bình 3 ngày chỉ để tạo một môi trường mới cho service mới. Lập trình viên than phiền tốn 30–40% thời gian cho việc hạ tầng thay vì viết tính năng.

Lãnh đạo lập ra một Platform team 8 người. Team này xây một cổng self-service nội bộ (dựa trên Backstage của Spotify): dev chỉ cần điền tên service, chọn template, và trong khoảng 15 phút có ngay repo, pipeline CI/CD, môi trường staging, database và dashboard monitoring — tất cả theo chuẩn chung. Thời gian tạo service mới giảm từ 3 ngày xuống dưới 30 phút.

Diễn giải: Platform team ở đây không trực tiếp vận hành service của từng squad (đó vẫn là trách nhiệm của squad). Họ xây công cụ và coi 300 lập trình viên kia là khách hàng cần được phục vụ tốt.

Bài học: Khi số lượng lập trình viên đủ lớn, gánh nặng nhận thức trở thành nút thắt năng suất. Platform Engineering ra đời để "sản phẩm hóa" hạ tầng, trả lại cho dev sự tập trung vào giá trị kinh doanh.

Hướng dẫn từng bước

Đây là cách bạn tự định vị và ra quyết định dựa trên ba khái niệm này:

  • Xác định quy mô tổ chức bạn đang xét. Dưới ~50 kỹ sư: gần như chắc chắn chỉ có vai trò DevOps rộng. Từ ~100 kỹ sư và có dịch vụ trọng yếu: bắt đầu xuất hiện SRE. Từ ~200–300 kỹ sư trở lên: nhiều khả năng có Platform team.
  • Đọc tin tuyển dụng bằng con mắt phân loại. Đừng nhìn chức danh — nhìn phần "trách nhiệm". Nếu nhấn mạnh SLO, error budget, on-call, postmortem → đó là màu sắc SRE. Nếu nhấn mạnh xây internal platform, developer experience, self-service, Backstage → đó là Platform Engineering. Nếu liệt kê rộng CI/CD + IaC + K8s + monitoring → DevOps tổng quát.
  • Tự đánh giá thiên hướng của bản thân. Bạn thích viết code sâu, đo lường, tối ưu độ tin cậy? Nghiêng SRE. Bạn thích xây công cụ cho người khác dùng, có tư duy sản phẩm và trải nghiệm người dùng? Nghiêng Platform. Bạn thích làm rộng, chạm mọi thứ, phù hợp startup? Nghiêng DevOps tổng quát.
  • Vẽ lộ trình học phù hợp. Nền tảng chung (Linux, Git, Docker, Kubernetes, CI/CD, IaC) là bắt buộc cho cả ba — đó chính là phần lớn khóa học này. Sau nền tảng, nếu theo SRE hãy đào sâu observability và reliability; nếu theo Platform hãy học thêm về developer portal (Backstage), API design và tư duy sản phẩm.
  • Khi phỏng vấn, hỏi ngược nhà tuyển dụng. Câu hỏi hay: "Ở công ty, vai trò này có sở hữu SLO của dịch vụ không, hay chủ yếu xây nền tảng cho team khác dùng?". Câu trả lời sẽ lộ ra ngay công ty đang cần DevOps, SRE hay Platform — dù chức danh ghi là gì.

Lỗi thường gặp & mẹo

Lỗi 1 — Nghĩ "DevOps Engineer" là một nghề cố định với ranh giới rõ. Không. Đó là một cái tên thị trường gán cho người thực hành DevOps. Nội dung công việc thay đổi hoàn toàn tùy công ty. Mẹo: luôn đọc kỹ mô tả trách nhiệm, đừng tin mỗi chức danh.

Lỗi 2 — Cho rằng SRE "cao cấp hơn" hay "lương cao hơn" DevOps. Đây là ba hướng chuyên môn khác nhau, không phải ba bậc thang cao thấp. Một Platform Engineer giỏi ở công ty lớn hoàn toàn có thể được trả cao hơn một SRE, và ngược lại. So sánh theo giá trị và độ hiếm của kỹ năng, không theo "danh tiếng" của chức danh.

Lỗi 3 — Lập Platform team quá sớm. Nhiều startup nghe "Platform Engineering hot" liền lập platform team khi mới có 20 dev. Kết quả là xây một nền tảng phức tạp mà chẳng ai cần. Mẹo: Platform team chỉ có ý nghĩa khi gánh nặng nhận thức của lập trình viên đã trở thành nút thắt thật sự — thường là khi tổ chức đủ lớn.

Lỗi 4 — Hiểu "you build it, you run it" thành "đẩy hết cho dev tự bơi". DevOps không có nghĩa là bỏ mặc lập trình viên với Kubernetes. Chính sự hiểu sai này đã sinh ra nhu cầu Platform Engineering. Mẹo: cộng tác và cung cấp công cụ tốt mới là tinh thần DevOps, không phải "khoán trắng".

Mẹo vàng để nhớ: hãy thuộc lòng công thức của Google — "class SRE implements DevOps". DevOps là interface (định nghĩa mục tiêu: cộng tác, tự động hóa, giao hàng nhanh và ổn định). SRE là một class hiện thực interface đó theo cách thiên về reliability. Platform Engineering là một class hiện thực khác theo cách thiên về developer experience. Ba thứ cùng phục vụ một triết lý, chỉ khác cách triển khai.

Bài tập thực hành

  • Phân loại tin tuyển dụng. Lên TopCV, ITviec hoặc LinkedIn, tìm và lưu lại 3 tin tuyển dụng: một tin "DevOps Engineer", một tin "SRE", một tin "Platform Engineer" tại các công ty ở Việt Nam. Với mỗi tin, gạch chân những cụm từ tiết lộ bản chất thật (SLO, error budget, self-service, Backstage, CI/CD...). Viết một câu kết luận: tin này thật sự đang cần loại kỹ sư nào?
  • Bài phân tích tổ chức. Chọn một công ty bạn biết (nơi bạn làm, hoặc một công ty công nghệ Việt bạn ngưỡng mộ). Ước lượng quy mô kỹ sư và trả lời: theo bạn, công ty này nên có SRE riêng chưa? Có nên có Platform team chưa? Vì sao? Viết khoảng 150–200 từ.
  • Tự định vị bản thân. Viết ra 3 điều bạn thích làm nhất trong công việc kỹ thuật (ví dụ: "tối ưu hiệu năng", "xây công cụ cho đồng nghiệp", "điều tra sự cố"). Đối chiếu với bước 3 trong phần Hướng dẫn để xác định bạn nghiêng về hướng nào trong ba hướng, và liệt kê 2 kỹ năng tiếp theo bạn nên học.
  • Giải thích cho người ngoài ngành. Thử giải thích sự khác nhau giữa DevOps, SRE và Platform Engineering cho một người bạn không làm IT, chỉ trong 3 câu, dùng phép ẩn dụ của riêng bạn. Nếu họ hiểu, nghĩa là bạn đã thật sự nắm bài.

Tóm tắt

  • DevOps là văn hóa và tập hợp thực hành giúp Dev và Ops cùng chịu trách nhiệm, giao hàng nhanh và ổn định. "DevOps Engineer" không phải chức danh gốc — nó là sản phẩm phụ của thị trường lao động đặt tên cho người thực hành DevOps.
  • SRE là cách Google hiện thực hóa DevOps bằng kỹ thuật, lấy tư duy kỹ sư phần mềm giải bài toán vận hành, với các trụ cột SLO, error budget, giới hạn toil và blameless postmortem. Công thức nhớ đời: class SRE implements DevOps.
  • Platform Engineering biến hạ tầng thành một sản phẩm nội bộ (Internal Developer Platform), coi lập trình viên là khách hàng, giảm gánh nặng nhận thức thông qua self-service — thường xuất hiện khi tổ chức đủ lớn.
  • Ba khái niệm không phải bậc thang cao thấp, mà là các hướng triển khai khác nhau của cùng một triết lý. Quy mô tổ chức là yếu tố quyết định lớn nhất việc công ty cần vai trò nào.
  • Khi định hướng nghề nghiệp: đọc trách nhiệm chứ đừng đọc chức danh, và chọn hướng khớp với thiên hướng cá nhân của bạn.
Ở bài tiếp theo, chúng ta sẽ đi vào "The Three Ways" của DevOps từ cuốn The Phoenix Project — bộ nguyên lý nền tảng lý giải vì sao dòng chảy công việc, vòng phản hồi và văn hóa thử nghiệm lại quan trọng đến vậy.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi