클라우드 효과 극대화 조건 ‘클라우드 네이티브’ (2)
상태바
클라우드 효과 극대화 조건 ‘클라우드 네이티브’ (2)
  • 윤현기 기자
  • 승인 2020.03.15 09:00
  • 댓글 0
이 기사를 공유합니다

마이크로서비스 아키텍처 효과 제공…기존 프로세스에 얽매이지 않는 조직 구성 필요

[데이터넷] 클라우드가 기업의 디지털 변혁을 위한 수단으로 고려되면서 점차 도입이 증가되는 추세지만, 기업 내 모놀리식(Monolithic) 형태로 개발된 애플리케이션을 클라우드로 이전하는 것은 쉬운 일이 아니기에 마이크로서비스 아키텍처(MSA)가 주목받고 있다. MSA는 소프트웨어의 기능들을 블록과 같이 모듈화해 서비스를 제공하는 것으로, 각 프로세스별 독립적인 운용이 가능한 것이 특징이다. 이같이 모듈화된 기능들을 서로 연결해주는데 API가 활용된다.

만약 기업의 IT 아키텍처가 모놀리식에서 MSA로 변화한다면 API 제공 환경이 완벽하게 이뤄질 테지만, 이는 결코 쉬운 일이 아니다. 그렇기에 신규 애플리케이션을 개발할 때는 MSA를 도입하더라도 기존 모놀리식 애플리케이션은 기능을 배포하는 것으로 활용 가능하다. 이 역할은 API 관리(APIM) 솔루션이 맡는다.

APIM을 활용한 오픈 API 플랫폼은 앞으로 기업의 디지털 비즈니스 플랫폼으로서의 역할을 해줄 것으로 기대되고 있다. 현업 부서에서 IT부서로 요구하는 사안들에 대한 시간도 점차 짧아지고 있으며, MSA로 인한 서비스 모듈화, 다양한 개발 도구, 도커(Docker) 등 새로운 기술 확대 등으로 인해 서비스 재조합을 통한 빠른 애플리케이션 개발과 배포가 가능한 API 비즈니스 모델이 더욱 확산될 것이기 때문이다.

실제로 기업들은 자사의 서비스를 API로 만들어 대외적으로 공개 및 판매하거나 파트너사와의 협력, 내부 서비스 간 재조합에 활용하는 형식으로 이용하고 있으며, 최근 국내 은행들이 시작한 오픈뱅킹 서비스가 대표적이다. 이처럼 API를 활용하면 모놀리식 애플리케이션을 클라우드 네이티브 형태로 충분히 운영할 수 있다.

오픈뱅킹을 통해 제공되는 API 서비스 (자료: 금융결제원)
오픈뱅킹을 통해 제공되는 API 서비스 (자료: 금융결제원)

서비스 이식성 높여

가상화 기술과도 유사한 개념인 ‘컨테이너’는 애플리케이션 실행에 필요한 파일과 라이브러리(lib)를 패키지화한 후, 필요할 때마다 이를 실행시켜 동일한 환경을 이용할 수 있도록 하는 역할을 한다. 실제 제품 수출입 시에 활용하는 철제 포장 용기인 ‘컨테이너’와 역할이 유사해 애플리케이션 실행에 필요한 파일과 라이브러리 등을 간편하게 패키지화할 수 있으며, 자유롭게 이동시키고 쉽게 이식도 가능하다.

컨테이너는 ‘소프트웨어 패키징(AUFS)’과 ‘자원 격리’라는 두 가지 핵심 기술 요소로 구성된다. 이 중 AUFS는 이른바 ‘레이어드 파일시스템’으로, 원하는 소프트웨어를 계층 구조로 만들어 냄으로써 디스크를 효율적으로 사용할 수 있도록 한다.

가령 웹 애플리케이션 서버(WAS) 위에 애플리케이션을 배포한다면 WAS와 애플리케이션을 함께 넣어 패키징 한다. 하지만 애플리케이션은 자주 바뀔 수 있기에 새로 패키징 할 때마다 버전이 늘어나게 되는 문제점이 있다. 그러나 WAS는 변하지 않기 때문에, 한 개의 WAS에 변화된 애플리케이션 버전만 추가하는 방법으로 효율적인 활용이 가능하다.

뿐만 아니라 자원 격리 기술은 컨테이너 호스트를 장비에 올릴 때 하드웨어 자원을 격리해줌으로써 VM을 사용할 때와 같은 효과를 제공한다.

이처럼 컨테이너를 활용할 경우 하나의 이미지로 파일 패키징을 하기에, 원하는 시점에 원하는 장비로 이미지 파일을 편리하게 옮겨 애플리케이션 서비스를 구동할 수 있다. 이는 여러 대의 장비에서 서비스를 올리고 내리는 관리가 간편해진다는 것을 의미한다. 이미지 파일에 서비스 구동에 필요한 것들을 다 넣어뒀기 때문에 호스트 운영체제(OS)상에서 별도의 세팅을 할 필요도 없다.

자원 효율성·OS 호환성 등 강점

클라우드 환경이 확산되면서 컨테이너 기술에 대한 인기가 상승한 요인은 애플리케이션 이동과 배포가 수월해졌다는 점도 있지만, 이 외에도 자원 효율성, 자원 격리, 호환성, 오토스케일링(Auto-Scaling), 마이크로서비스, 관리 편의성 등이 뒷받침됐기 때문인 것으로 평가된다.

최근 베어메탈 환경은 컴퓨팅 기술의 발전으로 인해 많은 수의 CPU 코어가 제공된다. 단일 애플리케이션의 성능을 온전히 내려면 베어메탈 환경을 이용하면서 최대의 자원을 활용할 수 있도록 구성하겠지만, 실제로 이렇게 이용하는 경우는 극히 일부를 제외하면 드문 편이다. 이에 단일 장비에서 가상화 기술과 같은 자원 격리를 통해 여러 개의 WAS와 애플리케이션을 구동하는 방식이 활용된다.

그러나 그 중 하나의 애플리케이션이 잘못 구성돼 무한루프 현상을 보이며 인프라 자원을 모두 소진할 경우 다른 WAS와 애플리케이션은 제대로 동작을 하지 못하는 불상사가 일어날 수 있다. 말 그대로 장애 아닌 장애 상태를 맞이하게 되는 셈인데, 컨테이너 기술은 할당된 자원을 완벽하게 격리하기 때문에 특정 WAS와 애플리케이션에서 시스템 전체의 자원을 소비하는 문제를 막는다. 이를 통해 보다 효율적으로 인프라 자원을 활용할 수 있다.

컨테이너 기술의 또 다른 장점으로 OS 간 호환성이 높다. 베어메탈을 비롯해 장비에 설치된 OS 버전이 다를 경우, 같은 벤더의 WAS를 사용한다 해도 쓸 수 있는 버전이 달라진다. 이에 필요할 때마다 WAS 구성을 해야 하는 불편함이 생긴다.

자원을 효율적으로 사용하자는 목표 아래 VM 기술이 등장했지만, 각 VM 간 호환성은 떨어진다는 문제가 있다. 가령 특정 벤더의 VM을 만들어 이용하다가 벤더와의 갈등이나 비싼 유지보수 비용, 기술지원 불만 등으로 인해 이탈하려 해도, 막상 시스템 자원을 옮길 비용이 새로 시스템을 구축하는 비용과 큰 차이가 없을 정도로 비싸기에 어쩔 수 없이 벤더에 종속되는 경우도 많다.

이에 반해 컨테이너는 오픈 컨테이너 이니셔티브(OCI) 프로젝트가 지난 2015년부터 추진되면서 기술 표준화를 위해 움직이고 있다. 벤더마다 독점적으로 보유하고 있는 기술이 아니라 공개 산업 표준의 파일 포맷과 이를 구동시키는 런타임 표준에 대한 작업이 이뤄지고 있는 것이다. 이로 인해 cri-o로 불리는 경량의 OCI 호환 컨테이너 런타임이 개발되기도 했다.

오토스케일링으로 확장도 간편하게

가령 설이나 추석 등 명절 기차표 예매 시에는 평소 대비 어느 정도 트래픽이 몰리는지 예상이 가능해 미리 자원을 증설해서 대비할 수 있지만, 태풍이나 홍수 등 자연재해가 갑작스럽게 발생했을 때 특정 정부·공공기관 사이트에 관련 정보를 조회하고자 대량의 트래픽이 몰리는 것을 예측하기는 어렵다.

예측 가능한 상황에 미리 대비해서 준비하는 것과 예기치 못한 상황에도 유연하게 대처가 가능하도록 하는 것은 전혀 다른 이야기다. 컨테이너는 컴퓨터 자원이 갑작스럽게 늘어나더라도 자동적으로 확장될 수 있는 오토스케일링 옵션 설정이 가능해 갑작스러운 환경 변화에도 효율적으로 대응이 가능하다.

오토스케일링은 생성된 서버가 자동으로 애플리케이션과 연동되는 기능으로, 예상치 못한 트래픽이 갑자기 발생할 경우에도 자동으로 여유 서버를 할당해줘 서비스가 다운되는 현상을 막는다. 그리고 다시 트래픽이 감소하면 여유 서버 기동을 중지하고 서비스에 필요한 만큼의 운영 환경을 갖춰 클라우드 이용료가 과다하게 부과되는 것을 막는다.

컨테이너를 근간으로 하는 플랫폼 혹은 PaaS 솔루션 등은 대부분 오토스케일링 기능을 제공한다. 자동 자원 확장을 위해 개발자나 운영자가 별도로 개발하고 추가할 필요가 없다. 단지 원하는 값만 세팅해주면 되며, 임계치를 늘리거나 줄이는 것으로써 간단히 설정 가능하다. 그러나 애플리케이션이 MSA로 구현되지 못하면 클라우드 활용에 있어 가장 큰 혜택이라 할 수 있는 오토스케일링 효과를 누릴 수 없기에 온프레미스 데이터센터에 있던 애플리케이션을 복사해서 클라우드에 얹어놓은 수준에 불과한 ‘리프트 앤 시프트(Lift & Shift)’가 아닌 클라우드 네이티브 애플리케이션으로의 전환은 반드시 필요하다.

빠른 서비스 배포 지원

오늘날 지능형 컴퓨팅 기술로 인해 세상은 더욱 복잡한 환경으로 바뀌고 있다. 코드 작성을 시작하기도 전에 운영을 걱정해야 할 정도다. 소비자는 IT가 전례 없는 민첩성을 기반으로 무결점의 애플리케이션과 서비스를 제공해 주기를 기대한다. 각 단계를 확실히 매듭짓고 난 후 다음 단계로 넘어가는 워터폴 모델의 소프트웨어 개발 방식이나 12~18개월 단위의 소프트웨어 배포 주기는 현재 IT 환경에 적합하지 않다.

은행, 금융, 통신 등의 분야에서는 애플리케이션 제공이 지연되거나 속도를 위해 품질을 희생할 경우 고객 이탈과 가입자당 평균 수익에 큰 영향을 받는다. 대다수 IT 부서는 현업 부서로부터 고객 요구사항에 부응하는 보다 강력한 애플리케이션을 이전보다 빠르고 비용 대비 효과적인 방식으로 제공해 달라는 압박을 받고 있다.

IT 부서가 현업 요구를 지원함에 있어 가장 큰 어려움은 전통적으로 경계가 구분된 개발과 운영 환경을 통합하는 것이다. 지금까지는 개발과 운영의 경계가 분명해 소프트웨어 개발 라이프 사이클(SDLC) 운영에 많은 비용이 소요됐다. 개발과 운영을 병행하는 ‘데브옵스’는 이에 대한 해결책으로 현재 각광받고 있다.

데브옵스는 단어에서 알 수 있듯이 개발(Dev)과 운영(Ops)이 합쳐진 개념으로, ‘개발된 코드(소프트웨어)를 서비스로 반영하기 위한 효과적인 일의 방법’으로 요약된다. 가령 개발 팀에서는 풀 스택(Full-Stack) 개발자라는 용어를 사용하면서 한 명의 개발자가 여러 전문지식을 동시에 갖고 UI, 데이터베이스 설계, 코드 배포까지 할 수 있는 역할을 기대하기도 하는데, 그 기대가 데브옵스를 구현하는 것과 유사하다.

그동안 국내 인터넷 서비스들은 주로 새벽 시간에 서비스를 점검하면서 오류를 패치하거나 새로운 기능들을 배포하곤 했다. 반면 아마존, 페이스북 등이 국내 서비스처럼 점검 시간을 갖는 경우는 드물며, 어느 날 갑자기 새로운 기능과 서비스들이 제공되고 있는 것을 볼 수 있다. 말 그대로 무중단 서비스, 실시간 배포가 이뤄지고 있으며, 이는 데브옵스를 통해야만 가능하다.

협업 환경 확대

IT 분야에서 오랫동안 문제로 지적된 것이 사일로(Silo)다. 이는 단순히 인프라 영역에서만 발생하는 문제가 아니라 조직 내에서도 발생한다. 개발자와 운영자는 한 그룹 내에 속해 있어도 소통이 원활하지 못하는 경우가 대부분이다. 각자 자기 일에만 충실하면 된다고 생각할 뿐이며, 이로 인해 원활한 협업이 이뤄지지 못하는 경우가 많다.

개발자와 운영자의 협업이 원활히 이뤄지지 못할 경우 상호 유기적으로 연계돼야 할 양쪽의 업무가 충돌하기도 한다. 만약 개발 결과물이 서비스 환경에서 정상적으로 동작하면 문제가 없지만, 오류가 발생하면 이를 해결하는데 시간이 걸리며 운영자는 개발자를 탓한다. 반대로 서비스가 원활히 제공되지 못하면 개발자는 운영자의 탓으로 책임을 전가한다. C레벨에서 협업을 강조하더라도 이러한 문제점이 해소되지 않는 이상 같은 현상이 되풀이될 수밖에 없다.

데브옵스의 목적은 이처럼 개발자와 운영자의 협업 부재로 인한 비효율성을 막고 빠르게 서비스가 배포될 수 있도록 하는 것에 있다. 개발자는 운영 업무에 대해 잘 모르고, 운영자 역시 개발 업무에 대한 이해도가 부족하다 보니 툴을 활용해 서로 간의 간극을 메꿔나갈 수 있도록 하는 방안들이 등장했다.

대표적인 것이 자동화다. 그동안 개발자는 개발만 담당하며, 운영자는 테스트부터 배포까지 진행했다. 그러나 자동화를 통해 개발자들이 직접 테스트를 진행하고 배포까지 담당하며, 운영자는 테스트나 배포 과정이 잘 이뤄질 수 있도록 인프라와 플랫폼만 받쳐주면 되는 방식이다.

이에 대해 개발자가 해야 하는 일이 더 많아진다며 문제를 제기하는 경우도 있다. 물론 지금까지 운영자들이 소프트웨어를 배포하는 역할을 해왔지만, 본질적으로는 서비스가 정상적으로 동작할 수 있도록 서버, 스토리지, 네트워크 등의 인프라를 잘 관리하고 운영하는데 있다. 실제로 운영자가 테스트를 진행하는 것은 해당 서비스가 정상적으로 동작하느냐 아니냐의 여부만 확인하는 것일 뿐, 개발자의 의도대로 서비스가 동작하는지의 여부까지 확인하기에는 무리가 따른다.

데브옵스 기반 소프트웨어 수명 주기
데브옵스 기반 소프트웨어 수명 주기

기존 프로세스에 얽매이지 않는 조직 구성 필요

비록 그 어떤 기업도 데브옵스를 활용할 수 있지만, 그렇다고 아무런 계획 없이 데브옵스를 추진해서는 좋은 결과를 얻기 어렵다. 특히 데브옵스는 그 기업의 개발 프로세스와 문화를 바꾸는 것이 궁극적인 목표이기에, 이를 실현하려면 상당 기간이 걸린다는 점도 감안할 필요가 있다.

업계 관계자들에 의하면 데브옵스 적용을 위해 우선적으로 필요한 것이 ‘기존 프로세스에서 적용되지 않는 팀’을 구축하는 것이다. 그 조직은 크지 않아도 된다. 대신 이들을 지원할 높은 수준의 의사결정자가 필요하다.

이후 해야 할 일이 무엇인지 명확히 한다. 소프트웨어를 어떻게 개발하고 배포하는지, 어떤 도구들을 사용하고 있는지 등을 살펴야 하며, 이를 토대로 무엇을 할지를 확고히 해야 한다.

참고할만한 베스트 프랙티스도 찾아봐야 한다. 비록 국내 사례가 아닐지언정 해당 기업이 속한 사업 또는 산업 분야에 있을 가능성은 충분하다. 지멘스와 같은 글로벌 성공사례에 집중해서 필요한 부분을 녹여내는 것도 좋은 방안이다.

이어 만들어야 하는 것들을 어떤 방향(milestone)으로 언제까지 배포해야 하는지를 고려해야 한다. 국내에서는 SI 생태계 때문에 그룹사의 경우 최대 3년을 예상하는 경우가 있으며, 많은 기업들에서 특정 프로젝트에 대해 연 단위 이상 기간을 요청한다. 그러나 빠른 개발과 배포를 위해서는 그 기간을 단축시킬 필요가 있다.

끝으로 기업에서 영위하는 핵심 사업 역량과 소프트웨어의 관계에 대한 ROI를 고려할 필요가 있다. 디지털 전환 사례의 대명사격인 GE는 자사가 제조한 제트엔진이 1%의 연료를 절감할 수 있다면, 전 세계에서 날아다니는 수만 대의 비행기 비용이 얼마나 절감될 수 있는지를 생각했다. 그리고 비용절감을 위해 과연 소프트웨어가 필요한지를 고려했다. 결국은 사업성 이야기로, 사업을 소프트웨어로 할 수 있는지의 검토가 끝나면 시작하면 된다. 만약 스스로 할 수 없을 경우 적절한 파트너를 찾는 편도 도움이 된다.

비록 사업적으로 소프트웨어가 효과가 있다 하더라도 C레벨을 설득하지 못하는 경우도 발생한다. 이때 내부적으로 팀을 구성해 실험해볼 수 있다. 조금 해보고 안 됐다고 포기할 필요는 없으며 눈으로 보여줄 수 있는 전략을 세우는 것이 중요하다.

클라우드 네이티브 지원 역량 확대

클라우드 등 새로운 IT 환경이 등장하면서 기업이 애플리케이션을 개발하고 관리하는 방식이 변하고 있으며, 그 유형도 ERP, DB 등 전통적인 애플리케이션뿐만 아니라 인공지능(AI)이나 사물인터넷(IoT) 기술 등을 이용하는 현대적인 애플리케이션이 새롭게 등장하고 있다.

그러나 기업이 기존 애플리케이션에 더해 이러한 새로운 애플리케이션을 개발하고 구동·관리하는 것이 결코 쉬운 일은 아니다. 특히 데이터센터에서 클라우드 환경까지 다양한 애플리케이션을 연결해 구동하면서도 보안을 유지하기란 더욱 어렵다. 이에 클라우드 업계는 기업 고객이 효율적으로 클라우드 네이티브 애플리케이션을 개발하고 활용할 수 있도록 다양한 솔루션과 서비스를 선보이고 있다.

어떤 클라우드 환경에서도 애플리케이션을 개발하고, 구동하고, 관리하고, 연결하고, 보호가 가능해야 한다고 강조하는 VM웨어는 클라우드에서 구동되는 현대적인 애플리케이션 개발 지원을 위해 쿠버네티스 개발자가 창업한 기업인 헵티오(Heptio)와 피보탈(Pivotal)을 인수했다.

이를 통해 출시된 VM웨어 엔터프라이즈 피보탈 컨테이너 서비스(PKS)는 기업 및 서비스 공급업체가 쿠버네티스 클러스터의 구축·운영을 간소화할 수 있도록 하며, 고급 네트워킹을 위한 긴밀한 NSX-T 통합, 엔터프라이즈 보안 기능을 갖춘 내장 프라이빗 레지스트리 및 클러스터의 전체 수명주기 관리 지원을 포함하는 운영 환경 수준의 쿠버네티스 배포를 제공한다.

또한 탄주(Tanzu) 포트폴리오는 가상화(vSphere), 퍼블릭 클라우드, 매니지드 서비스, 쿠버네티스 분산 패키지, DIY 형태 쿠버네티스 환경 등 구동 위치에 관계없이 쿠버네티스 클러스터 전반을 관리할 수 있는 단일 제어 포인트를 제공한다.

레드햇도 기업 고객에게 새로운 기능을 지속적으로 제공할 수 있도록 클라우드 네이티브 애플리케이션 개발의 모든 측면을 지원한다. 주요 제품으로는 ▲클라우드 네이티브 애플리케이션을 더 빠르게 배포할 수 있도록 지원하는 컨테이너·쿠버네티스 플랫폼 ‘오픈시프트’ ▲간편한 에이전트리스 IT 자동화 기술로 프로세스 개선과 보다 나은 최적화를 위해 애플리케이션을 마이그레이션 및 데브옵스 사례를 위한 단일 언어를 제공하는 ‘앤서블 오토메이션 플랫폼’ ▲오픈 프라이빗 또는 퍼블릭 클라우드를 구축하고 관리하기 위한 ‘오픈스택 플랫폼’ 등이 있다.

 

 

 



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.