이 질문 에서 영감을 얻어, 나는 반대로 묻습니다. 시스템 관리자는 프로그래밍에 대해 얼마나 알아야합니까? 더 구체적으로, 시스템 관리자에게 유용한 프로그래밍 도구는 무엇입니까?
다음으로 시작하겠습니다.
시스템 관리는 단지 프로그래밍입니다. 구성 관리 시스템을 사용하면 전체 인프라를 분산 된 시스템으로 볼 수 있습니다. 시스템 관리자로서 귀하의 임무는이 시스템을 프로그래밍하는 것입니다.
하나의 텍스트 편집기를 알고 있습니다. 일반적으로 sysadmins는 vi, 프로그래머는 emacs입니다.
스크립트 작성 방법을 알고 있어야합니다. 스크립팅 언어를 선택하십시오. Perl은 Shell/sed/awk 콤보와 마찬가지로 항상 좋아하는 제품입니다. Ruby 및 Python 작동 가능하지만 많은 경우 개체가 잘못된 패러다임입니다.
읽을 수있는 문서를 작성하는 방법을 알아야합니다.
버전 관리. 구성 파일 및 감사 추적을 유지하는 데 중요합니다.
프로그래밍 용어로 생각하는 법을 배우십시오. 절차 적, 객체 지향적, 기능적 프로그래밍 패러다임을 이해합니다. 결코 사용되지 않을 수 있지만이를 알면 생산성이 훨씬 높아집니다.
디버거 (또는 그 이상) 및 로깅 사용 방법을 알아 봅니다.
RDBMS 사용 방법을 배웁니다. RDBMS를 올바르게 사용하여 단순화 할 수있는 많은 데이터 처리 요구 사항이 있습니다. 필요에 따라 DBA 역할로 전환 할 수 있다는 것조차 놀라운 일을 할 수 있습니다.
배포하기 전에 테스트하십시오. 테스트 기반 개발 철학을 확인하세요.
쌍 프로그래밍이 좋습니다. 다른 사람이 당신의 어깨 너머로 지켜보고 배우도록/조언/수정하도록하십시오.
적어도 여러 언어에 익숙해지는 법을 배우십시오. 매년 새로운 언어를 배우십시오.
스크립팅은 필수이지만 "실제"언어를 아는 것이 확실한 보너스라는 충고를 두 번째로하겠습니다. 예를 들어 .NET System.DirectoryServices 네임 스페이스로 매우 유용한 작업을 수행 할 수 있습니다.
저는 프로그래머이자 선임 관리자/통합 자입니다. 내가하는 곳에서 일하려면 다음 사항을 알아야합니다.
대부분의 중학교 관리자는 우리 프로그래머 중 한 명을보고 (권한을 가지고) 이렇게 말할 수 있습니다. 예, 올바르게 설치했습니다. 여기에 방금 푸시 한 코드가 깨지는 이유가 누출됩니다. 또는 "아니요, 저희 MySQL 버전이 아닙니다 , 여기에서 쿼리를보십시오 ..."
우리가 재능있는 관리자를 고용 할 때 우리는 다소 다르다고 생각합니다. .. 우리는 그들이 작동하는 데 필요한 방식으로 작업하는 데 사용하는 무언가를 해킹하더라도 (결국) 프로그래밍 방식을 찾을 것으로 기대합니다. .
요약하면, 잘 둥글게 만드는 것은 절대 당신을 해치지 않을 것입니다.
나쁜 일이 발생하면 코드가 생각보다 길어질 것입니다. 유용한 오류 메시지와 함께 정상적으로 실패합니다. 디스크, 램, CPU, 시간 등이 부족하여 처리됩니다.
너무 낙관적이어서는 안됩니다. 백만 건 중 한 번 이상이 프로덕션에서 너무 자주 발생합니다.
여기에있는 모든 설명과 함께 시스템 관리자라고 말하지는 않겠습니다. 하지만 몇 개의 윈도우/리눅스 서버를 구축하고 관리한다는 사실을 인정해야합니다.
linux에서 bash 스크립팅은 반드시 알아야합니다. Perl/awk/etc와 통합하는 방법을 알고 있다면 더 좋습니다. 사용하면 많은 작업이 쉬워진다는 것을 알았습니다.
C/C++로 프로그래밍하는 것을 아는 것은 많은 도움이됩니다. GNU 소스 코드 (사용하는 경우))를 필요에 맞게 수정해야하는 경우가 있습니다. GNU 제품이 항상 적시에 필요한 도움을 제공합니다. C/C++로 작성되는 경우가 많습니다.
수년 전에 (사실 Windows NT 3.1) 저는 서비스 작성과 가끔 장치 드라이버를 전문으로하는 프로그래머로 시작했습니다. 즉, Windows 커널에 대해 잘 알게됩니다. 시간이지나면서 프로그래밍에 지루 해졌고 네트워크 관리로 전환했습니다. 저는 프로그래밍에 대한 제 배경이 계속해서 가치가 있다는 것을 알게되었습니다.
VBScript 스크립트를 작성하는 것이 상대적으로 어렵지 않은 것은 아닙니다. Windows의 기본 작동 방식, 특히 IP 작동 방식을 알면 이상한 서버 및 네트워크 문제를 해결하는 데 크게 도움이됩니다. 또한 그것은 사고 방식입니다. 프로그래머는 문서화 및 버전 제어에 익숙하며 얼마나 많은 Windows 관리자가 작동하는지 확인하기 위해 시도하고 나중에 혼란을 풀지 않을까 걱정하는 것을 보면 무섭습니다.
모두 훌륭하지만, 10 년 동안 프로그래머로 일하고 떠나라고 말하는 것은별로 유용한 조언이 아닙니다! 그러나 대부분의 시스템 관리자가 C++ 또는 C #과 같은 "하드"언어로 프로그래밍 경험을하는 데 도움이 될 것이라고 생각합니다. 그리고 만약 당신의 조직에 길들인 프로그래머가 있다면 그들과 함께 술을 마시십시오!
존 레니
LDAP에 바인딩하고 선택한 스크립팅 언어로 필요한 정보를 검색하는 방법을 아는 것은 문제 해결부터 다양한 유형의 자동화 (계정 및 리소스 프로비저닝, 사용자 또는 컴퓨터 계정에 대한보다 지능적인 검사)에 이르기까지 모든 작업의 핵심입니다.
기본적으로 보일지 모르지만 나는 사람들이 이런 종류의 시스템 관리가 필요하지 않다고 생각하는 많은 빵빵한 가게를 보았다. 많은 곳에서 대규모 관리 도구 세트에 막대한 비용을 지출합니다. 제가 말할 수있는 한, 누군가가이를 알고 있거나 방법을 알고 있다면 도구를 사용하는 용도의 95 %를 몇 시간의 스크립팅으로 완료 할 수있었습니다. 해.
Bash, dos batch 및 powershell 스크립팅을 아는 것은 시스템 관리자에게 모든 인기있는 시스템에서 거의 모든 작업을 수행 할 수있는 프레임 워크를 제공한다는 것을 발견했습니다.