-
Notifications
You must be signed in to change notification settings - Fork 8
CD 파이프라인 구축
김경미 edited this page Oct 16, 2024
·
7 revisions
CD : Continuous Deployment, 지속적 배포
개발자의 변경 사항을 레포지토리에서 프로덕션으로 릴리스하는 것을 자동화하여 고객이 사용할 수 있도록 한다
기본 정보는 CI 파이프라인 구축 을 참고
Self-hosted Runner 란?
Github Actions에서 사용자가 지정하는 로컬 컴퓨팅 자원으로 빌드를 수행하도록 설정하는 기능입니다.
우리는 Linux의 armx64 을 사용한다
- 폴더 생성
mkdir actions-runner && cd actions-runner
- 가장 최신의 Runner 패키지 다운로드
curl -o actions-runner-linux-arm64-2.317.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.317.0/actions-runner-linux-arm64-2.317.0.tar.gz
- 다운로드 받은 압축 파일 압축 해제
tar xzf ./actions-runner-linux-arm64-2.317.0.tar.gz
- 저장소 연결
./config.sh --url [repository url] --token [github token]
- runner 프로그램 실행
nohup ./run.sh &
- job 실행 환경 설정
runs-on: self-hosted
우리는 secrets.WORK_DIRECTORY 가 필요하니,
WORK_DIRECTORY
의 값을 설정한다.
build.yml 파일 이름은 가장 적절한 이름으로 네이밍한다.
name: CI # workflow 이름
- workflow 이름을 적절하게 네이밍
- workflow 안에는 여러 개의 job이 존재
on:
push:
branshes: # 설정된 브랜치
- branch1
on:
pull_request:
branshes: # 설정된 브랜치
- branch1
이 외에도 실행 조건은 다양하다.
jobs:
build: # jar 파일 빌드해주는 job
# ...
deploy: # 서버 배포를 해주는 job
#...
job 명 : build
build:
runs-on: ubuntu-latest # 작업 환경: 가상 환경 우분투로
env: # 필요한 환경 변수 제작
build-directory: ./backend
steps: # 입력된 작업 순서대로 실행
# 작업 실행
job 명 : deploy
deploy:
needs: build # job 명이 build인 job이 성공하면 작동한다
runs-on: self-hosted # 작업 환경: self-hosted runner 환경에서
steps: # 입력된 작업 순서대로 실행
# 작업 실행
- 백엔드 코드 컨벤션
- 백엔드 기술 스택 및 선정 이유
- 각종 인스턴스 설정 파일 및 구성 위치 가이드
- ERD (24.09.27)
- 백엔드 CI CD 동작 프로세스
- 로컬 DB 환경 설정
- 백엔드 로깅 전략
- 백엔드 로그 모니터링 구성도
- 스프링 메트릭 모니터링 구성도
- Flyway 로 스키마 관리
- 코드잽 서버 구성도
- Git Submodule 사용 메뉴얼
- 프론트엔드 코드 컨벤션
- 프론트엔드 기술 스택 및 선정 이유
- 프론트엔드 서비스 타겟 환경 및 브라우저 지원 범위 선정
- 프론트엔드 모니터링 및 디버깅 환경 구축
- 프론트엔드 테스트 목록
- 프론트엔드 라이브러리 기술 검토
- 프론트엔드 개발서버, 운영서버 빌드 및 배포 환경 구분
- 목표했던 타겟 환경과 디바이스에서 서비스 핵심 기능 동작 확인
- 프론트엔드 접근성 개선 보고서
- EC2 로그 확인 방법
- VSCode를 통한 EC2 인스턴스 SSH 연결 방법
- 터미널을 통한 EC2 인스턴스 SSH 연결 방법
- NGINX 설정 파일 접근 및 적용 방법
- DB 접속 및 백업 방법
- [QA] 배포 전 체크리스트
- CI 파이프라인 구축
- CD 파이프라인 구축
- 백엔드 CI CD 트러블슈팅
- Lombok Annotation Processor 의존성을 추가한 이유
- 2차 스프린트 기준 ERD
- DTO 검증하기
- ProblemDetail
- Fork된 레포지토리 PR에서 CI Secrets 접근 문제 해결
- AWS CloudWatch 모니터링
- 스프링 메트릭 모니터링 구축 방법
- 로깅과 Logback에 대해 알아보아요.
- 백엔드 CD 파이프라인 Ver.2
- 요청, 응답 로그에 correlationId 를 추가하자!
- 3차 스프린트 기준 ERD
- 더미데이터 생성하고 실행하기
- 쿼리 성능 개선 결과
- 테이블별 인덱스 설정 목록
- 사용자 증가 시 발생할 수 있는 문제 상황과 개선 방안
- k6를 사용한 서버 부하 테스트
- 6차 스프린트 기준 ERD
- Query Performance Improvement Results
- 테스트 전략 및 CI 설정
- CI CD 구조
- 배포 전, 로컬에서 로그인 기능 포함 테스트해보는 법
- stylelint 적용기
- 내 작업 브랜치 중간에 Merge된 동료의 작업물을 넣고 싶다면 pull vs rebase
- [TS] Webpack config
- [TS] Webpack 환경에서 MSW v2 이슈
- [TS] webpack에서 react‐router‐dom 적용 안됨
- 2024.07.28 새 기획 회의
- 2024.07.26 2차 데모데이 후 회의
- 2024.07.11 백엔드 논의 좀 할게요
- 2024.07.11 백엔드 ERD 회의
- 2024.07.09 깃 브랜치 전략, PR 템플릿 회의
- 2024.07.03 주제 선정 회의
- 2023.07.03 팀빌딩데이 킥오프 회의
- 2023.08.07 3차 스프린트 중간회고