SharedIT | 묻고 답하기(AMP)

데브옵스와 CI/CD는 무슨 관계가 있는 건가요?


예를들어서 데브옵스는 IT문화로서 개발자와 운영자간에 협업을 효율적으로 해서 어플리케이션을 만들고 운영하는 것이고 이런 좋은 데브옵스 문화를 실현하는 툴이 CI/CD 인가요?  

Tags : 태그가 없습니다.

4개의 답변이 있습니다.

JohnWick
  0 추천 | 일 년 이상 전

간단히 설명하면


DevOps 데브옵스는 개발자가 운영까지 하겠다는 방법론입니다. 개발자가 코딩을 위한 테스트 서버가 필요한데, 이 때 운영자에게 요청한 다음 운영자가 테스트 서버를 만들어줄 때 까지(개발 환경 세팅) 기다려야만 테스트 서버에서 코딩을 할 수 있습니다. 이후 테스트가 끝나면 운영자에게 다시 테스트 서버는 죽이고 실제 운영을 위한 서버를 요청해야 하죠. 매번 운영자에게 개발 환경을 요청해야 합니다.


그래서 이 시간을 아끼기 위해 개발자가 직접 개발 환경을 세팅해서 코딩하고, 테스트가 끝나면 운영 환경까지 만들어서 실제 서비스를 운영하는 방법론을 데브옵스라고 합니다.


CI/CD는 지속적인 통합/지속적인 배포인데, 위 데브옵스에서 설명한 것처럼 개발자가 알아서 개발환경 세팅하고 테스트 하고 실제 운영까지 하는 데에 필요한 일련의 과정들이 있죠? 개발 -> 빌드 -> 테스트 -> 커밋 -> 배포 -> 운영 -> 점검에 대한 이 과정들을 자동화시겠다는 것을 의미합니다. 그리고 이 자동화를 위해 별도의 CI/CD 도구를 사용하는 것이고요. 대표적인 것이 Jenkins입니다.


CI/CD 적용 전에는 개발 -> 빌드 -> 테스트 -> 커밋한 코드에 오류가 발생하면, 제대로 작동하지 않으면 다시 개발 -> 빌드 -> 테스트 -> 커밋 과정을 반복해서 거쳐야 합니다. 이 반복 과정을 통해 오류가 나타나지 않으면 그때서야 배포를 하게 되는 것이구요.


CI/CD 적용 후에는 개발한 코드가 자동으로 빌드 -> 테스트되고 만약 오류가 발생하면 개발자는 오류난 코드만 수정합니다. 그럼 다시 자동으로 코드가 빌드 -> 테스트되며, 만약 에러가 없다면 배포까지 자동으로 착착 되어 개발 생산성이 대폭 향상되는 장점이 있습니다.


정리하면, 데브옵스는 개발자가 운영 업무까지 하겠다, 아니면 반대로 운영자가 개발 업무까지 하겠다는 개발 및 운영 방법론이며, CI/CD는 이렇게 개발 및 운영 과정을 자동화 시켜주는 개발 모델이라고 보시면 됩니다.


wadejun | 일 년 이상 전

답변 너무 감사드립니다!

영업이 이해하기 쉬운 답변 이었습니다 

wansoo
  0 추천 | 일 년 이상 전

여러사람이 함께 개발하려면 개발하는 소스 관리의 자동 통합되는 기능이 협업에 있어 중요하겠고요.

통합이 제대로 되지 않는다면 소스관리가 제대로 되지 않아 수정한 버전 관리도 어렵게 되겠고, 서로간에 소스 충돌 문제, 의사 소통의 문제 등등 여러가지 어려움이 발생하겠는데, 지속적인 통합인 CI ( Continuous Integration )을 통해 개선할 수 있겠고요.

그리고 개발한 운영 소프트웨어가 사용자에게 전달, 운영할 수 있게 배치 시키기 위해 소스 수정하고 재 컴파일 할때 마다 수작업을 해야 한다면 프로그램 배포에 있어 큰 부하가 걸리게 되겠는데...

지속적인 배포인 CD ( Continuous Delivery 또는 Deployment ) 기능은 자동으로 개발, 수정한 소프트웨어가 운영될 수 있는 환경으로 전달될 수 있게 해 주게 되겠고요.

개발자와 운영자간의 협의, 의사 소통이 원활하게 될 수 있으려면 CI/CD 기능이 중요할 수 밖에 없을 것 같네요.

명동쓰레빠
  0 추천 | 일 년 이상 전

요즘은 DevOps 운영체제를 적용하는 프로젝트들이 늘어나는 추세입니다.

deerokgo
  0 추천 | 일 년 이상 전

DevOps 의 

Dev 는 Development를 의미하고

Ops는 Operation을 의미 합니다. 

즉 개발과 운영을 연계해서 운영을 고려한 점진적인 개발 등을 추구하는 것이 목적입니다. 

또, 하나의 워크츨로우 에서 개발과 운영을 관리 합니다

CI CD 는 Continous Integration Continous Development의 약어로 지속적인 개발과 지속적인 통합을 목표로 삼고 있습니다. 

과거에는 개발자와 운영자간 서로 책인 떠넘기기, 협업 안되는 현상 들이 많았는데

데브옵스 등으로 인해 개발자와 운영자가 뗄수 없는 관계가 돼버린거죠

하나의 워크 플로웅에서 관리 되므로 뗄수 없는 것이죠