본문 바로가기

Sorry Architecture

(45)
Unknown Artist 운영을 하다보면 만든 사람이 직접 조치를 해야 하는 문제들이 생길 수 있다. 온콜(On-call)은 이러한 상황에 빠르게 대응하기 위한 방법 중 한 가지인데, 실무에서 온콜이 의도와 다르게 동작하는 경우를 보았다. 먼저, 온콜과 런북(Runbook)을 활용하여 절차에 따라 긴급 장애에 대응하는 방식으로 발전하기보다, 서비스가 파편화되어있고 복잡하기 때문에 만든 사람만이 해결할 수 있다는 근거를 내세워 긴급하게 담당자를 찾는 수준에만 장애 대응 절차가 머무른 경우다. 페이징(Paging)을 받으면 임계값 기준에따라 미리 정의한 장애 수습절차(런북)를 수행해야 하는 것이 모범 사례다. 하지만, 'System error 50건 이상 발생'이라는 메시지를 받고 그제서야 로그를 분석해서 장애 등급을 판단하고 실시..
Cell-based Architecture 셀 기반 아키텍처(Cell-based Architecture)는 선박을 구성하는 격벽(Bulkhead) 컨셉으로부터 왔다. 격벽은 선박, 또는 항공기 내부에 세우는 수직 벽인데, 선박 손상 시 바닷물 침수 범위를 줄이고 선체에 추가적인 강성을 제공하는 목적을 갖고 있다. 비행기의 경우, 감압을 버텨내는 역할을 하며 비행 도중에 파손된다면 정상적인 운항은 불가능하게 된다. 같은 원리를 착안한 셀 기반 아키텍처는 장애가 더 전파되지 않도록 격리(Fault-isolation)하기 위해서, 서비스를 더 작은 단위로 나누고 세밀하게 관리하는 아키텍처다. 서비스 개발 초기에는 많은 기능을 하나의 서버에 담는 방법이 함수간 통신, 라이브러리 호출 등에서 많은 장점이 있다. 하지만 서비스의 규모가 커지고 조직이 커지면..
Bomb Merge 우리는 조직 내에서 의사소통 비용이 많은 비중을 차지 하는 지 이미 알고 있다. 그래서 문서 작성 및 공유, 데일리 스크럼 등의 다양한 방법을 통해 소통과 합의 문제를 해결하려고 노력해 왔다. 소프트웨어 개발 및 운영도 사람이 하는 일이다보니 같은 문제를 겪고있다. 어떤 기능을 개발하고 있는 지, 어떤 방식으로 동작하는 지, 진행상황이 어떤 지 파악하기 위해서 수 많은 회의를 하고 보고서를 작성한다. 규모가 더 커지면, 이러한 소통의 복잡도는 더 높아진다. 이러한 문제를 해결하기 위한 아주 직관적인 방법이 있는데, 감독관이 검토하고 승인하는 절차를 만들고 지키도록 강제하는 것이다. 소프트웨어 개발과 관리의 효율성과 품질을 높이기 위해서는 소통의 문제는 반드시 풀어야 한다. 그러나 모두가 힘들면서 속도도 ..
Static Stability 선박의 경우 용골(Keel)이 있는데, 회전(Rolling)에 의해 배가 전복되지 않고 바른 자세를 유지하도록 역할을 한다. 비행기나 배가 회전하면서 휘청일 때 안정적인 자세를 유지하도록 만들어주는 특성을 정적 안정성(Static Stability)라고 부르는데 정지, 가속 및 감속 중에도 똑바로 자세를 유지하는 능력을 말한다.AWS에서도 서비스들의 복원력(Resilience) 특성 중 가장 중요한 한 가지로 정적 안정성을 정의하고 있다. 이 용어의 의미는 시스템이 정적 상태로 작동하며, 의존성 대상이 실패하거나 사용할 수 없게 되는 동안에도 어떠한 변경을 하지 않더라도 정상적으로 계속 작동한다는 것을 의미한다. 정적 안정성을 구현하기 위한 방법 중 한 가지는 서비스 중 하나가 성공적으로 복구되지 않을 ..
Serendipity 2012년 4월 초, 갑자기 부서장이 불렀다. 컨텐츠 전송 네트워크(CDN, Content Delivery Network)관련 워크샵이 있는데 다녀와 보라는 것이었다. 뜻밖의 일이라 놀랍고 얼떨떨했다. 새로운 것을 배울 수 있는 소중한 기회를 얻었다는 기쁨도 있었지만, 연차가 있는 높은 직급의 직원들이 주로 다녀오는 기술 세미나에 입사한 지 1년도 안된 대리가 참석하게 되었으니 어안이 벙벙했다. 어쨌든 하루의 외근과 외근을 통한 지식의 확장은 행운이었기 때문에 기쁘게 다녀왔다. 세미나 장소는 대학교의 대강당 처럼 생긴 곳이었다. 강의장에는 이미 많은 사람들이 앉아있었다. 앞 뒤로도 좌우로도 중간 정도 되는 위치에 자리를 잡았다. 커피로 정신을 깨우지 못한채로 첫 순서가 시작되었다. 외국인 강사가 나와서..
Innovation Costs 우리가 생각하는 혁신(Innovation)은 무엇인가를 새롭게 바꾸는 것이다. 가치를 실현하거나 재분배하는 신규 또는 변경된 실체라고 정의하기도 하며, 기존 보다 더 나은 상태가 되는 것을 내포한다. 이러한 혁신은 세상을 바꾸기도 하지만, 기업의 경쟁력을 높여주는 전략이 되기도 한다. 기업 입장에서는 경쟁자보다 한 발 앞서 우위를 점하여 기업의 지속성을 확고하게 만들어 주는 뛰어난 전략이다. 그러나 혁신은 쉽지 않다. 혁신에 대한 정의를 보더라도, 그리고 기업에서 기대하는 것을 보더라도 결코 쉽지 않다는 것을 알 수 있다. 먼저, 혁신은 새로운 접근이어야 한다. 기존 방식을 그대로 답습하는 것은 매우 안전한 선택이지만, 기존과 같은 방식으로는 같은 결과물을 얻을 수 밖에 없기 때문이다. 그리고, 기업의 ..
Defense of the Clones (클론의 방어) 숙연한 공기가 감도는 월요일 이었다. 지난 주말 발생한 대규모 서비스 장애 때문에 누구 하나 쉽게 말을 꺼내기 힘든 분위기였고 차분하고 조용하게 하루가 지나고 있었다. 많은 인기를 얻고 있었던 아이돌 그룹의 싱글 앨범을 단독 공개하는 행사가 있었는데, 앨범 공개 시작 전부터 계정 로그인 서비스부터 뮤직 스토어 서비스, 결제 서비스까지 순식간에 많은 요청이 몰려서 시스템이 대응하기 힘든 상태가 되었다. 결국 계정 정보를 관리하는 서비스가 응답을 제대로 주지 못하는 상황이 되자, 연결되어 있던 수 많은 서비스들도 연달아 기능이 멈추는 대규모 장애로 이어졌다. 전 세계에 있는 아이돌 팬들이 독점 공개 음원을 빠르게 구매하기 위해 발매 시간에 맞춰 다양한 기기로 접속 시도를 했기 때문이었다. 단기간 집중된 접속..
Pilot Light 2012년 봄의 ‘90분의 커피 브레이크’를 통해서 클라우드(Cloud) 환경에서의 재해 복구를 직접 보았고, 어떻게 구현했으며, 실제 어떻게 동작 했는 지 체험했었다. 강사는 이러한 전략을 설명하면서 파일럿 라이트 (Pilot Light)라는 용어를 사용했다. 그러면서 이름의 유래에 대해 설명해 주었다. 파일럿 라이트의 기본 개념은 간단한데, 화로나 난로 등의 발열 기구의 불이 타오르도록 하기 위해서 연료에 제공하는 불씨를 말한다. 난로를 “켜게 되면”, 밸브가 열리면서 주입되는 가스(연료)에 파일럿 라이트가 불을 붙여 연소가 시작되는 것이다. 마치 작은 불씨를 이용해서 난로의 연소가 시작되는 과정이 시연을 통해 보여준 재해 복구 전략과 흡사 하기 때문에 파일럿 라이트라는 이름이 붙었다고 설명해 주었다..