2020.03.26

칼럼ㅣ깃옵스란?··· '깃'의 장점을 운영으로 가져오다

매트 아사이 | InfoWorld
깃옵스는 개발자와 운영팀 모두에게 매우 좋은 효과를 발휘할 수 있고, 데브옵스가 오랫동안 지향해온 궁극의 특징을 지니고 있다. 

아마 한 번쯤은 깃옵스(GitOps)에 대해 들어봤겠지만, 여전히 모르고 있을 수 있다. 만약 깃옵스가 반드시 깃을 포함하는 것은 아니며, 일반적으로 연결되는 쿠버네티스가 요구되는 것은 아니라고 말한다면 더 애매모호할 수 있다. 해당 용어를 창안한 위브웍스에 따르면 깃옵스는 ‘개발자 중심의 애플리케이션 관리 환경을 가능하게 하는 방법론’이다. 

그래도 혼란스러운가? 단도직입적으로 말하자면 깃옵스는 개발자가 산출물을 더 많이 제어할 수 있도록 하는 방법이다. 한층 더 업그레이드된 데브옵스(DevOps)인 셈이다. 결론은 간단하다. 깃옵스는 개발자가 애플리케이션 운영에서 훨씬 더 큰 역할을 담당할 수 있도록 지원하는 동시에 운영팀의 프로세스도 크게 개선한다.
 
ⓒGetty Images

시작은 깃(Git)이었다
분산 버전 관리 시스템 깃을 발명한 인물은 리눅스의 아버지로 널리 알려진 리누스 토발즈다. 토발즈는 “내가 '히트곡 하나뿐인 가수'가 아니라는 것을 깃이 증명했다"라고 말했다. 그러나 이는 깃의 중요성을 표현하기에 굉장히 부족하다. 그만큼 깃은 중요하다. 깃 이전에도 버전 관리 시스템, 이를테면 서브 버전 등이 있었지만 깃은 2005년 공개된 이후 개발자가 소프트웨어를 구축하는 방식에 혁명을 일으켰다.

애널리스트 로렌스 헥트는 오늘날 깃이 '가장 보편적인' 소프트웨어 개발 요소라고 분석했다. 프로그래밍 커뮤니티 스택 오버플로우(Stack Overflow)의 설문조사에 따르면 2018년 깃을 사용한다고 밝힌 응답자가 78%에 달했다. 소프트웨어 개발사 젯브레인(JetBrains)도 2017년 79%에서 2019년 90%로 깃 사용자 수가 급증했다는 설문조사 데이터를 공개한 바 있다. 그도 그럴 것이 공공 및 개인 깃 저장소에 엄청나게 많은 코드가 있기 때문이다. 

위브웍스 CEO 알렉시스 리처드슨은 "강력한 옵션인 깃을 항상 추천한다. 그러나 깃옵스가 깃에 대한 전문지식이 필요하다고 말한다면 매우 잘못됐다. 깃을 UI로 사용할 필요는 없다. 깃 저장소는 UI가 아닌 '단일 진실의 원천(SSOT)'으로 사용된다"라고 밝혔다. 

이와 관련해 은행의 경우를 예로 들 수 있다. 은행에서는 서브버전 혹은 머큐리얼에 오래된 저장소가 있다. 이 오래된 저장소에도 깃옵스를 쓸 수 있는가? 그렇다. 쓸 수 있다. 실제로 깃옵스의 일부 요소는 2000년대 초부터 등장하기 시작했다.

그러나 대부분의 기업 혹은 대부분의 경우 깃을 이용하면 깃옵스를 제대로 쓸 수 있다. 또한 짧은 시간 내에 큰 성과를 볼 수 있게 해준다. 

쿠버네티스를 활용한 운영
'또 쿠버네티스인가?'라고 생각할 수 있지만, 쿠버네티스는 업계 표준 플랫폼으로 자리 잡았다. 위브웍스에 따르면 깃옵스는 아래의 두 가지를 제공한다. 

• 쿠버네티스 및 클라우드 네이티브 운영 모델: 컨테이너화된 클러스터 및 애플리케이션에 대한 배포, 관리, 모니터링을 결합한 모범 사례 세트를 제공한다. 

• 개발자 중심의 애플리케이션 관리 환경

많은 기업이 소프트웨어 배포 및 관리에서 쿠버네티스를 도입하고 있다. 하지만 아직도 너무 많은 기업이 쿠버네티스 클러스터를 맹목적으로 사용하고 있다. 위브웍스 CTO 코넬리아 데이비스는 IT 부서가 시스템 내부와 전반에 걸쳐 진행되는 작업들을 여러 도구(ex_구성관리, 검색 등)로 확인하려고 하지만 상당 부분이 확인되지 않곤 한다며, 그로 인해 패치 관리가 어려운 것으로 인식됐다고 설명했다. 

이어서 그는 "쿠버네티스로의 이전이 마치 마법처럼 IT 부서의 눈을 멀게 한 것은 아니다"라며, "I이는 이미 쿠버네티스 이전부터 존재했던 문제였다"라고 덧붙였다. 

리처드슨은 "업데이트 이후에도 쿠버네티스가 올바른 상태임을 어떻게 알 수 있는가? 상태가 잘못됐다는 메시지가 뜨는가? 그렇지 않다. 개발자는 전혀 모른다"라고 지적했다. 이처럼 쿠버네티스 사용자들은 업데이트하기 어려운 클러스터에 갇혀 '동결(Frozen)' 상태가 됐다. 

그렇다면 이제 깃옵스로 들어가 보자.

진정한 데브옵스, 즉 깃옵스 경험 
깃옵스 모델은 개발자가 쿠버네티스 전문가가 될 필요 없이 이른바 ‘쿠버네티스 마비’를 치료한다. 리처드슨에 따르면 깃옵스는 자동화된 디렉터를 사용하여 쿠버네티스 클러스터에 변경 사항을 배포한다. 이를 통해 원하는 상태를 선언적으로 정의한 모델에 맞춰 변경 사항을 반영한다. 그는 깃옵스를 아래와 같이 설명했다. 

"클러스터의 모든 항목이 배포 정의서를 통해 업데이트된다면? 현 배포 상태를 확인하고 정의서와 비교하는 일부 에이전트를 클러스터에 설치하면, 해당 에이전트를 정의서에 맞게 변경할 수 있다. 직접 업데이트하는 것이 아니라 배포 정의서를 업데이트하는 것이다. 이를 통해 지속적인 빌드와 배포가 가능해진다."

이밖에 위브웍스는 깃옵스에 대한 상세한 설명을 제공하고 있다. 오픈소스 시장조사업체 레드몽크(Redmonk)의 애널리스트 제임스 거버노어의 설명도 참고할 만하다.

• AWS 리소스 프로비저닝 및 쿠버네티스 배포는 선언적이다. 
• 전체 시스템 상태는 버전 관리하에 있으며, 단일 깃 저장소에 설명돼 있다. 
• 풀 리퀘스트(pull request)에 의해 운영상의 변경이 이뤄진다. 
• 다양한 툴이 차이를 감지하여 슬랙 알림을 통해 사용자에게 통지하고, 동기화 툴을 통해 컨버전스를 활성화한다. 
• 롤백 및 감사 기록도 깃을 통해 제공된다. 

깃옵스는 개발자와 애플리케이션 팀 모두에게 좋은 방법이다. 그러나 흔히 '옵스'라고 불리며 보안, 컴플라이언스, 비용 관리 등을 담당하는 플랫폼 엔지니어링팀에게는 어떨까? 

'옵스'에게 '깃옵스'는 반복성을 통해 큰 가치를 창출한다. 가용성 영역을 다시 백업해야 하는가? 모든 것이 모델링 돼 있기 때문에 플랫폼 엔지니어링 팀은 조정자(reconciler)를 실행해 정의서에 맞춰 항목을 일치시킬 수 있다. 깃의 복구(revert) 및 롤백(rollback), 그리고 포크(fork) 기능을 결합해 운영팀은 안정적으로 배포 및 업그레이드하거나 예전 버전으로 돌아가는 롤백이 가능하다. 보안상의 이점은 말할 필요도 없다. 

간단히 말해 깃옵스는 데브옵스와 관련해 오랫동안 갈망돼 왔던 것일 수 있다. 즉, 운영팀이 업무를 더 잘 처리할 수 있는 동시에 개발자도 운영 업무를 더 감수할 수 있는 좋은 방법론인 것이다.

* 매트 아사이는 AWS의 수석 엔지니이자 오픈소스 이니셔티브(OSI)의 명예 이사이다. ciokr@idg.co.kr



2020.03.26

칼럼ㅣ깃옵스란?··· '깃'의 장점을 운영으로 가져오다

매트 아사이 | InfoWorld
깃옵스는 개발자와 운영팀 모두에게 매우 좋은 효과를 발휘할 수 있고, 데브옵스가 오랫동안 지향해온 궁극의 특징을 지니고 있다. 

아마 한 번쯤은 깃옵스(GitOps)에 대해 들어봤겠지만, 여전히 모르고 있을 수 있다. 만약 깃옵스가 반드시 깃을 포함하는 것은 아니며, 일반적으로 연결되는 쿠버네티스가 요구되는 것은 아니라고 말한다면 더 애매모호할 수 있다. 해당 용어를 창안한 위브웍스에 따르면 깃옵스는 ‘개발자 중심의 애플리케이션 관리 환경을 가능하게 하는 방법론’이다. 

그래도 혼란스러운가? 단도직입적으로 말하자면 깃옵스는 개발자가 산출물을 더 많이 제어할 수 있도록 하는 방법이다. 한층 더 업그레이드된 데브옵스(DevOps)인 셈이다. 결론은 간단하다. 깃옵스는 개발자가 애플리케이션 운영에서 훨씬 더 큰 역할을 담당할 수 있도록 지원하는 동시에 운영팀의 프로세스도 크게 개선한다.
 
ⓒGetty Images

시작은 깃(Git)이었다
분산 버전 관리 시스템 깃을 발명한 인물은 리눅스의 아버지로 널리 알려진 리누스 토발즈다. 토발즈는 “내가 '히트곡 하나뿐인 가수'가 아니라는 것을 깃이 증명했다"라고 말했다. 그러나 이는 깃의 중요성을 표현하기에 굉장히 부족하다. 그만큼 깃은 중요하다. 깃 이전에도 버전 관리 시스템, 이를테면 서브 버전 등이 있었지만 깃은 2005년 공개된 이후 개발자가 소프트웨어를 구축하는 방식에 혁명을 일으켰다.

애널리스트 로렌스 헥트는 오늘날 깃이 '가장 보편적인' 소프트웨어 개발 요소라고 분석했다. 프로그래밍 커뮤니티 스택 오버플로우(Stack Overflow)의 설문조사에 따르면 2018년 깃을 사용한다고 밝힌 응답자가 78%에 달했다. 소프트웨어 개발사 젯브레인(JetBrains)도 2017년 79%에서 2019년 90%로 깃 사용자 수가 급증했다는 설문조사 데이터를 공개한 바 있다. 그도 그럴 것이 공공 및 개인 깃 저장소에 엄청나게 많은 코드가 있기 때문이다. 

위브웍스 CEO 알렉시스 리처드슨은 "강력한 옵션인 깃을 항상 추천한다. 그러나 깃옵스가 깃에 대한 전문지식이 필요하다고 말한다면 매우 잘못됐다. 깃을 UI로 사용할 필요는 없다. 깃 저장소는 UI가 아닌 '단일 진실의 원천(SSOT)'으로 사용된다"라고 밝혔다. 

이와 관련해 은행의 경우를 예로 들 수 있다. 은행에서는 서브버전 혹은 머큐리얼에 오래된 저장소가 있다. 이 오래된 저장소에도 깃옵스를 쓸 수 있는가? 그렇다. 쓸 수 있다. 실제로 깃옵스의 일부 요소는 2000년대 초부터 등장하기 시작했다.

그러나 대부분의 기업 혹은 대부분의 경우 깃을 이용하면 깃옵스를 제대로 쓸 수 있다. 또한 짧은 시간 내에 큰 성과를 볼 수 있게 해준다. 

쿠버네티스를 활용한 운영
'또 쿠버네티스인가?'라고 생각할 수 있지만, 쿠버네티스는 업계 표준 플랫폼으로 자리 잡았다. 위브웍스에 따르면 깃옵스는 아래의 두 가지를 제공한다. 

• 쿠버네티스 및 클라우드 네이티브 운영 모델: 컨테이너화된 클러스터 및 애플리케이션에 대한 배포, 관리, 모니터링을 결합한 모범 사례 세트를 제공한다. 

• 개발자 중심의 애플리케이션 관리 환경

많은 기업이 소프트웨어 배포 및 관리에서 쿠버네티스를 도입하고 있다. 하지만 아직도 너무 많은 기업이 쿠버네티스 클러스터를 맹목적으로 사용하고 있다. 위브웍스 CTO 코넬리아 데이비스는 IT 부서가 시스템 내부와 전반에 걸쳐 진행되는 작업들을 여러 도구(ex_구성관리, 검색 등)로 확인하려고 하지만 상당 부분이 확인되지 않곤 한다며, 그로 인해 패치 관리가 어려운 것으로 인식됐다고 설명했다. 

이어서 그는 "쿠버네티스로의 이전이 마치 마법처럼 IT 부서의 눈을 멀게 한 것은 아니다"라며, "I이는 이미 쿠버네티스 이전부터 존재했던 문제였다"라고 덧붙였다. 

리처드슨은 "업데이트 이후에도 쿠버네티스가 올바른 상태임을 어떻게 알 수 있는가? 상태가 잘못됐다는 메시지가 뜨는가? 그렇지 않다. 개발자는 전혀 모른다"라고 지적했다. 이처럼 쿠버네티스 사용자들은 업데이트하기 어려운 클러스터에 갇혀 '동결(Frozen)' 상태가 됐다. 

그렇다면 이제 깃옵스로 들어가 보자.

진정한 데브옵스, 즉 깃옵스 경험 
깃옵스 모델은 개발자가 쿠버네티스 전문가가 될 필요 없이 이른바 ‘쿠버네티스 마비’를 치료한다. 리처드슨에 따르면 깃옵스는 자동화된 디렉터를 사용하여 쿠버네티스 클러스터에 변경 사항을 배포한다. 이를 통해 원하는 상태를 선언적으로 정의한 모델에 맞춰 변경 사항을 반영한다. 그는 깃옵스를 아래와 같이 설명했다. 

"클러스터의 모든 항목이 배포 정의서를 통해 업데이트된다면? 현 배포 상태를 확인하고 정의서와 비교하는 일부 에이전트를 클러스터에 설치하면, 해당 에이전트를 정의서에 맞게 변경할 수 있다. 직접 업데이트하는 것이 아니라 배포 정의서를 업데이트하는 것이다. 이를 통해 지속적인 빌드와 배포가 가능해진다."

이밖에 위브웍스는 깃옵스에 대한 상세한 설명을 제공하고 있다. 오픈소스 시장조사업체 레드몽크(Redmonk)의 애널리스트 제임스 거버노어의 설명도 참고할 만하다.

• AWS 리소스 프로비저닝 및 쿠버네티스 배포는 선언적이다. 
• 전체 시스템 상태는 버전 관리하에 있으며, 단일 깃 저장소에 설명돼 있다. 
• 풀 리퀘스트(pull request)에 의해 운영상의 변경이 이뤄진다. 
• 다양한 툴이 차이를 감지하여 슬랙 알림을 통해 사용자에게 통지하고, 동기화 툴을 통해 컨버전스를 활성화한다. 
• 롤백 및 감사 기록도 깃을 통해 제공된다. 

깃옵스는 개발자와 애플리케이션 팀 모두에게 좋은 방법이다. 그러나 흔히 '옵스'라고 불리며 보안, 컴플라이언스, 비용 관리 등을 담당하는 플랫폼 엔지니어링팀에게는 어떨까? 

'옵스'에게 '깃옵스'는 반복성을 통해 큰 가치를 창출한다. 가용성 영역을 다시 백업해야 하는가? 모든 것이 모델링 돼 있기 때문에 플랫폼 엔지니어링 팀은 조정자(reconciler)를 실행해 정의서에 맞춰 항목을 일치시킬 수 있다. 깃의 복구(revert) 및 롤백(rollback), 그리고 포크(fork) 기능을 결합해 운영팀은 안정적으로 배포 및 업그레이드하거나 예전 버전으로 돌아가는 롤백이 가능하다. 보안상의 이점은 말할 필요도 없다. 

간단히 말해 깃옵스는 데브옵스와 관련해 오랫동안 갈망돼 왔던 것일 수 있다. 즉, 운영팀이 업무를 더 잘 처리할 수 있는 동시에 개발자도 운영 업무를 더 감수할 수 있는 좋은 방법론인 것이다.

* 매트 아사이는 AWS의 수석 엔지니이자 오픈소스 이니셔티브(OSI)의 명예 이사이다. ciokr@idg.co.kr

X