"운영 덜고 개발 더하라"…구글 서버리스 컴퓨팅

SMB 개발자와 디지털혁신가를 위한 날개, 클라우드런·클라우드코드

컴퓨팅입력 :2019/12/16 09:00    수정: 2019/12/16 10:00

주요 시장조사업체 전망에 따르면 현재 예측된 가파른 기업용 클라우드 시장 성장세에 퍼블릭 클라우드 수요 확대가 차지하는 비중이 크다. 기업의 기존 운영 애플리케이션을 퍼블릭 클라우드로 옮기는 마이그레이션 수요가 지속적으로 확대될 전망이다. 기업들은 애플리케이션 마이그레이션을 통해 클라우드 환경의 이점 가운데 비용 최적화와 비즈니스 유연성의 가치를 일정 부분 누릴 수 있을 것으로 보인다.

[사진=구글]

지난 수년간 규모를 불문하고 기업들이 프라이빗 클라우드 또는 온프레미스 영역 관리 부담을 감수하면서 비즈니스 민첩성을 실현하기에 어려움을 겪고 있다. 규모가 큰 조직에선 기존 단일 프라이빗 클라우드 기반 디지털 전략 시나리오의 한계를 절감한다. 규모가 작거나 전문 역량이 제한된 조직에선 보유 중인 IT인프라의 최적화와 시장 변화에 발빠르게 대응하는 개발 업무의 균형을 맞추지 못한다.

구글 클라우드 플랫폼(GCP)에 있는 일련의 서버리스 제품 및 서비스는 개발자로부터 이런 부담을 없애 준다. 개발자가 본업에 주력해 코드의 품질과 완성도를 높일 수 있는 기반을 제공한다. 작은 조직의 개발자가 겪는 코딩 외에 인프라의 구성과 형상 관리를 떠맡아야 하는 부담, 큰 조직의 개발자에게 발생하는 개발 환경 선택의 제한과 작성한 코드를 테스트, 배포, 디버깅하는 단계 사이의 '문턱'을 제거한다.

현재 구글은 세계 각지 기업 사용자와 개발자들에게 '무료 등급(Free Tier) GCP'라는 이름으로 GCP 클라우드서비스의 체험 기회를 열어 놓고 있다. 무료 등급 GCP 서비스는 12개월동안 모든 GCP 서비스에 사용할 수 있는 300달러짜리 크레딧을 제공받는 '12개월 무료 체험판'과, 일반적으로 많이 쓰이는 GCP 서비스 리소스에 제한된 접근 기회를 월별로 제공받는 '항상 무료' 체험 프로그램, 두 가지로 제공된다.

(바로가기 ☞ GCP Free Trial)

■ 서버리스 기술로 비즈니스 로직 처리하기

현업 IT 조직에서 어떤 모바일 앱이 백엔드 서버를 필요로 한다면, 개발자는 앱을 실제로 누가 언제 얼마나 쓰든지, 24시간 서버를 켜 놓아야 한다. 여기에는 앱 개발자가 때때로 서버 소프트웨어나 운영체제(OS)를 패치 및 업그레이드하고, 남은 중앙처리장치(CPU) 및 메모리와 스토리지 등 물리 또는 가상의 하드웨어 자원 확인 및 증설 계획을 짜서 비용을 산정하고 회사에 그걸 요청해야 한다는 전제도 깔려 있다.

하지만 대다수 개발자는 물리 또는 가상 서버 인스턴스의 관리나 최적화를 하느라 쏟는 품을 줄여 코드를 개선하고 배포하는 작업 자체에 더 집중하고 싶어한다. 기존 현실에선 실현되기 어려운 바람이다. 스타트업이나 소규모 팀 개발 환경이라면 그 일을 대신 맡아 줄 누군가가 없다. 서버 관리자가 있는 거대 조직 개발 환경이라면 그 관리 주기가 빠른 테스트와 검증 및 배포가 필요한 시나리오를 받쳐 주지 못한다.

지난 11월 6일 '구글 클라우드 서밋 서울' 키노트 연사로 나선 그렉 드미칠리 구글 클라우드 개발자 전략 담당 디렉터는 "서버리스는 개발자가 서버 관리나 운영체제(OS)를 패치하는 일로부터 자유로워지게 한다"며 "구글 클라우드의 서버리스 기술은 여기에 더해 하나의 프로그래밍 언어와 플랫폼을 써야 하고 서드파티 라이브러리와 오픈소스 도구를 제대로 활용할 수 없는 제약까지 걷어 준다"고 강조했다.

드미칠리 디렉터의 설명은 '클라우드 런(Cloud Run)'과 '클라우드 코드(Cloud Code)'에 집중됐다. 클라우드 런은 스테이트리스(Stateless) 컨테이너 애플리케이션 실행 환경과 그에 필요한 자동화 자원 관리 기능을 제공하는 클라우드 서비스다. 클라우드 코드는 구글 쿠버네티스(GKE)같은 환경에 배포되는 컨테이너 애플리케이션 코드의 작성, 배포, 디버그 작업을 통합해 처리되게 해 주는 개발도구 확장기능이다.

우선 클라우드 런은 애플리케이션의 인프라 영역에서 개발자의 메인터넌스 부담을 낮춰 준다. 클라우드 런은 HTTP로 요청하고 이벤트를 받는 컨테이너를 배포해 구동할 수 있다. 개발자가 특정 언어, 라이브러리 지원 여부에 얽매일 필요가 없다. 물리 서버나 가상머신의 소프트웨어를 패치, 업데이트하지 않아도 된다. 운영 상황에 따른 인프라 할당과 삭제를 프로비저닝으로 대응할 수 있다.

클라우드 런은 오픈소스 소프트웨어 'K네이티브(Knative)'를 기반 기술로 활용한다. 즉 클라우드 런은 K네이티브를 GCP 인프라에서 완전 관리형 서비스로 제공하는 형태다. K네이티브를 온프레미스나 하이브리드·멀티 클라우드 환경에서 사용할 수도 있다. 구글 클라우드는 이런 시나리오도 클라우드 런의 브랜드로 직접 지원한다. 구글 클라우드가 출시한 운영도구 안토스(Anthos)의 '클라우드 런 포 안토스'다.

클라우드 런 포 안토스는 그 이름처럼 구글 클라우드 또는 온프레미스 VM웨어 가상화 인프라에 배포된 안토스 실행 환경에서 클라우드 런의 기능을 제공하는 형태다. 클라우드 런 포 안토스는 커스텀 머신 유형과 클라우드 액셀러레이터를 쓸 수 있게 된다. 머신 유형, 자동 확장 최대 규모, 네트워킹, 서비스 호출 정책 및 URL 인증서 지원 방식, 컨테이너 격리 수준 등에서 완전 관리형 클라우드 런과 차이를 갖는다.

■ 클라우드 코드, 클라우드 앱 개발자를 위한 천리안

11월 구글 클라우드 서밋 서울에서 서버리스 기술 시연자로 나선 구글 클라우드 코리아 조병욱 커스터머 엔지니어는 "클라우드 런은 이미지를 빌드하면 곧바로 컨테이너 서비스로 배포할 수 있게 해 주고, 콘솔에서 동일한 런타임과 애플리케이션을 개발자 조직의 기존 환경과 구글 환경에 배포해 함께 관리할 수 있다"며 "K네이티브 기반인 클라우드 런은 모든 클라우드와 인프라에 호환성을 갖는다"고 말했다.

이어 클라우드 런과 함께 소개된 클라우드 코드는 개발자가 컨테이너 애플리케이션의 코드를 다루는 과정에서 테스트, 배포, 디버깅 과정에 파일을 관리하고 느끼는 번거로움을 덜어 준다. 클라우드 코드는 개발자가 자신의 개발 PC에서 사용하는 인기 코드에디터나 통합개발환경(IDE)에 추가 설치하는 플러그인 형태로 제공되는 제품이다.

클라우드 코드는 마이크로소프트의 크로스플랫폼 코드에디터 '비주얼 스튜디오 코드(Visual Studio Code)'와 젯브레인의 '인텔리제이(IntelliJ)' IDE용 플러그인을 지원한다. 개발자는 이를 사용해 개발 머신에서 구글 쿠버네티스 엔진(GKE)같은 환경에 배포할 컨테이너 애플리케이션을 '노드JS(NodeJS)', '고(Go)', '파이썬', '자바' 등 언어로 작성하고, 배포하고, 디버그하는 작업의 전반적인 효율을 높일 수 있다.

(바로가기 ☞ GCP Free Trial)

드미칠리 디렉터는 "클라우드 코드는 쿠버네티스 공통 파일 포맷과 템플릿을 제공하고, 로컬, 개발, 운영 인프라별로 복수의 프로파일을 제공해 한 환경에서 모든 걸 볼 수 있게 해 준다"며 "개발자가 클라우드와 컴파일러를 오가면서 수행하는 작업은 시간낭비가 될 수 있는데, 클라우드 코드는 그러지 않고 IDE에서 코드 작성부터 배포까지 가능하도록 만든 것"이라고 강조했다.

개발자는 플러그인을 설치한 자신의 IDE 안에서 도커 컨테이너 파일, 쿠버네티스 환경설정 파일을 불러와 개발 환경에서 실행 가능한 애플리케이션을 작성할 수 있다. 이후 다른 콘솔이나 명령줄인터페이스(CLI)로 이동하지 않고도 개발을 위해 구성했던 쿠버네티스 클러스터 삭제를 프로비저닝하거나, 클라우드 영역에서 컨테이너를 빌드하고 배포까지 가능하다. 툴 안에서 로깅, 런타임, 디버깅 과정 역시 볼 수 있다.

■ 서버리스 기술로 IoT 스트리밍 로직 처리하기

클라우드 런은 서버리스 기술 가운데 '서비스형 백엔드(Backend as a Service)' 유형으로 구현된 서비스다. 온라인 게임 회사의 서비스나 유통업체의 쇼핑몰 모바일 앱을 운영하기 위한 백엔드 비즈니스 로직을 구동하는 데 알맞다. 즉 클라이언트로부터 요청이 발생하는 시점과 규모를 불문하고 상시 서비스를 제공해야 하는 조직의 개발자에게 유용하다.

구글 클라우드 코리아 양승도 커스터머 엔지니어링 총괄은 "모바일 앱을 한 사람이라도 이용할 가능성이 있다면 그 백엔드를 클라우드 인프라에서 구매한 가상머신(VM)으로든 보유 중인 물리 서버로든 구현하고, 누군가 관리해야 한다"며 "서비스형 백엔드 형태의 서버리스 기술은 그런 불특정한 요청에 대응하는 장기 구동 작업(long-running task)을 실행하고, 불필요해지면 편리하게 제거할 수 있다"고 설명했다.

서버리스 기술을 '서비스형 함수(Function as a Service)' 형태로 구현해, 전혀 다른 시나리오에 활용할 수도 있다. 여기서 함수는 특정한 작업이나 기능을 수행하는 기본 단위를 의미한다. 구글의 '클라우드 펑션(Cloud Functions)'이 이런 용도에 맞는 서비스다. 클라우드 펑션은 실행 시간이 짧고 단순한 로직을 처리하면 종료되는 일회성 작업을 수행하기에 알맞다.

클라우드 펑션의 활용사례로 영국 회사 '스마트 파킹(Smart Parking)'의 IoT 센서 기반 주차공간 정보제공 서비스를 들 수 있다. 스마트 파킹은 주차 관리 서비스를 제공하는 세계 각지에 센서 5만개를 설치하고 여러 GCP 기술을 접목한 '스마트클라우드' 기반의 주차시스템을 운영한다. 여기서 클라우드 펑션은 스트리밍 데이터를 전달하는 이벤트 드리븐 아키텍처 기반 서버리스 환경에 사용됐다.

스마트 파킹은 이밖에 주차시스템의 센서 역할을 하는 IoT기기 데이터 처리와 분석에 여러 GCP 제품과 서비스를 활용해 주차시스템 구축 시간과 운영비를 반으로 줄였다. 기기 연결, 관리, 데이터 처리에 '구글 클라우드 IoT 코어(Google Cloud IoT Core)', '클라우드 데이터플로(Cloud Dataflow)', '빅쿼리(BigQuery)'를, 실시간 메시징 기능에 '클라우드 Pub/Sub(Cloud Pub/Sub)'를, 추세 파악에 '클라우드 ML'을 썼다.

■ 스타트업과 디지털혁신조직을 위한 ‘노옵스’

클라우드 서비스 제공업체들은 퍼블릭 클라우드 환경으로의 애플리케이션 마이그레이션 이후에도 온프레미스와 프라이빗 클라우드, 타사 퍼블릭 클라우드 환경을 함께 이용하려는 기업을 지원할 수 있는 하이브리드·멀티 클라우드 시나리오 지원에 적극적이다. 더 나아가 구글 클라우드는 개발자가 클라우드 위의 애플리케이션 개발과 구동에 몰입할 수 있는 서버리스 기술로 '더 빠르고 유연한 혁신'을 독려한다.

이지영 구글 클라우드 코리아 총괄은 지난 11월 6일 '구글 클라우드 서밋 서울'에서 구글 클라우드의 비즈니스 전략 가운데 '노옵스(NoOps)'라는 키워드로 서버리스 기술의 가치를 강조했다. 그는 "개발자들은 그들이 속한 조직이 출시할 제품에 최적의 코드를 만들어 제공하는 일을 하고 싶어 한다"며 "구글 클라우드는 개발자가 그런 일에 집중할 수 있게 돕는 서버리스 환경을 제공하고 있다"고 말했다.

서버리스 컴퓨팅 기술을 한국의 어떤 조직에 우선 권할 수 있을까. 스타트업이나 디지털 혁신전략을 고민하는 중견 규모 이상 조직에선 컨테이너 앱으로 비즈니스 로직을 처리할 수 있는 '클라우드 런'에 주목할 만하다.

(바로가기 ☞ GCP Free Trial)

구글 클라우드 코리아 양승도 커스터머 엔지니어링 총괄은 "처음 클라우드를 도입하는 기업은 기존 인프라를 그대로 옮기는 '리프트 앤드 시프트'에 집중하지만, 이후 점차 '클라우드 네이티브'를 지향하면서 운영비용을 낮추고 기존 환경을 개선해 가치를 얻고자 하고, 서버리스 기술에 대한 니즈도 갖게 된다"고 설명했다.

관련기사

양 총괄은 "GCP의 서버리스 기술을 모든 규모와 기업에 권하고 싶지만, 첫째로 스타트업, 둘째로 자체 IT인력을 보유하지 않았지만 클라우드를 통해 비즈니스 혁신을 추구하려는 고객, 마지막으로 엔터프라이즈 안에서 전통적인 IT조직과 별도로 구성된 디지털 관련 이니셔티브를 주도하는 이들로 구성된 부문의 개발조직, 이런 곳이 서버리스를 활용해 시장에 가치를 가져올 수 있다"고 덧붙였다.

이 기사는 구글 클라우드 후원으로 작성된 연재 기획의 마지막입니다. 앞서 게재된 기사 [⑦구글 클라우드, 꼼꼼히 재고 알아서 깎아준다], [⑥구글 클라우드, 미션크리티컬 워크로드 어떻게 담을까], [⑤하이브리드·멀티 클라우드 시대를 마주한 구글의 자세], [④구글 클라우드, 빅데이터 분석을 현대화하다] [③구글표 AI 기술, 누구에게 어떻게 제공되나], [②구글 클라우드, 칩부터 라이브러리까지 AI 맞춤 설계], [①구글 클라우드 플랫폼, 한국 기업 시장에 손짓]을 먼저 읽어 보시기 바랍니다.