/ PROJECTS

배민라이더스운영시스템(2.0)

배달의민족 배민라이더스의 배민라이더스운영시스템(BROS 2.0) 프로젝트 소개입니다.

배민라이더스운영시스템(2.0)

배민라이더스의 업무처리 및 관리를 위한 메인 시스템 대부분 배민라이더스운영시스템을 운영 하고 신규 기능을 개발한는 것이 주 업무

bros-main [그림 1] 메인화면

프로젝트 기간

  • 2016.02 ~ 2019.01

프로젝트 참여도

  • 프로젝트 인원 6명
  • 1차 신규 오픈 프로젝트에 참여함, 각자 분배된 분량의 백엔드 API 및 JS 프론트엔드 개발
  • 추후 지속적인 운영과 신규 기능 추가 개발 업무
  • 사실상 팀내 메인 운영 개발 시스템

주요 기능

  • 라이더의 실시간 주문처리현황 관제 및 운영을 제공
  • 배달권역 설정, 배달료관련 설정 등등 운영에 필요한 설정 기능을 제공
  • 라이더 배달료 정산에 필요한 각종 데이터 및 지표 제공
  • BROS 1.0에 더 추가된 각종 기능 셋 제공

적용된 기술셋

Back-End

  • Java v1.8
  • Spring-Boot v1.5
  • JPA v1.5
  • MySql v5.1

Front-End

  • WoowahanJS(사내 Javascript SPA Framework)

Etc

  • AWS - Elastic Beanstalk, SNS, SQS
  • Redis
  • Websocket

간략한 시스템 구성도

bros-architecture [그림 2] 구성도

시스템 구성 설명

  • 각 서버는 Elastic Beanstalk으로 구성되며 내부 적으로 EC2인스턴스가 autoscaling으로 구성 되어 있음
  • MySql DB는 AWS-RDS를 사용, 마스터/슬레이브로 2중화 되어 운영
  • REDIS를 서버인증세션 저장 및 캐시의 용도로 사용
  • 웹소켓 서버는 redis pub/sub 사용하여 메시지가 여러대의 서버에 공유될 수 있도록 처리
  • 라이더앱과 백오피스는 웹소켓서버를 통하여 실시간 배달상태변경 및 라이더의 배달현황/위치를 동기화 함
  • MSA로 분리된 라이더관리 시스템의 라이더관련 데이터를 AWS SNS/SQS를 이용, event-sourcing으로 동기화 처리를 담당하는 서버를 운영함
  • 사내 타 팀과 외부 업체와의 연동을 위해서 우리 시스템에 접근 하기위한 공개 API 서버를 운영함,

효과

AWS 인프라 위에서 개발된 팀내 최초 프로젝트로써 수직 상승하는 사업 니즈에 맞춰 flexible한 인프라 자원 운영이 가능해짐

느낀점

  • 본격적으로 팀내 코드 리뷰, 테스트코드, Pair Programming 문화가 정착 되기 시작한 프로젝트
  • 팀내 개발 문화가 시스템 안정성을 높이는 결과를 가져왔음(무장애 300일)
  • 장애 발생시 대외 신뢰성 추락, 금전적 피해를 감안해 보았을 때 안정성은 매우 중요한 가치라는 것을 증명해 보임(결과물을 빨리 내는 것에 대비하여)
kimchanjung

김찬정

좀 더 넓은 TEST 커버리지! 좀 더 나은 Architecture! 좀 더 나은 Code Pattern! 보다 더 간결하고 깔끔한 코드!를 항상 갈망 합니다.

Read More