CI/CD

김나율·2022년 12월 7일
0

section4

목록 보기
7/9

◎개발 프로세스의 발전

‣ 개발프로세스(= 소프트웨어 개발 프로세스 모델)

: 소프트웨어 개발 생명주기를 기반으로 만들어졌다.

  • 전통적인 개발 프로세스
    : 요구분석 => 설계 => 개발 => 테스트 => 유지보수
    -폭포수 개발 방식: 한 방향으로만 프로세스가 진행되는 개발 과정
    • 테스트
      -시스템 테스트: 모든 모듈을 통합한 후 최종적으로 완성된 요구사항을 만족하는지 확인
      -알파 테스트: 완전히 개발된 시스템을 개발 현장에서 비공개로 테스트하는 것
      -베타 테스트: 고객의 실제 사용 환경에서 수행되는 테스트
    • 한계
      => 다양한 테스트 방식을 도입했음에도 사용자가 항상 최신 상태로 업데이트를 해줘야하며, 버그 수정된 버전을 유저에게 즉각적으로 전달하기 어렵다.
  • 애자일 방식
    : 짧은 주기의 개발 사이클을 계속해서 반복

    => SaaS를 개발하는데 적합
    (SaaS란, 클라우드 서비스의 한 방식으로 브라우저에 접속하기만 해도 새 버전을 즉시 사용할 수 있는 서비스 방식)

‣DevOps

  • Dev(개발팀): 잦은 배포및 업데이트, 애플리케이션을 통해 새로운 기능 제공
  • Ops(운영팀): 프로덕션 앱의 안정성 확보, 인프라 관리, 모니터링 및 제어
    => 코드 통합, 테스트, 배포 과정을 통합
    => 지속적 통합 및 배포(CI/CD)

◎CI/CD

‣CI/CD

  • CI
    : 개발자를 위한 자동화 프로세스인 지속적인 통합
    • 단계
    1. Code: 개발자가 코드를 원격 코드 저장소에 push하는 단계
    2. Build: 원격 코드 저장소로부터 코드를 가져와 유닛 테스트후 빌드하는 단계
    3. Test: 코들 빌드의 결과물이 다른 컴포넌트와 잘 통합되는지 확인하는 과정
  • CD
    : 지속적인 서비스 제공 및 지속적인 배포
    • 단계
    1. Release: 배포 가능한 소프트웨어 패키지 작성
    2. Deploy: 프로비저닝을 실행하고 서비스를 사용자에게 노출한다.
    3. Operate: 서비스 현황을 파악하고 생길수 있는 문제를 감지한다.
    • 흔한 사례
      => Github Page: 지정해둔 디렉터리에 정해진 방식에 따라 잘 커밋하기만 하면, Github Page가 알아서 해당 index.html파일과 해당 디렉터리에 있는 파일을 잘 번들링해서 Github page 서버에 업로드한다.

‣CI/CD 파이프라인

  • 배포 자동화
    : 한번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것
  • CI/CD 파이프라인
    : 수없이 진행되는 배포과정을 자동화시키는 방법
    • 파이프라인 단계
      1. Source 단계: 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우, 이를 감지하고 다음 단계로 전달하는 작업
      2. Build 단계: Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공한다. 생성된 결과물을 다음 단계로 전달하는 작업 수행.
      3. Deploy 단계: Build 단계로부터 전달받은 결과물을 실제 서비스에 반영하는 작업 수행

◎Github Action

: Github가 공식적으로 제공하는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼

  • YAMIL(Yet Another Markup Language)
    : 사람이 읽을 수 있는 데이터 직렬화 언어
    • 확장자: .yaml or .yml

◎Github Action 실습

  • 먼저 .github의 workflows 폴더안에 'client.yml'파일을 추가해준다.
  • 밑의 코드를 넣어준다.
    -빈칸을 매우 조심해야한다!
    -AWS access key를 절대 하드코딩하지 말아야한다....
    했다가 메일 날라오고 그래서 멘붕이었다..주의!!!
  • 나머지는 다했는데 근데 왜...에러가 계속...

0개의 댓글