System Operator: Tâm Trạng Của Người Trong Cuộc

System Operator: Tâm Trạng Của Người Trong Cuộc

Vậy là thời gian thấm thoát thôi đưa, dòng đời đưa đẩy mà tôi cũng trụ được 4 năm ở một công ty công nghệ X. Trải qua nhiều vị trí kỹ thuật khác nhau (Tôi không thích làm quản lý, đi theo hướng thuần kỹ thuật) từ Dev 2, Dev 3, SA, Technical Lead. Vị trí này chỉ đảm nhận phụ trách kỹ thuật cho toàn bộ dự án chứ ko lead team tech. Và hiện tại công việc chính của tôi là vận hành một hệ thống tương đối lớn cho một khách hàng xếp vào hàng Top về phần cứng lẫn phần mềm.

Giải thích:
  • Vận hành hệ thống: Có thể ở đâu đấy vị trí vận hành hệ thống là vận hành những hệ thống đã được build sẵn, hoặc đã chạy. Còn trong trường hợp của tôi ngoài phải vận hành, tôi còn thiết kế hạ tầng, deploy app, backup, restore hoặc khi có bug của Application thì tôi "chơi" luôn
  • Hệ thống lớn của khách hàng lớn: Không phải tôi vận hành hệ thống cho toàn bộ 1 công ty, đây chỉ là hệ thống của một phòng ban trong cty của khách hàng, phòng ban đó của khách hàng cũng "bé" thôi nhưng cũng "cầm chịch" hơn chục các system phục vụ cho vài ngàn user. 

"Đừng tin tưởng tuyệt đối"

Giới thiệu hệ thống hiện tại mà tôi đang vận hành: Toàn bộ các ứng dụng được host trên Azure Cloud, một nền tảng về cloud số 1 hiện tại, nó cung gần cấp đủ mọi thứ mà một ứng dụng và những người quản trị cần và cái quan trọng là bạn đủ kiến thức để "click click" cấu hình nó và hệ thống này bạn có thể dùng tất cả những dịch vụ nào trên Azure mà bạn cảm thấy tốt cho dự án là có thể sử dụng, nên đôi lúc chi phí hàng tháng cho Azure lên gần mấy chục ngàn đô (1 tháng bằng vài năm tiền lương của tôi luôn) vì thế tôi cũng được tiếp xúc được với kha khá các dịch vụ trên thằng Azure này.  Và đây là một dự án mà khách hàng vô cùng tin tưởng

  1. Các hệ thống cloud thì chỉ đảm bảo SLA (Service Level Agreement) 99.x% chứ không cái nào dám cam kết 100% về độ an toàn, ổn định của hệ thống, suy cho cùng điều này là đúng vì cái gì có sự tham gia của con người thì sẽ có bug, việc họ cố gắng là đưa tỷ lệ "bug" xuống nhỏ nhất có thể. Vì thế đối với những hệ thống build trên Cloud thì bạn sẽ là người phải người nắm được tỷ lệ "bug" đó để có thể đánh giá được rủi ro cho hệ thống và đưa ra những hệ thống phòng bị nếu có xảy ra, những thứ gì càng thuận lợi, càng dễ bao nhiêu thì tỷ lệ mắc lỗi của người vận hành càng cao bấy nhiêu.
  2. Nếu bạn không là người trực tiếp tham gia và nắm được ứng dụng mà sắp tới bạn vận hành thì tốt nhất bạn nên bỏ thời gian tìm hiểu về hệ thống đó trước khi làm. Đây là điều thực tế. Nếu bạn lái một cái xe của người lại, bạn sẽ không dám bốc đầu, đá lửa...vì bạn đâu có biết "nội thất" xe họ như thế nào, bạn không biết được khi nào thì nó rụng bánh, nếu bạn áp dụng kinh nghiệm của xe bạn vào xe người lại thì có lúc đúng, lúc sai cơ hội chỉ là 50/50. Trong phần mềm cũng vậy, để vận hành tốt nhất 1 hệ thống bạn nên tham gia từ đầu đến cuối là cách tốt nhất để bạn có thể vận hành được chúng một cách ngon lành (Đây là kinh nghiệm, nhận xét của mình. Có thể sai với người khác)

=> Cẩn thận, trách nhiệm: Không có cái gì là hoàn hảo. Vì vậy tính cẩn thận, và tránh nhiệm cao luôn đặt lên hàng đầu. Vì hệ thống mà bạn đang nắm ảnh hưởng tới rất nhiều người. Nói theo phong cách dân gian thì: Bạn đang cầm trong tay chén cơm của hàng chục, thậm chí hàng trăm con người. Một phút bất cẩn bạn có thể ném nát chén cơm của bản thân mình và người khác.

"Tâm lý"

Lang thang, sung sướng trong mắt đồng nghiệp: Từ khi tôi vận hành hệ thống này, thì thực sự tôi có nhiều thời gian hơn, không bị nhiều task mà có bị đút thì chỉ mấy thứ dễ, nên hàng ngày đi làm thất thường, nói chung thì nếu người khác nhìn vào thì thấy tôi tương đối thoải mái về mặt thời gian, nhiều lúc tôi cũng bắt gặp ánh mắt ghen tị từ những người khác. Nhưng không sao, công việc này nó là thế. Nhìn vậy nhưng không phải vậy.

Nghề và nghiệp: mặc dù vận hành hệ thống không phải mỗi riêng mình tôi mà còn có thêm BA, Tester và một số người không liên quan nhưng lại rất có quyền lực để hệ thống chạy ổn định. Lúc đấy, hàng đêm tôi công việc duy nhất là refresh hòm email, xem chat mà nhìn biểu đồ sức khỏe hệ thống xem nó có bị gì không từ đêm này qua đêm nó từ ngày này qua ngày tháng họ, và rồi cũng có lúc hệ thống nó lăm ra chết mà ác cái có lần 2 tuần nó chết 3 lần.  Khách hàng complain, rồi từ trên xuống, dưới lên, đủ thứ làm cho từng ngày áp lực và nỗi sợ trong tôi tăng lên. Đến nỗi không đêm nào tôi ngủ ngon giấc, điện thoại không bao giờ tắt chuông, đi nhậu ko bao giờ uống quá 2 chai, đi chơi thì laptop luôn bên cạnh, tôi cũng hay nói vui là giờ đi massage cũng phải mang theo laptop.

Tâm lý sợ hãi luôn bao trùm, giống như người tử tù chắc họ sợ tiếng bước chân, họ sợ tiếng mở cửa vì những tiếng động đó báo hiệu thời khắc mà họ về đoàn tụ với tổ tiên đã đến gần. Và tôi cũng thế, tôi sợ tiếng chuông, sợ tiếng rùng của điện thoại vì "giờ vàng" cũng sắp tới, tuy tôi cũng thuộc dạng cứng về skill nhưng đôi lúc không thể vượt được qua nó.

"Chết hay ân xá": 

  • Nếu bạn lựa chọn "Chết": Quá đơn giản, submit nghỉ việc, chuyển dự án hoặc tìm con "tốt" thí mạng cho mình. Hết
  • Nếu bạn chọn "ân xá": Đó là việc bạn phải luôn luôn học, tìm hiểu và nâng cấp kỹ năng của mình. Có lẽ đó là thứ để bạn thoát khỏi nỗi ám ảnh và đưa bạn lên một tầm cao mới, không những về skill nghề nghiệp mà còn có thêm được tâm lý vững vàng, tính cẩn thận và rất nhiều thứ khác.

"Hạnh phúc của một tang gia"

Tóm lại thì những điều tôi chia sẽ ở trên cũng không đáng sợ lắm đâu, bằng chứng là tôi vẫn sống khỏe, ổn định, niềm vui và lạc quan, lương tăng đều. Mỗi công việc đều có những nỗi niềm riêng, đừng nhìn họ sướng mà thấy mình khổ, nhưng luôn làm vì đam mê (đam mê tiền), nổ lực hết mình mọi thứ sẽ qua; mọi điều tốt đẹp, cơ hội sẽ tự nhiên đến với bạn

Knowledge

  1. Các dịch vụ trên Azure đều được thiết kế cho việc quản lý, cấu hình rất đơn giản đây là điều tôi đánh giá cao M$, một người không có kiến thức về infra cũng có thể vận hành và quản lý được.
  2. Các dịch vụ quan trọng như: Database, WebApp, Storage đều có những mode backup data rất tốt ví dụ như Azure SQL Database thì có backup realtime, long time, Storage thì có soft delete...Việc chúng ta cần làm là thiết lập hoặc turn-on cho nó chạy.
  3. Hầu hết các service Azure đều có API, WebHock, SDK... nên bạn có thể viết được những app phục vụ cho công việc vận hành, quản lý của mình.
  4. Hầu hết các dịch vụ đề có notification về email hoặc sms
  5. Một số các dịch vụ sẽ có việc tự động auto scale, load balancing khi hệ thống quá tải mà không cần config nhiều. Việc của bạn chỉ thiết lập cho đúng với cái mà bạn mong muốn
  6. Việc vận hành và sử dụng các dịch vụ trên Azure rất đơn giản, hãy đọc document của M$ và làm theo những cái basic nhất thì bạn đã mang đến sự an tâm cho mình 99%
  7. Một số dịch vụ như Azure Data Factory, nếu bạn không dùng SDK để code mà chỉ dùng UI để cấu hình thì bạn phải sử dụng service "link to source control" để lưu trữ lại. Vì cái này bạn xóa đi sẽ ko restore lại được
  8. Để hệ thống chạy tốt thì phải tốt hết. Vì tài nguyên nhiều, mạnh nhưng có giới hạn
  9. Nên tìm hiểu và so sánh để sử dụng tiền cho hợp lý. Vì các dịch vụ Cloud nói chung và Azure nói riêng, thì cái điểm quan trọng của họ muốn hướng tới là tiết kiệm cost hơn so với việc build system trên local, nên nếu bạn ở vị trí vận hành, kiêm SA, kiêm infra thì cần lưu ý. Các service trên azure đều được thiết kế tương đối là tối ưu, đầy đủ chức năng basic, tuy nhiên để tối ưu thì nó sẽ cắt giảm những phần thứ mà ở local không có. Ví dụ như ở dưới local có SQLServer, thì khi setup lên nó có hàng đống thứ liên quan và bạn không dùng nhưng bạn phải mua licence có kèm nó, còn trên Azure thì nếu bạn cần Database thì có mỗi database thôi, những chức năng cao cấp khác bạn phải mua thêm.

Còn rất nhiều những điều về mối lương duyên của tôi với Azure, cũng như những gì tôi đã học và sự trưởng thành của tôi như thế nào, tôi thực sự muốn chia sẻ với các bạn. Đừng ngần ngại comment và hỏi tôi những điều bạn muốn biết nhé.

Thân ái và hẹn gặp lại trong các bài viết tới!