DevOps, CI/CD란

이수민·2023년 1월 18일
1

cs

목록 보기
3/4

DevOps

  • Development(개발+테스트) + Operations(운영)
  • DevOps는 하나의 아이디어(새로운 소프트웨어 기능, 개선 요청 또는 버그 수정 등)가 사용자에게 가치를 제공할 수 있도록 운영 환경에서 개발로부터 배포로 진행되는 프로세스의 속도를 높이는 접근 방식을 의미한다.

  • 이러한 접근 방식을 적용하려면 개발 팀과 운영 팀이 자주 커뮤니케이션하고 팀원들과 공감하면서 업무에 접근해야 한다.

  • DevOps를 확립하면 셀프 서비스와 자동화를 통해 다양한 이점과 경쟁력을 얻을 수 있다.

  • 대개 표준 개발 환경에서 코딩 작업을 하는 개발자는 IT 운영 담당자와 긴밀하게 협력하여 소프트웨어 빌드, 테스트, 출시 속도를 가속화할 수 있다.

  • '신속하고 지속적인 소프트웨어 제공을 통한 고객 만족'은 애자일 선언문(Agile Manifesto)의 12가지 원칙 중 첫 번째 원칙이다.

CI/CD

CI

  • Continuous Integration 즉, 지속적인 통합이라는 의미이다.
  • 지속적인 통합이란, 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합하는 것을 의미한다.

(가능하다면 하루에 여러번까지) CI가 필요한 환경에는 어떤 조건들이 있을까?
: 다수의 개발자가 형상관리 툴을 공유하여 사용하는 환경

  • CI의 핵심 목표
    • 버그를 신속하게 찾아 해결
    • 소프트웨어의 품질을 개선
    • 새로운 업데이트의 검증 및 릴리즈의 시간을 단축시키는 것

CD

  • CD는 Continuous Delivery 혹은 Continuous Depolyment 두 용어 모두의 축약어이다.

  • 지속적인 서비스 제공 혹은 지속적인 배포 라는 의미.

    • Continuous Delivery
      • 공유 레포지토리로 자동으로 Release 하는 것
    • Continuous Deployment
      • Production 레벨까지 자동으로 deploy 하는 것
  • (CI가 새로운 소스코드의 빌드, 테스트, 병합까지를 의미하였는데), CD는 개발자의 변경 사항이 레포지토리를 넘어, 고객의 프로덕션(Production) 환경까지 릴리즈 되는 것을 의미한다.

  • CI에서 예로 든 MSA와 같은 환경에서 Agile 방법론이 적용될 경우, 서비스의 사용자는 최대한 빠른 시간 내에 최신 버전의 Production을 제공받을 필요가 있다.

  • 이 때, 소프트웨어가 언제든지 신뢰 가능한 수준의 버전을 유지할 수 있도록 support 하는 것이 CD라고 할 수 있다.

  • 이는 서비스의개발팀과 비즈니스팀(영업, CS팀 등) 간의 커뮤니케이션 부족 문제를 해결해 줌으로써, 배포에 이르기까지의 노력을 최소한으로 단축시켜 준다는 Benefit을 제공한다.

profile
BE 개발자를 꿈꾸는 학생입니다🐣

0개의 댓글