Imagoworks (2) Survive as Noob

중고 받아라!

September 22, 2023 - 2 minute read -
Imagoworks IaC Chaos Engineering

TL;DR

IaC 작업을 이어 하면서, 테스트 도중 발생한 다운타임 분석, 메시지 큐 아키텍처 디자인을 맡아 작업했다. 꼭 해보고 싶었던 Chaos Engineering 쪽 리드를 가져오기도 했다. 방향은 잡았으니, 남은 건 공부-프로토타이핑-적용-개선의 반복이다.

0

기존 사용하던 Terraform의 CDK (Cloud Development Kit)이 나왔다는 사실을 리서치하며 발견했다 (CDKTF). 전사적인 도입 이전 프로토타입 구현을 통해 실 사용성이 어떤지 확인이 필요했고, 현재 새로 도입하려는 기능 구현하시는 팀원께 말씀드려 작업해 보고 있다. Typescript 지원이 되기 때문에 HCL을 사용할 때보다 분명히 가독성 및 테스트 용이성이 좋을 것 같다고 생각되나, 역시 프로젝트의 성숙도가 조금 마음에 걸린다. 다음 포스트에서는 프로토타입 구현 이후 후기를 남기는 게 목표다.

1

프로덕트 QA 테스트 도중 발견된 성능 저하 및 다운타임의 원인을 분석했다. 통상 이런 작업은 흩어져 있는 로그를 유기적으로 이어 붙이며 이야기를 만들어야 하는데 (물론 아직 실력이 부족한 내 방법이니, 더 이쁜 방법은 분명 있을 것이다), 여느 이야기가 그렇듯 이를 쫓다 보면 처음 예상한 것과는 전혀 다른 곳에서 그 끝을 보곤 한다. 팀원들과 붙어 분석하며 여러 가정과 검증을 이어 나갔고, 얼추 원인으로 추정되는 로직의 범위를 몇 가지로 좁힐 수 있었다. 언제든 화이트보드를 이용하며 대화하는 건 재밌는 경험으로 남는 것 같다. 물론 아직 할 건 많이 남아있지만, 즐거운 작업이었다.

2

메시지 큐를 이용해 이벤트를 핸들링하는 아키텍쳐를 설계했다. 준-실시간으로 처리해도 괜찮은 이벤트들을 효율적으로 처리할 수 있는 구조가 필요했고, 이 구조를 설계하는 업무를 맡게 됐다. 관련 이벤트 및 프로젝트 구조 파악이 가장 큰 산이었는데, 팀원분들이 도움을 많이 주신 덕분에 정말 수월하게 넘어갈 수 있었다. 메시지 큐를 이용해 다중 소스에서 이벤트를 쌓고 이를 핸들링하는 구조를 먼저 잡아봤고, 이를 구현해 보고 있다. 다만 별개로 운영되는 게 아닌, 사내 데이터 파이프라인에 통합한 구조를 만들 수 있다면 꽤나 이쁠 것 같아 최대한 이 방향으로 갈 수 있도록 작업하려 한다.

3

Chaos Engineering은 언젠가 꼭 시도해 보고 싶던 기술이었다. 유닛 테스트부터 QA 테스트까지 소위 전통적인 테스트 기법은 경험해 볼 기회가 있었으나, chaos engineering은 아직 들어보기만 한, 내겐 유니콘 🦄 같은 존재였다. 개발자로서 본인이 작성한 코드의 안정성을 (최대한) 객관적으로 평가할 수 있다는 건 굉장히 긍정적 개발 경험을 가져다주는데, 이런 경험을 코드 레벨이 아닌 인프라 레벨에서 겪을 수 있다면 어떨까 싶다. 아직 일정이 빠듯해 진행하지 못하고 있던 사내 chaos engineering 프로젝트를 발견했고, 사리사욕을 채우기 위해 프로젝트 리드를 가져왔다. 성심성의껏 프로젝트를 살려봐야겠다.

+INF

혁민님, 대일님께서 추천해 주신 트로텐으로 책상을 결정했고, 집 정리도 얼추 끝났다. 얼추 집에서도 공부할 환경이 구축된 김에, 주말 중 개발 관련 도서 한 권을 완독했다. 사내에 꽤나 많은 책이 구비되어 있으니, 시간 날 때마다 가져와서 공부해 보려고 한다.

+ 따로 꼭지를 따서 언급하진 않았지만, 클라우드 팀 점심 회식과 멘토-멘티 회식까지 팀원과 친해질 기회가 많았던 한 주였다. 물론 피자는 메뉴로 선정되지 못했다.