2021.05.25

칼럼|당신은 쿠버네티스에 대해 완전히 잘못 생각하고 있다

Matt Asay | InfoWorld
쿠버네티스를 중앙집중형 클라우드처럼 사용하는 대신 소규모 팀용 앱 서버처럼 사용해 볼 것을 권한다.

쿠버네티스는 '쿨한' 플랫폼이지만, 당신이 생각하는 이유 때문에 그런 것은 아니다. 한때 사람들은 쿠버네티스가 오픈스택처럼 새롭고 멋진 (그러면서 오픈스택처럼 온갖 문제를 일으키지 않는) 클라우드 기술이 될 것이라 전망하며 많은 관심을 기울였다. 하지만 쿠버네티스는 이런 기대에 부응하지 못했다. 또한 자유로운 이식성을 제공해주는 마법의 치료약도 아니었다. 사실 거기에 근접하지도 못했다.
 
ⓒGetty Images Bank

대신, 쿠버네티스는 필자가 기사에서 썼듯이 새로운 리눅스가 되었다. 혹은 좀 더 정확히 말해 위브웍스(Weaveworks)의 CEO인 알렉시스 리처드슨이 인터뷰에서 표현한 것처럼 어쩌면 새로운 앱 서버일 수도 있다. 그는 기업들이 자체 클라우드를 구축하기보다 "개발팀으로 하여금 짧은 수명 주기를 가진 쿠버네티스 클러스터를 앱 서버처럼 사용해보라"고 주장했다. 

이게 정확히 무슨 의미일까?

전문 기술용어와 까다로운 표현
리처드슨과 필자가 파이어크래커를 기반으로 하는 마이크로VM을 이용해 베어메탈에서 멀티클러스터 쿠버네티스를 구동하는 법에 관해 통화를 나눌 때의 이야기다. 그와 통화를 시작한 지 5초가 흘렀을 때 눈이 감길 정도로 지루해졌다. 그는 무려 자신의 회사 블로그 게시물을 인용하며 다음과 같이 말했따.

"혼합 모드가 엣지 시나리오에 적합할 뿐만 아니라, 제어 영역의 노드를 전용 베어메탈 서버에서 마이크로VM으로 이동함으로써, 베어메탈 쿠버네티스 클러스터의 관리 효율성을 훨씬 높일 수 있다. 이로써 베어메탈 풀에 요구되는 전체 노드의 개수를 대폭 줄일 수 있다!" 

필자의 회사가 파이어크래커를 오픈소스 프로젝트로 출시한 점을 감안해 대화를 이어나가려고 애썼다. 하지만 그럴 수 없었다. 통신사들의 "강력한 격리 기능과 리소스 제어 기능이라는 동일한 하드웨어에서 신호 기능, 관리 기능, 웹 및 고객 애플리케이션과 더불어 '네트워크 기능' (5G 워크로드)을 구현할 수 있는 5G 애플리케이션을 출시한다"라는 표현에 흥분할 수가 없었다. 

누군가에게는 의미가 있을 수 있겠지만, 필자에게는 지루했다.

이 지점에서 리처드슨은 "제가 맞는 말을 하고 있는 건가요? 여보세요? 제 말 들리시나요?”라고 말했다. 전화가 끊어진 척을 할까 생각했다. 그때 그는 이것이 "최소한의 자원만으로도 쿠버네티스 클러스터를 효율적으로 관리할 수 있는 방법"이라고 말했다. 필자는 흥미를 약간 되찾았다.

앱 서버로서의 쿠버네티스
그가 쿠버네티스를 리눅스나 앱 서버에 빗댄 것은 적절한 비유였다. 제이보스와 BEA의 앱 서버가 유행하던 시기에 기술 분야에서 커리어를 쌓은 필자에게는 그랬다. 앱 서버에는 애플리케이션 구동에 사용할 수 있는 포괄적인 기능들이 모여 있다. 사용자는 애플리케이션에 기능을 삽입하거나, 혹은 기능을 먼저 실행한 다음 그 위에 애플리케이션을 실행하는 방식으로 애플리케이션을 구동할 수 있다. 이 글에서는 길게 얘기하지 않겠지만, 기업에서 많이 사용된다. 

앱 서버 모델에서, 애플리케이션의 수명 주기는 해당 애플리케이션의 스택 또는 클러스터의 수명 주기와 관련 있다. 인프라의 경우, 필요하지 않으면 끈 다음 버리면 된다. 클라우드는 다르다. 클라우드에서 실행되고 있는 리소스는 영구적이지 않더라도, 클라우드 자체는 영구적이다. 클라우드는 누군가가 관리하는 이상, 사용자의 필요와 무관하게 계속 존재한다. 리처드슨은 "아마존, 구글, 마이크로소프트가 클라우드를 구축하게 하고, 기업 개발팀은 앱 서버처럼 수명이 짧은 쿠버네티스 클러스터를 운영하게 하라"고 조언한다. 

쿠버네티스를 앱 서버처럼 사용해보라는 리처드슨의 생각 속에는 엔터프라이즈 IT에 유효한 원칙이 내포돼 있다. 바로, 개발팀을 자유롭게 만들어야 한다는 원칙이다. 그는 "실제로 중앙집중형 IT에서 엔터프라이즈 클러스터 리소스를 조달하는 대신 각 애플리케이션 팀이 쿠버네티스 클러스터를 이용해 자체 인프라를 구축하게 하는 것이 훨씬 낫다"라고 말했다.

각 개발 팀이 거대한 쿠버네티스 클러스터로부터 리소스를 빌려오도록 하는 것보다 소규모 팀 차원에서 관리 가능한 단일 사용 애플리케이션 또는 애플리케이션 그룹을 사용하도록 권장하는 것이 더 좋은 전략이라는 것이다. 그는 "쿠버네티스를 사용하는 베스트 프랙티스는 쿠버네티스를 클라우드처럼 관리하기보다 쿠버네티스 클러스터와 쿠버네티스 기반 애플리케이션을 다양하게 사용하는 것”이라고 말했다.

이는 쿠버네티스가 복잡하고 어렵다는 기존의 생각과 대치되는 것이다. 글쎄, 아마 복잡하고 어려운 측면이 있을 것이다. 그러나 그런 어려움은 쿠버네티스를 앱서버처럼 이용하기보다 중앙집중형 클라우드처럼 이용하려는 데서 종종 비롯된다. 리처드슨은 이런 측면이 자율성과도 관련있다며 설명을 이어갔다.

그는 "개발팀에게 운영을 맡기면 생산성이 높아질 것이다. 뭔가 잘못됐을 때 개발팀이 수정할 수 있도록 해줄 필요가 있다. 권한이 없으면, 개발팀이 보안과 성능을 책임질 수 없다. 위브웍스에서는 개발팀에게 자율성을 부여하고 있다. 쿠버네티스와 깃옵스는 큰 도움이 된다. 개발팀이 인프라, 클러스터, 스택을 만든 뒤 언제든 중단할 수 있기 때문이다. 필요에 따라 언제든지 만들 수 있다. 과거에는 개발자들이 톰캣을 자율적으로 시작하고 멈추곤 했다. 다른 사람의 허락을 굳이 받을 필요는 없었다. 이것이 쿠버네티스가 나아갈 길이다."

그이 이런 시각은 현대 IT 부문이 감안할 만한 혁신적인 비전이기도 하다. 또한 전문 기술용어로 지루하게 시작됐던 리처드슨과의 대화가 실제 의미하는 바이기도 했다. 그는 "엣지 워크로드 등 광범위한 부문의 효율성을 증진시킬 수 있다는 점을 블로그 게시물을 통해 알리고 있는 중이다"라고 말한다. 왜 리처드슨은 처음부터 그렇게 말하지 않은 걸까?

*Matt Asay는 아마존 웹 서비스(AWS)의 Principal이다. 어도비의 개발자 에코시스템 총괄, 몽고DB의 비즈니스 개발, 마케팅, 커뮤니티 부문 부사장을 역임한 바 있다. ciokr@idg.co.kr
 



2021.05.25

칼럼|당신은 쿠버네티스에 대해 완전히 잘못 생각하고 있다

Matt Asay | InfoWorld
쿠버네티스를 중앙집중형 클라우드처럼 사용하는 대신 소규모 팀용 앱 서버처럼 사용해 볼 것을 권한다.

쿠버네티스는 '쿨한' 플랫폼이지만, 당신이 생각하는 이유 때문에 그런 것은 아니다. 한때 사람들은 쿠버네티스가 오픈스택처럼 새롭고 멋진 (그러면서 오픈스택처럼 온갖 문제를 일으키지 않는) 클라우드 기술이 될 것이라 전망하며 많은 관심을 기울였다. 하지만 쿠버네티스는 이런 기대에 부응하지 못했다. 또한 자유로운 이식성을 제공해주는 마법의 치료약도 아니었다. 사실 거기에 근접하지도 못했다.
 
ⓒGetty Images Bank

대신, 쿠버네티스는 필자가 기사에서 썼듯이 새로운 리눅스가 되었다. 혹은 좀 더 정확히 말해 위브웍스(Weaveworks)의 CEO인 알렉시스 리처드슨이 인터뷰에서 표현한 것처럼 어쩌면 새로운 앱 서버일 수도 있다. 그는 기업들이 자체 클라우드를 구축하기보다 "개발팀으로 하여금 짧은 수명 주기를 가진 쿠버네티스 클러스터를 앱 서버처럼 사용해보라"고 주장했다. 

이게 정확히 무슨 의미일까?

전문 기술용어와 까다로운 표현
리처드슨과 필자가 파이어크래커를 기반으로 하는 마이크로VM을 이용해 베어메탈에서 멀티클러스터 쿠버네티스를 구동하는 법에 관해 통화를 나눌 때의 이야기다. 그와 통화를 시작한 지 5초가 흘렀을 때 눈이 감길 정도로 지루해졌다. 그는 무려 자신의 회사 블로그 게시물을 인용하며 다음과 같이 말했따.

"혼합 모드가 엣지 시나리오에 적합할 뿐만 아니라, 제어 영역의 노드를 전용 베어메탈 서버에서 마이크로VM으로 이동함으로써, 베어메탈 쿠버네티스 클러스터의 관리 효율성을 훨씬 높일 수 있다. 이로써 베어메탈 풀에 요구되는 전체 노드의 개수를 대폭 줄일 수 있다!" 

필자의 회사가 파이어크래커를 오픈소스 프로젝트로 출시한 점을 감안해 대화를 이어나가려고 애썼다. 하지만 그럴 수 없었다. 통신사들의 "강력한 격리 기능과 리소스 제어 기능이라는 동일한 하드웨어에서 신호 기능, 관리 기능, 웹 및 고객 애플리케이션과 더불어 '네트워크 기능' (5G 워크로드)을 구현할 수 있는 5G 애플리케이션을 출시한다"라는 표현에 흥분할 수가 없었다. 

누군가에게는 의미가 있을 수 있겠지만, 필자에게는 지루했다.

이 지점에서 리처드슨은 "제가 맞는 말을 하고 있는 건가요? 여보세요? 제 말 들리시나요?”라고 말했다. 전화가 끊어진 척을 할까 생각했다. 그때 그는 이것이 "최소한의 자원만으로도 쿠버네티스 클러스터를 효율적으로 관리할 수 있는 방법"이라고 말했다. 필자는 흥미를 약간 되찾았다.

앱 서버로서의 쿠버네티스
그가 쿠버네티스를 리눅스나 앱 서버에 빗댄 것은 적절한 비유였다. 제이보스와 BEA의 앱 서버가 유행하던 시기에 기술 분야에서 커리어를 쌓은 필자에게는 그랬다. 앱 서버에는 애플리케이션 구동에 사용할 수 있는 포괄적인 기능들이 모여 있다. 사용자는 애플리케이션에 기능을 삽입하거나, 혹은 기능을 먼저 실행한 다음 그 위에 애플리케이션을 실행하는 방식으로 애플리케이션을 구동할 수 있다. 이 글에서는 길게 얘기하지 않겠지만, 기업에서 많이 사용된다. 

앱 서버 모델에서, 애플리케이션의 수명 주기는 해당 애플리케이션의 스택 또는 클러스터의 수명 주기와 관련 있다. 인프라의 경우, 필요하지 않으면 끈 다음 버리면 된다. 클라우드는 다르다. 클라우드에서 실행되고 있는 리소스는 영구적이지 않더라도, 클라우드 자체는 영구적이다. 클라우드는 누군가가 관리하는 이상, 사용자의 필요와 무관하게 계속 존재한다. 리처드슨은 "아마존, 구글, 마이크로소프트가 클라우드를 구축하게 하고, 기업 개발팀은 앱 서버처럼 수명이 짧은 쿠버네티스 클러스터를 운영하게 하라"고 조언한다. 

쿠버네티스를 앱 서버처럼 사용해보라는 리처드슨의 생각 속에는 엔터프라이즈 IT에 유효한 원칙이 내포돼 있다. 바로, 개발팀을 자유롭게 만들어야 한다는 원칙이다. 그는 "실제로 중앙집중형 IT에서 엔터프라이즈 클러스터 리소스를 조달하는 대신 각 애플리케이션 팀이 쿠버네티스 클러스터를 이용해 자체 인프라를 구축하게 하는 것이 훨씬 낫다"라고 말했다.

각 개발 팀이 거대한 쿠버네티스 클러스터로부터 리소스를 빌려오도록 하는 것보다 소규모 팀 차원에서 관리 가능한 단일 사용 애플리케이션 또는 애플리케이션 그룹을 사용하도록 권장하는 것이 더 좋은 전략이라는 것이다. 그는 "쿠버네티스를 사용하는 베스트 프랙티스는 쿠버네티스를 클라우드처럼 관리하기보다 쿠버네티스 클러스터와 쿠버네티스 기반 애플리케이션을 다양하게 사용하는 것”이라고 말했다.

이는 쿠버네티스가 복잡하고 어렵다는 기존의 생각과 대치되는 것이다. 글쎄, 아마 복잡하고 어려운 측면이 있을 것이다. 그러나 그런 어려움은 쿠버네티스를 앱서버처럼 이용하기보다 중앙집중형 클라우드처럼 이용하려는 데서 종종 비롯된다. 리처드슨은 이런 측면이 자율성과도 관련있다며 설명을 이어갔다.

그는 "개발팀에게 운영을 맡기면 생산성이 높아질 것이다. 뭔가 잘못됐을 때 개발팀이 수정할 수 있도록 해줄 필요가 있다. 권한이 없으면, 개발팀이 보안과 성능을 책임질 수 없다. 위브웍스에서는 개발팀에게 자율성을 부여하고 있다. 쿠버네티스와 깃옵스는 큰 도움이 된다. 개발팀이 인프라, 클러스터, 스택을 만든 뒤 언제든 중단할 수 있기 때문이다. 필요에 따라 언제든지 만들 수 있다. 과거에는 개발자들이 톰캣을 자율적으로 시작하고 멈추곤 했다. 다른 사람의 허락을 굳이 받을 필요는 없었다. 이것이 쿠버네티스가 나아갈 길이다."

그이 이런 시각은 현대 IT 부문이 감안할 만한 혁신적인 비전이기도 하다. 또한 전문 기술용어로 지루하게 시작됐던 리처드슨과의 대화가 실제 의미하는 바이기도 했다. 그는 "엣지 워크로드 등 광범위한 부문의 효율성을 증진시킬 수 있다는 점을 블로그 게시물을 통해 알리고 있는 중이다"라고 말한다. 왜 리처드슨은 처음부터 그렇게 말하지 않은 걸까?

*Matt Asay는 아마존 웹 서비스(AWS)의 Principal이다. 어도비의 개발자 에코시스템 총괄, 몽고DB의 비즈니스 개발, 마케팅, 커뮤니티 부문 부사장을 역임한 바 있다. ciokr@idg.co.kr
 

X