DevOps 엔지니어가 외로운 늑대처럼 느끼지 못하게하는 방법은 무엇입니까?


66

방금 16 명의 엔지니어 팀에 소속되어 있지만 DevOps 엔지니어가되고 때로는 한 사람 군대처럼 느끼는 것에 대한 몇 가지 좋은 점을 제기 한 DevOps 직원과 이야기를 나 just습니다.

그는 다양한 모자를 쓰고 있지만 인프라 작업을 수행하는 개발 팀에 있습니다. 그는 수많은 자동화, 클라우드, 컨테이너화 등과 함께 작업 할 수있는 멋진 기술을 좋아합니다. 그러나 그는 팀 ops에서 자신이하는 유일한 사람이라는 것을 고심합니다 dev. 그는 개발 관리자에게보고하지만 인프라 관리자와 더 긴밀하게 협력합니다.

이것은 내가 말하는 많은 DevOps 전문가들에게 해당되는 것 같습니다. DevOps 엔지니어가 외로운 늑대처럼 느끼지 않게하기 위해 무엇을 할 수 있습니까?



3
저는 항상 DevOps를 비즈니스 조직 모델로 생각하며 누군가가 취할 수있는 역할이 아닙니다.
T. Sar-복원 모니카

답변:


34

나의 첫번째 생각은 "왜 그가 자동화 작업을 많이 할 때 개발자 팀에서 유일한 사람이 작전을 수행하는 것입니까?"입니다. 고독한 늑대 증후군을 해결할 기회가 있다고 생각합니다. 특히 개발 환경에서 코드로서의 인프라 스트럭처는로드 공유를위한 훌륭한 프레임 워크를 제공합니다. 운영 담당자는 응용 프로그램에 대한 인프라 요구 사항을 결정하고 정의하는 전문가 여야하지만 개발자 역할을 독립적으로 수행 할 수있는 플랫폼을 구축 할 수도 있어야합니다.

팀 내의 사일로처럼 들립니다. 오래된 습관은 열심히 죽습니다. 코더는 서버를 회전시키고 강화하는 데 불편 함을 느끼지 못하지만 순수한 devops 모델에서는 그렇게 할 수있는 도구가 있어야합니다. 개발자 팀의 운영 담당자는 앱 자체에 인프라를 제공 할 책임이 없지만 필요한 사항에 대한 통찰력과 앱 개발자가 직접 수행 할 수있는 방법에 대한 지침을 제공해야합니다. 거의 메타 인프라 모델입니다. ops 엔지니어는 개발 팀의 요청에 따라 필요할 때 인프라를 구축 할 수있는 인프라를 구축합니다.

상담, 커뮤니케이션 및 책임의 혼합은 모두 devops 팀의 성공에 중요합니다.


1
이 중 일부는 매우 부드러운 소프트웨어 중심입니다. 내장 소프트웨어 (또는 전문 하드웨어에서 실행되는 펌웨어 또는 소프트웨어)로 작업하고 있으며 많은 IaC 모델과 도구가 적합하지 않습니다. 때로는 DevOps 직원 만이 해당 하드웨어의 위치를 ​​아는 유일한 사람입니다. 실험실에서 물건을 찾을 수있는 ~ 60 명의 엔지니어 중 4 명 중 1 명이었습니다. 이 경우이 답변을 구현하기가 어렵습니다. 우리는 사람들이 원격으로 장치의 전원을 껐다 켜는 방법을 모색했지만 그 결과는 우리가 할 수있는 전부였습니다. 더 이상의 제안은 환영받을 것입니다.
TafT

네가 옳아; 나는 질문의 단서 (즉, 포스트가 언급 한 자동화)를 기반으로 대답을 짜려고했습니다. 상황에 덜 적용됩니다. 즉, 모든 상황이 다르므로 모든 경로가 다릅니다. 구현이 다르더라도 자동화를 구축하고 셀프 서비스를 강조하고 전체 가치 증기를 보는 원칙은 여전히 ​​적용됩니다.
스튜어트 아인스 워스

25

첫 번째 결함은이 문장에 있다고 생각합니다.

그는 개발 관리자에게보고하지만 인프라 관리자와 더 긴밀하게 협력합니다.

DevOps는 사일로 제거를 목표로하는 문화적 변화입니다. 사일로가 남아 있으면이 엔지니어는 그에게 전화를 걸고 싶은 사람입니다. 운영 개발을 수행하는 엔지니어, 자동화 전문가, 개발자 자동화 인프라 –이 엔지니어는 DevOps 엔지니어가 아닙니다.
실제로 "DevOps Engineer"는 실제 역할이 아니며 , 공통 팀에서 일하는 개발자, 시스템 관리자, QA 테스터 및 설계자를 포괄 할 수 있기 때문에 '챕터'가됩니다.

내가 흔히 볼 수있는 문제는 사람들이 DevOps의 전문 용어에 빠지면서이를 직책으로보고 있지만 DevOps가 무엇인지 실제로 이해하지 못한다는 것입니다. 이러한 방식으로 DevOps를 살펴보면 종종 고립되고 외로움을 느끼며 관리 및 조직의 인수없이 "고독한 늑대"라는 결점과 결점을 탓합니다.

설명하자면이 엔지니어는 Dev 팀에서 Ops를 수행하는 유일한 사람입니다. 그것은 그를 "DevOps 엔지니어"로 만들지 않습니다. (그의 조직에서 의미하는 바는 무엇이든) 그는 "DevOps Engineer"로 표시되기 때문에 격리 작업을하고 있지만 팀의 다른 사람들이 작업을하고 싶지 않은 것 같습니다.

솔직히 말하면 항상 op와 dev가있을 것입니다. devops의 배후에있는 주된 아이디어는 dev에서 op로 제품을 전달하거나 개발자를 위해 ops로 플랫폼을 공급하지 않는 책임을 공유하는 것입니다. 기본 목표는 팀에 더 많은 협업을 제공하는 것입니다. 이 역할을 "DevOps 엔지니어"라고 부르는 것은 동일한 수준의 전문 지식으로 둘 다 할 수있는 이름을 제안함으로써이 아이디어를 깨뜨리는 것입니다.

제 생각에 가장 먼저해야 할 일은 운영 도구를 팀에 제시하고 모든 사람에게 도구에 대한 기본 지식을 제공 한 다음 운영 도구 구성 / 코딩의 책임을 팀 전체에 전달하는 것입니다. 이것의 주요 아이디어는 "모든 작전을 수행하는 사람"에서 "팀에 참조 구현을 지원하고 제공하는 사람"으로 이동하는 것입니다.

이것은 관리 재구성보다 첫 번째 단계로 더 간단한 방법으로 실행 가능한 것을 제공하여 다른 답변을 보완합니다.


1
devops 구현에 대해 조정해야 할 힘든 작업 중 하나는 조직도입니다. Silos는 일반적으로 관리를 중심으로하며 Dev 관리자와 인프라 관리자가있는 경우 해당 팀이 소리를 잘 전달하도록하는 것이 좋지만 통합을 꺼려합니다. 문화는 변화하기 어렵고 조직도는 문화를 생생하게 보여줍니다.
스튜어트 아인스 워스

@StuartAinsworth는 실제로 조직을 수정하는 것이 아니라 나머지 팀원을 선발하는 것에 대해 이야기하지 않았습니다.
Tensibai

16

이러한 상황에서 DevOps 엔지니어에게 가장 중요한 것은 (a) 관리 약속 및 (b) 필요한 예산을 확보하는 것 입니다. 둘 다에 대한 자세한 내용은 계속 읽으십시오 ...

경영진의 헌신

일단 설치되면, 그러한 DevOps 엔지니어는 일이 쉬워집니다. 특히 저항 (모든 종류의 당사자)이 게임에 참여할 때마다. 나를 믿으십시오. 그러한 저항이있을 것입니다.

  • 왜 바꿔야합니까? X 년 동안 이미 한 일을 계속하고 싶습니다!
  • 나는 (기술적 인) 힘을 잃고 싶지 않고 모든 종류의 워크 플로우 절차를 완료하여 5 시간 (또는 며칠) 대신 5 분이 걸리는 생산에서 바보 같은 수정을 얻습니다.
  • ... (여기에 다른 총알을 추가 할 수 있습니다 ...).

이러한 문제가 발생할 때마다 모든 DevOps 엔지니어는 다음과 같이 말합니다.

죄송합니다. 상위 경영진의 지시에 따라 업무를 수행하고 있습니다.

필요한 예산을 얻으십시오

필요한 예산을 확보하는 효과적인 방법은 회사 자체에 적용되는 실제 사례에 적용하여 다양한 DevOps 사례의 유형 및 무형 이점을 설명하는 적절한 비즈니스 사례를 작성 / 제출하는 것입니다.

다음은 이러한 일이 발생한 일부 회사에서 SCM 컨설턴트를 고용 한 것처럼 제가 경험 한 실제 사례입니다. 나는 SCM은 개발 운영 팀의 일부에 불과, 알아,하지만 내가 가지고있는이 지역의 일부 전문 지식을 ...

1. 자동화의 장점

단지 2 (!!!)의 컴퓨터 조작자 (입력 할 것으로 예상되는 곳에서 콘솔 명령을 더 이상 입력하지 않은 사람)의 일부 공격으로 인해, 열차는 2 개의 공장 사이의 절반 쯤에서 정지해야했습니다 (공장의 시스템 때문에) 열차가 내려간 곳에서는 열차 취급에 관한 중요한 데이터를 이용할 수 없었습니다).

SCM 시스템을 구현함으로써 많은 운영자 명령이 자동화되었습니다.

2. 소프트웨어 라이센스 비용 절감

일부 소프트웨어 공급 업체는 경영진이 동의하지 않은 (오래된) SCM 소프트웨어에 대해 연간 수수료를 늘리기로 결정했습니다. 그래서 그들은 다른 SCM 소프트웨어로 대체 할 수있는 특별한 프로젝트를 만들었습니다.

이 프로젝트의 예산은 계속 지불하고 싶지 않은 연간 수수료와 같습니다. 프로젝트를 성공시키기 위해 다른 대륙의 엔지니어 (나 같은)를 비행하는 것도 포함되었습니다.

3. 운영 비용 절감

일부 주요 보험 회사는 일부 FTP 소프트웨어를 사용하여 전국의 약 13.000 개의 미드 레인지 컴퓨터 (AS / 400)로 소프트웨어 수정 사항을 전송했으며, "a"수정 사항이 사용 가능할 때마다이를 수정했습니다. 이러한 양도 비용은 약 4 USD였습니다 (단일 양도의 경우 13.000 x 4 = 52.000 USD ...). 이 소프트웨어는 약 150 명의 개발자가 개발 / 유지 보수 한 120.000 개의 구성 요소로 구성되었습니다. 1 만 명의 개발자가이 120.000 개의 구성 요소 중 하나에서 1 (작은)의 실수를해서 생산에 이르렀고 긴급한 수정이 필요하여 52.000 USD의 추가 비용이 소요될 가능성에 대한 계산을 수행하십시오.

이 회사는 관리되는 테스트 환경, 승인 등을 통해 적절한 SCM 시스템을 구현함으로써 비용을 크게 절감했습니다. SCM 시스템이 긴급한 픽스를 20 회만 전송할 필요가 없다면 비용은 52.000 x 20 = 1.040.000 USD (SCM 시스템을 구현하기위한 예산은 매우 적음) 작업을 완료하기 위해 그 금액의).

4. 사용할 수없는 비용 절감

위의 사례가 충분히 설득력이 없다면 전세계의 주요 신용 카드 회사의 시스템을 사용할 수 없다고 생각하십시오. 1 초 동안 사용할 수없는 비용이 1.000.000 USD라고 들었습니다.

아마도 그러한 회사들이 오랫동안 수십 년 동안 정교한 DevOps 도구를 가지고있는 이유이기도합니다. 그들이 사업에 있지 않기 때문에 매초마다 돈이 들기 때문입니다.


몇 단계를 놓친 것 같습니다. 데브 팀이되지 않을 경우 이미 응용 프로그램 (찌르다 전에 적어도 테스트 환경)의 여러 복사본을 배포 한 후 위임해야한다. 그렇다면 그들은 정말로 시간을 보내고 싶다면 잠시 동안 혼자서 고투 할 수 있습니다. 이로 인해 Dev Ops 전문가 가이 사람들에게 도움이 됩니다. 그들은 "경영진이 말하는 것"대신에 고통스러운 과정을 더 부드러운 과정으로 바꿀 수 있습니다. 여러 환경을 구축하고 관리해야하는 번거 로움을 없애는 데 Dev Ops의 전체 아이디어가 나옵니다.
jpmc26

4

TL; DR : 상위 경영진은 일반적으로 변덕스럽고 화를 내기 쉽기 때문에 다른 관점을 갖기 위해 그의 마음을 조금 구부리면서 더 나은 점진적으로 변화시키는 것이 좋습니다.

(그의 문제는 주로 고전적인 작전을 수행하는 그의 다른 작전 동료가 아니라 꺼려하는 개발자들 과 관련이 있다고 가정합니다 .)

IMO는 DevOps를 사용하더라도 모든 개발자가 본격적인 DevOps 전문가 여야한다는 것을 의미하지는 않습니다. 주어진 사람들 그룹에 한두 명의 실제 전문가가 있고 나머지는 어느 정도 태그가 붙는 것이 보통이라는 것을 알았습니다. 작업량이 그 사람에게 너무 크지 않고 자신의 사일로를 작성하는 대신 스크립트 등으로 지식을 캡슐화하는 한 나에게 좋습니다.

해야하는 한 가지 없는 일이 될 수는 개발 운영의 사람이 자신의 자동화를한다는 것을, 그리고 모두가 다른 말했다 피하기 위해 자신의 어려운 시도 자동화 (즉, CI / CD 파이프 라인을지나 가서 환경 중 하나에서 수동으로 물건을 할). 이것은 IMO가 멈추어야 할 주요한 것입니다. 이를위한 한 가지 해결책은 소가 아닌 소 접근 방식에 대해 매우 열심히 추진하는 것입니다. 즉, 가능한 한 빨리 왼쪽이나 오른쪽으로 VM이나 컨테이너를 끊어 뜨리고 새로운 것을 계속 회전시키는 것입니다.

둘째, 물론 모두가 할 필요가 인식 자동화가 무엇을하고 있는지, 그리고 모든 후, 커밋 / 푸시에서 DEVS를 실행하는 경우 적어도 이론적으로, 일부는 아마 주위에 파고로, 즉 자동화 기계 (시작할 수 그들이 커밋 할 때 백그라운드에서 발생하는 것들이 있다는 사실을 알고 있고 최신 정보가 필요합니다). CI (/ CD) 파이프 라인은 눈에 잘 띄어 야하며 모든 사람이 지속적으로 알고있는 것이어야합니다 (즉, 개발자가이를 깨뜨릴 때).

셋째, 물론 "한 사람은"(예를 들어, 대한 Dockerfile 후 Dockerfile을 만드는 그의 동료들에 대한 천한, 일상적인 작업을하지 않는 것을 조심해야 자신의 유물 ...).

넷째, DevOps 직원이 만든 솔루션은 실제로 과거의 수동 접근 방식 보다 실제로 측정 가능한 방식 보다 우수 해야합니다. 이 경우, 그의 개선점 을 입증 할 수 있어야합니다 . 즉, 모든 사람이 일을 쉽게하는 방법이나 파이프의 후반 단계에서 버그를 도입하는 것이 불가능한 것처럼 보이는 방법을 보여주십시오. 이것이 가능하지 않은 경우 DevOps 담당자는 무엇을 오랫동안 열심히 검토해야합니다. 그는하고있다. 가능하다면 팀에서 브라운 백 세션과 많은 복음화를 요구합니다.

분명히, 이러한 꺼리는 환경에서는 완전히 자동화 된 CD 솔루션이나 트렁크 기반 개발에 곧 도착하지 않을 것입니다. 그러나 나는 골라내는 것에 대해 너무 걱정하지 않을 것입니다. 그는 전문가이며, 업무를 잘 수행하면 전체 팀이 점차적으로 향상 될 것입니다.

마지막으로, 수년 동안 수고한 끝에 동료들과 눈에 띄는 개선이 없다면, 항상 다른 길을 찾을 수 있습니다 (회사 내부 또는 외부). 그의 벨트 아래에서 DevOps의 모든 경험을 쌓는 것은 요즘 구직을위한 훌륭한 기반입니다 ...


4

여기에서는 DevOps에 대한 문화, 관리 작업 방법에 대한 제안, DevOps 팀 또는 엔지니어의해야 할 일을 정의하는 데 도움이되는 많은 훌륭한 답변을 볼 수 있습니다. 나는 그들 각각이 훌륭하다고 생각하며 실제로 많은 대답을 100 % 올바르게 설명 할 수 있으며 여전히 서로 매우 다르거 나 완전히 모호 할 수 있습니다 ... DevOps입니다!

이 답변은 경험의 저의 독특한 관점 일 뿐이며 규범이나 모범 사례를 나타내지 않을 수도 있습니다 ...

그러나 DevOps 동료가 불평 한 것은 특히 DevOps 엔지니어의 역할을 임명했을 때 단순히 문화적 사고 방식이 아니라 DevOps를 어렵고 어렵게 만드는 특성입니다 .

개인적으로, 나는 여전히 귀중한 공헌을하기 때문에 고독한 늑대가되는 것을 좋아 하지만, 다른 사람들이 스스로 도울 수 있도록 설득하면서 IT 사일로를 파괴하도록 내 자신의 한계를 설정합니다.

일부 사일로는 손상되지 않은 상태로 유지 되며 문제를 해결하고 가능한 한 미미하거나 보이지 않는 사일로를 만드는 것이 DevOps의 사명입니다.

동료가 DevOps 엔지니어가 마음에 들지 않는다는 것을 깨닫거나 아직 깨닫지 못했을 수도 있습니다 .


3

상대적으로 말하자면, devops의 개념은 새롭고 여전히 내 의견으로는 스스로를 정의합니다. 현재 devops 엔지니어 역할을 수행하고 있습니다. 저에게 이것은 개발팀과 운영팀이 사용하는 도구와 프로세스를 촉진하고 개발하여 회사의 수익을 창출하는 제품에 집중할 수있게한다는 것을 의미합니다. 운영팀과 개발자 팀은 필요에 따라 자체 서버를 가동시킵니다. 제품에 대한 CI를 연결하고 프로세스가 이해되도록하고 개선 / 자동화 할 수있는 프로세스를 찾습니다. 영업, 창고, 개발자 및 운영 (QA 및 릴리스 관리자)에 이르기까지 모든 부서를 만나서 자신이하는 일과 프로세스 개선 방법을 확인합니다.


2

저에게 DevOps는 소프트웨어 시스템의 개발 및 운영이 별도의 개발자 및 운영 팀이 아닌 한 팀의 책임이됨을 의미합니다. 이것은 양방향 거리입니다. 최고의 팀은 한 분야의 전문가이며 여러 관련 분야에 익숙한 " T 형 "직원으로 구성됩니다.

  • Ops 경험이있는 팀 구성원은 자신이 가장 잘하는 일 (예 : Ops)을 수행하고, 자신이 가장 잘하는 일 (예 : Ops)의 기본 사항을 다른 사람에게 가르치고 관련 분야 (예 : 개발자 작업)를 배우고 수행해야합니다.
  • Dev 경험이있는 팀 구성원은 자신이 가장 잘하는 일 (예 : Dev)을 수행하고, 자신이 가장 잘하는 일 (예 : Dev)의 기초를 다른 사람에게 가르치고 관련 분야 (예 : Ops 작업)를 배우고 수행해야합니다.

따라서 DevOps 엔지니어가 고독한 늑대처럼 느끼지 못하게하려면 개발자에게 시스템 을 운영 하는 방법을 가르치 면서 인프라 설계 방법을 전문가라고 인정 하십시오.

처음부터 고급 아키텍처에 참여하게하여 전문 분야의 우려 사항을 소개 할 수 있습니다. (DevOps를 사용하기 전에는 아키텍처 도면이 항상로드 밸런서 및 중복 서버와 같은 "작은 것"에 비춰졌습니다. 이제 이러한 것은 첫 번째 스케치의 일부입니다.

개발자는 팀에 중복성을 구축하고 "약탈자"작업을 공정하게 분산시키기 위해 일상적인 Ops 작업을 수행해야합니다.

Ops와 유사한 작업을 수행하지 않으면 개발자의 노력에 기여할 것으로 예상됩니다. 내가 아는 일부 DevOps는 데이터베이스 작업이 전문 분야의 자연스러운 확장을 찾는 것으로 보이며 그것이 일반화 될 수 있는지 확실하지 않습니다.


1

DevOps 엔지니어가 외로운 늑대처럼 느끼지 않게하기 위해 무엇을 할 수 있습니까?

의역 - 개발 운영 엔지니어가 할 수있는 자신 / 자신은 고독한 늑대처럼 적은 느낌?

문화 및 관리 지원 부족은 방정식의 한 부분 일뿐입니다. 다른 부분은 DevOps의 세부 지식이 종종 복잡한 상황을 언급하고 있으며 실제 사례에 대한 조언과 참조가 중요하다는 의견입니다.

따라서-고독한 늑대처럼 느끼지 마십시오. 여기에있는 DevOps 커뮤니티 나 도구 별 그룹 및 GitHub에 참여하십시오. 느낌은 적어도 당신은 유일한 고독한 늑대가 아닙니다. ;-)


1
DevOps는 본질적으로 팀 연습입니다. DevOps 엔지니어가 고독한 늑대처럼 느끼기 위해 할 수있는 유일한 일은 종료하고 더 기능적인 조직에 참여하는 것입니다.
James Shewey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.