SRE là gì: Nguyên tắc, công cụ và số liệu quan trọng cần biết

SRE không chỉ là một vai trò, mà còn là một phương pháp tiếp cận kết hợp các nguyên tắc kỹ thuật phần mềm với các tác vụ vận hành, nhằm xây dựng những hệ thống có khả năng tự động hóa cao, bền vững và đáng tin cậy. Vậy SRE là gì và các kỹ sư SRE thường sử dụng những công cụ nào để đo lường và duy trì hiệu suất hệ thống?

Đọc bài viết để hiểu rõ về:

  • SRE là gì;
  • Tầm quan trọng của SRE;
  • Nguyên tắc chính trong SRE;
  • Top công cụ đánh giá SRE phổ biến;
  • Những số liệu quan trọng trong SRE;
  • Các câu hỏi thường gặp về SRE.

SRE là gì?

SRE (Site Reliability Engineering) là một phương pháp kỹ thuật phần mềm kết hợp giữa DevOps hiện đại và IT operation truyền thống. Về bản chất, SRE là phiên bản nâng cấp của Ops truyền thống. SRE áp dụng các nguyên tắc kỹ thuật phần mềm để tự động hóa, đo lường và quản lý các tác vụ vận hành. Mục tiêu của họ là giảm thiểu các công việc thủ công và đảm bảo hệ thống luôn ổn định, đáng tin cậy.

Thuật ngữ SRE được giới thiệu bởi Ben Treynor, Phó chủ tịch phụ trách vận hành kỹ thuật tại Google. Ông chính là người định nghĩa SRE qua câu nói nổi tiếng: “SRE là điều xảy ra khi bạn nhờ một kỹ sư phần mềm thiết kế một đội ngũ vận hành.”

Vào năm 2003, với nền tảng là kỹ sư phần mềm, Treynor đã thành lập một “production team” mà sau này trở thành mô hình chuẩn cho SRE. Mô hình này dựa trên hai đặc điểm chính:

  • Sử dụng các kỹ sư phần mềm để thực hiện công việc của đội ngũ vận hành.
  • Những kỹ sư này đảm nhiệm việc tự động hóa các tác vụ trước đây được thực hiện thủ công.

Các kỹ sư SRE (Site Reliability Engineer) thường tuân theo nguyên tắc “50-50 rule”, phân bổ thời gian một cách cân bằng giữa:

  • Giải quyết các vấn đề thực tế của khách hàng, như xử lý escalations (leo thang sự cố) và phản hồi sự cố.
  • Tự động hóa các tác vụ vận hành, bao gồm quản lý hệ thống production, quản lý thay đổi, phản ứng với sự cố và xử lý tình huống khẩn cấp.

Sự khác nhau giữa DevOps và SRE là gì?

DevOps là một triết lý văn hóa, một tập hợp các phương pháp thực hành nhằm hợp nhất đội ngũ phát triển (Dev) và vận hành (Ops). Mục đích là để các nhóm làm việc cùng nhau, tăng tốc độ phân phối sản phẩm và cải thiện chất lượng.

Ngược lại, SRE là một cách để đạt được mục tiêu của DevOps. Google đã định nghĩa SRE như một “bộ khung triển khai” của DevOps, nơi kỹ sư SRE sử dụng các công cụ và quy trình cụ thể để hiện thực hóa triết lý DevOps.

Để hiểu rõ hơn về sự khác nhau giữa DevOps và SRE, bạn có thể đọc thêm bài viết: SRE vs DevOps: Cách phân biệt và Trường hợp sử dụng

Tại sao SRE lại quan trọng?

Độ tin cậy của hệ thống (site reliability) không chỉ là một chỉ số kỹ thuật, mà còn phản ánh chất lượng trải nghiệm của người dùng cuối với một ứng dụng. Việc bảo trì, chỉnh sửa phần mềm nếu không được giám sát kỹ có thể âm thầm làm phát sinh lỗi, thậm chí khiến ứng dụng bị sập trong một số tình huống sử dụng.

SRE ra đời để ngăn những kịch bản đó xảy ra. Dưới đây là những lợi ích chính mà việc áp dụng Site Reliability Engineering mang lại:

  • Tăng độ tin cậy và uptime: SRE tập trung vào việc phòng ngừa và giảm thiểu sự cố, đảm bảo ứng dụng và hệ thống luôn sẵn sàng, hoạt động ổn định.
  • Cải thiện khả năng mở rộng: Bằng cách tối ưu hóa việc sử dụng tài nguyên và giảm thiểu lãng phí, SRE giúp các tổ chức mở rộng cơ sở hạ tầng và ứng dụng của mình hiệu quả hơn.
  • Cải thiện trải nghiệm người dùng: SRE có thể đảm bảo rằng các ứng dụng và dịch vụ luôn khả dụng và phản hồi nhanh, điều này tác động trực tiếp đến sự hài lòng của khách hàng, danh tiếng thương hiệu và doanh thu.
  • Thúc đẩy cải tiến liên tục: Dựa trên dữ liệu và chỉ số đo lường, SRE chỉ ra điểm cần tối ưu, từ đó thúc đẩy đổi mới và nâng cao hiệu suất liên tục.
  • Tăng cường bảo mật: SRE có thể giúp đảm bảo các hệ thống và ứng dụng an toàn và tuân thủ các tiêu chuẩn và quy định của ngành.
  • Hiệu suất có thể dự đoán: Bằng cách theo dõi và phân tích các mô hình sử dụng, SRE giúp dự đoán và ngăn ngừa các vấn đề về hiệu suất trước khi chúng xảy ra, đảm bảo các hệ thống và ứng dụng hoạt động theo cách có thể dự đoán và nhất quán.
  • Tiết kiệm chi phí: SRE có thể giảm chi phí bằng cách tự động hóa các tác vụ thường xuyên và tối ưu hóa việc sử dụng tài nguyên, giảm nhu cầu can thiệp thủ công và tiết kiệm thời gian và tiền bạc.
  • Gắn kết Dev và Ops: SRE thúc đẩy sự hợp tác đa chức năng, tạo văn hóa cùng chia sẻ trách nhiệm về độ tin cậy và hiệu suất hệ thống.

Các thuật ngữ cần biết trong SRE là gì?

SLI (Service Level Indicator – Chỉ số mức dịch vụ)

SLI là một chỉ số định lượng đo lường độ tin cậy và hiệu suất của một dịch vụ. Các chỉ số này rất quan trọng để hiểu cách thức dịch vụ hoạt động từ góc nhìn của người dùng. 

Các SLI phổ biến bao gồm:

  • Latency (độ trễ): Đo thời gian cần thiết để phản hồi yêu cầu của người dùng.
  • Availability (tính khả dụng): Theo dõi phần trăm thời gian dịch vụ hoạt động (ví dụ: Dịch vụ hoạt động 99,95% thời gian trong tháng trước).
  • Error rate (tỷ lệ lỗi): Tính toán phần trăm yêu cầu không thành công trong tổng số yêu cầu.

Để xác định SLI có ý nghĩa:

  • Hãy tập trung vào các số liệu ảnh hưởng trực tiếp đến trải nghiệm người dùng. 
  • Bắt đầu bằng cách phân tích hành trình người dùng và xác định các điểm chính có thể xảy ra sự cố về hiệu suất (ví dụ: thời gian phản hồi API, thời gian tải trang đăng nhập).
  • Đảm bảo SLI có thể đo lường được, có thể thực hiện được và phù hợp với mục tiêu kinh doanh.

SLO (Service Level Objective – Mục tiêu mức độ dịch vụ)

SLO xác định hiệu suất mục tiêu hoặc mức độ tin cậy cho một SLI cụ thể như:

  • Tính khả dụng;
  • Tỷ lệ lỗi;
  • Độ trễ yêu cầu;
  • Thông lượng (Throughput);
  • Các chỉ số khác.

Cấu trúc của SLO là:

  • SLI ≤ mục tiêu
  • Giới hạn dưới ≤ SLI ≤ giới hạn trên.

Ví dụ: Đối với API thanh toán của nền tảng thương mại điện tử:

  • SLI: Thời gian phản hồi của API.
  • SLO: 99,95% yêu cầu phải được phản hồi trong vòng 500 mili giây trong giờ làm việc.

Tầm quan trọng của SLO thực tế:

  • Việc thiết lập SLO có thể đạt được giúp đảm bảo phù hợp với kỳ vọng của người dùng và tránh gây căng thẳng không cần thiết cho nhóm kỹ thuật.
  • SLO không thực tế có thể dẫn đến vi phạm thường xuyên và làm giảm lòng tin.

Một mẹo nhỏ là hãy bắt đầu với SLO nội bộ dựa trên dữ liệu lịch sử và khả năng hệ thống, sau đó mới công bố các cam kết chính thức với khách hàng.

SLA (Service Level Agreement – Thỏa thuận mức dịch vụ)

SLA là một hợp đồng chính thức giữa nhà cung cấp dịch vụ và khách hàng, nêu rõ mức độ tin cậy và hiệu suất mong đợi. Không giống như SLO, SLA bao gồm các hậu quả pháp lý và tài chính nếu không đạt được các mục tiêu đã thỏa thuận.

Sự khác biệt chính:

  • SLO là mục tiêu nội bộ, trong khi SLA là cam kết bên ngoài.
  • SLA thường có tác động về mặt tài chính (ví dụ: hoàn tiền hoặc phạt), trong khi SLO chủ yếu được sử dụng để hướng dẫn cải tiến nội bộ.

Ví dụ: Nhà cung cấp dịch vụ đám mây có thể cung cấp SLA đảm bảo thời gian hoạt động 99,9% mỗi tháng. Nếu thời gian ngừng hoạt động vượt quá ngưỡng cho phép, nhà cung cấp sẽ hoàn lại 1% phí hàng tháng cho khách hàng.

Mẹo thực tế: Khi soạn thảo SLA, hãy đảm bảo chúng có thể đo lường được, rõ ràng và phù hợp với SLO nội bộ để tránh cam kết quá mức. Thường xuyên xem xét SLA để tính toán những thay đổi về cơ sở hạ tầng hoặc nhu cầu kinh doanh.

Error budget

Error budget thiết lập một mức độ rủi ro lỗi phù hợp với các thỏa thuận mức dịch vụ, được kỹ sư SRE sử dụng để tự động điều chỉnh độ tin cậy của dịch vụ với tốc độ phát triển và đổi mới phần mềm của công ty. 

Ví dụ: Thời gian hoạt động 99,99% (hay còn gọi là “four-nines availability”), là một ngưỡng SLA phổ biến. Điều đó có nghĩa error budget hàng tháng chỉ cho phép downtime (tổng thời gian ngừng hoạt động được phép mà không có hậu quả) tối đa khoảng 4,32 phút/ 1 tháng. Nếu hệ thống vượt quá con số này, việc triển khai tính năng mới có thể bị tạm dừng để tập trung ổn định lại dịch vụ.

Error budget giúp các nhóm phát triển và vận hành cải thiện tính ổn định và hiệu suất của dịch vụ. Chúng cũng giúp đưa ra quyết định dựa trên dữ liệu về việc triển khai các tính năng hoặc ứng dụng mới, và tối đa hóa sự đổi mới bằng cách chấp nhận rủi ro trong giới hạn cho phép. 

Những thuật ngữ khác cần biết trong SRE

Ngoài các chỉ số như SLI, SLO, SLA, Error Budget, một số thuật ngữ quan trọng khác thường dùng trong quá trình triển khai SRE là:

  • Toil: Toil là những hoạt động vận hành gắn liền với việc duy trì một dịch vụ production, thường mang tính thủ công, lặp đi lặp lại, có thể tự động hóa, mang tính tình huống, không tạo ra giá trị lâu dài và tăng tuyến tính theo quy mô dịch vụ. Ví dụ: khởi động lại server. Toil là thứ mà đội SRE cần tự động hóa hoặc loại bỏ. 
  • MTTR (Mean Time to Repair/Recover): Thời gian trung bình để khôi phục dịch vụ sau khi xảy ra sự cố. MTTR là chỉ số quan trọng để đánh giá hiệu quả của quy trình phản ứng sự cố.
  • Postmortem (Phân tích sau sự cố): Quy trình phân tích không đổ lỗi sau khi sự cố xảy ra. Mục tiêu là tìm ra nguyên nhân gốc rễ và học hỏi từ sự cố để ngăn chặn việc tái diễn trong tương lai.
  • On-call: Trạng thái một SRE Engineer sẵn sàng phản ứng với các sự cố khẩn cấp của hệ thống ngoài giờ làm việc thông thường.
  • Observability (Khả năng quan sát): Khả năng hiểu được trạng thái bên trong của một hệ thống phức tạp thông qua các dữ liệu bên ngoài mà nó tạo ra (log, metrics, traces). Đây là nền tảng giám sát và xử lý sự cố hiệu quả.

Các nguyên tắc chính trong SRE

Chấp nhận rủi ro (Embracing Risk)

Đây là nguyên tắc cốt lõi của SRE: Chấp nhận rằng không có dịch vụ nào đạt độ tin cậy tuyệt đối 100%. Thay vào đó, SRE hướng đến việc đảm bảo độ tin cậy của dịch vụ dựa trên rủi ro mà doanh nghiệp sẵn sàng chấp nhận sau khi phân tích chi phí-lợi ích.

Ví dụ, với mục tiêu khả dụng 99,99% đặt ra, kỹ sư SRE tìm cách cân bằng rủi ro không khả dụng với mục tiêu đổi mới nhanh chóng và vận hành dịch vụ hiệu quả, để tối ưu sự hài lòng chung của người dùng.

Dựa trên SLI, SLO và SLA – Các chỉ số cho độ tin cậy

Trung tâm của mọi hoạt động SRE xoay quanh ba chỉ số then chốt: Service Level Indicators (SLI), Service Level Objectives (SLO) và Service Level Agreements (SLA). Những chỉ số này cung cấp một phương pháp có cấu trúc, dựa trên dữ liệu để đo lường và quản lý độ tin cậy của hệ thống.

Loại bỏ công việc thủ công lặp lại bằng tự động hóa (Eliminating toil through automation)

Việc giảm bớt toil và mở rộng quy mô dịch vụ chính là phần “engineering” trong SRE. Không phải mọi toil đều xấu, nhưng nếu khối lượng quá nhiều sẽ gây nguy hiểm. Vì vậy, SRE luôn tìm cách thiết kế giải pháp tự động thông qua phần mềm và kỹ thuật hệ thống để loại bỏ chúng.

Một số nguồn gốc phổ biến của toil gồm có:

  • Các thông báo, email liên quan đến dịch vụ nhưng không khẩn cấp.
  • On-call response – phản hồi khẩn cấp khi trực hệ thống.
  • Các lần triển khai phiên bản mới (release).
  • Push code hoặc thay đổi vào production.

Lưu ý: SRE viết mã để tự động hóa việc quản lý vòng đời của cơ sở hạ tầng hệ thống, chứ không phải dữ liệu của chúng.

Giám sát các hệ thống phân tán

Giám sát trong SRE theo dõi các SLI tập trung vào người dùng, chẳng hạn như tính khả dụng, độ trễ hoặc tỷ lệ lỗi. Cách tiếp cận này đảm bảo rằng các cảnh báo có ý nghĩa và gắn liền với trải nghiệm người dùng, chứ không chỉ đơn thuần là trạng thái hệ thống nội bộ. 

Ba nguyên tắc chính:

  • Tính đơn giản: Cảnh báo chỉ nên được kích hoạt khi cần hành động khẩn cấp, tránh tình trạng quá tải cảnh báo. Thiết kế cảnh báo cần được cân nhắc kỹ lưỡng, phân biệt giữa cảnh báo và lỗi nghiêm trọng.
  • Tập trung vào triệu chứng: Giám sát các kết quả ảnh hưởng đến người dùng, ví dụ: thời gian tải trang chậm, thay vì chỉ tập trung vào các số liệu hệ thống cơ bản như mức sử dụng CPU. 
  • Phát hiện chủ động: Áp dụng các kỹ thuật giám sát dự đoán và phát hiện bất thường để xác định vấn đề trước khi người dùng bị ảnh hưởng, cho phép hành động phòng ngừa.

Văn hóa SRE còn nhấn mạnh khả năng quan sát – nắm bắt tình trạng bên trong của hệ thống thông qua các số liệu, nhật ký và dấu vết. Do đó, kỹ sư SRE có khả năng chẩn đoán vấn đề phức tạp, xác định nguyên nhân gốc rễ và ngăn ngừa các sự cố trong tương lai.

Triển khai một cách thận trọng

Việc đưa thay đổi vào môi trường production là nguyên nhân hàng đầu gây ra downtime, do đó SRE tiếp cận quản lý thay đổi với sự kỹ lưỡng cao độ. Một số phương pháp thường được áp dụng:

  • Canary deployment: triển khai thay đổi cho một nhóm nhỏ người dùng hoặc máy chủ để phát hiện sự cố sớm. Nếu có vấn đề, hệ thống sẽ rollback ngay trước khi toàn bộ dịch vụ bị ảnh hưởng.
  • Blue/Green deployment: duy trì hai môi trường song song để chuyển đổi nhanh chóng khi cần.
  • Feature flags: cho phép bật/tắt tính năng một cách có kiểm soát, giảm rủi ro khi phát hành.

Quản lý thay đổi cũng gắn chặt với error budget: Khi một dịch vụ đã gần chạm ngưỡng ngân sách lỗi, những thay đổi tiềm ẩn rủi ro sẽ được hoãn lại để giữ ổn định.

Tự động hóa đóng vai trò trung tâm, giúp việc triển khai diễn ra an toàn và dần dần, gần như không cần giám sát thủ công. Ví dụ, deployment pipeline có thể tự động kiểm thử và chuẩn bị bản cập nhật, giảm thiểu sai sót con người.

Cách tiếp cận này đảm bảo rằng việc đổi mới không đánh đổi bằng độ tin cậy, cho phép đội ngũ phát triển liên tục thử nghiệm, cải tiến nhanh chóng mà vẫn giữ được niềm tin của người dùng. Quản lý thay đổi cẩn trọng chính là một trong những trụ cột quan trọng của Site Reliability Engineering.

Đơn giản hóa hệ thống

Một trong những nhiệm vụ quan trọng của SRE là loại bỏ sự phức tạp thừa thãi. Mọi quy trình, công cụ hay cấu trúc nên phục vụ mục tiêu: đáng tin cậy hơn nhưng không cản trở sự linh hoạt của developer.

Postmortem không đổ lỗi và cải tiến liên tục

Đây là một nguyên tắc cốt lõi trong triết lý SRE. 

SRE chấp nhận việc “không có hệ thống nào hoàn toàn tránh được lỗi”. Thay vì coi đó là thất bại, SRE biến mỗi sự cố thành cơ hội để cải tiến. Sau những lần ngừng hoạt động hoặc sự cố nghiêm trọng, nhóm sẽ tiến hành postmortem không đổ lỗi (blameless postmortem). Mục tiêu là phân tích kỹ lưỡng điều gì đã xảy ra, xác định nguyên nhân gốc rễ và đề xuất biện pháp khắc phục mà không quy trách nhiệm cá nhân.

Cách tiếp cận này nuôi dưỡng văn hoá an toàn tâm lý (psychological safety), nơi kỹ sư cảm thấy thoải mái báo cáo sự cố hoặc thử nghiệm cái mới mà không lo ngại bị phạt.

Một postmortem tiêu chuẩn thường bao gồm:

  • Bản tường thuật sự cố theo trình tự thời gian, nêu rõ tác động và thời gian diễn ra.
    Điều tra nguyên nhân gốc rễ, thường áp dụng kỹ thuật “Five Whys” để đào sâu vào yếu tố cốt lõi thay vì chỉ dừng ở bề nổi.
  • Các hành động cải thiện cụ thể, chẳng hạn như thêm automation, thay đổi thiết kế hoặc tinh chỉnh quy trình, kèm theo người chịu trách nhiệm và mốc thời gian.

Việc ghi chép và chia sẻ các bài học thu được đảm bảo rằng mỗi sự cố đều được giải quyết bằng việc cải tiến mang tính hệ thống. Quy trình lặp lại này giúp hệ thống ngày càng bền vững và thúc đẩy tư duy học hỏi lâu dài. 

Mở rộng quy mô một cách thông minh 

Khi hệ thống tăng trưởng, việc đảm bảo đủ tài nguyên mà không lãng phí trở thành một thách thức quan trọng. Một triển khai SRE tốt phải có khả năng lập kế hoạch năng lực, dự đoán nhu cầu và tối ưu hiệu suất. Các hoạt động chính bao gồm:

  • Dự báo nhu cầu (Demand Forecasting): Sử dụng dữ liệu lịch sử, phân tích xu hướng và ước tính tăng trưởng kinh doanh để dự đoán chính xác nhu cầu tài nguyên trong tương lai.
  • Kiểm thử tải (Load Testing): Mô phỏng traffic người dùng thực tế, bao gồm peak load và các stress scenarios, để xác nhận hệ thống có thể quản lý nhu cầu dự kiến ​​và xác định điểm nghẽn.
  • Tối ưu hóa hiệu quả (Efficiency Optimization): Thiết kế hệ thống để sử dụng tài nguyên một cách hiệu quả về chi phí, tránh phân bổ quá mức nhưng vẫn đảm bảo mục tiêu hiệu suất. Điều này bao gồm tối ưu hóa code, truy vấn và cấu hình hạ tầng.

Ngoài ra, việc thiết kế hệ thống với khả năng dự phòng (redundancy) và chịu lỗi (fault tolerance) là yếu tố thiết yếu để đảm bảo sự cố tại một thành phần đơn lẻ (như máy chủ hoặc trung tâm dữ liệu) không ảnh hưởng đến toàn hệ thống. Tập trung vào thiết kế bền vững như vậy sẽ giúp hệ thống vừa mở rộng được quy mô, vừa duy trì tính ổn định ngay cả trong tình huống khắc nghiệt.

Top 10+ công cụ SRE phổ biến

Dưới đây là 10 công cụ thiết yếu giúp việc triển khai Site Reliability Engineering trở nên dễ dàng hơn:

Các công cụ Theo dõi và giám sát

Nổi bật với tính linh hoạt và khả năng tích hợp với nhiều nguồn dữ liệu. Prometheus thu thập số liệu xuyên suốt quá trình phát triển phần mềm, đồng thời hỗ trợ trực quan hóa để dễ dàng ngữ cảnh hóa dữ liệu.

Mô hình dữ liệu mạnh mẽ và ngôn ngữ truy vấn PromQL cho phép hiển thị chi tiết thông tin về hiệu suất và độ tin cậy của hệ thống.

Công cụ đa năng cho SRE đảm bảo tính sẵn sàng cho sản xuất, bằng cách cung cấp các tính năng như APM (Giám sát hiệu suất ứng dụng), quản lý log và giám sát bảo mật. Datadog là công cụ giám sát và phân tích thương mại dành cho các ứng dụng đám mây.

Nền tảng này tích hợp với nhiều dịch vụ và công cụ khác nhau, cung cấp khả năng hiển thị toàn diện về hiệu suất của ứng dụng và cơ sở hạ tầng.

Nền tảng mã nguồn mở, có thể cấu hình để giám sát và quan sát, cho phép truy vấn, trực quan hóa và phân tích số liệu bất kể chúng được lưu trữ ở đâu. Khả năng trực quan hóa mạnh mẽ từ thu thập thông tin chi tiết về AI/ML đến kích hoạt cảnh báo và load testing.

Ngoài việc tích hợp với các công cụ như Prometheus và 300 nền tảng phổ biến khác, Grafana cho phép tạo bảng cung cấp thông tin chi tiết theo thời gian thực về tình trạng và hiệu suất của hệ thống.

Kết hợp giám sát ứng dụng, hạ tầng và hành vi người dùng thực, giúp SRE nắm bắt sâu hơn về mức độ sẵn sàng sản xuất. Ngoài ra, các tính năng giám sát toàn diện, giao diện trực quan và khả năng tự động hóa hỗ trợ xác định và xử lý nhanh các vấn đề hiệu năng, đồng thời phối hợp nhóm hiệu quả hơn khi có sự cố.

Công cụ quản lý on-call và sự cố

Cung cấp các chính sách lập lịch on-call, cảnh báo và xử lý leo thang, đảm bảo các vấn đề quan trọng được giải quyết kịp thời. PagerDuty giúp dễ dàng quản lý bất kỳ trang trạng thái nào bạn cần, giúp tăng tốc và cải thiện giao tiếp với các bên liên quan đến sự cố, chẳng hạn như khách hàng hoặc nhóm hỗ trợ.

Việc tích hợp PagerDuty với nhiều công cụ giám sát khác nhau giúp phát hiện các sự cố trên stack và giải quyết liền mạch, qua đó cải thiện độ tin cậy của toàn bộ hệ thống. 

Các tính năng như tích hợp quản lý lịch on-call, cảnh báo thống nhất và tự động hóa quy trình làm việc mạnh mẽ; mang đến trải nghiệm ứng phó sự cố được cải thiện từ đầu đến cuối.

Công cụ này cung cấp nhiều tính năng giúp bạn xây dựng quy trình ứng phó sự cố, giảm bớt sự lo lắng và hỗn loạn khi phản hồi cảnh báo về sự cố hệ thống hoặc lỗ hổng bảo mật khác. Từ đó bạn tập trung vào những việc cần làm, thay vì phải điều phối nhóm và phát triển.

Công cụ cấu hình và tự động hóa

Nhiều quy trình CI/CD đều dựa vào Jenkins vì nó tích hợp với hầu hết mọi công cụ liên quan đến CI/CD. Đối với SRE, Jenkins cung cấp khả năng tự động hóa các tác vụ thường quy và đảm bảo các thay đổi mã được kiểm tra và triển khai nhất quán, đáng tin cậy.

Các mô hình phân phối của Jenkins cũng có thể hỗ trợ SRE trong việc cân bằng tải và điều chỉnh hệ thống cấp cao hơn để cải thiện độ tin cậy của dịch vụ.

Terraform có thể tự động hóa thời điểm và cách thức cung cấp, quản lý cơ sở hạ tầng ở cấp độ mã, đảm bảo tính nhất quán và độ tin cậy. Terraform cũng quản lý vòng đời cơ sở hạ tầng, phiên bản và tính mô-đun, từ đó tiết kiệm thời gian cung cấp lại môi trường thường xuyên để bảo trì.

Portal nội bộ dành cho Developer

Với các mẫu phần mềm, SRE dễ dàng hơn trong việc đề xuất, triển khai và thực thi các tiêu chuẩn, giúp đơn giản hóa quy trình triển khai và giảm thiểu sự cố tổng thể. Backstage nổi tiếng với tính linh hoạt và hệ sinh thái plugin rộng lớn.

Nhiều plugin trong số này tập trung vào giám sát, khả năng quan sát, độ tin cậy và hiệu suất, nhưng chúng chỉ có thể cung cấp dữ liệu trong từng silo riêng lẻ theo từng công cụ.

Tạo một trung tâm tập trung quản lý mọi khía cạnh của việc cung cấp phần mềm, cơ sở hạ tầng và quản lý sự cố. Port giúp các SRE đảm bảo tính sẵn sàng sản xuất bằng cách cung cấp các tính năng như: 

  • Một service catalog đầy đủ kèm chủ sở hữu;
  • Theo dõi triển khai đầu cuối;
  • Kiểm tra tuân thủ tự động và scorecard để theo dõi việc tuân thủ khi triển khai;
  • Tích hợp với mọi dịch vụ, công cụ triển khai và nhiều hơn nữa để cung cấp cái nhìn tổng quan về môi trường phát triển phần mềm của bạn;
  • Biểu đồ phụ thuộc để mapping sự cố tốt hơn với blueprints.

Các câu hỏi thường gặp về SRE là gì

Cách đo độ tin cậy của trang web như thế nào?

Độ tin cậy của trang web thường được đo lường theo ba chiều:

Đầu tiên là SLI để đo lường mức sử dụng hệ thống, tình trạng chậm, gián đoạn, lỗi, lưu lượng truy cập và một số yếu tố khác. SLI liên quan trực tiếp đến trải nghiệm người dùng – trong trường hợp các con số không như mong muốn, sự hài lòng của khách hàng sẽ bị ảnh hưởng.

Thứ hai, có các SLO xác định mức độ mục tiêu cho độ tin cậy của sản phẩm hoặc dịch vụ. Ví dụ: có một SLI yêu cầu độ trễ dưới 500ms trong 15 phút cuối với tỷ lệ phần trăm là 95%, thì một SLO 99% sẽ yêu cầu SLI phải đạt 99%. Đây là các mục tiêu nội bộ mà nhóm SRE và các bên liên quan nội bộ (developer và PO) phải thống nhất.

Cuối cùng là SLA, có thể đây là một thỏa thuận ngầm hoặc rõ ràng ở cấp độ doanh nghiệp giữa công ty và khách hàng, nêu rõ hậu quả nếu tổ chức không đáp ứng SLA. Chúng cũng có thể bao gồm ngân sách lỗi, đo lường rủi ro mà SRE có thể chấp nhận khi cung cấp các dịch vụ, chẳng hạn như bảo trì và cải tiến mà không ảnh hưởng đến SLA.

Kỹ sư SRE sử dụng những ngôn ngữ lập trình nào?

Có một số ngôn ngữ lập trình mà Site Reliability Engineer (SRE) nên học để phục vụ công việc, bao gồm:

  • Python: Python được sử dụng rộng rãi trong SRE nhờ tính linh hoạt, dễ đọc, hệ sinh thái thư viện và framework phong phú. Ngôn ngữ này thường được sử dụng để scripting, tự động hóa, xử lý dữ liệu và xây dựng các công cụ giám sát và quản lý hệ thống.
  • Go: Go (Golang) là ngôn ngữ lập trình do Google phát triển, nhấn mạnh vào tính đơn giản, hiệu quả và khả năng đồng thời. Go thường được sử dụng để xây dựng các ứng dụng có khả năng mở rộng và hiệu suất cao, bao gồm các công cụ cơ sở hạ tầng và dịch vụ vi mô.
  • Java: Java là ngôn ngữ được sử dụng rộng rãi, nổi tiếng với tính độc lập và mạnh mẽ trên nhiều nền tảng. Java được sử dụng trong nhiều môi trường doanh nghiệp và có thể hữu ích trong việc phát triển các hệ thống và công cụ quy mô lớn.
  • Ruby: Ruby là ngôn ngữ kịch bản hướng đối tượng, năng động, dễ đọc và dễ diễn đạt. Nó thường được sử dụng trong các nền tảng tự động hóa, phát triển web và quản lý cấu hình như Chef và Puppet.
  • JavaScript: JavaScript chủ yếu được sử dụng cho phát triển web, nhưng cũng đang ngày càng phổ biến trong các ứng dụng server-side với sự ra đời của các nền tảng như Node.js. Các SRE có thể sử dụng JavaScript cho các công cụ và tự động hóa dựa trên web.

Tôi có cần biết lập trình để làm SRE không?

Có, nhưng mức độ cần thiết của kỹ năng lập trình sẽ khác nhau tùy vào tình huống.

  1. Tự động hóa để loại bỏ công việc lặp lại (toil): Lập trình giúp SRE loại bỏ những tác vụ thủ công, lặp đi lặp lại mà không tạo ra giá trị dài hạn. SRE cần biết viết script hoặc dùng công cụ low-code để tự động hóa.
  2. Quản lý hạ tầng qua API, DSL hoặc template: Khi làm việc với cloud hoặc các hệ thống lớn, khả năng viết code cơ bản để tương tác với API, thiết lập monitoring hay quản lý cấu hình giúp SRE tiết kiệm thời gian và mở rộng quy mô.
  3. Sửa lỗi trong source code: Khi sự cố nằm sâu trong code, SRE phải đọc và đôi khi sửa chính mã nguồn hệ thống. Lúc này cần kỹ năng lập trình nâng cao như một software engineer thực thụ.

AI có tác động đến SRE không?

AIOps cho phép các kỹ sư SRE phản ứng nhanh hơn, thậm chí chủ động với tình trạng chậm và ngừng hoạt động, với ít công sức và thời gian hơn. Chúng có thể xác định nguyên nhân để phản hồi và khắc phục nhanh chóng hoặc trong một số trường hợp, tự động giải quyết các vấn đề này mà không cần sự can thiệp của con người.

Kỹ sư SRE làm gì?

Kỹ sư SRE chịu trách nhiệm đảm bảo hệ thống và các dịch vụ phần mềm hoạt động ổn định, hiệu suất cao và đáng tin cậy trong môi trường sản xuất. Kỹ sư SRE sử dụng kiến thức kỹ thuật phần mềm để tự động hóa các tác vụ vận hành, giảm thiểu công việc thủ công và thiết lập các mục tiêu dịch vụ (SLO).

Công việc cốt lõi của họ là quản lý rủi ro, giám sát hiệu suất hệ thống 24/7 và phản ứng/khắc phục sự cố khẩn cấp để duy trì thời gian hoạt động tối đa cho người dùng.

Tổng kết SRE là gì

Mục tiêu tối thượng của SRE là cân bằng giữa tốc độ phát triển tính năng mới với sự ổn định của hệ thống, dựa trên các chỉ số định lượng như SLI và SLO để đo lường và cải thiện độ tin cậy một cách nhất quán. Việc nắm vững các công cụ phổ biến như ITviec vừa chia sẻ là điều thiết yếu, giúp đội ngũ SRE duy trì tính ổn định, giảm thiểu rủi ro và quản lý cơ sở hạ tầng phức tạp ở quy mô lớn.

TÁC GIẢ
Hà My
Hà My

Senior Content Writer

Với hơn 2 năm làm việc trong lĩnh vực công nghệ thông tin, My dành nhiều thời gian nghiên cứu, phỏng vấn các chuyên gia IT trong các lĩnh vực Digital, Software Development, Game… Niềm đam mê của My không chỉ dừng lại ở việc tìm hiểu về những xu hướng mới như UX/UI Design hay các công nghệ tiên tiến như AI, ChatGPT, mà còn nghiên cứu những kiến thức nền tảng mà mọi kỹ sư công nghệ thông tin cần am hiểu. Bạn có thể tìm thấy ở các bài viết của My những thông tin đa dạng về Mobile app, Interface, Feature, Framework, Database… cũng như tìm hiểu công nghệ, công cụ nền tảng trong ngành IT.