Tìm hiểu những điều thú vị về khái niệm Site Reliability Engineer (Kỹ sư quản lý độ tin cậy)
https://fptshop.com.vn/https://fptshop.com.vn/
Giang Nguyễn
2 năm trước

Tìm hiểu những điều thú vị về khái niệm Site Reliability Engineer (Kỹ sư quản lý độ tin cậy)

Site Reliability Engineer là một công việc liên quan đến lĩnh vực phần mềm. Nghề nghiệp này mang tính chất quan trọng. Trong bài viết hôm nay, chúng ta sẽ cùng tìm hiểu chi tiết về Site Reliability Engineer, tầm quan trọng của nó cùng những cách trở thành một Site Reliability Engineer.
Chia sẻ:
Cỡ chữ nhỏ
Cỡ chữ nhỏ
Cỡ chữ lớn
Nội dung bài viết
Khái niệm Site Reliability Engineer
Site Reliability Engineer làm gì?
Cách để trở thành một Site Reliability Engineer
Lý do Site Reliability Engineer quan trọng
Mức lương của các Site Reliability Engineer
So sánh Site Reliability Engineer và DevOps
Các vị trí trong team Site Reliability Engineer
Những kỹ năng cần có của một Site Reliability Engineer
Tạm kết

Nếu bạn yêu thích lĩnh vực IT, phần mềm hay lĩnh vực có liên quan thì chắc chắn sẽ cảm thấy bài viết này rất thú vị. Chúng tôi sẽ giới thiệu đến bạn một nghề nghiệp cực “hot”, đó là Site Reliability Engineer. Cùng tìm hiểu xem Site Reliability Engineer là gì nhé!

Khái niệm Site Reliability Engineer

Khái niệm Site Reliability Engineer

Site Reliability Engineer, viết tắt là SRE, còn được gọi là Kỹ sư quản lý độ tin cậy. Đây là khái niệm ra đời tại Google năm 2003, trước khi DevOps bắt đầu trở nên thịnh hành. Lúc đó nhóm kỹ sư phần mềm được giao nhiệm vụ là làm cho các trang web của Google trở nên hiệu quả, đáng tin cậy và luôn sẵn sàng để mở rộng. Các kỹ sư này đã phát triển những phương pháp đáp ứng cực kỳ tốt nhu cầu của Google đến mức các công ty công nghệ lớn khác như Netflix, Amazon,... cũng áp dụng và mang về kết quả thành công.

Google đã mô tả phát hiện và kinh nghiệm của mình trong cuốn sách “Site Reliability Engineering - How Google Runs Production Systems”. Cuốn sách này hoàn toàn miễn phí nên nếu có hứng thú bạn có thể tải về đọc thử. Cuốn sách giới thiệu về các khái niệm như error budgets (thời gian tối đa mà hệ thống có thể bị lỗi mà không để lại hậu quả ảnh hưởng hợp đồng hay khách hàng), Service Level Objective - SLO (một thỏa thuận về một số liệu cụ thể như thời gian phản hồi hay thời gian hoạt động). Bên cạnh đó, cuốn sách cũng mô tả các phương pháp của Google về việc tự động hóa, xử lý sự cố và trường hợp khẩn cấp, khắc phục sự cố, giám sát, quản lý rủi ro và xây dựng các hệ thống có thể mở rộng. Cuốn sách cũng đề cập đến các khía cạnh như tổ chức nhóm SRE và các nhiệm vụ khác theo yêu cầu.

Site Reliability Engineer làm gì?

Trong một cuộc phỏng vấn, Ben Traynor - Phó Giám đốc kỹ thuật tại Google, đồng thời là người sáng lập Google SRE, đã xác định chính xác bản chất của vai trò SRE như sau:

“Về cơ bản, SRE đang thực hiện công việc mà trước đây nó được thực hiện bởi một đội ngũ vận hành (operations). Điểm khác biệt là SRE sử dụng các kỹ sư có chuyên môn về phần mềm và các kỹ sư này có khả năng tự động hóa hoạt động của con người. Nói tóm lại, SRE chịu trách nhiệm về tính sẵn sàng, độ trễ, hiệu quả, hiệu suất, giám sát, quản lý thay đổi, ứng phó khẩn cấp và hoạch định công suất”.

Site Reliability Engineer làm gì?

Các Site Reliability Engineer tạo ra cầu nối giữa vận hành và phát triển bằng cách áp dụng tư duy kỹ thuật phần mềm vào các chủ đề quản trị hệ thống. Họ phân chia thời gian giữa vận hành và phát triển làm tăng hiệu suất và độ tin cậy của hệ thống. Google không cho phép các Site Reliability Engineer sử dụng hơn 50% thời gian của họ cho các tác vụ vận hành và coi bất kỳ vi phạm nào đối với quy tắc này là dấu hiệu của một hệ thống không tốt.

Với Google, mục tiêu cuối cùng của Site Reliability Engineer là tự động hóa để hoàn thành nhiệm vụ. Một cách quan trọng để thực hiện điều này đó là xây dựng các công cụ tự phục vụ cho các nhóm người dùng dựa vào dịch vụ mà họ cần (ví dụ: ghi logs, hiển thị báo cáo, cung cấp môi trường thử nghiệm tự động,...). Làm như thế sẽ giảm bớt công việc các bên cần thực hiện, cho phép các nhà phát triển tập trung hoàn toàn vào việc phát triển các tính năng và tập trung vào nhiệm vụ tiếp theo để tự động hóa. Các Site Reliability Engineer cộng tác chặt chẽ với các nhóm phát triển sản phẩm để chắc chắn rằng giải pháp đưa ra đáp ứng tốt các yêu cầu phi chức năng chẳng hạn như hiệu suất, tính khả dụng, bảo mật và khả năng bảo trì. Đồng thời họ cũng làm việc với các kỹ sư phát hành để đảm bảo quy trình phát hành phần mềm hiệu quả nhất có thể.

Cách để trở thành một Site Reliability Engineer

Nếu muốn trở thành một Site Reliability Engineer, bạn cần có background là kỹ sư hệ thống hoặc kỹ sư phần mềm. Quan trọng nhất là bạn có được một nền tảng vững chắc về hai lĩnh vực đó. Bên cạnh đó, bạn cũng cần có ý thức về sự cải tiến và tự động hóa. Nếu bạn là một kỹ sư hệ thống và mong muốn cải tiến kỹ năng lập trình, hay bạn là một kỹ sư phần mềm và muốn học cách quản lý hệ thống có quy mô lớn thì Site Reliability Engineer chính là công việc mà bạn nên hướng đến.

Cách để trở thành một Site Reliability Engineer

Lý do Site Reliability Engineer quan trọng

SRE mang nhiều lợi ích ý nghĩa như:

  • Giảm thiểu thời gian sửa lỗi (MTTR - mean time to repair) và thời gian trung bình giữa hai lỗi (MTBF - mean time between failures).
  • Đẩy nhanh tốc độ cập nhật phần mềm và sửa lỗi.
  • Giảm thiểu rủi ro do con người bằng cách tự động hóa.
  • Giảm thiểu bớt công việc của nhân viên.
  • Nâng cao sự tương thích và bảo mật.
  • Cân bằng nỗ lực giữa các developers và đội ngũ SRE vì cả hai có mục tiêu giống nhau.
  • Cân bằng các yêu cầu.

Mức lương của các Site Reliability Engineer

Mức lương của các Site Reliability Engineer

Có thể dễ dàng tìm thấy thông tin về mức lương của các Site Reliability Engineer trên các trang tuyển dụng chuyên ngành IT. Mức lương trung bình của vị trí này là khoảng 1.000 - 1.500 USD. Riêng các vị trí lead thì mức lương có thể lên đến 3.500 USD tại Việt Nam.

So sánh Site Reliability Engineer và DevOps

Đôi khi có sự hiểu lầm rằng SRE giống với DevOps, nhưng thực tế không phải vậy. SRE và DevOps nên được xem là các quy tắc bổ sung cho nhau và giữa chúng có những điểm khác nhau cơ bản:

  • DevOps thiên về việc tập trung tăng tốc vòng đời phát triển phần mềm (SDLC - Software Development Life Cycle), thắt chặt sự hợp tác giữa đội ngũ vận hành và đội ngũ kỹ sư phần mềm. DevOps giúp các developer tiếp xúc sâu hơn với các hệ thống đang hoạt động, đồng thời cho phép các nhóm vận hành dễ dàng thông báo các vấn đề nghiêm trọng cho nhóm phát triển. Thực tế, các nhóm SRE là một phần không thể thiếu trong việc xây dựng kiểm thử chủ động, độ tin cậy của dịch vụ, khả năng quan sát và tốc độ để cấu thành nên một tổ chức mà ở đó lấy DevOps làm trung tâm.
  • SRE là cách xác định điểm yếu của hệ thống, kiểm thử các môi trường production và giải quyết vấn đề trước khi nó trở nên nghiêm trọng hơn. SRE như một phần của DevOps, trong đó team tập trung vào việc cải thiện mức độ tin cậy của các dịch vụ kỹ thuật thông qua việc hợp tác chặt chẽ và chủ động tối ưu hóa những dư thừa cũng như những hoạt động giám sát, cảnh báo.

So sánh Site Reliability Engineer và DevOps

Bảng so sánh sự khác nhau giữa DevOps và SRE:

DevOps

SRE

Tăng cường sự hợp tác trong tổ chức.

Chia sẻ quyền sở hữu với các developers bằng việc dùng chung các công cụ và kỹ thuật của toàn bộ hệ thống.

Chấp nhận các thất bại.

Có công thức cho việc cân bằng các sự cố và thất bại trong những lần phát hành mới.

Thực hiện sự thay đổi theo từng bước.

Khuyến khích thay đổi nhanh chóng bằng việc giảm chi phí thất bại (failure cost).

Tận dụng các công cụ và tự động hóa.

Khuyến khích tự động hóa các công việc và giảm thiểu các việc làm bằng tay để tập trung vào những nỗ lực mang lại giá trị lâu dài cho toàn bộ hệ thống.

Đo lường mọi thứ.

Cho rằng những hoạt động (operations) là vấn đề của phần mềm và định nghĩa các cách theo quy định nhằm đo lường mức độ sẵn sàng, thời gian hoạt động, thời gian ngừng,...

Các vị trí trong team Site Reliability Engineer

Tùy công ty mà các vị trí trong team Site Reliability Engineer có thể khác nhau. Thông thường, một số vị trí cơ bản đó là: SRE Team Lead, System Architect, Release Manager, SRE Infrastructure Engineer, Monitoring Engineer,...

Những kỹ năng cần có của một Site Reliability Engineer

Những kỹ năng cần có của một Site Reliability Engineer

Kỹ năng kỹ thuật

  • Nắm vững kiến thức về việc quản lý phiên bản (version control).
  • Chuyên gia về hệ điều hành Linux.
  • Hiểu về DevOps và biết cách áp dụng DevOps.
  • Chuyên gia về xử lý vấn đề và xử lý sự cố.
  • Chuyên gia về CI/CD.
  • Có kinh nghiệm viết code.
  • Hiểu về nền tảng phần mềm.

Kỹ năng mềm

  • Kỹ năng phân tích nghiệp vụ.
  • Kỹ năng giải quyết vấn đề.
  • Kỹ năng làm việc nhóm.
  • Kỹ năng làm việc dưới áp lực cao.
  • Kỹ năng giao tiếp về cả nói và viết.
  • Kỹ năng diễn giải kỹ thuật cho nhiều đối tượng khác nhau.

Tạm kết

Site Reliability Engineer ngày càng có vai trò quan trọng trong các công ty, do đó nhu cầu tuyển dụng các vị trí Site Reliability Engineer đang gia tăng. Nếu muốn trở thành một Site Reliability Engineer thì hãy cố gắng nỗ lực từ bây giờ. Sự cố gắng bao giờ cũng đem lại kết quả xứng đáng.

Tìm hiểu về các dòng PC cấu hình mạnh và có thiết kế ấn tượng ngay tại đây. Mua hàng tại FPT Shop sẽ giúp bạn an tâm hơn về độ chính hãng, chất lượng sản phẩm và chế độ hậu mãi.

Máy tính PC

Xem thêm:

Thương hiệu đảm bảo

Thương hiệu đảm bảo

Nhập khẩu, bảo hành chính hãng

Đổi trả dễ dàng

Đổi trả dễ dàng

Theo chính sách đổi trả tại FPT Shop

Giao hàng tận nơi

Giao hàng tận nơi

Trên toàn quốc

Sản phẩm chất lượng

Sản phẩm chất lượng

Đảm bảo tương thích và độ bền cao