Offcanvas

AI / 개발자 / 데이터센터 / 클라우드

칼럼 | 코드형 인프라, 친숙한 도구로 할 수 있다면?

2024.02.20 Matt Asay  |  InfoWorld
AI 작업에서는 낯선 과제가 이미 많다. 따라서 인프라 관리 측면에서는 익숙한 개발 기술, 특히 코드형 인프라스트럭처와 파이썬으로의 단순화가 합리적이다.
 
Image Credit : Getty Images Bank

AWS 기술 책임자 크리스 먼스에 따르면 대부분의 개발자는 코드형 인프라(IaC)를 사용하지 않는다. 대신 IaC와 같은 최신 기술을 사용하는 상위 10%~15%의 개발자들은 혜택을 누린다. 풀루미의 조 듀피 CEO는 IaC의 사용자군이 아직 상대적으로 적지만 파이썬과 인공지능에 대한 관심으로 인해 도입이 가속화되고 있다고 진단했다. 특히 기술을 경쟁 우위로 여기는 기업에서는 개발자들이 인프라를 직접 제어하는 동향이 점점 더 선명해지고 있다.

새로운 IT 표준
IT 부서에 리소스를 요청해야 했던 시절에는 개발자들이 데이터베이스, 키-값 저장소, 메시지 큐, 네트워킹 및 기타 하드코어 '인프라' 문제와 유리돼 있었다. 개발자는 애플리케이션 코드를, 엔터프라이즈 아키텍트는 애플리케이션 인프라를, IT 부서는 서버, 구성 및 규모를 각각 담당했다.

그러다가 가상 머신과 컨테이너가 등장하고 확산했다. 이후 쿠버네티스와 더불어 파도처럼 밀려온 분산 컴퓨팅이 개발자들을 클라우드 인프라의 깊숙한 곳까지 밀어 넣었다. "왼쪽으로 이동하라"와 "구축하면 소유한다"는 말은 어느덧 진부한 표현이 되었지만, 오늘날 개발자가 담당하는 영역이 더욱 확대됐음을 반영하는 말이다. 즉 개발자는 이제 애플리케이션을 작성할 뿐만 아니라 과거에는 인프라 전문가의 영역이었던 다른 작업도 수행하고 있다.

컴퓨팅 리소스와 프레임워크를 구축하려면 시간과 노하우가 필요하며, 개발자와 플랫폼 팀 모두 클라우드 리소스에 대한 개발자 인터페이스를 탐구하고 위해 고민하고 있다. 자바스크립트는 웹 브라우저를 프로그래밍할 수 있게 만들었고 웹 애플리케이션과 모바일 경험의 르네상스를 열었으며, 이는 여전히 진행 중이다. 이제 개발자가 클라우드 인프라를 진정으로 프로그래밍할 수 있도록 하는 유사한 혁신이 만개하려는 찰나다.

코드형 인프라의 첫 번째 물결
코드형 인프라(IaC)는 사실 그리 새로운 개념은 아니다. 이 개념은 50년 이상 거슬러 올라간다. 소프트웨어 지향 아키텍처(SOA)가 애플리케이션 아키텍처를 모놀리식 애플리케이션에서 마이크로서비스 패턴으로 발전시킨 것처럼, IaC는 클라우드 인프라의 기본 구성 요소를 변화시키는 느린 움직임이었다.

IaC가 본격적으로 주목받기 시작한 시기는 2010년대 퍼펫, 셰프, 앤서블이 가상머신 구성을 위한 IaC 방법을 도입하면서 시작됐다. 특히 셰프는 개발자가 루비와 같은 프로그래밍 언어를 사용할 수 있고 익숙한 언어의 규칙을 사용할 수 있어 재사용 및 공유가 가능하다는 점에서 선호되곤 했다.

이후 10년 동안 퍼블릭 클라우드 제공자 플랫폼이 성숙해지면서 IaC 동향은 새로운 시대로 접어들었고, 쿠버네티스는 주요 클라우드 운영 모델로 자리잡았다. 하시코프의 테라폼은 클라우드 리소스 구성을 위한 새로운 추상화를 도입하고 개발자가 하위 수준의 클라우드 인프라 배관에서 벗어나도록 설계된 HCL(HashiCorp Configuration Language)이라는 DSL(domain-specific language)을 도입함에 따라 IaC의 대표 주자로 부상했다. IaC의 물결에서 다른 두 가지 주요 경쟁자로는 AWS 클라우드포메이션과 애저 리소스 매니지먼트가 있었다.

DSL은 잘못된 선택?
그러나 풀루미의 CEO 조 더피는 DSL로의 진화 과정에서 IaC 운동이 잘못된 방향으로 나아갔다고 주장했다. 그는 "프로그래밍 언어 커뮤니티에서 수년을 보냈다. 과거 업계에는 '모든 DSL은 실수로 잘못 설계된 범용 프로그래밍 언어로 성장할 운명'이라는 말이 있었다"라고 말했다. 클라우드의 복잡성이 DSL, YAML, 마크업 언어를 망가뜨리기 때문이라는 이유에서였다는 설명이다.

더피는 DSL에 일반적인 문제점이 있다며, 개발자와 플랫폼 엔지니어링 팀이 익숙한 프로그래밍 언어 규칙으로 클라우드 인프라를 관리하는 데서 오히려 벗어나게 만든다는 점이라고 말했다. 그는 "언어의 풍부함, 추상화 및 재사용, 패키지 관리자, 테스트 도구, 정적 분석, 편집기 및 문 완성, 대화형 오류 검사 및 문서화, 리팩터링 등의 기능에 이르기까지 IaC를 보면 분명 새로운 것들이 만들어지고 있다"라고 주장했다. 그에 따르면 이러한 함정은 개발자가 클라우드의 기능을 적극적으로 활용하지 못하게 하는 동시에 인프라 팀의 생산성을 저해하는 결과로 이어졌다.

클라우드 인프라에서 익숙한 언어 사용
그는 이어 "클라우드와 관련해 개발자의 역할을 과소평가하는 것은 흔한 실수다"라며 "IaC가 전체 클라우드를 더 풍부하고 강력한 애플리케이션을 구축하는 데 사용할 수 있는 프로그래밍 가능하고 구성 가능한 빌딩 블록 집합으로 전환하고 있다. 흥미로운 동향이다"라고 말했다.

그에 따르면, 이제 업계는 단일 머신 애플리케이션 서버와 단일 머신 운영 체제를 넘어 쿠버네티스로 오케스트레이션되는 클라우드의 분산 컴퓨팅으로 전환했다. 그러나 IaC에 대한 DSL 접근 방식은 개발자의 인프라 복잡성을 감추려 하는 반면, 풀루미는 개발자가 이미 사용하고 있는 프로그래밍 언어에 내장된 규칙을 클라우드에 대한 기본 인터페이스로 사용할 수 있도록 한다.

더피는 "가능한 한 거인의 어깨 위에 있어야 한다. 세상에는 해결해야 할 어려운 문제가 충분히 많다. 재미로 인위적인 문제를 만들 필요는 없다"라고 말했다.

풀루미의 IaC 접근 방식은 다국어 인프라로, Node.js(JavaScript, TypesScript), 파이썬, 곳, 닷넷(C#, F#, VB) 및 자바를 지원한다. 풀루미 지원 벤더 카탈로그에는 대형 클라우드 기업들 뿐 아니라 클라우드플레어, 스노우플레이크, 몽고DB, 컨플루언트 등 150곳 이상의 다양한 인프라 제공업체가 포함되어 있다.

더피는 "개발자가 이미 알고 있는 언어를 사용하면 IaC를 수행하는 데 있어 큰 정신적 장애물을 제거할 수 있다. 클라우드 리소스를 프로그래밍 가능한 빌딩 블록으로 바꾸어 원하는 언어로 다른 개체처럼 서로 연결할 수 있다"라고 말했다. 

물론 난제도 있다는 진단이다. 그는 "어려운 부분은 이러한 특정 빌딩 블록에 대해 배우는 것이다. 이는 문제의 도메인에서 비롯된 '실제 복잡성'을 품고 있다. 하지만 본질적으로 익숙한 언어를 사용하면 우발적인 복잡성이 모두 제거되며 실제 문제 해결에만 집중할 수 있다”라고 말했다.

인프라에 대한 언어 우선 접근 방식
J2EE와 동시성 및 멀티스레드 코드 처리를 위한 방대한 자바 기능 등, 성숙한 언어의 애플리케이션 인프라 도메인을 생각해보면, 개발자들이 선호 언어의 기본 요소를 활용하기 위해 노력해온 기간은 수십 년에 이른다. 더피에 따르면 개발자와 플랫폼 팀은 이미 익숙한 언어 규칙을 사용하고자 하는 기본적인 욕구를 가지고 있으며, 이러한 욕구는 파이썬과 AI에서 특히 강하다. DSL은 복잡성을 처리하기 위해 구부리고 비틀어야 하는 반면, 파이썬과 같은 성숙한 언어는 이러한 스케일 문제를 즉시 해결할 가능성을 제시한다.

더피는 "클라우드는 거대한 슈퍼컴퓨터이며, AI는 역대 최대의 슈퍼컴퓨터 소비자다"라고 표현했다. 그는 이어 "슈퍼컴퓨터를 유연하게 프로그래밍하고 그 규모에서 발생하는 복잡성을 처리할 수 있는 것이 바로 우리가 처음부터 놀라운 프로그래밍 언어를 만든 이유"라고 강조했다.

그에 따르면 개발자는 인프라와의 씨름에 집중하고자 하지 않는다. "인프라가 새로운 AI 경험을 뒷받침하지만, 대부분의 AI 엔지니어가 아침에 침대에서 일어나면서 생각하는 것은 인프라가 아니다. 파이썬을 사용하면 다른 소프트웨어와 마찬가지로 지저분하고 지저분한 생각에서 아름답고 우아하게 프로그래밍할 수 있는 것으로 바뀐다"라고 더피는 말했다.

IaC 분야에서 DSL과 일반 프로그래밍 언어 간의 싸움은 예전에도 있었다. 필자만 해도 2020년에 선언적 프로그래밍 언어의 새로운 모델이 IaC 영역에서 명령형 언어와 어떻게 대조되는지에 대해 글(영문)을 쓴 바 있다. 선언적 언어와 범용 언어의 이번 대결에서 새로운 점은 AI 골드러시다. 파이썬은 수천만 명의 개발자가 사용하고 있는 도구다. 그리고 이제 기본 언어의 렌즈를 통해 인프라를 추론할 수 있다는 특별한 인센티브까지 갖춰가고 있다. 

* Matt Asay는 몽고DB의 개발자 관계 업무를 담당하고 있다. 그러나 본 글은 몽고DB의 입장이 아니다. ciokr@idg.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.