Upgrade to Pro — share decks privately, control downloads, hide ads and more …

안드로이드 개발 환경 개선을 위한 노력들

kakao
December 08, 2022

안드로이드 개발 환경 개선을 위한 노력들

#Android #CI/CD #Build

개발 환경 개선을 위해 안드팀과 데브옵스팀이 함께 도전했던 Jenkins CI, RemoteBuild를 소개합니다.

발표자 : smith.jspiner
안드로이드 외에도 다양한 분야에 관심이 많은 개발자 smith입니다. 서비스 개발과 더불어 프로세스 개선에도 큰 관심을 두고 있습니다.

louis.0802
카카오모빌리티에서 devops 엔지니어로 일하고 있는 louis입니다. 개발과 인프라 관리 프로세스의 자동화 및 간소화에 관심이 많습니다.

june.bee
더 효율적인 환경, 더 안정적인 서비스를 위하여 다방면으로 고민이 많은 Devops 엔지니어 june입니다.

kakao

December 08, 2022
Tweet

More Decks by kakao

Other Decks in Programming

Transcript

  1. Jenkins CI 파이프라인과 리모트 빌드 소개 Copyright 2022. Kakao Corp.

    All rights reserved. Redistribution or public display is not permitted without written permission from Kakao. 안드로이드 개발 환경 개선을 위한 노력들 정성민 Smith.JSpiner, 이재욱 Louis.0802, 소준상 June.Bee 카카오모빌리티 if(kakao)2022
  2. Jenkins CI 파이프라인과 리모트 빌드 소개 Copyright 2022. Kakao Corp.

    All rights reserved. Redistribution or public display is not permitted without written permission from Kakao. 안드로이드 개발 환경 개선을 위한 노력들 정성민 Smith.JSpiner, 이재욱 Louis.0802, 소준상 June.Bee 카카오모빌리티 if(kakao)2022
  3. develop feature/new 1. 문제가 된 코드 찾기 2. 누가 작성했는지

    or 어느 팀 담당인지 찾기 3. 해당팀에 수정요청 4. 수정이 완료된후 이후 작업 진행
  4. develop feature/new 1. 문제가 된 코드 찾기 2. 누가 작성했는지

    or 어느 팀 담당인지 찾기 3. 해당팀에 수정요청 4. 수정이 완료된후 이후 작업 진행
  5. pull request PR Pipeline - PR 템플릿 체크 - debug

    compile - debug test - sync GitHub status sync state error alert 1. PR PIPELINE
  6. pull request PR Pipeline - PR 템플릿 체크 - debug

    compile - debug test - sync GitHub status sync state error alert 1. PR PIPELINE
  7. branch update PUSH Pipeline - release Compile - lint -

    PR pipeline error alert 2. PUSH PIPELINE
  8. branch update PUSH Pipeline - release Compile - lint -

    PR pipeline error alert 2. PUSH PIPELINE
  9. 환경 빌드시간 증분 빌드 최소 3 s 평균 60s 최대

    3m 47s 풀 빌드 최소 14m 30s 평균 15m 23s 최대 16m 7s 빈도 소요시간(초) 3 99 195 388 285 581 870 967 로컬 빌드
  10. 환경 빌드시간 증분 빌드 최소 3 s 평균 60s 최대

    3m 47s 풀 빌드 최소 14m 30s 평균 15m 23s 최대 16m 7s 빈도 소요시간(초) 3 99 195 388 285 581 870 967 로컬 빌드
  11. local machine(맥북) remote build server 1. upload 2. execute 소스코드

    apk, test result.. 후킹 3. download Mirakle rsync
  12. local machine(맥북) remote build server 1. upload 2. execute 소스코드

    apk, test result.. 후킹 3. download Mirakle rsync
  13. local machine(맥북) remote build server 1. upload 2. execute 소스코드

    apk, test result.. 후킹 3. download Mirakle rsync
  14. <..CREATE MAINFRAIMER FILE..> echo "$SSH_DIR/remotebuild/id_rsa" | ssh-keygen -m PEM -t

    rsa -b 4096 -P '' POD_NAME=<SHOW POD LISTS, CHOSE ONE.> POD_SSH_DIR=“/home/devopsuser/.ssh/authorized_keys" kubectl cp $SSH_DIR/remotebuild/id_rsa.pub $POD_NAME:$POD_SSH_DIR --namespace $NAMESPACE kubectl exec -it $POD_NAME -- bash -c "chown devopsuser: $POD_SSH_DIR" SSH Local (127.0.0.1) 
 <SSH CLIENT> Remote Build Server <SSH Server>
  15. <..CREATE MAINFRAIMER FILE..> echo "$SSH_DIR/remotebuild/id_rsa" | ssh-keygen -m PEM -t

    rsa -b 4096 -P '' POD_NAME=<SHOW POD LISTS, CHOSE ONE.> POD_SSH_DIR=“/home/devopsuser/.ssh/authorized_keys" kubectl cp $SSH_DIR/remotebuild/id_rsa.pub $POD_NAME:$POD_SSH_DIR --namespace $NAMESPACE kubectl exec -it $POD_NAME -- bash -c "chown devopsuser: $POD_SSH_DIR" SSH Local (127.0.0.1) 
 <SSH CLIENT> Remote Build Server <SSH Server>
  16. <..CREATE MAINFRAIMER FILE..> echo "$SSH_DIR/remotebuild/id_rsa" | ssh-keygen -m PEM -t

    rsa -b 4096 -P '' POD_NAME=<SHOW POD LISTS, CHOSE ONE.> POD_SSH_DIR=“/home/devopsuser/.ssh/authorized_keys" kubectl cp $SSH_DIR/remotebuild/id_rsa.pub $POD_NAME:$POD_SSH_DIR --namespace $NAMESPACE kubectl exec -it $POD_NAME -- bash -c "chown devopsuser: $POD_SSH_DIR" SSH Local (127.0.0.1) 
 <SSH CLIENT> Remote Build Server <SSH Server>
  17. Local (127.0.0.1) 
 <SSH CLIENT> Remote Build Server <SSH Server>

    Port - forwarding <PORT 2222> LOCAL_PORT=2222 TITLE="PORT FORWARDING TO YOUR POD. CHOOSE ALLOCATED POD." POD_NAME=<SHOW POD LISTS> kubectl port-forward --namespace $NAMESPACE $POD_NAME $LOCAL_PORT:22
  18. Local (127.0.0.1) 
 <SSH CLIENT> Remote Build Server <SSH Server>

    Port - forwarding <PORT 2222> LOCAL_PORT=2222 TITLE="PORT FORWARDING TO YOUR POD. CHOOSE ALLOCATED POD." POD_NAME=<SHOW POD LISTS> kubectl port-forward --namespace $NAMESPACE $POD_NAME $LOCAL_PORT:22
  19. Local (127.0.0.1) 
 <SSH CLIENT> Remote Build Server <SSH Server>

    Port - forwarding <PORT 2222> LOCAL_PORT=2222 TITLE="PORT FORWARDING TO YOUR POD. CHOOSE ALLOCATED POD." POD_NAME=<SHOW POD LISTS> kubectl port-forward --namespace $NAMESPACE $POD_NAME $LOCAL_PORT:22
  20. ================================================================================ # # #### ##### # #### ##### #### ##

    ## # # # # # # # # # # # ## # # # ##### # # # # # #### # # # # # # # # # ##### # # # # # # # # # # # # # # # #### ##### # #### # #### -------------------------------------------------------------------------------- Usage: mobiops [command] [options] Available Commands: --------------- GCP ------------------------------------------------------ login ࢶఖೡࣻ ੓ח ҅੿ ܻझ౟ܳ ઑഥ೤פ׮. -n, --new ࢜۽਍ ҅੿ਵ۽ ۽Ӓੋ ೤פ׮. -g, --grep Ѩ࢝ೡ gcp ೐۽ં౟੉ܴਸ ੑ۱೤פ׮. grep -E option c, configure GKE ী ੽Ӕ೤פ׮. -r, --refresh GKE ੽Ӕ ݾ۾ਸ јन೤פ׮. p, project ࢜۽਍ ೐۽ં౟ܳ оܻఈפ׮. k, kube അ੤ ۽Ӓੋೠ ҅੿ਵ۽ ੽Ӕೡ ࣻ ੓ח GKE credential ਸ оઉ২פ׮. cp-secret secret ਸ copy ೤פ׮. usage : /usr/local/bin/mobiops cp-secret SECRET_NAME OLD_Namespace NEW_Namespace w, workload, workid workload identity ܳ োѾ೤פ׮. ksa, gsa োѾ s, ssh GCE ੋझఢझী IAPܳ ా೧ SSH ੽ࣘ೤פ׮. -r, --refresh GCE ੋझఢझ ݾ۾ਸ јन೤פ׮. r, rdp GCE ੋझఢझী RDP ੽ࣘਸ ਤ೧ IAPܳ ాೠ ఠօਸ प೯೤פ׮. -r, --refresh GCE ੋझఢझ ݾ۾ਸ јन೤פ׮. --------------- K8S ------------------------------------------------------ ns, namespace namespace ܳ ࣇ౴೤פ׮. x, context context ܳ ࣇ౴೤פ׮. (kubectx प೯) b, build ࣗझ௏٘ܳ ࠽٘ ೤פ׮. (default: ./gradlew build -x test) -s, --spring spring build (./gradlew build -x test) d, docker Docker build and push to GCR (default: ./Dockerfile) -f, --file Dockerfile path (/Users/whoami/workdir/Dockerfile-custom) -t, --tag Docker image tag dx, dockerx Docker buildx amd64 image and push to GCR (default: ./Dockerfile) -f, --file Dockerfile path (/Users/whoami/workdir/Dockerfile-custom) -t, --tag Docker image tag a, apply അ੤ cluster ী ߓನ೤פ׮. (kustomization.yaml file ੉ ੓ח ҃۽ܳ ૑੿೤פ׮. default : k8s/gcp/) delete, remove അ੤ cluster ী ߓನػ ղਊਸ ࢏ઁ ೤פ׮. (kubectl delete -k ) -p, --path kustomization.yaml file ੉ ੓ח ҃۽ܳ ૑੿೤פ׮. (default : k8s/gcp/) l, log, logs pod ۽Ӓܳ ୶੸೤פ׮. e, exec kubectl exec -it {pod} cicd, jenkins cicd ܳ ਤೠ ౵ੌ ࣇ౴ - Jenkinsfile ਸ ׮਍߉ই അ੤ ٣۩షܻী ݏ୾ ࣇ౴೤פ׮. - Dockerfile ੉ হਵݶ మ೒݁ਸ ׮਍߉णפ׮. - kustomization directory మ೒݁ਸ ׮਍߉णפ׮. ------------ Android ------------------------------------------------------ rb-setenv remotebuildী ೙ਃೠ ssh keyܳ ࢤࢿೞҊ, podী public keyܳ ١۾೤פ׮. rb-portforward remotebuild podী ssh োѾਸ ਤೠ ఠօ݂ਸ ݛযસפ׮. rb-createpod नӏ Userо ࢎਊೡ remotebuild ਊ podܳ ࢤࢿ೤פ׮. ================================================================================ KAKAO MOBILITY DEVOPS 
 MOBIOPS
  21. ================================================================================ # # #### ##### # #### ##### #### ##

    ## # # # # # # # # # # # ## # # # ##### # # # # # #### # # # # # # # # # ##### # # # # # # # # # # # # # # # #### ##### # #### # #### -------------------------------------------------------------------------------- Usage: mobiops [command] [options] Available Commands: --------------- GCP ------------------------------------------------------ login ࢶఖೡࣻ ੓ח ҅੿ ܻझ౟ܳ ઑഥ೤פ׮. -n, --new ࢜۽਍ ҅੿ਵ۽ ۽Ӓੋ ೤פ׮. -g, --grep Ѩ࢝ೡ gcp ೐۽ં౟੉ܴਸ ੑ۱೤פ׮. grep -E option c, configure GKE ী ੽Ӕ೤פ׮. -r, --refresh GKE ੽Ӕ ݾ۾ਸ јन೤פ׮. p, project ࢜۽਍ ೐۽ં౟ܳ оܻఈפ׮. k, kube അ੤ ۽Ӓੋೠ ҅੿ਵ۽ ੽Ӕೡ ࣻ ੓ח GKE credential ਸ оઉ২פ׮. cp-secret secret ਸ copy ೤פ׮. usage : /usr/local/bin/mobiops cp-secret SECRET_NAME OLD_Namespace NEW_Namespace w, workload, workid workload identity ܳ োѾ೤פ׮. ksa, gsa োѾ s, ssh GCE ੋझఢझী IAPܳ ా೧ SSH ੽ࣘ೤פ׮. -r, --refresh GCE ੋझఢझ ݾ۾ਸ јन೤פ׮. r, rdp GCE ੋझఢझী RDP ੽ࣘਸ ਤ೧ IAPܳ ాೠ ఠօਸ प೯೤פ׮. -r, --refresh GCE ੋझఢझ ݾ۾ਸ јन೤פ׮. --------------- K8S ------------------------------------------------------ ns, namespace namespace ܳ ࣇ౴೤פ׮. x, context context ܳ ࣇ౴೤פ׮. (kubectx प೯) b, build ࣗझ௏٘ܳ ࠽٘ ೤פ׮. (default: ./gradlew build -x test) -s, --spring spring build (./gradlew build -x test) d, docker Docker build and push to GCR (default: ./Dockerfile) -f, --file Dockerfile path (/Users/whoami/workdir/Dockerfile-custom) -t, --tag Docker image tag dx, dockerx Docker buildx amd64 image and push to GCR (default: ./Dockerfile) -f, --file Dockerfile path (/Users/whoami/workdir/Dockerfile-custom) -t, --tag Docker image tag a, apply അ੤ cluster ী ߓನ೤פ׮. (kustomization.yaml file ੉ ੓ח ҃۽ܳ ૑੿೤פ׮. default : k8s/gcp/) delete, remove അ੤ cluster ী ߓನػ ղਊਸ ࢏ઁ ೤פ׮. (kubectl delete -k ) -p, --path kustomization.yaml file ੉ ੓ח ҃۽ܳ ૑੿೤פ׮. (default : k8s/gcp/) l, log, logs pod ۽Ӓܳ ୶੸೤פ׮. e, exec kubectl exec -it {pod} cicd, jenkins cicd ܳ ਤೠ ౵ੌ ࣇ౴ - Jenkinsfile ਸ ׮਍߉ই അ੤ ٣۩షܻী ݏ୾ ࣇ౴೤פ׮. - Dockerfile ੉ হਵݶ మ೒݁ਸ ׮਍߉णפ׮. - kustomization directory మ೒݁ਸ ׮਍߉णפ׮. ------------ Android ------------------------------------------------------ rb-setenv remotebuildী ೙ਃೠ ssh keyܳ ࢤࢿೞҊ, podী public keyܳ ١۾೤פ׮. rb-portforward remotebuild podী ssh োѾਸ ਤೠ ఠօ݂ਸ ݛযસפ׮. rb-createpod नӏ Userо ࢎਊೡ remotebuild ਊ podܳ ࢤࢿ೤פ׮. ================================================================================ KAKAO MOBILITY DEVOPS 
 MOBIOPS
  22. ================================================================================ # # #### ##### # #### ##### #### ##

    ## # # # # # # # # # # # ## # # # ##### # # # # # #### # # # # # # # # # ##### # # # # # # # # # # # # # # # #### ##### # #### # #### -------------------------------------------------------------------------------- Usage: mobiops [command] [options] Available Commands: --------------- GCP ------------------------------------------------------ login ࢶఖೡࣻ ੓ח ҅੿ ܻझ౟ܳ ઑഥ೤פ׮. -n, --new ࢜۽਍ ҅੿ਵ۽ ۽Ӓੋ ೤פ׮. -g, --grep Ѩ࢝ೡ gcp ೐۽ં౟੉ܴਸ ੑ۱೤פ׮. grep -E option c, configure GKE ী ੽Ӕ೤פ׮. -r, --refresh GKE ੽Ӕ ݾ۾ਸ јन೤פ׮. p, project ࢜۽਍ ೐۽ં౟ܳ оܻఈפ׮. k, kube അ੤ ۽Ӓੋೠ ҅੿ਵ۽ ੽Ӕೡ ࣻ ੓ח GKE credential ਸ оઉ২פ׮. cp-secret secret ਸ copy ೤פ׮. usage : /usr/local/bin/mobiops cp-secret SECRET_NAME OLD_Namespace NEW_Namespace w, workload, workid workload identity ܳ োѾ೤פ׮. ksa, gsa োѾ s, ssh GCE ੋझఢझী IAPܳ ా೧ SSH ੽ࣘ೤פ׮. -r, --refresh GCE ੋझఢझ ݾ۾ਸ јन೤פ׮. r, rdp GCE ੋझఢझী RDP ੽ࣘਸ ਤ೧ IAPܳ ాೠ ఠօਸ प೯೤פ׮. -r, --refresh GCE ੋझఢझ ݾ۾ਸ јन೤פ׮. --------------- K8S ------------------------------------------------------ ns, namespace namespace ܳ ࣇ౴೤פ׮. x, context context ܳ ࣇ౴೤פ׮. (kubectx प೯) b, build ࣗझ௏٘ܳ ࠽٘ ೤פ׮. (default: ./gradlew build -x test) -s, --spring spring build (./gradlew build -x test) d, docker Docker build and push to GCR (default: ./Dockerfile) -f, --file Dockerfile path (/Users/whoami/workdir/Dockerfile-custom) -t, --tag Docker image tag dx, dockerx Docker buildx amd64 image and push to GCR (default: ./Dockerfile) -f, --file Dockerfile path (/Users/whoami/workdir/Dockerfile-custom) -t, --tag Docker image tag a, apply അ੤ cluster ী ߓನ೤פ׮. (kustomization.yaml file ੉ ੓ח ҃۽ܳ ૑੿೤פ׮. default : k8s/gcp/) delete, remove അ੤ cluster ী ߓನػ ղਊਸ ࢏ઁ ೤פ׮. (kubectl delete -k ) -p, --path kustomization.yaml file ੉ ੓ח ҃۽ܳ ૑੿೤פ׮. (default : k8s/gcp/) l, log, logs pod ۽Ӓܳ ୶੸೤פ׮. e, exec kubectl exec -it {pod} cicd, jenkins cicd ܳ ਤೠ ౵ੌ ࣇ౴ - Jenkinsfile ਸ ׮਍߉ই അ੤ ٣۩షܻী ݏ୾ ࣇ౴೤פ׮. - Dockerfile ੉ হਵݶ మ೒݁ਸ ׮਍߉णפ׮. - kustomization directory మ೒݁ਸ ׮਍߉णפ׮. ------------ Android ------------------------------------------------------ rb-setenv remotebuildী ೙ਃೠ ssh keyܳ ࢤࢿೞҊ, podী public keyܳ ١۾೤פ׮. rb-portforward remotebuild podী ssh োѾਸ ਤೠ ఠօ݂ਸ ݛযસפ׮. rb-createpod नӏ Userо ࢎਊೡ remotebuild ਊ podܳ ࢤࢿ೤פ׮. ================================================================================ KAKAO MOBILITY DEVOPS 
 MOBIOPS
  23. ================================================================================ # # #### ##### # #### ##### #### ##

    ## # # # # # # # # # # # ## # # # ##### # # # # # #### # # # # # # # # # ##### # # # # # # # # # # # # # # # #### ##### # #### # #### -------------------------------------------------------------------------------- Usage: mobiops [command] [options] Available Commands: --------------- GCP ------------------------------------------------------ login ࢶఖೡࣻ ੓ח ҅੿ ܻझ౟ܳ ઑഥ೤פ׮. -n, --new ࢜۽਍ ҅੿ਵ۽ ۽Ӓੋ ೤פ׮. -g, --grep Ѩ࢝ೡ gcp ೐۽ં౟੉ܴਸ ੑ۱೤פ׮. grep -E option c, configure GKE ী ੽Ӕ೤פ׮. -r, --refresh GKE ੽Ӕ ݾ۾ਸ јन೤פ׮. p, project ࢜۽਍ ೐۽ં౟ܳ оܻఈפ׮. k, kube അ੤ ۽Ӓੋೠ ҅੿ਵ۽ ੽Ӕೡ ࣻ ੓ח GKE credential ਸ оઉ২פ׮. cp-secret secret ਸ copy ೤פ׮. usage : /usr/local/bin/mobiops cp-secret SECRET_NAME OLD_Namespace NEW_Namespace w, workload, workid workload identity ܳ োѾ೤פ׮. ksa, gsa োѾ s, ssh GCE ੋझఢझী IAPܳ ా೧ SSH ੽ࣘ೤פ׮. -r, --refresh GCE ੋझఢझ ݾ۾ਸ јन೤פ׮. r, rdp GCE ੋझఢझী RDP ੽ࣘਸ ਤ೧ IAPܳ ాೠ ఠօਸ प೯೤פ׮. -r, --refresh GCE ੋझఢझ ݾ۾ਸ јन೤פ׮. --------------- K8S ------------------------------------------------------ ns, namespace namespace ܳ ࣇ౴೤פ׮. x, context context ܳ ࣇ౴೤פ׮. (kubectx प೯) b, build ࣗझ௏٘ܳ ࠽٘ ೤פ׮. (default: ./gradlew build -x test) -s, --spring spring build (./gradlew build -x test) d, docker Docker build and push to GCR (default: ./Dockerfile) -f, --file Dockerfile path (/Users/whoami/workdir/Dockerfile-custom) -t, --tag Docker image tag dx, dockerx Docker buildx amd64 image and push to GCR (default: ./Dockerfile) -f, --file Dockerfile path (/Users/whoami/workdir/Dockerfile-custom) -t, --tag Docker image tag a, apply അ੤ cluster ী ߓನ೤פ׮. (kustomization.yaml file ੉ ੓ח ҃۽ܳ ૑੿೤פ׮. default : k8s/gcp/) delete, remove അ੤ cluster ী ߓನػ ղਊਸ ࢏ઁ ೤פ׮. (kubectl delete -k ) -p, --path kustomization.yaml file ੉ ੓ח ҃۽ܳ ૑੿೤פ׮. (default : k8s/gcp/) l, log, logs pod ۽Ӓܳ ୶੸೤פ׮. e, exec kubectl exec -it {pod} cicd, jenkins cicd ܳ ਤೠ ౵ੌ ࣇ౴ - Jenkinsfile ਸ ׮਍߉ই അ੤ ٣۩షܻী ݏ୾ ࣇ౴೤פ׮. - Dockerfile ੉ হਵݶ మ೒݁ਸ ׮਍߉णפ׮. - kustomization directory మ೒݁ਸ ׮਍߉णפ׮. ------------ Android ------------------------------------------------------ rb-setenv remotebuildী ೙ਃೠ ssh keyܳ ࢤࢿೞҊ, podী public keyܳ ١۾೤פ׮. rb-portforward remotebuild podী ssh োѾਸ ਤೠ ఠօ݂ਸ ݛযસפ׮. rb-createpod नӏ Userо ࢎਊೡ remotebuild ਊ podܳ ࢤࢿ೤פ׮. ================================================================================ KAKAO MOBILITY DEVOPS 
 MOBIOPS
  24. ================================================================================ # # #### ##### # #### ##### #### ##

    ## # # # # # # # # # # # ## # # # ##### # # # # # #### # # # # # # # # # ##### # # # # # # # # # # # # # # # #### ##### # #### # #### -------------------------------------------------------------------------------- Usage: mobiops [command] [options] Available Commands: --------------- GCP ------------------------------------------------------ login ࢶఖೡࣻ ੓ח ҅੿ ܻझ౟ܳ ઑഥ೤פ׮. -n, --new ࢜۽਍ ҅੿ਵ۽ ۽Ӓੋ ೤פ׮. -g, --grep Ѩ࢝ೡ gcp ೐۽ં౟੉ܴਸ ੑ۱೤פ׮. grep -E option c, configure GKE ী ੽Ӕ೤פ׮. -r, --refresh GKE ੽Ӕ ݾ۾ਸ јन೤פ׮. p, project ࢜۽਍ ೐۽ં౟ܳ оܻఈפ׮. k, kube അ੤ ۽Ӓੋೠ ҅੿ਵ۽ ੽Ӕೡ ࣻ ੓ח GKE credential ਸ оઉ২פ׮. cp-secret secret ਸ copy ೤פ׮. usage : /usr/local/bin/mobiops cp-secret SECRET_NAME OLD_Namespace NEW_Namespace w, workload, workid workload identity ܳ োѾ೤פ׮. ksa, gsa োѾ s, ssh GCE ੋझఢझী IAPܳ ా೧ SSH ੽ࣘ೤פ׮. -r, --refresh GCE ੋझఢझ ݾ۾ਸ јन೤פ׮. r, rdp GCE ੋझఢझী RDP ੽ࣘਸ ਤ೧ IAPܳ ాೠ ఠօਸ प೯೤פ׮. -r, --refresh GCE ੋझఢझ ݾ۾ਸ јन೤פ׮. --------------- K8S ------------------------------------------------------ ns, namespace namespace ܳ ࣇ౴೤פ׮. x, context context ܳ ࣇ౴೤פ׮. (kubectx प೯) b, build ࣗझ௏٘ܳ ࠽٘ ೤פ׮. (default: ./gradlew build -x test) -s, --spring spring build (./gradlew build -x test) d, docker Docker build and push to GCR (default: ./Dockerfile) -f, --file Dockerfile path (/Users/whoami/workdir/Dockerfile-custom) -t, --tag Docker image tag dx, dockerx Docker buildx amd64 image and push to GCR (default: ./Dockerfile) -f, --file Dockerfile path (/Users/whoami/workdir/Dockerfile-custom) -t, --tag Docker image tag a, apply അ੤ cluster ী ߓನ೤פ׮. (kustomization.yaml file ੉ ੓ח ҃۽ܳ ૑੿೤פ׮. default : k8s/gcp/) delete, remove അ੤ cluster ী ߓನػ ղਊਸ ࢏ઁ ೤פ׮. (kubectl delete -k ) -p, --path kustomization.yaml file ੉ ੓ח ҃۽ܳ ૑੿೤פ׮. (default : k8s/gcp/) l, log, logs pod ۽Ӓܳ ୶੸೤פ׮. e, exec kubectl exec -it {pod} cicd, jenkins cicd ܳ ਤೠ ౵ੌ ࣇ౴ - Jenkinsfile ਸ ׮਍߉ই അ੤ ٣۩షܻী ݏ୾ ࣇ౴೤פ׮. - Dockerfile ੉ হਵݶ మ೒݁ਸ ׮਍߉णפ׮. - kustomization directory మ೒݁ਸ ׮਍߉णפ׮. ------------ Android ------------------------------------------------------ rb-setenv remotebuildী ೙ਃೠ ssh keyܳ ࢤࢿೞҊ, podী public keyܳ ١۾೤פ׮. rb-portforward remotebuild podী ssh োѾਸ ਤೠ ఠօ݂ਸ ݛযસפ׮. rb-createpod नӏ Userо ࢎਊೡ remotebuild ਊ podܳ ࢤࢿ೤פ׮. ================================================================================ KAKAO MOBILITY DEVOPS 
 MOBIOPS
  25. task 유형 소요시간 upload 최소 18ms 평균 0.9s 최대 29s

    execute 최소 0.1s 평균 45.9s 최대 3m 25s download 최소 0.1s 평균 10.5s 최대 1m 37s
  26. task 유형 소요시간 upload 최소 18ms 평균 0.9s 최대 29s

    execute 최소 0.1s 평균 45.9s 최대 3m 25s download 최소 0.1s 평균 10.5s 최대 1m 37s
  27. 환경 빌드시간 로컬빌드 리모트빌드 증분 빌드 최소 3 s 8s

    평균 60s 29s (-51%) 최대 3m 47s 1m 17s 풀 빌드 최소 14m 30s 3m 29s 평균 15m 23s 3m 47s (-75%) 최대 16m 7s 4m 1s 3 99 195 388285581 870967 8 31 54 93 132 155 178 209233 로컬 빌드 리모트 빌드
  28. 환경 빌드시간 로컬빌드 리모트빌드 증분 빌드 최소 3 s 8s

    평균 60s 29s (-51%) 최대 3m 47s 1m 17s 풀 빌드 최소 14m 30s 3m 29s 평균 15m 23s 3m 47s (-75%) 최대 16m 7s 4m 1s 3 99 195 388285581 870967 8 31 54 93 132 155 178 209233 로컬 빌드 리모트 빌드
  29. 참고 문헌 1) https:/ /github.com/Adambl4/mirakle 2) https:/ /github.com/sonatype 3) https:/

    /www.jenkins.io/ 4) https:/ /www.jenkins.io/artwork/ 5) https:/ /gradle.org/ 6) https:/ /gradle.com/brand/ 7) https:/ /github.com/kubernetes 8) https:/ /www.docker.com/legal/trademark - guidelines/ 9) https:/ /slack.com/intl/ko - kr/media - kit 10) https:/ /github.com/logos