김영태 VM웨어 탄주팀 상무

김영태 VM웨어 탄주팀 상무
김영태 VM웨어 탄주팀 상무

[아이티데일리] 지난 수십 년간 많은 기업이 비즈니스와 전략적 운영을 위한 핵심 시스템을 포함해 수많은 기업 맞춤형 소프트웨어(SW) 코드를 개발해왔다. 하지만 이러한 코드 개발은 대부분 변경이나 진화를 핵심으로 생각하고 구현된 것이 아니라 현재 요건을 안정적으로 동작하게 구현돼왔다.

기업은 핵심 시스템과 결합된 새로운 고객 경험을 구축하거나 소프트웨어 규모가 증가함에 따라 유지 관리 비용이 증가할 때, 그리고 클라우드 및 오픈소스에서 제공하는 서버리스 컴퓨팅, 머신러닝, 인공지능과 같은 혁신 기술을 도입하고자 할 때 도전과제에 직면하게 된다.

최근 시장조사기관 포레스터 리서치(Forrester Research)가 발표한 ‘클라우드를 통한 핵심 애플리케이션 현대화(Modernize Core Applications with Cloud)’ 보고서에서는 ‘향후 10년간 애플리케이션 분야 리더들이 마주할 가장 어렵지만 중요한 작업’으로 핵심 시스템 현대화가 선정되기도 했다.

애플리케이션 현대화, 왜 필요한가?

애플리케이션 현대화는 IT 팀만 관여하는 일처럼 여겨질 수 있으나 사실 비즈니스 전반에 영향을 미친다. 잘 설계된 최신 애플리케이션은 기업이 다음과 같은 광범위한 목표를 달성하고 다양한 문제를 해결하는 데 도움을 줄 수 있다.

디지털 트랜스포메이션을 통한 비즈니스 우위 선점

모바일, 블록체인, 인공지능, 사물인터넷. 최근 업계에서 주목받고 있는 기술들이지만 핵심 시스템에 적용되지 못하다면 실제 비즈니스에 미치는 영향은 미미하다. 현대화된 시스템을 통해 기업은 변화하는 비즈니스 요구 사항에 맞춰 빠르게 소프트웨어를 변경할 수 있기 때문에 대금 청구시스템 통합 또는 계약시스템과 기록시스템 간 통합처럼 조금은 덜 매력적일 수 있는 부분의 현대화일지라도 기업이 경쟁사로부터 우위를 점하는 데 영향을 미칠 수 있다.

막대한 기술 부채 절감

많은 조직이 지원이 중단되었거나 지원 기간이 끝나가는 언어, 프레임워크, 기타 애플리케이션 인프라 계층에 운영 기반을 두고 있다. 기업이 가장 해결하기 어려운 기술 부채는 바로 변경이 쉽지 않은 코드이다. 코드 사용을 연장함으로써 발생하는 높은 수수료부터 노동 집약적인 유지 관리에 이르기까지 코드 변경이 늦어질수록 더 많은 비용이 소요된다.

코드 변경이 용이하도록 소프트웨어를 현대화하면 유지 관리 비용이 줄어들고 정기적으로 패치를 실시하는 등 모범적인 보안 정책을 쉽게 시행할 수 있다. 지난해 가트너가 발간한 ‘인프라와 운영 기술 부채 감소를 통한 민첩성 확보(Overcome Barriers to Agility by Reducing Technical Debt in I&O)’ 보고서에 따르면, 2023년까지 기술 부채를 적극적으로 관리하고 줄이는 인프라 및 운영 리더는 서비스 제공 시간을 최소 50% 단축할 수 있을 것으로 예측되고 있다.

클라우드 혁신을 위한 최신 아키텍처 요구 사항 충족

클라우드 마이그레이션 초기에 많은 기업은 애플리케이션을 그대로 들어서 옮기는 ‘리프트 앤 시프트(Lift and Shift)’ 접근 방식을 취했고, 그 결과 클라우드가 제공하는 유연성과 혁신을 실현하는 데 어려움을 겪었다.

혁신적인 클라우드 오퍼링은 대부분 최신 아키텍처를 필요로 한다. 모든 소프트웨어를 현대화해야 하는 것은 아니지만, 혁신을 통한 수혜를 받을 수 있는 소프트웨어나 변화 과정에 상당한 시간과 비용이 소모되는 애플리케이션의 경우 특히 현대화가 요구된다.

애플리케이션 현대화를 위한 ‘마법의 버튼’은 없다

애플리케이션 현대화가 주는 이점을 알고, 대대적인 현대화를 위해 수십억 원을 지불하고도 원하는 결과를 얻지 못하는 이유는 무엇일까? 많은 기업이 애플리케이션 현대화를 IT 중심적으로 접근하고 있다. 하지만 성공적인 현대화를 위해선 보다 실용적인 접근 방식을 취해야 한다. 더 광범위한 노력을 기울여야 하며 이와 더불어 인력, 프로세스, 기술, 이 세 가지 요소를 어떻게 변화시킬지에 초점을 맞춰야 한다.

인력: 현대화 팀의 정체성을 확고히 하라

기존의 기술과 목표, 조직 구조를 유지하면서 새로운 결과를 기대하는 것은 터무니없는 일이다. 또한, 바다 전체를 끓이듯 모든 것을 한 번에 현대화하려는 불가능에 가까운 시도는 실패로 끝날 가능성이 높다. ‘천 리 길도 한 걸음부터’라는 속담처럼 애플리케이션 현대화는 비정기적인 대규모 프로젝트가 아닌 지속적인 접근을 통해 관리돼야 한다. 이를 위해 현대화를 위한 전담 팀을 구성하고 이들의 정체성을 확고히 할 수 있도록 적극적인 지원이 뒤따라야 한다.

프로세스: 소프트웨어 구동의 흐름을 파악하고 최적화된 현대화 방식을 찾아라

앞서 애플리케이션 현대화 과정에서 코드 변경에 대한 어려움을 언급한 바 있다. 하지만 코드 생성 과정을 변경하는 것은 코드 자체를 변경하는 것만큼이나 많은 작업이 요구된다. 수년간 많은 기업이 코드 생성 과정에서 발생하는 리스크를 최소화하기 위해 검사 및 제어 기능을 추가했으나 이는 오히려 더욱 방대하고 난해한 프로세스로 이어지곤 했다. 코드 현대화를 위한 최적의 방법을 찾고 있다면 다음의 세 가지 제언이 도움이 될 것이다.

1. 안정성을 위해 변경 속도를 높여라: 소프트웨어 제공 과정에서 리스크를 방지하기 위해 설계된 모든 프로세스 계층에도 불구하고 중단, 오류, 유출 등과 같은 문제는 계속 발생하고 있다. 역설적으로 들릴 수 있지만 리스크를 방지하기 위한 노력보다는 발생 가능성을 염두에 두고 빠르게 변경이 가능한 설계 방식을 구축한다면 문제 발생 시 더 빠른 복구가 가능할 것이다.

2. 단계별 제어를 완화해라: 규정 준수 요건을 해석한 기존 프로세스의 경우 사람들은 프로세스의 목표보다 프로세스 자체에 무게를 두는 경향이 있다. 보다 나은 현대화를 추구하기 위해 기존 규정에 새로운 해석을 부여하는 것이 필요하다.

3. 생산 과정을 현대화하라: 기술 증명(proof-of-concept)만으로는 실질적인 비즈니스 성과를 낼 수 없다. 프로젝트 실현에 앞서 기업이 너무 많은 작업을 한꺼번에 수행하려고 하는 것은 문제가 될 수 있다. 선택과 집중을 통해 수익성이 있고 신속하게 생산 시스템을 현대화할 수 있는 부분에 집중하는 것이 좋다. 한 아이디어가 실현되기까지의 전 과정과 상호 작용을 이해하려면 노력과 자동화가 적잖이 요구된다.

최근 가트너가 발간한 ‘쿠버네티스로 컨테이너화된 애플리케이션 배포를 위한 데브옵스 워크플로우 설계 및 운영(Designing and Operating DevOps Workflows to Deploy Containerized Applications With Kubernetes)’ 보고서는 인프라, 운영 및 클라우드 관리를 담당하는 I&O 전문가가 비즈니스 가치를 신속하게 제공하기 위해 애플리케이션 개발팀과 협력해 애플리케이션 제공 파이프라인을 최대한 활용하고, 업데이트된 컨테이너를 생산 단계로 촉진하는 프로세스를 자동화할 것을 제안했다.

기술: 마이크로서비스, 컨테이너, 쿠버네티스에 주목하라

오늘날 기술은 종종 모든 것의 해결책으로 여겨지지만, 실제로 애플리케이션 현대화 과정에서 기술이 차지하는 역할은 일부에 불과하다. 쿠버네티스(Kubernetes)와 같은 신기술을 도입했다고 해도 이를 관리하기 위한 제한된 역량만 보유하고 있다면 새로운 복잡성과 어려움에 직면하게 된다.

애플리케이션 현대화의 목표는 비즈니스와 보안을 위해 코드를 신속하게 변경할 수 있도록 지원하는 것이지만 때로는 전통적인 모노리스(monoliths)에서 마이크로서비스로 이동하는 형태로 나타나기도 한다. 마이크로서비스는 데브옵스(DevOps) 구현을 위해 가장 중요한 클라우드 네이티브 기술일 뿐만 아니라 각각의 서비스를 분리할 수 있는 아키텍처 패턴으로 자리 잡았다. 마이크로서비스는 가볍고, 쉽게 구동할 수 있으며, 인프라 간 일관된 런타임을 제공하는 컨테이너 방식을 선호한다.

광범위한 애플리케이션 현대화 과정에서 단순히 클라우드로 리프트 앤 시프트하는 것만으로는 원하는 효과를 거둘 수 없다는 점을 고려했을 때, 컨테이너화된 애플리케이션은 인프라 간 이동이나 일관된 실행 방식과 같은 현대화 과정에서 용이하다. 여기에 가장 많이 활용되고 있는 컨테이너 오케스트레이션 플랫폼인 쿠버네티스를 통해 애플리케이션 배치 및 관리 작업을 단순화할 수 있다.

현대화를 위해 소프트웨어를 이해하는 리더가 되라

VM웨어가 시장조사기관 밴슨 본(Vanson Bourne)에 의뢰해 한국을 포함한 전 세계 17개국 약 5천여 명의 기업 내 비즈니스 결정권자, IT 의사결정권자, 애플리케이션 개발자를 대상으로 진행한 ‘성공적인 디지털 트랜스포메이션: 준비된 애플리케이션(Successful Digital Transformation: Apps At The Ready)’ 조사 보고서에 따르면 성공한 아태지역 기업들은 기술이 성공을 결정하는 요소 중 하나에 불과하며 소프트웨어와 조직 간의 조율을 이해할 수 있는 역량과 리더십이 성공을 결정한다고 답했다.

또한 다양한 기술 경험을 보유한 직원이 디지털 트랜스포메이션 이니셔티브에 깊게 관여하거나(94%), 소프트웨어를 잘 이해하는 리더가 이끄는 조직일수록(89%), 또는 애플리케이션 개발 과정에 관여하는 이해관계자 간의 연대가 강할수록(88%) 기업이 성공할 확률이 더 높다고 여겼다. 특히 한국의 경우, 기업의 성공을 위해 소프트웨어를 잘 이해하는 리더가 중요하다고 답한 비율이 94%로, 디지털 트랜스포메이션을 추진하는 데 있어 직원과 리더의 역량을 동일하게 중시하는 경향을 보였다.

‘성공적인 디지털 트랜스포메이션: 준비된 애플리케이션’ 조사 보고서(출처: VM웨어)
‘성공적인 디지털 트랜스포메이션: 준비된 애플리케이션’ 조사 보고서(출처: VM웨어)

애플리케이션 현대화는 불가능한 일을 실현하는 것이 아니다. 기업이 구축하고자 하는 비즈니스 역량을 명확하게 파악하고 그 역량을 통해 이룰 수 있는 모든 것들을 고려해야 한다. 이와 더불어 현대화 과정에서 개선점을 발굴하고 이를 해결하기 위해 개발자들과 활발히 소통하며 접점을 찾으려는 노력이 요구된다.

마지막으로 애플리케이션 현대화는 지속적으로 이루어져야 한다는 점을 잊지 말라. 이를 위해 외부 업체와의 협업과는 별개로 현대화 전담 팀을 조직 내 확보해, 현대화의 모범 사례를 구축하고 유동적으로 관련 문제를 해결할 수 있는 역량을 기르는 것이 중요하다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지