클라우드처럼 생각하기② ' 오픈소스와 이너소스 – 오픈하면 혁신이 보인다 '

클라우드처럼 생각하기2
: 오픈소스와 이너소스 – 오픈하면 혁신이 보인다
오픈소스 스타일의 협업으로 신속한 고객 중심의 혁신 촉진

혁신 속의 혁신

최근 몇 년 동안 혁신의 방법 자체가 혁신이 되어왔고, 이러한 ‘혁신 속의 혁신’으로 인해 시장 선두 기업들도 업무 방식을 탈바꿈하고 있습니다. 폐쇄형 혁신에 그치지 않고 개방형 혁신이 새로운 스타일의 혁신을 주도하게 된 것입니다. 이러한 개방성은 반드시 기업 바깥으로 나가야하는 것은 아닙니다.

협업

아이디어와 관점은 어디에서든 나올 수 있습니다. 때로는 관점이 다른 사람들의 다양한 아이디어가 합쳐져 새롭고 혁신적인 것이 창조되기도 하죠.

오픈소스 컨테이너 관리 플랫폼인 쿠버네티스(Kubernetes)가 좋은 예입니다. 구글이 쿠버네티스를 처음 출시했을 때, 데이터베이스와 같은 상태 기반(state-based)의 워크로드를 실행하는 것이 굉장히 어려웠습니다. 컨테이너가 예약되고 이동될 때, 무상태(stateless) 12 팩터 앱(12-factor application)과 MySQL 같은 데이터베이스는 차이가 있기 때문이죠. 그래서 레드햇(Red Hat)과 구글의 개발자가 협력해 쿠버네티스에서 애플리케이션 상태를 설명하고 처리할 수 있는 스테이트풀셋(StatefulSets)을 만들었습니다. 여러 기업의 개발자들이 협력하여 아이디어를 실현해낸 것입니다.
무상태 컨테이너 워크로드를 실행할 수 있는 기능은 새로운 것이 아닙니다. Heroku와 Cloud Foundry 같은 서비스로서의 플랫폼(Platform as a Service; PaaS)이 수년 동안 제공해 온 기능이죠. 구글은 내부 컨테이너 관리와 짝을 이루는 자사 파일 시스템을 활용하여 컨테이너에서 스테이트풀(stateful) 워크로드를 실행하는 방법을 찾아냈습니다. 여기서 새로운 점은 모든 사람이 사용할 수 있는 코모디티 스토리지(commodity storage)로 스테이트풀 워크로드를 처리할 수 있다는 것입니다.

이 협업이 가능했던 이유는 쿠버네티스가 공개적으로 개발되었기 때문입니다. 덕분에 다른 조직에 속한 전문가들까지 협력할 수 있어 성공적인 결과를 이끌어냈습니다.

다음 단락에서 알 수 있듯이, 개방형 혁신은 기업 외부와의 협력에만 국한되지 않습니다.

빌딩 블록

개방성은 협업을 통한 혁신뿐 아니라 또 다른 이점도 제공합니다. 공개적 개발로 다른 사람들의 작업에 쉽게 접근 가능해 빌딩 블록 방식을 사용할 수 있죠. 이를 위해 라이브러리 또는 지원 애플리케이션을 소스코드로 사용하거나 애플리케이션 인터페이스(API)를 활용하는데, 몇 가지 예를 통해 자세히 설명하겠습니다.

WordPress는 전체 웹사이트의 30% 이상을 차지하는 인기 있는 예시입니다. 널리 사용될 뿐 아니라 다른 애플리케이션(예: MySQL)을 의존적으로 활용하여 구축되므로 다른 소프트웨어 라이브러리(예: jQuery, Farbtastic)에 의존하는 예제 애플리케이션도 제공하죠. 덕분에 WordPress 개발자는 데이터베이스나 자바 스크립트 라이브러리를 개발할 필요 없이 비즈니스를 차별화할 수 있는 콘텐츠 관리 환경에 집중할 수 있었습니다.

워드프레스 구조도

클라우드의 출현과 함께 새로운 형태의 빌딩 블록이 인기를 끌고 있습니다. 이 새로운 형태는 인터넷 기반 API를 통해 사용할 수 있는 소프트웨어 서비스로, 혁신을 원하는 사람들에게 큰 이점이 될 수 있죠. 예를 들어, API 사용자들은 작동 방법을 배우는 데 시간을 들이지 않고, 그 시간을 아껴 혁신을 이루는 데 더 투자할 수 있습니다.

이러한 예는 흔합니다. 아마존 웹 서비스(Amazon Web Services; AWS)는 사물 인터넷(Internet of Things; IoT) 서비스부터 머신 러닝 및 기타 여러 분야에 걸쳐 수십 개의 작은 서비스들을 제공함으로써 다른 서비스가 구축될 수 있는 기반을 만들어냅니다. 또, 서비스 제공에만 그치지 않고 이들을 직접 활용하여 또 다른 서비스를 개발합니다. 아마존 웹 서비스의 데이터베이스 서비스가 가상 시스템 및 스토리지 등 다른 서비스를 활용하는 것처럼 말이죠.

아마존 웹 서비스뿐 아니라 다른 주요 퍼블릭 클라우드들도 마찬가지입니다. 가장 널리 사용되는 오픈소스 클라우드 소프트웨어인 OpenStack도 이와 같은 다양한 서비스를 제공하며, SendGrid 와 Cloudflare와 같은 서비스를 제공하는 기업들도 있습니다.

아마존 웹 서비스

이너소스

지금까지 오픈소스 프로젝트와 퍼블릭 서비스를 살펴보았습니다. 하지만 모든 서비스가 개방형에 적합하지는 않기에 공개하지 않고 개방 원칙을 적용하는 방법도 있습니다. 이너소스(inner source)를 그 예로 들 수 있죠.

이너소스는 오픈소스와 매우 유사하지만 소프트웨어 지적 재산, 사업 가치 등 다양한 이유로 애플리케이션이나 라이브러리의 소스 코드를 공개할 수 없는 경우에 유용합니다.

이너소스는 소프트웨어가 기업 내부에 공개되어 직원이 자유롭게 접근하고 업무를 수행할 수 있지만 기업 외부로는 공개되지 않습니다. 이를 통해 기업 내 직원들이 자유롭게 협력하며 업무를 공유하고 수행할 수 있습니다.

구글이 위 방식을 자주 활용하는 것으로 알려져 있죠. 구글의 소프트웨어는 대부분 모든 개발자들에게 널리 제공되어, 서로 전혀 다른 소프트웨어를 개발하는 타 부서의 개발자들이 협업할 수 있습니다.

깃허브 엔터프라이즈

Hybrid Cloud and Shared Services

오픈소스와 이너소스를 통해 애플리케이션, 마이크로 서비스(microservice), 라이브러리와 상관없이 다른 사람과 협력하고 작업을 공유할 수 있지만 개방형 API를 사용하면 또 다른 이점을 얻을 수 있습니다.

많은 애플리케이션 개발자와 운영자들은 그들이 사용하는 의존성에 대하여 전문가가 아닙니다. 하지만 다른 사람들이 한 작업을 토대로 개발은 할 수 있죠. 앞서 언급한 WordPress의 예를 보면, MySQL 의존성을 사용해 작동 방식을 변경하고, MySQL을 직접 실행하는 대신 서비스로 사용할 수 있습니다. 이 설정을 통해 운영상의 문제를 더 이상 신경 쓰지 않아도 되는 것이죠. MySQL의 운영 요구 사항 습득과 운영에 시간을 할애할 필요가 없기에 WordPress 인스턴스 또는 WordPress 자체의 비즈니스 차별화 요소에 더 많은 시간과 에너지를 투자할 수 있게 됩니다.

이 모델은 클라우드 공급자가 운영을 책임지고, 사용자가 개방형 API를 통해 서비스에 액세스할 수 있는 환경에서 주요 퍼블릭 클라우드가 공통 서비스를 제공할 만큼 일반적입니다.

이 모델을 통해 서비스 제공업체와 하이브리드 클라우드 솔루션을 위한 세 가지 기회를 찾아낼 수 있습니다.
1. MySQL 예시와 마찬가지로 널리 사용되는 애플리케이션은 SaaS(Software as a Service) 모델을 사용하여 설정할 수 있습니다. 이로써 운영 문제가 중앙 집중화되어 개발자는 사용자 정의 비즈니스 논리와 혁신에 집중할 수 있죠. 또, 기업 내 서비스의 가치를 추적하고 기업 외부 사람들에게도 서비스를 공개할 수 있는 기회가 제공됩니다. 또한 이 모델은 기업 맞춤형 솔루션에도 적합합니다.

2. 하이브리드 클라우드에는 온 프레미스(on-premise) 호스팅 요소가 포함된 경우가 많습니다. 여기에는 전체 데이터 센터 또는 다른 사용자의 데이터 센터에 함께 배치된 하드웨어도 포함됩니다. 이러한 온 프레미스 방식은 앞서 설명한 MySQL과 같이 공통 서비스를 다른 사용자가 사용할 수 있는 서비스로 운영할 수 있는데, 대중적이고 유용한 퍼블릭 클라우드 모델을 따르고 있습니다. 온 프레미스 방식을 통해 공통 서비스는 사용자의 요구 상황에 맞춰 제공될 수 있죠.

3. SaaS 솔루션의 공급자가 다르면, 일반적으로 API도 다릅니다. 계속해서 MySQ를 예로 들어보겠습니다. 각각의 퍼블릭 클라우드에서 클러스터를 생성하고 관리하는 API 호출은 모두 다릅니다. 따라서 관리 계층을 통합하면 유용한 기회가 생기죠. 이러한 오픈소스의 대표적 예는 AWS, Azure, Google Cloud에서 지원하고 있는 오픈 서비스 브로커 (Open Service Broker)입니다. 이를 통해 쿠버네티스 패키지 관리자인 Helm과 쿠버네티스 서비스 카탈로그(Kuberentes Service Catalog) 프로젝트를 결합하여 쿠버네티스에서 크로스 플랫폼(cross platform) 서비스 관리할 수 있는 등의 유용한 기회가 제공됩니다.

위에서 언급한 세 가지 기회를 잘 활용하면 전문 분야에 더욱 집중할 수 있고 크로스 클라우드(cross cloud) 운영으로 퍼블릭 클라우드나 프라이빗 클라우드에 상관없이 새로운 기회를 발견할 수 있습니다.



▶   해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에 저작권이 있습니다.
▶   해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.

공유하기
Matthew Farina Sr. Staff Engineer
Matthew Farina Sr. Staff Engineer 클라우드 전문가
삼성SDS 미주 법인(SDSA)

매튜(Matthew Farina)는 삼성SDS의 Cloud Native Computing 팀에서 클라우드 네이티브 애플리케이션과 오픈소스 소프트웨어 개발에 주력하고 있습니다. 출판 작가이자 연설가로서 오픈소스와 관련하여 정기적으로 기고하며, 여러 오픈소스 프로젝트를 관리하고, 쿠버네티스 커뮤니티의 리더로 활동합니다. 삼성에 합류하기 전에는 Advanced Technology Group의 휴렛팩커드 연구 개발 팀에서 근무했고, 25년 넘게 소프트웨어를 개발해왔습니다.