<DevOps 조직은 무엇을 목표로 해야할까?>
과거에 저와 함께 일하던 원대영님께서 최근에 번역하여 널리 공유해주신 글입니다. 글을 읽고 나니 제가 작년에 이 글을 읽었다면 고민의 시간을 좀 더 줄일 수 있었을텐데 하는 아쉬움이 들었습니다.
저는 작년 초, 조직 내부의 사정으로 갑작스레 DevOps팀의 리딩을 맡게 되었습니다. 커리어 계획상 DevOps 업무를 할 거라고는 상상도 못했고, 관련된 개발 지식도 많이 부족한 상태여서 많은 고민이 되었습니다. 하지만 프로젝트와 조직 관점에서 어쩔 수 없는 선택이라는 생각이 들어 조직을 맡게 되었고, 그 때부터 DevOps팀은 무엇을 목표로 해야할까라는 본질적인 질문부터 답하기 위해 많은 시간을 보냈습니다.
다들 아시겠지만 DevOps는 서비스의 릴리즈 속도와 안정성을 높히기 위해 끝없이 노력하는 조직의 철학이자 문화입니다. DevOps하면 흔히 떠올리는 CI/CD, Container Orchestration, IaC 등과 같은 요소들은 단지 문화를 지탱하기 위한 수단들, 그 중에서도 기술적 도구일 뿐이라고 생각합니다.
하지만 엔지니어들은 기술 중심의 사고를 하는 것이 익숙하다보니 기술만으로 모든 것을 해결해 나갈 수 있을 거란 함정에 쉽게 빠집니다. PUBG의 개발조직 역시 안타깝지만 오랜 시간 그러한 함정에 빠졌었습니다. 그래서 DevOps팀이 보유한 기술은 계속해서 고도화 되었지만, 정작 릴리즈의 속도와 안정성은 크게 달라지지 않는 상황이 지속되었습니다. 역설적이게도 고도화된 기술만큼이나 개발팀과의 사일로는 오히려 쌓여가고, 결국 DevOps팀원들도 지쳐가는 결과를 낳았습니다. 사일로를 없애는 역할을 해야하는 팀이 또다른 사일로가 될뻔 했다니 아이러니 하죠?
글에 나와있는 것처럼, 결국엔 개발과 운영 과정에 연관된 모든 이가 DevOps 문화를 이해하고 함께 참여해야 합니다. DevOps팀이 해야 할 일은 “우리 조직에 가장 맞는 이상적인 DevOps 문화를 주도적으로 만들어나가는 것” 입니다. 절대로 인프라를 세팅하고, 배포를 하고, 장애를 대응하는 것, 그리고 그것을 기술적으로 좀 더 개선하는 것이, 전부가 되어선 안됩니다. 더 성숙한 문화를 만들기 위해 필요한 프로세스, 교육, 시스템과 툴 등을 주도적으로 고민하고, 다른 개발 및 운영 조직과 논의하고 때때론 설득해야 합니다. "혹시 이런게 필요하지 않으신가요?" 보다는 "우리 조직엔 이런게 필요합니다"라고 먼저 제시할 수 있어야 합니다. DevOps 팀에 대한 구성원들의 인식이 “고생하는 팀”이 아닌, “변화를 주도하는 팀”이 되도록 노력 해야 합니다.
“고생하는 팀”이 아닌 “변화를 주도하는 팀”이 되기 위해서 지난 1년 간 PUBG DevOps팀이 했던 노력들은 다음 번에 기회가 될 때 소개드리겠습니다.