Chỉ dẫn dành cho sysadmin

Thẻ: , , ,
Bài mẹ: /hackers/guidelines

Mô tả ngắn

Dự án TheSLinux có nhiều máy chủ (máy phục vụ) cho các mục đích khác nhau. Đội quản lý hạ tầng sẽ cài đặt, theo dõi, quản lý và phát triển các máy này, đảm bảo cho công việc của dự án thông suốt.

Các ý tưởng chính của hạ tầng này như sau

  1. Đối với hệ thống tài liệu, trang chủ, chỉ sử dụng nội dung tĩnh, lưu trên nhiều máy tạo thành các mirror khác nhau. Nội dung thường thay đổi sẽ được cập nhật thông qua cronjob.
  2. Hệ thống phân tán tốt nhất là … email. Các vấn đề cần trao đổi, bình luận sẽ sử dụng email và các dịch vụ lưu trữ làm cơ sở.
  3. Thay đổi trên hệ thống được quản lý tập trung nhờ puppet hoặc chef, và được theo dõi nhờ gitemail.

Công việc

Xem ở trang Github. Các ticket hoặc tài liệu dành cho đội hạ tầng sẽ dùng nhãn infrastructure. Riêng phần tài liệu có thể gắn thêm nhãn sysadmin hoặc dev khi cần thiết.

Danh sách các máy phục vụ được cho ở trang l00s.

Workflow

Khi thực hiện thay đổi trên hệ thống, quy trình làm việc cơ bản như sau.

  1. Chuẩn bị tài liệu, kịch bản cho các thay đổi. Một số thay đổi cần các lệnh trực tiếp, nhưng hầu hết có thể thể hiện được ở dạng kịch bản.
  2. Tài liệu, kịch bản sẽ được xem xét (review) bởi các thành viên trong đội hạ tầng. Nếu thay đổi được thực hiện qua puppet hay chef, cần thực hiện thay đổi qua nhánh riêng (feature branch).
  3. Xác định thời gian bắt đầu thực hiện thay đổi, thời gian downtime của các dịch vụ liên quan, thông báo trên các kênh của dự án.
  4. Sau khi được xác nhận, các thay đổi sẽ được thực hiện trực tiếp trên máy, với các kết quả xuất được lưu lại để tham khảo. Các nhánh trên kho sẽ được trộn với nhánh chính.
  5. Sau khi thay đổi được thực hiện, thông báo kết quả, các cải tiến, tính năng mới thêm vào hoặc bớt đi để người dùng được biết. Các bài học đáng chú ý cần được lưu lại để giúp người đi sau

Kỹ năng. Dễ hay khó

sysadmin không phải là người ngồi gõ lọc cọc các lệnh và khi xong rồi thì quẳng máy đó đi chơi. Một công việc hiệu quả, lâu dài đòi hỏi bạn phải suy nghĩ nhiều, học hỏi nhiều. Dưới đây là các kỹ năng cơ bản

  1. Sử dụng git thành thạo. Nếu bạn biết nhiều về svn thì việc chuyển qua git có khi là trở ngại nhỏ, nhưng git sẽ mang lại nhiều hiệu quả bất ngờ, xứng đáng với công sức bạn bỏ ra. git được dùng chính thức cho toàn bộ các dự án của TheSLinux.
  2. Sử dụng Bash cho công việc hằng ngày. Mặc dùng Bash đơn giản, nhưng sự đơn giản đó có thể giết bạn một cách bất ngờ. Hãy thường xuyên xem lại các tài liệu về Bash, chẳng hạn ở BashHacker.
  3. Học Puppet hoặc Chef. Trong giai đoạn đầu, hệ thống của TheSLinux sẽ dùng puppet. Nhiều hệ thống hiện đại đều dùng puppet hay các giải pháp tương tự để quản lý cấu hình.
  4. Học ít nhất một ngôn ngữ lập trình như Ruby, Python.
  5. Tiếp cận ít nhất một trong các phần mềm hay kỹ thuật phân tán như hệ thống tập tin phân tán, hệ thống dữ liệu phân tán,…
  6. Học cách chia sẻ hoàn toàn những kiến thức của bạn với người khác.
  7. Học cách viết tài liệu sử dụng nanoc như mô tả ở dự án về tài liệu ở https://github.com/theslinux/homepage/.
  8. Luôn chuẩn bị cho tình huống xấu nhất. Không được giả định hay thừa nhận kết quả theo bất kỳ chiều hướng nào.

Công việc sysadmin không hề đơn giản như nhiều bạn nghĩ. Nếu bạn xác định đi theo con đường này, hãy thực hiện theo các lời khuyên và chú ý ở trên, coi như là các bước đi đầu tiên để đạt thành quả.

Lỗi lầm

Nếu chưa có lỗi lầm nào, thì hẳn bạn không phải là con người :)

Khi vô tình hay cố ý gây ra sự cố nào đối với hệ thống hạ tầng của dự án, hãy luôn nhớ các điều sau

  1. Các lỗi đối với hệ thống thường gây ảnh hưởng tới nhiều người khác;
  2. Việc khắc phục lỗi quan trọng hơn chỉ trích và tìm ra người gây lỗi;
  3. Việc khắc phục lỗi bắt buộc phải có thông tin về nguyên nhân gốc, vì thế, bỏ qua các cú sốc tâm lý để mô tả lại những sự kiện có thể góp phần gây ra lỗi;
  4. Rút ra bài học kinh nghiệm cho lần sau. Thông báo đầy đủ về sự cố cho thành viên và cộng đồng, và chân thành xin lỗi hoặc thừa nhận lỗi;
  5. Làm việc nhóm, chia sẻ và cởi mởi luôn giúp hạn chế các lỗi lầm.

----
1 commit(s) 1 author(s);
last updated by Ky-Anh Huynh @ Sat Jan 25 10:38:35 2014 +0700

Trang này là một phần của TheSLinux,
 và được phân phối với giấy phép CC BY-SA 3.0.

Bạn được Sao chép, Chia sẻ, Phân phối trang này dưới điều kiện sau:

(1) Bạn phải ghi tên tác giả TheSLinux và giấy phép; tuy nhiên không
    được hàm ý tác giả trao trang này hay quyền sử dụng trang này cho bạn;
(2) Nếu bạn sử dụng, chuyển đổi, hoặc xây dựng dự án từ trang này,
    bạn phải áp dụng giấy phép BY-SA hoặc giấy phép có các điều khoản
    tương tự như giấy phép BY-SA cho dự án của bạn.