tonykang22 / hello-world-auto-store

3 stars 1 forks source link

[common] order-manager 배포 전 반드시 적용되어야 할 이슈 #77

Closed tonykang22 closed 1 year ago

tonykang22 commented 1 year ago

이슈 사항

공통

product-analyzer

product-manager

가격 정책 변경

AS-IS

order-manager

@tonykang22 상웅님, 위에 리스트업된 공통 및 order-manager 이슈 관련하여 추가 또는 수정이 필요한 항목에 대해 업데이트 부탁드리겠습니다.

tonykang22 commented 1 year ago

22. 09. 23 현황

공통


product-analyzer


order-manager

tonykang22 commented 1 year ago

order-manager 배포 script

#!/bin/bash

## Variables
ROOT_PATH="/root"
PROJECT_PATH="$ROOT_PATH/hello-world-auto-store"
MODULE_NAME="order-manager"
MODULE_PATH="$PROJECT_PATH/$MODULE_NAME"
JAR_PATH="$MODULE_PATH/build/libs/$MODULE_NAME-1.0-SNAPSHOT.jar"

## Build
build() {
    $PROJECT_PATH/gradlew build
}

## Shutdown Jar
shutdownJar() {
  ps -ef | grep $JAR_PATH | grep -v "grep" | awk '{print $2}' | xargs -i{} kill -9 {}
}

## Make file paths
makeFilePaths() {
  mkdir -p $PROJECT_PATH/logs
}

## Exec Jar
execJar() {
    nohup java -jar -Dspring.profiles.active=dev $JAR_PATH &
}

## Check process start
checkProcessStart(){
  sleep 10 && ps -ef | grep $JAR_PATH | grep -v "grep" | wc -l | awk '{ if($1 != "1") {print "Process cannot started"; exit 1;} else {print "Process start successfully"; exit 0;}}'
}

## Main
### Pull & Build
build $MODULE_NAME

### Shutdown
shutdownJar

### Make Dirs
makeFilePaths

### Exec
execJar

### Check
checkProcessStart
tonykang22 commented 1 year ago

코멘트 작성자: kingwaggs



@tonykang22 상웅님,

작성해주신 스크립트는 저희 배포 서버 내 추가해주시면 되겠습니다. (경로 : /root/hello-world-auto-store/scripts) 서버 내 추가해주시기 전에 다른 모듈들의 실행 스크립트와 전체적인 형식이 동일한지 마지막으로 한번 더 점검 부탁드립니다. 추가로, 모듈별 실행 스크립트의 진입점을 하나로 잡기위해 /root/hello-world-auto-store/scripts/deploy.sh 라는 스크립트를 별도로 두고 있어요. 내용 보시면 어떤 역할 하는지 대충 아실것 같습니다. 한번 직접 봐보시고 거기에도 order-manager 스크립트 실행을 위한 명령 추가해주세요. 관련해서 모르는게 있으시면 언제든 물어보세요~

tonykang22 commented 1 year ago

@kingwaggs 윤성님,

다음과 같이 /root/hello-world-auto-store/scriptsdeploy.sh 수정했습니다.

#!/bin/bash

### Variables
ROOT_PATH="/root/hello-world-auto-store"
SCRIPT_PATH="$ROOT_PATH/scripts"

PRODUCT_ANALYZER_DEPLOY="product-analyzer-deploy"
PRODUCT_ANALYZER_DEPLOY_SH_PATH="$SCRIPT_PATH/$PRODUCT_ANALYZER_DEPLOY.sh"
PRODUCT_ANALYZER_DEPLOY_LOG_PATH="$SCRIPT_PATH/$PRODUCT_ANALYZER_DEPLOY.log"

PRODUCT_MANAGER_DEPLOY="product-manager-deploy"
PRODUCT_MANAGER_DEPLOY_SH_PATH="$SCRIPT_PATH/$PRODUCT_MANAGER_DEPLOY.sh"
PRODUCT_MANAGER_DEPLOY_LOG_PATH="$SCRIPT_PATH/$PRODUCT_MANAGER_DEPLOY.log"

ORDER_MANAGER_DEPLOY="order-manager-deploy"
ORDER_MANAGER_DEPLOY_SH_PATH="$SCRIPT_PATH/$ORDER_MANAGER_DEPLOY.sh"
ORDER_MANAGER_DEPLOY_LOG_PATH="$SCRIPT_PATH/$ORDER_MANAGER_DEPLOY.log"

module=$1

if [ "$module" == "product-analyzer" ]
then
    nohup $PRODUCT_ANALYZER_DEPLOY_SH_PATH > $PRODUCT_ANALYZER_DEPLOY_LOG_PATH 2>&1 &
elif [ "$module" == "product-manager" ]
then
    nohup $PRODUCT_MANAGER_DEPLOY_SH_PATH > $PRODUCT_MANAGER_DEPLOY_LOG_PATH 2>&1 &
elif [ "$module" == "order-manager" ]
then
    nohup $ORDER_MANAGER_DEPLOY_SH_PATH > $ORDER_MANAGER_DEPLOY_LOG_PATH 2>&1 &
else
    echo "Usage: deploy.sh [MODULE] (product-analyzer, product-manager, order-manager)"
fi

exit 1;
tonykang22 commented 1 year ago

코멘트 작성자: kingwaggs



@tonykang22 상웅님, 최종적으로 L7Check 에 Cloud Functions 저희 모듈별 포트 분리하여 적용하는것까지 체크 부탁드립니다.

tonykang22 commented 1 year ago

@kingwaggs 윤성님, 해당 작업도 완료했습니다.

image