좋은 서비스 운영환경을 만들기 위해서
현재 회사에 구축해 놓은 시스템들에 많은것들이 부족하다고 느낀다.
젠킨스에서 워커노드나 마스터노드간에 동일한 환경을 유지하는것이 잘 안되고 있다. k8s나 도커를 사용해 job실행시 이미지 기반으로 동일한 실행환경을 보장하는 것이 필요하고, 리소스를 동적으로 늘리는것에 대한 안정성에 대한 보장이 필요하다.
트래픽이 안정적으로 인입되어 정상적으로 처리되지 않는 경우에 대한 알람, 자동복구 등에 대한 처리가 부족하다. 현재 트래픽이 서버에 도착한 이후에 Exception 이 발생했을때에 대한 알람은 sentry 로 존재하나, 트래픽이 서버에 제대로 도착하지 못 하는 모든 경우(서버가 죽어서) 는 서버의 헬스체크실패 알람 하나에 의존하고 있다.
게임회사는 데이터가 생명이고 자주 변경/추가 가 이루어지는데, 이 처리에 대해 속도감/안정감 있는 프로세스가 필요하다. 그리고 현재의 유저가 적용받고 있는 데이터기반이 무엇인지에 대한 확인이 더 쉬워야 한다.
아래는 좋은 운영환경에 대한 데이터중심 어플리케이션 설계 책에서 가져온 글
운용성: 운영팀이 시스템을 원활하게 운영할 수 있게 쉽게 만들어라
좋은 운영성이란 동일하게 반복되는 태스크를 쉽게 수행하게끔 만들어 운영팀이 고부가가치 활동에 노력을 집중한다는 의미다
단순성: 시스템에서 복잡도를 최대한 제거해 새로운 엔지니어가 시스템을 이해하기 쉽게 만들어라
발전성: 엔지니어가 이후에 시스템을 쉽게 변경할 수 있게 하라. 그래야 요구사항 변경 같은 예기치 않은 사용 사례를 적용하기가 쉽다.
최고의 제품을 만드는데 익히고 갖춰나가야 할 것들이 참 많은 것 같아서 조바심이 들때도 많지만... 어렵고 심오함 끝에 단순함을 이뤄내는 과정이 참 재밌는 것 같다. 화이팅!!