본문 바로가기

전체 글

(59)
Bomb Merge 우리는 조직 내에서 의사소통 비용이 많은 비중을 차지 하는 지 이미 알고 있다. 그래서 문서 작성 및 공유, 데일리 스크럼 등의 다양한 방법을 통해 소통과 합의 문제를 해결하려고 노력해 왔다. 소프트웨어 개발 및 운영도 사람이 하는 일이다보니 같은 문제를 겪고있다. 어떤 기능을 개발하고 있는 지, 어떤 방식으로 동작하는 지, 진행상황이 어떤 지 파악하기 위해서 수 많은 회의를 하고 보고서를 작성한다. 규모가 더 커지면, 이러한 소통의 복잡도는 더 높아진다. 이러한 문제를 해결하기 위한 아주 직관적인 방법이 있는데, 감독관이 검토하고 승인하는 절차를 만들고 지키도록 강제하는 것이다. 소프트웨어 개발과 관리의 효율성과 품질을 높이기 위해서는 소통의 문제는 반드시 풀어야 한다. 그러나 모두가 힘들면서 속도도 ..
Static Stability 선박의 경우 용골(Keel)이 있는데, 회전(Rolling)에 의해 배가 전복되지 않고 바른 자세를 유지하도록 역할을 한다. 비행기도 마찬가지로 흔들림으로인해 안정적인 자세가 흐트러질 수 있다. 비행기나 배가 회전하면서 휘청일 때 안정적인 자세를 유지하도록 만들어주는 특성을 정적 안정성(Static Stability)라고 부르는데 정지, 가속 및 감속 중에도 똑바로 자세를 유지하는 능력을 말한다.AWS에서도 서비스들의 복원력(Resilience) 특성 중 가장 중요한 한 가지로 정적 안정성을 정의하고 있다. 이 용어의 의미는 시스템이 정적 상태로 작동하며, 의존성 대상이 실패하거나 사용할 수 없게 되는 동안에도 어떠한 변경을 하지 않더라도 정상적으로 계속 작동한다는 것을 의미한다. 정적 안정성을 구현하기..
Speaker at AWS re:Invent 2023 2022년에 이어서 2023년에도 AWS re:Invent에 발표자로 참석하게 되었다. 2022년에는 한국어 세션을 발표하기 위해서 참석하였고, 2023년에는 빌더스 세션(Builders' Session)을 진행하기 위해 라스베가스(Las Vegas)를 찾았다. 한국어 세션도 매우 많은 한국 고객 사례 후보 가운데 소수를 선택했기 때문에 매우 기뻤지만, 2023년의 Builder Session은 전세계 직원들을 대상으로한 공모에서 최종 선택되었기 때문에 훨씬 의미있고 감사했다. 발표가 확정된 다음에는 호텔 예약과 항공권 예약을 진행했다. 2년 연속 참석이다보니 이 부분은 수월하게 진행하였다. 항공편 경유지를 선택할 때도 여러 조언과 작년의 경험을 토대로 최적의 경로로 선택했다. 그 때 까지는 그랬다고 믿..
Pilot Light 2012년 봄의 ‘90분의 커피 브레이크’를 통해서 클라우드(Cloud) 환경에서의 재해 복구를 직접 보았고, 어떻게 구현했으며, 실제 어떻게 동작 했는 지 체험했었다. 강사는 이러한 전략을 설명하면서 파일럿 라이트 (Pilot Light)라는 용어를 사용했다. 그러면서 이름의 유래에 대해 설명해 주었다. 파일럿 라이트의 기본 개념은 간단한데, 화로나 난로 등의 발열 기구의 불이 타오르도록 하기 위해서 연료에 제공하는 불씨를 말한다. 난로를 “켜게 되면”, 밸브가 열리면서 주입되는 가스(연료)에 파일럿 라이트가 불을 붙여 연소가 시작되는 것이다. 마치 작은 불씨를 이용해서 난로의 연소가 시작되는 과정이 시연을 통해 보여준 재해 복구 전략과 흡사 하기 때문에 파일럿 라이트라는 이름이 붙었다고 설명해 주었다..
90-Minute Coffee Break (90분의 커피 브레이크) 2012년 봄, AWS(Amazon Web Services) 시애틀의 수석 강사(Principal Trainer)가 교육을 위해 한국을 찾았다. 한국에는 AWS 교육을 진행해 줄 사람이 없었기 때문에 시애틀에서 직접 방한을 한 것이었다. 일주일의 3일은 수원에서 그리고 2일은 강남에서 AWS 교육을 진행했다. AWS 서비스 기초부터 아키텍처, 동작 방식, 비동기 이벤트 기반 애플리케이션 개발에 이르기까지 다양한 분야에 대해서 알려주었다. 교육 과정은 정말 재미있었으며, 영어로 진행했음에도 불구하고 알기 쉽게 천천히 설명을 해줘서 많은 내용들이 기억에 남았다. 몇 가지 이야기가 기억에 남는데, 하나는 갤럭시 노트를 보여주며, 자기는 손이 커서, 손가락이 뚱뚱해서, 노트를 애용하고 있다고 깨알 어필하는 것이..
Platform Engineering 플랫폼 엔지니어링(Platform Engineering)은 소프트웨어 수명주기를 관리하기 위해 개발자가 스스로 개발, 배포, 운영을 할 수 있도록 셀프 서비스 환경을 구축하는 것을 말한다. 내부 사용자, 일반적으로 소프트웨어 개발자 및 엔지니어에게 공유 플랫폼을 제공하여 서비스 운영 효율을 높이는 것이 목적으로 하며, 최종 사용자에게는 드러나지 않는다. 공유 서비스(Shared Service), 데브옵스 툴(DevOps Tool) 또는 단순히 도구(Tool)라고 부르기도 한다.플랫폼 엔지니어링이 중요한 이유는 개발자가 스스로 무엇인가를 만들고 시도해 볼 수 있는 효율적인 환경을 제공하되, 걸림돌 또는 병목 지점이 되지 않는 다는 것이다. 넒게 보면 이러한 장점은 서비스 개발 및 배포 간격을 짧게 해주며,..
Agile 애자일(Agile)은 예측하기 쉽지 않고 계속 변화하는 사장의 요구사항에 맞게 소프트웨어를 지속적으로 개선해가는 실용주의 철학이며, 실천운동이자 방법론이다. 애자일 매니페스토(Manifesto)를 살펴보면, 절차나 도구 보다 개인과 상호작용을 포괄적인 문서보다 작동하는 소프트웨어를 계약 협상보다 고객과의 협력을 계획을 따르기보다 변화에 대응하기를 가치있게 여긴다고 언급한다. 전통적인 소프트웨어 개발에서 중요하게 여겼던 왼쪽의 요소들(절차, 문서, 계획, 계약)도 중요하지만 사실 그것보다는 소프트웨어를 만드는 궁극적인 목적에 더 집중하겠다는 선언을 담고 있다. 설계문서가 세밀하고 꼼꼼하더라도 생산된 결과물이 제대로 동작하지 않으면 무용지물이다. 설계도는 우수했으나 생산문제라고 싸우는 봤자 아무 의미가 없다..
On-calls 삼성과 아마존에서의 경험 그리고 구글, 넷플릭스 엔지니어와의 교류 경험을 바탕으로 대규모 서비스 운영을 위한 사이트 신뢰성 엔지니어링(SRE, Site Reliability Engineering)에 대한 강의를 했다. 오전에는 이론적인 내용 중심으로 전달했고, 오후 강의 때에는 사례 중심의 강의를 진행했다. 질의 응답을 통해 다른 회사들의 서비스 운영 사례를 설명했으며, 이미 공개되어 있는 내용들과 이 전 회사에서 겪었던 사례들을 섞어서 설명했다. 그 과정에서 다양한 질문들을 받았는데, 그 중 가장 기억에 남는 질문이 있었다. 대략적인 질문의 내용은 이러했다. "강의 내용을 보면 이미 알고 있는 내용들을 언급하고 있고, 런북(Runbook)을 만들어서 운영을 잘 하면 될 것 같다. 그런데 온콜(On-ca..