기술 컨퍼런스, 기술 블로그, 아티클, 강의 등 다양한 자료로 학습한 내용과 인사이트를 기록하는 시리즈입니다.
⇒ 리뷰가 장애가 나더라도 고객이 주문하는 데 아무런 영향이 없어야 하는데, 당시에는 루비 데이터베이스가 죽는 순간, 전체 데이터 마비되는 구조
⇒ DB(마리아 DB)까지 분리!
결제가 장애가 나도, 배달의민족은 최악의 경우에 전화 주문을 할 수 있다
주문중계: 사장님들이 PC, 앱, 단말기로도 주문 접수를 받을 수 있다. 중간 Gateway 서비스
⇒ 가볍게 node js로 만들면 좋겠다 판단
⇒ 메인 기술은 자바지만 다른 기술들도 비즈니스 상황에 맞게 만들면 사용할 수 있다고 판단
⇒ 서비스가 성장함에 따라 지금은 자바로 변경한 상태
장애가 한번 나면 전국민의 역적이 된다. 생존을 위해 마이크로서비스로 전환해야 한다
가게 목록 + 검색을 루비에서 분리해서 엘라스틱서치로 떼어냄
⇒ 루비 DB로 가는 부하 줄어들게
기술적으로 마이크로 서비스로 가려면 프로젝트를 3~4달 중단시켜야 한다
회사는 비즈니스를 해야 함
하나의 가게가 여러 개의 광고를 하려면 이 프로젝트를 해야 한다. 시스템 기반 안정화가 필요하니 이 프로젝트에만 집중할 수 있게 개발팀을 도와주기로 의사결정
고려 사항
1. 성능
대안) API 조회 형식
⇒ 장애 문제가 있다. 광고 시스템 장애가 생기면, 광고 시스템 API를 호출하는 모든 시스템에 연쇄적 장애 발생
⇒ 고성능 조회-트래픽 전파. 대량의 트래픽이 순간적으로 몰려오는데, API 호출 방식을 사용하면 이 트래픽이 모든 시스템에 다 퍼진다.
광고, 가게/업주의 경우에는 트래픽을 잘 해결하는 것보다, 정확하고 안정적인 시스템 운영이 훨씬 중요하다