2018 광군제(双十一) 서비스 운영 후기

올해 광군제는 작년(2017년) 광군제 때와는 조금 다른 느낌으로 다가 왔습니다. 작년에는 이미 몇번의 성능적인 장애를 경험한 탓에 성능 테스트, DB 튜닝 등 여러 준비를 하고 대응을 하였습니다. 물론 작년에 이런 준비에도 불구하고 여러가지 문제가 발생을 했었죠. 2017년 광군제 서비스 운영 소감은 다음 글에 적어 두었습니다.

올해는 특별하게 정리할 내용은 없지만 그래도 기록을 위해 2018년 중국 최대 쇼핑 축제인 광군제에 대한 소감을 정리해보았습니다.

작년보다 못하다?

중국에서 생활하면서 받은 느낌도 작년에 비해 광군제 자체에 대한 홍보나 쇼잉을 하는 부분은 조금 떨어진다고 생각했습니다. 저만 그렇게 느꼈을 수도 있는데 작년에는 처음이다 보니 행사 준비하는 것이나 마케팅 메시지 오는 것들이 신기하게만 느껴졌는데 이제 한번 경험을 했기 때문에 조금은 덜하다는 느낌을 받았을 수도 있습니다.

제가 받은 느낌과 별개로 광군제 시작하기 1, 2주일 전부터 모든 앱의 광고가 광군제로 바뀌었습니다. 참고로 중국의 대부분의 앱은 앱 시작 시 3 ~ 5초 정도 전면 광고가 나타나고 앱이 실행되는 특징이 있습니다. 다음은 제가 자주 사용하는 음악앱인 网易(NetEasy) 앱에 광군제 관련 전면 광고입니다.

neteasy

이것뿐만 아니라 여기저기 행사 포스터 붙어 있는 것과 사용자들의 구매에 대한 관심은 작년과 큰 차이가 없었던 것 같습니다. 미국과의 무역전쟁으로 내수 시장이 위축되었다는 등의 진부한 문구도 이날은 의미가 없었는지 실제 당일 매출면에서도 작년 대비 26% 정도 성장한 34조원의 매출을 기록했습니다.  11/11 00:00 시작 후 2분 5초만에 위완화로 100억(한화 약 1.6조)을 달성한 것도 작년보다는 더 빨라졌습니다.

20181111_01

오프라인으로의 확장!

작년과 큰 차이는 아니지만 오프라인 매장이 많이 참여 했다는 겁니다. 오프라인 매장들의 고민은 온라인에서 진행되는 이런 큰 행사에 마땅히 대응할 방법이 없었던 것도 사실입니다. 최근 알리바바의 행보를 보면 오프라인으로 자신의 사업 영역을 계속 확장하고 있습니다. 대표적인 것이 盒马鲜生이라는 대형 슈퍼와 음식점 등을 결합시킨 형태의 오프라인 매장을 만드는 것이었습니다. 다음 동영상은 중국어 학습을 위해 자주 보는 영상들인데 직접 가지 않고도 盒马鲜生이 무엇인지를 하는 곳인지를 바로 알 수 있습니다.

이런 소비자 측면뿐만 아니라 오프라인 유통 사업자들에게도 영향을 주려고 하고 있는데 대표적인 것이 티몰의 데이터를 중심으로 분석된 마케팅 정보를 공유하게 한다거나, 이를 위해 오프라인 유통 플랫폼을 티몰에서의 플랫폼으로 사용을 유도한다거나 하는 활동들입니다.

이번 광군제 행사에서도 온라인 앱에 주변의 쇼핑몰에 있는 매장 중 광군제 행사에 같이 참여 하는 매장을 보여주면서 필자 처럼 온라인에서 구매를 꺼려 하는 고객이나 오프라인 유통 채널을 적극적으로 참여 시키고 있었습니다.

행사를 위한 서비스 준비

작년 행사를 위해서는 이것저것 준비를 하였지만 이미 북경에 있는 개발팀도 수준이 많이 올라오고 경험이 쌓였기 때문에 특별한 문제는 없을 것이라 예상했습니다. 혹시나 하는 마음에 SQL 질의 중 느린 질의를 찾아서 튜닝 하는 과정을 했지만 작년에 비하면 거의 없는 수준이라고 할 수 있습니다. 2017년 광군제 때에는 DB 서버도 하나 더 증설해서 두대로 운영하였지만 이번에는 특별한 증설없이 그대로 진행하기로 했습니다.

mingbai_dashboard

그리고 이번에는 제대로된 모니터링을 위해 작년부터 조금씩 개선해오던 자체 개발한 모니터링 도구인 밍바이(明白) 를 적극적으로 활용해보려고 하였습니다. 여러 작은 서비스들이 연결되어 운영되는 방식이라 문제 발생 시 또는 성능 문제 발생 시 어느 서비스에서 문제가 발생한 것인지 찾기가 어려운데 이런 문제점을 해결하기 위해 분산된 서버들 간의 호출간의 관계를 보여주고 각 요청의 Latency, Request parameter 정보 등도 바로 확인할 수 있는 기능을 가지고 있습니다.

mingbai_log

서비스 기능 내에 완전히는 아니지만 어느 정도 Event Driven 개념도 들어가 있는데 이 경우 Event 받고 어떻게 처리 되고  있는지 등에 대한 모니터링도 되어야 하는데 위 Call Trace에 Event 받은 이후에 대한 처리까지 잘 나타내고 있습니다.

그래도 문제는 발생

계속 운영되는 서비스였고 올해 몇번의 행사에서 문제없었던 시스템이었기에 잘 진행되리라 예상을 했는데 역시나 당일날 문제가 발생하였습니다. 오프라인 매장에서의 사용자 정보를 관리하는 서비스가 올해부터 운영이 되어 작년 광군제에는 운영되지 않은 서비스였는데 마음 한곳에 약간은 의심이 있었지만 몇번 큰 행사에도 잘 넘어 갔기 때문에 별도의 성능 테스트 없이 그대로 진행하였습니다. 결과는 서비스 오픈과 동시에 로그인 문제가 발생하였습니다.

mingbai_request_status

위에서 언급한 모니터링 도구인 밍바이에서의 상태를 봐도 9시 부터 바로 문제가 발생한 것을 알 수 있습니다. 이런 상황에서는 팀의 순발력이 중요한데 문제 원인 파악, 해결방안 도출, 조치, 모니터링 등이 빠르게 진행되어야 합니다.  위 그래프를 보면 대략 2 ~ 3번의 패치가 이뤄졌고 최종적으로는 12시 정도에 해결된 것을 볼 수 있습니다. 트래픽이 많은 환경에서 문제가 발생하면 한부분의 문제가 아니라 여러 부분에서 복합적으로 나타나는 경우가 많은데 이로 인해 정확한 원인을 찾기 어려워 집니다.

가장 먼저 의심한 부분이 DB 성능 부분입니다. 로그인 서비스에서 사용하는 DB 서버는 아주 저사양으로 구성되어 있기 때문입니다. 하지만 DB 서버의 상태를 보면 다음과 같이 아주 안정적인 상태를 유지하고 있었습니다.

aliyun_db

이 그래프는 알리 클라우드 관리 웹 콘솔에서 제공하는 DB 모니터링 화면 중 일부 입니다. CPU는 문제가 없고 DB 서버의 모니터링 상에서 Slow query는 나타나지 않았습니다. 하지만 자체 모니터링 도구인 밍바이에서는 1초 이상 시간이 소요되는 질의가 많이 나타나고 있었습니다.

mingbai_query

밍바이의 질의 시간 측정은 응용 레벨에서 측정하는 것이기 때문에 Connection Pool에서의 waiting 까지 포함된 시간이 었습니다. 그래서 Connection Pool이 부족하거나 Connectoin Pool을 제대로 사용하지 못한다고 판단하여 응용의 Connection 정보를 수정했습니다.  이 부분에서 대해서는 시간이 되면 별도로 글을 쓰도록 하겠습니다. 이 상황이 10 ~ 11시 정도의 상황이고 프로그램 수정 이후 11:30분 부터 급격하게 에러가 발생한 것은 새로 수정한 프로그램에서 발생한 에러 였습니다. 긴급 배포를 하면 항상 이런일이 발생하는... 이 문제 후 서비스는 바로 안정적인 상태로 운영이 되었습니다.

한국으로 오는 길에

대략 장애를 정리하고 바로 한국으로 오는 비행기편에서 작년의 광군제와 올해의 광군제를 회고해 보았습니다.

광군제 행사 자체로 보면 중국 경제 자체는 모르겠지만 소비하려는 중국인들은 여전히 증가하고 있고, 이들의 소비력도 꾸준히 증가하고 있다는 겁니다. 소비의 질도 점점 향상되어 주변에 보이는 백화점, 쇼핑몰의 수준은 이미 한국을 넘어섰다고 할 수 있습니다.

작년의 개발팀과 지금의 개발팀은 거의 같은 멤버로 구성되어 있지만 서비스 운영은 진화(?) 했고, 다양한 도구들이 준비되었고, 성능도 좋아졌습니다. 그리고 이 개발팀은 이전에는 다른 플랫폼으로 동일한 업무를 계속 수행했던 팀이었는데 이전에는 이런 경험을 해보지 못했었습니다. 누구의 지시를 받기 보다는 스스로 클라우드 서비스를 만들어 나간다는 생각을 가지게 되면서 자신의 서비스에 대한 애착이 더 생겨서 그런걸까요?

외주 프로젝트 중심의 개발 팀보다는 꾸준히 개선할 수 있는 자기 서비스를 운영하는 운영 팀의 기술과 운영 능력은 꾸준히 올라간다.

이렇게 생각해 봤습니다.

또한, 매해 이렇게 큰 행사가 있는 것이 기술의 성숙도를 높이는데 아주 중요한 환경이라고도 생각했습니다. 작은 규모의 서비스를 개발, 운영하는 것에 비해 일정 수준 이상의 트래픽에 대응해야 하는 서비스를 개발하고 운영하는 것은 기술적으로도 성장하기 좋은 환경입니다. 그런 의미에서 중국의 광군제는 소비자에게 뿐만 아니라 개발자에게는 자신 또는 개발/운영 팀의 기술을 검증할 수 있는 날이라고 할 수 있습니다.

마지막으로 당연한 이야기겠지만 조금이라도 의심이 나는 부분이 있으면 게으름 피우지 말고 확인해보자!


Popit은 페이스북 댓글만 사용하고 있습니다. 페이스북 로그인 후 글을 보시면 댓글이 나타납니다.