Study

DevOps & CI/CD

seomj 2023. 1. 5. 22:19

DevOps

Dev(개발)과 Ops(운용)이 긴밀히 협조, 연계하여 비즈니스 측면의 가치를 높이는 근무 방식과 문화

 

개발 부문과 운용 부문이 긴밀히 연계하고 다양한 방법과 문화를 도입하는 상품이나 서비스 개선에 걸리는 시간을 단축하며, 신속히 비즈니스 요구에 대응하는 것

추상화, 자동화, 공통화, 지속적 통합, 모니터링에 대응 가능한 도구를 도입함으로써 전문성을 배제하거나, 정보를 가시화함으로써 개발 운용의 긴밀한 연계를 촉진시킬 수 있다. 문화 측면에서는 개발과 운용이 공통의 목적의식을 갖고 서로 공감하면서 자율적으로 움직이게 되는 문화를 형성하는 것이 DevOps의 목적 달성으로 이어지는 것을 알 수 있다.

DevOps에서는 PDCA 사이클을 통하여 개선을 한다. 채팅 도구, 이슈 트래킹 시스템, 버전 관리 도구, 지속적 통합을 위한 도구, 인프라 자동 테스트 도구, 모니터링 도구를 조합함으로써 PDCA 사이클을 구성한다.

 

 

CI/CD

애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법

지속적인 통합, 지속적인 서비스 제공, 지속적인 배포

새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제를 해결하기 위한 솔루션

애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공 → CI/CD 파이프라인

 

 

CI

지속적인 통합(Continuous Integration)

지속적인 통합이 제대로 구현되면 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 리포지토리에 병합

여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제를 해결

 

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

 

 

CD

지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)

지속적인 제공(Continuous Delivery): 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리에 자동으로 업로드되는 것

개발팀과 비즈니스팀 간의 가시성과 커뮤니케이션 부족 문제를 해결

 

지속적인 배포(Continuous Deployment): 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미

애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결

 

 

CI/CD 자동화

CI/CD는 지속적 통합 및 지속적 제공의 구축 사례만을 지칭할 때도 있고,

지속적 통합, 지속적 제공, 지속적 배포라는 3가지 구축 사례 모두를 의미하는 것일 수도 있습니다.

결과적으로 CI/CD는 파이프라인으로 표현되는 실제 프로세스를 의미하고, 애플리케이션 개발에 지속적인 자동화 및 지속적인 모니터링을 추가하는 것을 의미

 

 

DevOps 엔지니어

CI/CD를 위한 파이프라인을 구성하고, 이를 자동화 단계까지 끌어 올립니다.

또한, 중간중간 모니터링 지표를 구성하여 개발자들의 개발 방향을 가이드합니다.

고객들에게 안정적이고 신뢰성 높은 서비스 프로덕션을 제공

 

 

CI/CD Tool

  • Jenkins
  • Travis CI
  • Bamboo
  • Circle CI
  • Github Actions
  • etc

 

 

 

<출처>

https://www.redhat.com/ko/topics/devops/what-is-ci-cd

https://seosh817.tistory.com/104

https://artist-developer.tistory.com/24