[ASC] week2. CI/CD

abi hong·2023년 6월 22일

AWS

목록 보기
3/11

DevOps(Development + Operation)

개발과 운용 간의 간극을 줄이자 !

DevOps 5 Principles

  • Culture
    DevOps는 사람 간의 문제를 해결하기 위한 방법 → 고객의 만족은 개발과 운용 모두의 책임
  • Automation
    개발과 테스트, 지속적 배포의 핵심
    → 자동화를 통해 속도와 안정성을 갖추고 변경에 유연하고 탄력적인 서비스 개발
  • Lean
    가치가 낮은 활동은 제거, 빠르고 적극적이고 agile하게 움직이자
    → 실패를 인정하고 지속적으로 개선
  • Measurement
    측정을 통해 축적한 데이터는 곧 피드백이 되고 이는 지속적인 개선에 필수적
  • Sharing
    개발자와 운영자는 개발의 모든 라이프 사이클에 관여하고 함께함

⇒ DevOps는 어떠한 요구사항을 효율적으로 만족시키기 위해 일을 자동화하며, 변경 지표들을 측정, 공유하고 이 모든 결과물들을 지속적으로 축적해 나아가는 문화, 철학, 방법론, 기술

CI/CD( =/= DevOps)

소프트웨어 배포 속도와 안정성을 높이기 위한 방법
배포과정을 자동화해서 짧은 주기로 배포하는 DevOps의 핵심 프로세스

  • CI(Continuous Integration : 지속적 통합)
    여러 개발자가 코드 변경사항을 공유 저장소에 지속적으로 병합하는 소프트웨어 개발 방식
    → 개발 초기에 오류와 충돌을 미리 발견해 실행이 가능한 상태로 코드를 유지하는 것
    → 버그를 신속히 찾아 해결하고, 소프트웨어 배포의 시간을 단축하는 것

  • CD(Continuous Delivery / Deployment : 지속적 제공(or 배포))
    프로덕션 환경에 릴리스하기 위한 코드 변경이 자동으로 빌드, 테스트 및 준비되는 소프트웨어 개발 방식
    → 지속적 제공(D for ‘Delivery’)
    - 프로덕션 환경에서 배포할 코드베이스를 확보하는 것
    - 개발자가 애플리케이션에 적용한 변경 사항이 테스트를 거쳐 VCS에 자동으로 업로드
    - 운영팀은 VCS에서 애플리케이션을 실시간으로 프로덕션 환경에 배포
    → 지속적 배포(D for ‘Deployment’)
    - 개발자가 애플리케이션에 적용한 변경 사항을 VCS에서, 고객이 사용가능한 프로덕션 환경까지 자동으로 릴리즈
    - 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 과부하 문제해결

CI/CD 적용하기

0개의 댓글