SysAdmin 및 개발자 : 책임 [폐쇄]


26

프로덕션 웹 서버와 관련하여 sysadmin 및 개발자의 책임에 대한 모범 사례는 무엇입니까? 특히 소프트웨어 업데이트 / 설치를 생각하고 있습니다. (제 이해에 따르면 개발자는 프로덕션 서버에서 루트 액세스 권한을 가져서는 안됩니다.)

따라서 프로덕션 웹 서버는 Wordpress를 실행 중이며 최신 버전으로 업데이트해야합니다. 누가 업데이트를 유지해야합니까?

개발자가 앱에 사용자 정의 해킹 플러그인 또는 사용자 정의 코어 파일 (이 예제에서는 WP)이있는 경우 어떻게됩니까?


2
플러그인에서 개발자의 문서는 어디에 있고 코어 파일의 백업은 어디에 있으며 백업 및 문서가 개발자 환경에서 마지막으로 테스트 된 시간은 언제입니까?
ForgeMan

역할 기반 권한은 어떻습니까? 서버를 망칠 필요없이 수행해야 할 작업에 대해 안전하고 감사 된 액세스 권한을 부여하십시오.
allruiz

답변:


21

대부분의 경우 물리적 서버를 담당하는 사람이라면 개발자에게 루트 액세스 권한을 부여하지 않는 것이 가장 좋습니다.

동의하지 않는 개발자를 찾을 것이라고 확신하기 때문에 이것은 "성스러운 전쟁"토론입니다. 나는 개인적으로 그 논쟁의 양쪽에 있었다.

개발자 (100 % 신뢰할 수있는 개발자)에게 루트 액세스 권한을 부여하지 않는 주된 이유는 XYZ가 올바르게 작동하기 위해 필요한 패키지가 없기 때문입니다. 그들은 계속해서 그것을 설치하거나 ... 이미있는 것을 재구성하여 작동합니다 ... 또는 ... 글쎄 ... 당신은 아이디어를 얻습니다.

몇 달이 지났습니다 ... 서버를 다시 설치하거나 다시 만들어야합니다. 갑자기 "이전 서버에서는 작동하지만 새 서버에서는 작동하지 않는 이유"를 아무도 모릅니다.

물론 당신이보고있는 문서에는 개발자가 처음으로 시스템을 작동시키기 위해했던 작은 패키지와 조정이 포함되어 있지 않습니다.

양쪽 모두에게 $ $에 고통을 줄 수 있지만 ... sysadmin이 서버, 패키지 및 문서를 담당하고 개발자가 개발 및 소프트웨어를 담당하는 경우 ... 나는 당신이 생각합니다 결국 그만한 가치가 있다는 것을 알게 될 것입니다.

개발자가 커스텀 플러그인, 모듈, 구성, 조정이 필요하다면 ... 문제 없습니다 ...하지만 그것을 문서화하여 다음 번에 재현 할 수 있습니다.


따라서 응용 프로그램 (Wordpress와 같은)을 업데이트하기 위해 루트 액세스가 필요하지 않은 상황은 어떻습니까? 업데이트를 유지할 책임은 누구에게 있습니까?
Josh Brower

이 특별한 경우에 기본적으로 정치 (예 : 경영진 결정). 내 조직에서는 서버를 패치하고 최신 상태로 유지하고이 경우 Wordpress를 업데이트하는 것은 시스템 관리자입니다. sysadmin의 임무는 서버를 안전하게 유지하는 것입니다. Wordpress를 최신 상태로 유지하는 것처럼 (특히 요즘) 들리는 것이 그 일부입니다.
KPWINC

호스팅 회사에 관리 서버가 있다면 Wordpress를 다루지 않을 것입니다. 경험상 소프트웨어를 설치 한 사람이 소프트웨어를 담당하는 사람이됩니다. Aysadmins는 OS, 웹 서버 등을 설치합니다. 개발자는 Wordpress를 설치합니다.
ollybee

16

골든 규칙 : 관리자가 아닌 사람이 깨진 것을 원하지 않고 책임을지는 것을 만지지 마십시오.

개발자는 테스트 환경에 액세스 할 수 있어야합니다. 작업이 프로덕션 시스템에 배치되면 시스템 관리자에게 인계해야합니다. 개발자가 작업을 수행하고 절차를 올바르게 문서화하면 모든 것이 잘 진행됩니다. 그렇지 않은 경우, 적절하게 테스트하지 않기 위해 뒷면이 차야합니다.


5
아멘! 개발자가 떠날 수있는 마법의 방법 ... "개발 환경에서 잘 작동합니까?" 또는 "빌드 시트는 어디에 있습니까?"
ForgeMan

12

나도이 전투에 참여했다. 내 대답은 서버의 가동 시간을 담당하는 사람은 모든 업데이트, 변경 등을 책임 져야하는 사람이라는 것입니다. Nobodoy는 서버에서 이러한 유형의 기능을 수행 할 수 있어야합니다. 서버가 작동하고 실행 중인지 확인하고 보스가 서버에 대해 책임을지고 책임을지는 경우 서버를 유지하고 보호하는 것은 사용자의 책임입니다.

대부분의 개발자는 서버에 대한 관리자 수준 액세스가 필요하고 대부분 동의하지 않을 것이라고 말하지만, 오전 2시에 전화를 끊으면 다시 부팅 해야하는 사람입니다. 업데이트 실패, 다운 타임이 부서 등에 부과됩니다. SLA에 영향을 미치는 모든 것에 대해 CIO에 답변해야하므로 서버에 대한 관리자 수준의 액세스 권한을 얻는 유일한 사람입니다. 모든 구성 요소, 업데이트, 변경 등을 책임집니다.


이리! 이리! :-D 2-3 am은 엉뚱한 변화를 다루는 재미있는 시간이 아닙니다. (그것을 본 후에 ... visudo가 그것을 해결했습니다).
ForgeMan

1
"서버 가동 시간을 책임지는 사람은 모든 업데이트, 변경을 책임 져야하는 사람"이라는 아이디어가 정말 마음에 듭니다.
Josh Brower

1

나는 100 % 동의한다. 개발자는 대부분 syadmin이 작동하는 방식을 인식하지 못합니다. 그들이 필요한 것이 있으면 물어 본다. 사용 가능한 패키지를 언제, 어떻게, 언제 제공하는지 생각합니다. (이메일을 보내야하는 것처럼, 당신은 접미사를 구성하는 사람입니다). 또한, 대부분의 경우 루트 액세스는 정상적인 액세스로는 수행 할 수없는 경우 작업을 수행 할 것이라고 생각하는 경향이 있습니다. 나는 여기에 다른 사람들과 동의합니다, 그들은 당신이 오전 2시에 당신과 함께하지 않을 것입니다. 나는 몇 주 전에 사건을 겪었고 개발자는 그의 워드 프레스를 업데이트하고 싶었습니다. 나는 그에게 쓸모없는 RTF 변경 로그를 알려 주었다. 그것은 업데이트 프로세스가 아름다운 인터페이스를 통해 이루어진다. 글쎄, 업데이트가 작동하지 않아서 그의 응용 프로그램을 저장했으며 백업 스크립트를 만들지 않았습니다. 나없이 그는 사이트를 복원 할 수 없었습니다.


1

개발과 운영의 차이를 흐리게하는 경향이 있습니다. 개발자를 sysadmins 및 sysadmins 개발자로 만드십시오.

이런 의미에서 워드 프레스는 블로그의 자동화 된 (프로그래밍적인) 자동화 작업에 도움이 될 수 있습니다. 많은 워드 프레스 사용자는 WP / WPMU 인스턴스를 몇 개 이상 유지 관리하고 적시에 업데이트하는 것은 번거 롭습니다.

Agile 2009의 Agile Infrastructure 슬라이드에서 철학에 대한 훌륭하고 재미있는 개요를 찾을 수 있습니다.


1

개발자는 프로덕션 환경에 뿌리를 두어서는 안됩니다. 개발자를 제외한 모든 사람이 이에 동의합니다. 그러나 개발자는 일종의 케이크를 가지고 먹을 수도 있습니다. 아무도 이것을 명시 적으로 언급하지 않은 것에 다소 놀랐습니다.

저의 오랜 소기업 고객 중 하나는 Drupal이 설치된 웹 사이트, 여러 WordPress 사이트, SMF 포럼 및 기타 임의의 소규모 웹 앱이 있습니다. 나는 계약 sysadmin이며 (필요한 경우 역사적인 이유로 WordPress 및 SMF를 업데이트 / 해킹) 클라이언트는 자체 계약 Drupal 개발자를 보유하고 있습니다. 환경은 퍼블릭 클라우드 공급자의 여러 VMware 가상 머신입니다.

개발자는 실제로 루트 액세스 권한을 갖고 싶어합니다. 예를 들어 모든 사용자 정의 Drupal 작업을 수행하려면 nginx 다시 쓰기 규칙을 작성해야합니다. 그러나 나는 절대로 프로덕션 서버에서 루트 액세스 권한을 부여하지 않으며 클라이언트는 이에 동의합니다.

테스트 웹 서버에서 루트 액세스 권한을 얻습니다 (일반적으로 IP 주소를 제외하고 프로덕션과 동일하며 동일한 클라우드에 있음). 프로덕션과 마찬가지로 etckeeper가있어서 변경해야 할 사항과 설치된 패키지를 볼 수 있습니다. 그런 다음 변경 사항을 프로덕션으로 가져 오거나 원하는대로 무엇이 잘못되었는지 알려줄 수 있습니다. 그리고 그들이 정말로 망쳤다면 (아직 감사하지 않습니다) 변경 사항을 쉽게 되돌릴 수 있습니다.

프로덕션 데이터베이스 서버에 전혀 액세스 할 수 없습니다. 그들은 심지어 사용자 로그인이 없습니다. 내 고객과 내가 할뿐입니다.

(웹 응용 프로그램 자체는 git을 사용하여 직접 배포하고 깨뜨린 경우 문제를 해결하고 고객에게 계속 개발자가되어야하는 이유를 설명합니다. 내 고객이 저와 같은 전자 메일로 나를 참조 할 수 있지만 그들 또는 얼굴 손바닥을 비웃습니다.)


0

루트 == 시스템 관리자.

Users == 개발자, DBA 또는 사용자.

루트는 서버가 다운되었을 때 휴면 상태를 알 수 없으며 루트는 사용자를 자신으로부터 보호하고 루트는 사용자의 데이터를 인터넷으로부터 보호하며 루트는 서버의 상태를 모든 사용자보다 우선합니다. 서버가 오프라인 일 때 루트의 엉덩이가 온라인 상태입니다. 서버 행복, 루트 행복!

예약되지 않은 가동 중지 시간의 일반적인 이유 : 사용자, 문서화되지 않은 환경 변경 및 백호. 서버는 임의로 중단되지 않는다는 말을 정확하게 수행합니다. 당신이 묻는 해커는, 그렇지 않다면 언제 ... "루트"의 필요성.

00:33 CDT 백업 및 재해 복구 문서가 어디에 있는지 알고 있습니까? :-피


0

Sysadmin은 제목과 마찬가지로 관리자 액세스 권한이 있어야합니다. 다른 사람은 프로덕션 서버에 액세스 할 필요가 없습니다. 개발자가 프로덕션 시스템에서 문제를 해결해야하는 경우 개발 환경에서 해당 문제를 재현 할 수 있어야합니다. 그렇지 않은 경우 sysadmin과 함께 앉아 시스템을 살펴볼 수 있습니다.

개발자는 프로덕션을 만질 수없는 것이 좋지 않지만 그다지 효과가 없습니다. 소프트웨어를 작성하고 프로덕션 릴리스를 위해 sysadmins에게 넘겨주는 작업이 있습니다. 그들이 모든 것을 문서화했다면 (그리고 대부분의 상점에서 문서가 더러운 단어라는 것을 명심하십시오), 릴리스는 잘 진행될 것입니다.

여기 미국의 공공 회사에서는 SOX, HIPPA 등을 처리해야합니다. 이 끔찍한 규제의 대부분은 실제로이 주장에 도움이됩니다. SOX는 업무 분리를 지시하여 개발자가 프로덕션 시스템에서 손을 떼도록 요구합니다.


"개발자들은 프로덕션을 만지는 것을 좋아하지 않습니다." 어딘가에 "없는"것이 없어야합니까? ;)
John Gardeniers
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.