기본적으로는 책 내용에 대한 감상을 얘기하지만, 약간의 배경지식을 설명하기도 하기 때문에 제목을 좀 색다르게 지어봤다.
이 영상을 반드시 봐야 한다. "봐두면 좋다"가 아니라 "봐야 한다"인 이유는 소설 중간에 대놓고 언급하는 것을 알게 되었기 때문이다.
이 영상은 2009 년의 발표이고, 오늘날 Devops 라고 부르는 무언가를, 공개적으로 소개한 최초의 영상들 중 하나다. "하루에 10번 배포하기"가 이때는 "말도 안되는 것"이었던 시대의 이야기다.
근데 저 영상을 이해하려면 하나 더 알아둬야 하는게 있다. 나를 포함한 오늘날 청소년(?)들은 상상하기 어려운 예전 IT 부서의 모습을 말이다:
개발팀 : 스프링 서버를 만든다. jar 파일로 빌드한다. 운영팀에 전달한다.
운영팀 : jar 파일을 미리 보유중인 서버에 띄운다. 모니터링한다.
운영팀 : 메모리 릭을 발견한다. 개발팀에 코드 수정을 요청한다.
개발팀 : 그런 일 없다고 한다. 서버 하드웨어 이슈가 의심된다고 회신한다.
이것이 2000년대 전후의 세계 최첨단 IT 시스템이었던 것이다. 이러한 맥락을 알고 있어야 저 영상이 이해가 되고 이 책이 이해가 될 것이다.
"와, 정말 재밌다!"
솔직히 몇몇 부분은 정말 이해하기 힘들었다. 구체적으로 말하자면, NAS 서버의 장애가 대체 무엇을 말하는 것인지 감이 오지 않았다. 약간 체코 소설을 읽으면서 이 사람들은 문화가 좀 다른가...? 그런가보다.. 하고 넘어가는 것처럼, 구체적인 사건들의 영향도나 원인이나 심각도에 대해선 그냥 추측하면서 와 심각한 문제가 터졌나보다~ 하면서 읽어내려갔다.
그럼에도 불구하고, 흡입력이 굉장하다. 주인공 빌은 부서장이 되자마자 서너가지 "심각한" 장애를 보고받기 시작하는데, 그야말로 온 사방 천지가 불길인 세상에서 뭐부터 해야 하는지 혼란스러워하는 모습이 그대로 느껴졌다.
책의 처음부터 끝까지, Devops 라는 표현은 나오지 않는다. 그리고 운영팀과 개발팀이 한 몸이 되는 일도 벌어지지 않는다. 다만 그들이 소통하는 방식, 협업하는 방식이 조금씩 변해간다. 그 모습이 참 멋있고 예쁘고 심금을 울린다.
(보안팀이 진짜 해야할 '일'은 먼 뒤에서 나온다)
나는 조용히 끄덕이고 더는 말하지 않았다. 평소에 <라이언 일병 구하기>에 나오는 문구를 좋아했다. '여기 지휘 계통이 있다. 불만은 위로 올라가지, 아래로 내려가지 않는다."
"한 가지 확실한 건," 에릭이 작업대를 가리키며 말을 이어갔다. "가고자 하는 곳으로 가려면 저 작어 대와 같은 것이 무엇인지 알아내야 하네. IT 운영으로 작업 릴리스를 제어하는 방법을 알아내야 해. 무엇보다 더 중요한 것은 자네가 가진 자원 중 가장 제약이 많은 자원이 하나의 사일로가 아니라 전체 시스템의 목표를 제공하는 작업만을 수행하고 있는지 확인해야 하네."
"이제 네 가지 유형의 일이 무엇인지 말해 줄 수 있을 것 같은데?" 에릭이 물었다. "네, 그럴 수 있을 것 같습니다." 나는 자신있게 대답했다. "공장에서 한 가지 카테고리로 피닉스 같은 비즈니스 프로젝트를 얘기해주셨죠. 나중에 내부 IT 프로젝트를 언급하지 않은 것을 깨달았습니다. 그로부터 저는 변경이 또 다른 유형의 일이라는 것을 깨달았습니다. 하지만 피닉스 문제가 일어난 후에야 마지막 유형을 알 수 있었습니다. (...) 계획하지 않은 작업 말입니다."
"(Flickr의) 올스퍼는 개발을 의미하는 Dev와 운영을 의미하는 Ops가 QA, 비즈니스와 더불어 일하면 놀라운 것을 이룰 수 있는 조직이 된다는 사실을 우리에게 가르쳐 줬지. 또한 코드가 생산되기 전까지는 단지 시스템에 WIP가 틀어박혀 있는 것이기 때문에 어떤 가치도 실질적으로 생성되지 않는 것임을 알았지. 그는 빠른 피처 흐름을 활성화하도록 배치 크기를 계속 줄였어. 한편으로는 환경이 필요할 때마다 항상 사용할 수 있도록 그렇게 했지. 그는 개발 부서가 완성하는 애플리케이션처럼 인프라를 코드처럼 처리할 수 있다는 것을 인식하고 빌드 및 배포 프로세스를 자동화했어. 그렇게 해서 그는 한 단계로 환경 조성 및 배포 절차를 통합할 수 있었지. 우리(공장)가 한 단계로 도색과 양생을 하는 방법을 알아낸 것처럼 말이야."
그동안 개발자들이 얼마나 변덕스러울 수 있는지 잊고 있었다. 내가 보기에 그들은 엔지니어라기보다 인디 뮤지션 같았다.
나는 내심 웃었다. 이번에는 뭔가 잘못돼서 우리만 밤을 새우는 건 아니다. 사실 정반대다. 모든 일이 잘되고 있어서 사람들이 밤을 새우고 있다.
아이러니하게도 개발자 중 한 명이 우리가 그동안 만드느라 정말 고생했던 실시간 추천 기능을 모두 없애자고 제안했다. 그는 고객이 구매할 수 없다면 더 많은 제품을 추천할 이유가 없다고 주장했다.
(여기서부턴 소설 뒤의 부록이다)
이 뒤엔 (피닉스 프로젝트의 정신적 뿌리에 해당하는 듯한) 데브옵스 핸드북이라는 책에서 발췌한 챕터들이 있는데, 그 책을 볼 때 정리하는게 나을 것 같아서 따로 여기에 기록하진 않겠다. 대신 중요한 이미지가 하나 있어 이것만 남겨둔다:
(지금 눈치챘는데, Dev 를 비즈니스에, Ops 를 고객에 빗대고 있다)
한국판 피닉스 프로젝트: