minaver / Daily-Issue

Archive daily issues
0 stars 0 forks source link

MSA에 대하여 #10

Open minaver opened 1 year ago

minaver commented 1 year ago

내부 서비스의 효율적인 운영을 위한 MSA 적용을 검토하고 있습니다.

현 서버 상황

현재 헬퍼에서 사용하는 서버의 서비스를 크게 3가지로 분류할 수 있을 것 같다.

  1. HMS, SRMS client에게 정보를 제공하는 서비스
  2. MQTT로 로그를 쌓는 서비스
  3. 내부적으로 Robot Algorithm을 제공하는 서비스

세 서비스의 특성은 다음과 같다 1. HMS, SRMS client에게 정보를 제공하는 서비스

2. MQTT로 로그를 쌓는 서비스

3. 내부적으로 Robot Algorithm을 제공하는 서비스

문제점

현재 PHP 서버에서는 모든 서비스를 하나의 코드와 하나의 DBMS(MySQL)로 관리하고 있다. 성격이 다른 서비스를 같은 시스템과 DBMS로 관리하며 사용하니 효율면에서 떨어지는 부분이 있다고 판단된다. 예를 들어 battery_logs의 경우 단순하게 누적되는 log 값인데 아래와 같이 현재 battery_log에 하루에 약 3900정도의 데이터가 누적되고 있는 상황이다.

스크린샷 2023-04-05 오후 6 02 55

robot_log나 error_log의 경우도 그 수가 비교적 적을 뿐이지 마친가지다. 현재 map 1개(map_id : 2 / 더피플버거 연신내점)만의 데이터가 이 정도이니 이후 가맹 매장이 늘어나면 늘어날수록 서버 부하가 커질 것이라고 판단된다.

스크린샷 2023-04-05 오후 6 05 43

세 서비스의 특성이 다르므로 세 서비스를 분할하여 각각의 서비스에 맞는 DBMS를 사용하고 내부 시스템을 독립적으로 관리할 수 있는 MSA화를 고려해보고 있다.

minaver commented 1 year ago

MSA 적용

MSA 화 이점

MSA 화 단점

MSA 구조

현재까지 고려해본 MSA 구조이다. 사실 진정한 MSA화를 하려면 기능이 HMS, SRMS도 더 쪼개야 할 것 같지만(기능 목적이 단위가 더 작아져야) 일단 3개의 큰 시스템을 나누는 것을 우선적인 목표로 구조를 잡아봤다.

Helper_MSA_Struct

MSA 적용 Milestone

MSA 적용 시 고려 사항