삼성과 아마존에서의 경험 그리고 구글, 넷플릭스 엔지니어와의 교류 경험을 바탕으로 대규모 서비스 운영을 위한 사이트 신뢰성 엔지니어링(SRE, Site Reliability Engineering)에 대한 강의를 했다. 오전에는 이론적인 내용 중심으로 전달했고, 오후 강의 때에는 사례 중심의 강의를 진행했다. 질의 응답을 통해 다른 회사들의 서비스 운영 사례를 나눴으며, 이미 공개되어 있는 내용들과 이 전 회사에서 겪었던 사례들을 섞어서 설명했다. 그 과정에서 다양한 질문들을 받았는데, 그 중 가장 기억에 남는 질문이 있었다. 대략적인 질문의 내용은 이러했다. "강의 내용을 보면 이미 알고 있는 내용들을 언급하고 있고, 런북(Runbook)을 만들어서 운영을 잘 하면 될 것 같다. 그런데 온콜(On-cal..
마이클 조던과 시카고 불스는 농구 역사에 전설로 남아있다. 같은 팀이었던, 스코티 피펜, 데니스 로드맨 또한 유명하다. 5명이 한 팀으로 출전하는 농구 경기에서 뛰어난 선수가 3명이나 있다는 것은 매우 놀라운 일이다. 그래서 시카고 불스는 엄청난 기록을 세우며 전설이 되었다. 여기서 시카고 불스 팀이 세운 경이로운 기록이 단 한 번의 경기에만 그친 것이 아니라는 것에 주목해 볼 필요가 있다. 각자 개성도 뚜렸했지만 실력도 좋았다. 하지만, 5명의 주전 선수만으로는 모든 시즌 경기를 소화할 수 없다. 시카고 불스가 시즌을 우승하기 위해서는 전설적인 선수도 필요하지만, 장기전을 끌어가기 위한 예비 선수도 필요하다. 교체 선수가 존재하지 않았다면, 주전 선수에게 부상이 발생했을 때 교체 선수가 없다면 팀에 큰..
포카요케(Poka-yoke)는 일본어이며, 실수를 사전에 방지한다는 의미를 갖고 있다. 이 단어를 처음 들었던 곳은 지속적 전달(Continuous Delivery) 저자인 Jez Humble의 워크샵이었다. 지속적 전달의 개념과 파이프라인, 검증 자동화, 버전 관리, 인프라스트럭처 관리, 안전한 배포방법, 모니터링에 대한 이야기를 들었다. 워크샵이 거의 끝날 때 쯤, 강사였던 Jez는 ATM기기에서 카드 리더기 방향이 한쪽으로만 가능하도록 설계된 그림을 보여주었다. 그림을 설명하면서 소프트웨어 엔지니어링에도 비슷한 설계가 필요하다고 강조했다. 소프트웨어를 개발하고 운영하는 과정에서 시스템이 문제를 일으키는 경우 보다는 사람의 실수에 의해 일어나는 문제들이 많다고 말했다. 그래서 사람이 실수하지 않는 시..
너무 오래 전 있었던, 게으름으로 인하여 기록하지 못했던 이야기를 남겨본다. AWS RDS(Relational Database Service)가 베타 버전이었을 때였다. 당시 우리 팀에서 RDS에 대한 우려가 많았던 시절이었고, 그래서 AWS RDS 엔지니어가 직접 한국을 방문했다. 그래서 우리는데이터베이스 관련한 다양한 질문을 주고 받았다. 그 중에서 기억에 남는 일화를 가져와봤다. RDS 엔지니어를 만났을 때의 첫인상은 다음과 같았다. 젋어보였고 짙은 갈색 머리를 가진 백인이었다. 뽀얀 피부에 수염을 길렀고, 진한 검정색이 매력적인 씽크패드를 들고 왔다. 잘 차려입은 격식있는 모습은 아니었지만 단정하고 깔끔한 인상이었다. 사실 그의 모습이 중요한 것은 아니었지만, 너무 인상깊었기 때문에 언급하고 싶었..
서비스 개발을 하다보면 운영이관을 위하여 시스템 설계 내역과 문제상황에 대한 대처법 등을 자세하게 기록한 문서를 만들어서 운영 담당 부서에 전달해야 하던 때가 있었다. 모든 상황을 가정하여 방대한 지침서를 만들어야 했기 때문에 이러한 운영매뉴얼을 만드는 것은 힘들고 까다로운 작업이었다. 그러던 중 서비스를 직접 개발하고 운영까지 하게된 적이 있었는데 이때는 기존과 다른 형식의 운영매뉴얼을 위키페이지로 만들었다. 처음 접하는 사람이라도 시스템을 이해하고 대응할 수 있도록 실용적이고 간결한 문서를 만들려고 했다. 기존의 다른 운영매뉴얼과 달리 핵심만 뽑아서 문서를 만들었다. 제일 먼저 시스템의 목적을 간단하게 작성하고, 아키텍처를 그림과 함께 간단하게 설명했다. 그리고 API 목록을 작성하고 모니터링 지표를..