brunch

You can make anything
by writing

C.S.Lewis

by chan Mar 15. 2018

벌써 3월! 나는 누구인가?

은행 오픈소스 DBA 8개월차.. 나는 지금?

오랜만이다. 그간 이런 저런 고민도 참 많았고, 투정도 많이 부리고, 여기저기 미X개 역할도 상당히 했던 것 같다. 그래서 브런치에 머릿속 필터없이 마구 지껄지껄 하기까지 수개월이 걸린듯 하다.


우선. 자축하자.

MySQL은 여전히 무사하다. 물론 이런저런 아슬아슬한 상황도 있었고, 마음도 많이 졸이기도 했지만.. 쫄보 행원 DBA 는 여전히 잘 살아가고 있다.



잘 살아가고 있다.. 잘 살고 있다.. 잘 살고 있다?


작년 12월까지는 이런저런 사례 발표에도 기웃거리고~ 오픈 이후 변태(?) 튜닝에, 칼퇴(?)를 지향하며 귀찮은 일을 어떻게든 자동화하며 굉장히 바쁘게 지냈던 것 같다. 어떻게든 온라인 작업을 서비스 영향도 없이.. "공개된 장난감 데이터베이스"로 얼마든지 해낼 수 있다는 것을 증명해보이고 싶어서 쫄보 주제에 많은 모험도 했다.. 헙헙헙


아무튼 바빴다.


잘 살고 있다는 기준은 무엇일까?

내가 지향하는 목표점은 무엇일까?

앞으로 더 실험해보고 싶은 것은 무엇일까?


하나. 모니터링에 꽂히다.


그렇다. 지금 내 마음 속의 풍금을 올리고 있는 것은 바로 모니터링.. 그중 Percona의 프로젝트 중 하나인 PMM이다. 앞으로 몇 차례에 걸쳐서.. 개인 블로그에 시리즈로 정리해볼 주제이기도 하다. 우선 지금은 인트로만 내 머릿속 밖으로 튀어나왔기에.. 이렇게 투척해보자.

http://gywn.net/2018/03/pmm-intro/


왜냐고?


"절대 깨지지 않는 무한 확장 가능한 데이터 시스템"이 목표이기 때문이다.


MySQL의 복제 구조, 백업 자동화, 파티셔닝 스키마 관리 자동화, MHA 자동화, 샤드 확장 방안 제시, Binlog를 통한 데이터 흐름 제어, 백업/복구 자동화, DNS/VIP failover 등등.. (또 뭐해왔드라???) KTH, 티몬, 카카오 그리고 카뱅을 거치며 경험하고 만들어낸 것들이다. 그간의 경험을 나름 축약해 만들어진 결과물이 은행 시스템이다.


그러나 아쉽게도, 나는 개발자가 아니다. 단지 16년 전에 배너 광고 서버를 메인 디쉬로 웹(광고) 에이전시를 다수 찍어내는 업체에서  몇년 몸담았고, 대졸 첫 직장 KT하이텔 에서는 "살아보기 위해" 모르는 영역을 꾸역꾸역 생존 개발을 해왔던 "과거" 개발자일 뿐이다.


애자일 소프트웨어 개발에 대한 경험이 없기에 알리가 없다. 단지, 이 방법론이 단순히 프로그램 구현에만 국한되지는 않을 것이라 혼자 생각해보고 있다. 데이터쟁이 입장에서 이 근간은 시스템의 세세한 매트릭을 수집하는 모니터링 시스템에 있다고 본다.


"시스템의 이상 유무 판단 근거"과 더불어 "시스템의 가장 최근의 정보"는 분명 모니터링 시스템에 존재한다.


푹 빠져 있는 이유는 단순하다. 제대로 "견고한" 시스템의 가장 근간이 되는 데이터를 수집하기 위해서다. 수집된 데이터로, 현재 모양새를 바꾸는 INPUT이 되고.. 이로 이어진 OUTPUT이 새로운 INPUT이 되고.. 이 과정을 끊임없이 반복하며, "날마다 진화하는" 그런 말도 안되는 견고한 무한 확장의 시스템 달성!! 지금도 꿈꾸는 중이다.



글로벌 오성급 서비스에 견주어도 절대 부족하지 않을 그런 시스템 구조! 기존 고민해왔던 퍼즐 놀이의 가장 중앙에 위치한 마지막 퍼즐 한조각.. 그것이 바로 모니터링이다. (설명이 어렵지만 내 생각은 그렇다. 생각의 다름으로 인한 태클은 불쌍한 A형인 내 가슴 속에 스크래치를 안길뿐..)


그래서 그렇다. ㅋㅋ


둘. 이상한 데이터쟁이를 꿈꾸자


그동안 일을 해왔던 것을 보면.. 보통 FM으로 일컬어지던 형태로만 일을 해왔던 것은 아닌 것 같다. 이상한 고민을 하면서.. "엉뚱"하게 일을 꾸며보며 "내가 편하게 생활해볼 수 있는 환경"을 조성해보는 것을 즐겼던 것 같다.


(노후화된 블로그 찐한 광고한번 해봅쎄~)


예를 들면.. 만사 귀찮아하는 본인의 귀차니즘에 따른 이런 구성이나..

http://gywn.net/2017/01/automated-recovery-scenarios-for-lazy-mysql-dba/


가난했던 옛날의 습성이 몸에 배어서.. 기계 따위가 노는 꼴을 결코 못보는 습성이나..

http://gywn.net/2017/06/mysql-slave-addition-effect/


파티셔닝 되는 토큰 키 발급을 엉뚱한 생각으로 풀어본 것이나.. (이건 K사 시절 어디서 적용했드라.. -_-;;)

http://gywn.net/2015/07/generate-unique-token-on-partitioning-table/


추후 text 타입 컬럼에서는 안정적이지 않다는 것을 확인해서 멈추긴 했지만.. 수억건 데이터 이관을 병맛스럽게 재배치해보기도 하고.. (여기서 단일 Thread의 제약과 퍼포먼스 향상을 위한 고민이.. 향후 Kakao ADT프로젝트의 모토가 되기도 하였다.)

http://gywn.net/2014/12/mariadb-federatedx-usage/


아무튼.. 정해진 루틴한 방법의 고정관념 속의 운영은 참으로 지루하게 느껴왔던 것 같다. 앞으로 무엇을 만들지 모르지만.. 아마도 문제가 주어지면.. (병맛일지라도) 최선의 방안을 제시해볼 생각이다.


기대해볼까나? (진짜루??)


셋. 흐름에 물을 맡겨봅쎄~


마지막 썰을 풀어보자.


세상에는 수많은 천재가 있고, 그들의 지식을 잘 먹고 산다. 가장 큰 수혜자는 바로 나다. (오늘 밤 수혜자는 바로 나!!)


나는 지극히도 평범한 한국 사람임을 통감한다. 소싯적~ "나도 나름 똘똘할지도 몰라"라고 착각해보고 싶었지만.. 알고보니, 세상 수많은 성씨 중 1인일 뿐이다. 그렇다 할지라도 세상의 모든 천재들에게 당근 감사한다.


앞서 얘기했던 Percona의 모니터링 프로젝트인 PMM 전반적인 구조와 모양새를 뚫어져라 레이저 쏴가면서 분석 후 느낀 결론은 이 단 한마디..(욕이 아니다. 내가 표현할 수 있는 최고의 칭송이다.)


이런 미친 (Dog)천재들!


PMM이 Prometheus에서 파생된 프로젝트라 할지라도.. 내부를 까보니, 어마어마하게 많은 것들이 유기적으로 멋지게 만들어져 있다. 심지어 결과물이 예쁘다. 뽀대난다. 내 자신이 초라해진다. (나는 여태 뭐하면서 살아왔나.. 자괴감만 느껴..)


하지만, 아직까지는 천재들이 만들어놓은 "빛좋은 개살구"라는 표현을 써보고 싶다.


원하는 기본 모양새를 갖추기 위해서는 내가 직접 손봐야할 사항이 생각보다 많다. 이를 위해 Docker를 비롯해서, 못하는 Go언어도 미친듯 겉핥기해보았는데, 아무래도 이제는 Node.js까지 해봐야할 그런 기로에 서있다. 어쩌지.. 걱정만 앞선다. ㅠㅠ


(PMM아.. 넌 왜 가장 필요한 것이 부재중인게니?)


물론 "개인적인 용도"만이 목표라면 이것 자체가 어려운 것은 아니라고 본다. 그리고 이미 그런것들은 대략 손짓 발짓 80%는 구현하였다. 물론 오픈할 정도의 퀄리티는 아닌지라.. 쿨럭..


다만, 시간이 걸릴지라도.. 나의 이런저런 생각들이 이들과 함께 흐르기를 바란다. 그래서 지금도 여전히 느리지만 인내심을 가져가며 구글 번역기를 옆에 끼고 그들과 느리게 이야기하는 중이다. (하아.. 그치만 답답)


그들에게 내가 원하는 그림을 전달하기 위해 급조된 요구사항 github을 투척하다. 도커 이미지 제작을 집에서만 할 수 있는 슬픈 현실이란.. 아놔.. -_-;;

https://github.com/gywndi/pmm-server-kkb


특정 시스템이 아니다. 현재 내가 접하고 있는 모든 "오픈소스"가 대상이다. 이상하면 일단 꽉 물어본다. 그리고 손짓발짓 개선된 내용과 컨셉이 어떻게든 원천 소스 물결에 함께 흘러가기를 원하고.. 이런 지식을 바탕으로 일궈낸 경험들이 역으로 다른 누군가게에 좋은 영감이 되는 선순환 가교 역할을 꿈꾸어본다. 므흣~


(왼손은 거들뿐...)


그래서 넌 누군데?


견고한 서비스의 근간이 되는 모니터링 매트릭을 바탕으로 늘 진화하는 시스템을 꿈꾸듯..


부족한 실력과 미미한 경험치일지라도.. 이런 것들이 누군가에게 새로운 INPUT이 되어 더욱 병맛나는 해결책(OUTPUT)이 되었으면 한다. 그렇기에 오픈하고, 이야기하고, 재미요소를 갈구한다. (성향은 개발자인데.. 머리가 안따르는 듯.. 에잇)


그렇다. 나는 분명 "운좋게도", 대한민국에 몇 안되는 "오픈소스 DBA 행원" 특혜 아닌 특혜(?)를 누리고 있다. 본인의 평범함은 늘 인지하고 있다.  능력치 대비, 너무 많은 것을 얻었다 생각한다. 고맙고 감사하고 부끄럽다.


여전히 재미난 해결책을 모색하고 즐겨보고 싶은 엉뚱한 오픈소스 DBA


라고 슬쩍 외쳐보며.. 내일모레글피(토요일) 휴일을 기다려본다. ㅋㅋ

그렇다. 나는 평범한 꿈꾸는 엉뚱한 데이터쟁이다. 끝.

(너무 막 썼나? ㅋㅋㅋ)

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari