Lấy cảm hứng từ câu hỏi này , tôi hỏi ngược lại: các quản trị viên hệ thống cần biết bao nhiêu về lập trình? Cụ thể hơn, những công cụ lập trình nào hữu ích cho một sysadmin có?
Lấy cảm hứng từ câu hỏi này , tôi hỏi ngược lại: các quản trị viên hệ thống cần biết bao nhiêu về lập trình? Cụ thể hơn, những công cụ lập trình nào hữu ích cho một sysadmin có?
Câu trả lời:
Tôi sẽ bắt đầu với:
Quản trị hệ thống chỉ là lập trình. Một hệ thống quản lý cấu hình cho phép bạn xem toàn bộ cơ sở hạ tầng của mình dưới dạng một máy phân tán. Là một sysadmin, công việc của bạn là lập trình máy này.
Biết một trình soạn thảo văn bản. Thông thường vi cho sysadmin, emacs cho lập trình viên.
Biết cách viết kịch bản. Chọn một ngôn ngữ kịch bản. Perl là một yêu thích lâu năm, như là kết hợp shell / sed / awk. Ruby và Python có thể hoạt động, nhưng đối với rất nhiều thứ, các đối tượng là mô hình sai.
Biết cách viết tài liệu dễ đọc.
Kiểm soát phiên bản. Rất quan trọng để duy trì các tập tin cấu hình và đường mòn kiểm toán.
Học cách suy nghĩ trong các điều khoản lập trình. Hiểu các mô hình lập trình thủ tục, hướng đối tượng và chức năng. Chúng có thể không bao giờ được sử dụng, nhưng biết chúng làm cho bạn hiệu quả hơn nhiều.
Tìm hiểu để sử dụng trình gỡ lỗi (hoặc nhiều hơn) và đăng nhập.
Tìm hiểu cách sử dụng RDBMS. Có rất nhiều yêu cầu xử lý dữ liệu có thể được đơn giản hóa bằng cách sử dụng RDBMS chính xác. Ngay cả việc có thể chuyển sang vai trò DBA theo yêu cầu cũng có thể làm nên điều kỳ diệu.
Kiểm tra trước khi triển khai. Xem triết lý phát triển dựa trên thử nghiệm.
Lập trình cặp là tốt. Có người khác trông chừng vai bạn để học / khuyên / sửa.
Học để ít nhất có một sự quen thuộc trôi qua với một loạt các ngôn ngữ. Học một ngôn ngữ mới mỗi năm.
Viết kịch bản là điều cần thiết, nhưng tôi muốn đưa ra lời khuyên rằng việc biết một số ngôn ngữ "thực" là một phần thưởng nhất định. Bạn có thể thực hiện một số điều rất hữu ích với không gian tên .NET System.DirectoryService chẳng hạn.
Tôi là một lập trình viên và quản trị viên / tích hợp cao cấp. Để làm việc ở nơi tôi làm, bạn cần biết những điều sau:
Hầu hết các quản trị viên cơ sở có thể nhìn vào một trong những lập trình viên của chúng tôi và nói (có thẩm quyền), vâng, tôi đã cài đặt nó một cách chính xác, đây là nơi bạn bị rò rỉ, đó là lý do tại sao mã bạn vừa đẩy bị phá vỡ. Hoặc "Không, đây không phải là phiên bản MySQL của chúng tôi, hãy xem truy vấn của bạn ở đây ..."
Tôi nghĩ chúng ta khác nhau, khi chúng ta thuê một quản trị viên tài năng .. chúng ta nửa mong đợi họ (cuối cùng) sẽ tìm cách lập trình, ngay cả khi nó chỉ hack một thứ gì đó mà chúng ta sử dụng để làm việc theo cách họ cần để làm việc .
Tóm lại, được làm tròn tốt sẽ không bao giờ làm tổn thương bạn.
Nhiều năm trước (trên thực tế Windows NT 3.1) tôi khởi nghiệp là một lập trình viên chuyên về dịch vụ viết và thậm chí là trình điều khiển thiết bị không thường xuyên. Điều này có nghĩa là bạn biết rất rõ về nhân Windows. Trong thời gian tôi đã có một chút nhàm chán với lập trình và chuyển sang quản lý mạng. Tôi đã tìm thấy nền tảng lập trình của mình rất nhiều lần có giá trị.
Không chỉ là viết các tập lệnh VBScript tương đối không đau. Biết cách thức hoạt động của Windows, và đặc biệt là cách IP hoạt động, giúp ích rất nhiều cho việc giải quyết các vấn đề về máy chủ và mạng. Ngoài ra đó là một suy nghĩ. Các lập trình viên đã quen với tài liệu và kiểm soát phiên bản, và điều đó làm tôi kinh hoàng khi thấy có bao nhiêu quản trị viên Windows sẽ thử một cái gì đó để xem nó có hoạt động không và lo lắng về việc gỡ rối mớ hỗn độn sau đó.
Tất cả đều rất tốt, nhưng đó không phải là lời khuyên hữu ích để nói đi xa và làm việc như một lập trình viên trong mười năm! Tuy nhiên tôi nghĩ rằng nó sẽ giúp hầu hết các sysadins có một số kinh nghiệm lập trình bằng ngôn ngữ "cứng" như C ++ hoặc C #. Và nếu bạn có những lập trình viên thuần hóa trong tổ chức của bạn hãy đi uống với họ!
John Rennie
Những điều tồi tệ xảy ra, mã của bạn sẽ tồn tại lâu hơn bạn nghĩ. Thất bại duyên dáng, với các thông báo lỗi hữu ích. Bạn sẽ hết đĩa, ram, cpu, thời gian, v.v., đối phó với nó.
Đừng quá lạc quan, điều kỳ lạ một lần trong một triệu vấn đề sẽ xảy ra quá thường xuyên trong sản xuất.
Với tất cả các mô tả ở đây, tôi sẽ không nói rằng tôi là một sysadmin. Nhưng thực tế là tôi đã xây dựng và quản lý một vài máy chủ windows / linux, tôi phải thừa nhận điều gì đó:
trong linux, bash scripting là điều bắt buộc phải biết - nếu bạn biết cách tích hợp nó với perl / awk / etc, thì tốt hơn. Tôi thấy rằng nhiều nhiệm vụ trở nên dễ dàng hơn bằng cách sử dụng nó.
Biết lập trình trong C / C ++ giúp ích rất nhiều. Đôi khi bạn phải sửa đổi mã nguồn GNU (nếu bạn sử dụng một mã) cho phù hợp với nhu cầu của mình vì đã trở thành sản phẩm GNU không đảm bảo bạn sẽ luôn nhận được sự giúp đỡ cần thiết đúng giờ - và nhiều lần chúng được viết bằng C / C ++.
Biết cách liên kết với LDAP của bạn và truy xuất thông tin cần thiết bằng ngôn ngữ kịch bản lựa chọn của bạn là chìa khóa cho mọi thứ từ khắc phục sự cố đến thực sự đẩy mạnh các loại tự động hóa khác nhau (cung cấp tài khoản và tài nguyên, kiểm tra thông minh hơn trên tài khoản người dùng hoặc máy).
Có thể có vẻ cơ bản nhưng tôi đã thấy rất nhiều cửa hàng bánh mì-bơ nơi mọi người không nghĩ rằng họ có nhu cầu quản trị hệ thống kiểu này. Rất nhiều nơi dành $$$ lớn cho các bộ công cụ quản trị lớn và, theo như tôi có thể nói, 95% những gì họ sử dụng các công cụ này có thể đã được thực hiện với một vài giờ kịch bản nếu có ai biết hoặc biết làm đi.