본문 바로가기

카테고리 없음

CI/CD 란? DevOps 엔지니어의 역할

반응형

CI/CD 란?

 

우리가, 코드를 수정하면 자동으로 배포하는 것.

실제 협업에서는 자동연결을 해놓고, 필요할 때마다  sls deploy로 수동 배포한다.

 

CI

 

CI는 Continuous Intergration 즉, 지속적인 통합이라는 의미이다.

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

 

자동화된 빌드&테스트는 원천 소스코드의 충돌 등을 방어하는 Benefit을 제공한다.

 

CI의 핵심 목표는: 

버그를 신속하게 찾아 해결하고, 

소프트웨어의 품질을 개선하고, 

새로운 업데이트의 검증 및 릴리즈의 시간을 단축시키는 것

 

CD

 

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

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

 

Continuous Delivery는 공유 레포지토리로 자동으로 Release 하는 것,

Continuous Deployment는 Production 레벨까지 자동으로 deploy 하는 것을 뜻한다.

정리하자면, CI가 새로운 소스코드의 빌드, 테스트, 병합까지를 의미하였는데,

CD는 개발자의 변경 사항이 레포지토리를 넘어, 고객의 프로덕션(Production) 환경까지 릴리즈 되는 것을 의미한다.

 

서비스의 사용자는 최대한 빠른 시간 내에 최신 버전의 Production을 제공받을 필요가 있다.

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

 

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



DevOps 엔지니어의 역할

 

CI/CD 자동화는 DevOps 엔지니어의 핵심 업무에 속한다.

 

(출처 : REDHAT)

 

이처럼, DevOps 엔지니어는

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

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

이를 통하여, 고객들에게 안정적이고 신뢰성 높은 서비스 프로덕션을 제공한다.

 

서비스 제품을 개발하는 일도 중요하지만,

고객에게 안정감 있는 서비스를 배포하여 운영하는 일도 중요하다.

 

DevOps 엔지니어가 사용하는 대표적인 CI/CD 툴로는, Jenkins/ Travis CI/ Bamboo 등이 있다.

반응형