Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

좌충우돌 도도 포인트 운영기

44 views

Published on

도도 포인트를 운영하면서 생긴 일들을 얘기합니다.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

좌충우돌 도도 포인트 운영기

  1. 1. + + + + + + + + “좌충우돌 도도 포인트 서비스 운영기” 강효준(ed)
  2. 2. 음악을 들으며 오픈 소스 코딩하는 것을 즐깁니다. 스포카 풀스택 프로그래머 15.02 - 현재 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 이용기 H Labs 파트 타이머 14.10 - 15.01 https://kanghyojun.org 강효준 비트패킹 컴퍼니 프로그래머 13.07 - 13.11 씨들 공동 창업자 12.04 - 13.03
  3. 3. 스포카가 뭘하길래, 좌충우돌까지 할 일인가? 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 이용기
  4. 4. 스포카의 미션: 매장과 고객을 세련되게 연결한다 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기
  5. 5. 스포카의 미션: 1만 매장과 1000만 고객을 세련되게 연결한다 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기
  6. 6. 스포카의 미션: 1만 매장과 1000만 고객을 세련되게 연결한다 2011년부터 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기
  7. 7. 도도 포인트 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 종이 쿠폰을 없애자. - 매장에서 고객 관리를 좀 더 쉽게 할 수 있도록 하자. - 매장 운영에 도움이 되는 정보를 제공하자.
  8. 8. 도도 포인트 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 종이 쿠폰을 없애자. (핸드폰 번호로 적립) - 매장에서 고객 관리를 좀 더 쉽게 할 수 있도록 하자. - 매장 운영에 도움이 되는 정보를 제공하자.
  9. 9. 도도 포인트 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 종이 쿠폰을 없애자. (핸드폰 번호로 적립) - 매장에서 고객 관리를 좀 더 쉽게 할 수 있도록 하자. - 매장 운영에 도움이 되는 정보를 제공하자.
  10. 10. 도도 포인트 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 종이 쿠폰을 없애자. (핸드폰 번호로 적립) - 매장에서 고객 관리를 좀 더 쉽게 할 수 있도록 하자. - 매장 운영에 도움이 되는 정보를 제공하자.
  11. 11. 도도 메시지 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 고객이 재방문할 수 있도록 마케팅하자. - 알아서 메시지(LMS, 친구톡)를 보내자. - 모바일 쿠폰도 제공하자
  12. 12. 도도 메시지 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 고객이 재방문할 수 있도록 마케팅하자. - 알아서 메시지(LMS, 친구톡)를 보내자. - 모바일 쿠폰도 제공하자
  13. 13. 도도 메시지 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 고객이 재방문할 수 있도록 마케팅하자. - 알아서 메시지(LMS, 친구톡)를 보내자. - 모바일 쿠폰도 제공하자
  14. 14. 이런 장애가 있었어요 도도 메시지편 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기
  15. 15. 도도 메시지
 발송 오류 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - B2B 사업 하다보니 담당자가 대신 도도 메시지 발송하는 경우가 있음. - 문구에 오류가 있었고 담당자가 발송 시작하고 오류 발견 - 출근 준비하다가 연락 받고 장애 응대 시작 - 문자를 멈춰야한다.
  16. 16. 문자 멈추기 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 1. 어떻게 하지 2. 어떻게 할까?
  17. 17. 도도 메시지
 발송 오류 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 도도 메시지가 사용하는 LMS 서비스는 설치형 서비스입니다. - 서비스 제공사가 제공하는 JVM 프로그램이 DB에 있는 데이터 크롤링해서 전송
  18. 18. 문자 멈추기 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - DB(MySQL)의 대기 테이블에 데이터 입력하면 전 송 시작. - 전송이 완료되면 로그 테이블(log)에 전송 상태 입 력. - JVM은 EC2 인스턴스 위에서 실행됨.
  19. 19. 문자 멈추기 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 일단 팀원들과 슬랙콜 - tran에 들어가있는 데이터를 주기적으로 지우자 - 빨리 짜자. ( SQL 버전 ) DELETE FROM tran WHERE content LIKE '%에드 커피%';
  20. 20. 문자 멈추기 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 일단 팀원들과 슬랙콜 - tran에 들어가있는 데이터를 주기적으로 지우자 - 빨리 짜자 ( bash 버전 ) mysql -e "DELETE FROM ...";
  21. 21. 문자 멈추기 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 일단 팀원들과 슬랙콜 - tran에 들어가있는 데이터를 주기적으로 지우자 - 빨리 짜자 ( Python + bash 버전 ) from subprocess import call from time import sleep while True: call(['mysql', '-e', '...']) sleep(0.5)
  22. 22. 이런 장애가 있었어요 도도 포인트편 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기
  23. 23. 포인트 재정산 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 매장 운영을 하다가 지점 인수 등의 이유로 브랜드로 묶는 경우가 있음 - 각 매장의 포인트를 통합해야하기 때문에 포인트 재정산 기능을 사용해서 정합성 을 맞춤 - 너무 큰 브랜드의 경우 프로그래머가 별도로 새벽에 실행하는 경우 있음.
  24. 24. 포인트 재정산 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 크리스마스 이브에 퇴근하면서 별일 없을거라며 퇴 근. - 크리스마스 00시부터 04시까지 장애 발생
  25. 25. 포인트 재정산 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 재정산이 잘 안되서 돌리는데 잘 안됨 - no space left - Transaction Log가 엄청 나게 많이 쌓이고 있었음. - 그때는 몰랐지만 WAL ( Write Ahead Logging )의 크기를 보여주는 지표 - 트랜잭션이 시작되고 끝날때까지의 기록을 저장하여 원자성을 제공 - 재부팅했는데, 재부팅이 끝나지 않음
  26. 26. 포인트 재정산 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 알고보니 포인트 재정산 때문에 WAL이 쌓인 것이 아니라 DMS와 관련된 문제 - AWS DMS로 BI용으로 Redshift에 데이터를 전송중이었는데 이를 잠깐 멈춰둔 상태였음. - AWS DMS를 일시 중지 해두면 나중에 동기화하기 위해 WAL에 기록함.
  27. 27. 포인트 재정산 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 읽기 전용 복제본이 있었음 - 일단 읽기 전용 복제본으로 서비스가 돌아가도록 조치 - 읽기 전용 복제본에서 스냅샷 생성 - 읽기 전용 복제본 승격 - 동시에 스냅샷으로 RDS 인스턴스 실행 - RDS에서 특정 시점으로 되돌아가서 인스턴스 띄우는 기능 발견 후 시도
  28. 28. 포인트 재정산 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 읽기 전용 복제본을 승격하는 것이 가장 빨랐음. - 이후에 Aurora로 업그레이드
  29. 29. 서비스 운영 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 서비스 운영을 하다보면 장애 상황은 피할 수 없음. - 예방도 중요하지만 장애는 생김. - 같은 일이 발생하지 않도록 해야함. - 프로그래머 누구나 대처를 잘 할 수 있도록 하자.
  30. 30. 장애 수리단 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 긴급한 장애 상황에서 장애를 잘 처리할 수 있도록 하자. - CS 팀 등 타부서와 커뮤니케이션도 잘할 수 있도록 하자. - 모든 프로그래머가 업무에 집중하지 못하는 상황을 예방하자.
  31. 31. 장애 수리단 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 장애가 발생하면, 장애를 확인한 사람이 장애 수리 단 호출 - 최대 4인 구성 - 공지 및 로그 작성 - 드라이버 - 옵저버 - 매장 문자 전송
  32. 32. 포스트 모템 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 의사들이 수술 후에 수술 과정을 다른 의사들에게 브리핑 하는 과정 - 장애의 기록을 보며, 대처 방법, 같은 일이 발생하지 않도록 문제를 진단하는 과정 - 모든 프로그래머들이 참여하여 대처 방법과, 재발 방지에 대해 논의
  33. 33. 포스트 모템 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 이용기 - 시간별로 정리된 기록을 보며 논의 - 실제 장애 처리 방법까지 시연하며, 방법을 전파하거 나 더 좋은 방법이 없을지 논의 - 재발 방지를 위해 어떤 이슈를 가지고 가야하는지 논 의 후 생성 - 컨플루언스 문서를 전사에 공유 - 매주 금요일 오후 2시부터 3시에 진행
  34. 34. 시스템 장애는 천재 지변과 같으니, 장애를 좀 더 잘 관리하자 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기
  35. 35. SRE Site Reliability Engineering 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - SLI: 제품 운영 관리 해야할 지표를 만든다. - SLO: 지표의 수준을 정한다. - SLA: 이를 계약에서 보장한다.
  36. 36. SRE Site Reliability Engineering 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 에러 예산을 정하고 이를 관리함. - 에러 예산이 정한 목표에서 벗어나려 할때 모니터링이 가능하도록 만듦. - 반복되는 일들을 찾아 개선함. - 장애 수리단과 포스트 모템 모두 SRE에서 소개하고 있는 개념
  37. 37. SRE 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 구글에서 만든 책이 있음 - 장애 대처와 관리를 더 잘하기 위해 사내에서 스터 디 진행
  38. 38. SRE 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기 - 구글에서 만든 책이 있음 - 장애 대처와 관리를 더 잘하기 위해 사내에서 스터 디 진행
  39. 39. 지금까지 발표를 들어주셔서 감사합니다. 스포카 크리에이터 컨퍼런스 Hello World! 좌충우돌 도도포인트 서비스 운영기

×