CI

(Continuous Integration)

 

CI는 문자 그대로 해석하면 지속적 통합이라는 뜻이다.

혼자 개발하면 상관 없지만 여러명이 개발하는 경우

코드 통합이 필요하다.

통합을 위해 보통 SVN, GIT과 같은 것이 사용된다.

 

그런데 코드 통합도 중요하지만

통합된 코드가 정상적으로 작동하는지 테스트는 더욱 더 중요하다.

그렇지만 테스트를 매번한다는것은 코드가 많아질수록 노력과 시간이 많이 든다.

그래서 테스트 자동화가 필요하다.

 

이걸 지속적으로 통합하여 잘 관리하자는 의미이다.


CD

(Continuous Delivery 또는 Deploy )

 

다음은 CD를 알아보자.

CD는 문자 그대로 해석하면 지속적 배포이다.

리스크가 없는 클린한 상태의 개발된 코드를

안전하게 배포될 수 있도록 지속적으로 관리하자는 의미이다.

 

요약

CI - 빌드 및 테스트 자동화
CD - 배포 자동화

 

'DevOps' 카테고리의 다른 글

DevOps란  (0) 2021.11.30

DevOps가 뭘까?

구인 구직 사이트를 보다가 보면 'DevOps개발자 구함'이라는 문구를 종종 본다.

궁금해서 위키백과를 찾아보았다.

개발(Development)과 운영(Operations)의 합성어

 

목적

 

운영 프로세스의 예측 가능성, 효율성, 보안, 유지보수 가능성을 극대화하는 것이 목적이다.

 

DevOps의 특징

 

하나의 팀

개발 부터 배포 및 테스트 까지 각 프로세스 별로 하나의 팀으로 구성된다.

DevOps 프로세스
  1. 계획 - 목적을 수행하기 앞서 방법이나 절차 등을 미리 생각하여 계획.
  2. 코드 - 코드 개발 및 검토, 버전 관리 도구, 코드 병합
  3. 빌드 - 지속적 통합(CI) 도구, 빌드 상태
  4. 테스트 - 테스트 및 결과가 성능을 결정
  5. 패키지 - 애플리케이션 디플로이 이전 단계
  6. 릴리스 - 변경사항 관리, 릴리스 승인, 릴리스 자동화
  7. 구성 - 인프라스트럭처 구성 및 관리, IaC(Infrastructure as Code) 도구
  8. 모니터링 - 애플리케이션 성능 모니터링, 최종 사용자 경험.

 

공유된 지표

개발자, 운영자, 테스터 등 모든 팀원들이

개발 뿐만아니라 서비스가 운영에서 잘 돌아가고 있는지, 사용자의 반응은 어떤지

알아볼 수 있는 공통된 지표가 필요하다.

 

반복적인 일은 자동화

CI/CD를 이용해서 빌드-배포-테스트 프로세스를 자동화 해야한다.

 

이슈 공유

장애나 이슈가 있을 때 혼자 끙끙 대지말고 공유를 해야한다.

 

정기배포

서비스가 부족한 부분들은 짧은 주기의 정기배포하여

고객들의 목소리를 반영하여야 한다.

 

요약

개발자들과 운영자들을 서로 잘 융합시키고 의사소통이 원할하게 하기 위한 개발 방법론

'DevOps' 카테고리의 다른 글

CI/CD 란?  (0) 2021.11.30

+ Recent posts