🚀 Languege/DevOps
CI/CD 공부 노트 #2
mini_world
2022. 7. 9. 16:34
https://www.youtube.com/watch?v=3WZoVkvLE4A
3. 개발환경 및 CI/CD의 기본 동작 이해
- 개발 환경의 종류
- 개발자의 로컬 환경
- 통합테스트
- QA환경
- 실유저 프로덕션
- 개발 프로세스
- 개발자가 자신의 PC에서 개발을 진행한다.
- 다른 개발자가 작성한 코드와 차이가 발생하지 않는지 내부 테스트를 진행한다.
- 진행한 내용을 다른 개발자들과 동유하기 위해 git 같은 SCM에 올린다 -> dev 브랜치
- Dev브랜치의 내용을 개발 환경에 배포하기 전에 Lint등 코드 포멧팅을 한다
- 배포하기 위한 빌드 과정을 거친다
- 코드를 배포한다
- 테스트를 진행한다
- 위 과정을 Dev, QA, PRD환경에서 모두 하고 각각 맞는 환경에 배포한다.
- 여러 배포환경의 관리
- 여러 배포환경의 관리에서 핵심은 인프라를 모듈화 하여 어떤것이 변수인지 잘 설정하고 이를 잘 설계하는것
- 예를들어, APP_ENV처럼 현재 배포하고자 하는 것이 무슨 환경인지 앱 내에서 사용하는 다양한 변수들을 환경에 맞게 잘 가져다 쓰는것이 핵심
- 서비스 내부의 변수 뿐 만 아니라 클라우드 리소스를 많이 활용해서 개발하는 요즘에는 클라우드 리소스 내에서 인프라 별 키 관리가 매우 중요해서 System Manager Parameter Store와 같은 키 관리 서비스를 쓰는것 강추
- 예시 배포 환경
- 웹사이트 코드를 작성한다
- 웹사이트 코드를 린트, 웹팩 빌드해서 AWS S3 bucket에 Html파일을 업로드 한다.
- Node.js 백엔드 코드를 typescript 작성한다
- 위 코드를 javascript complie 하고, 테스트 코드를 돌려서 도커 이미지를 만들어 ECR에 업로드 한다
- 업로드한 ECR 이미지로 ECS서비스를 재시작한다. (rolling deploy) --> cd
728x90