본문 바로가기

PRODUCT/Cloud

OpenShift를 활용한 컨테이너 기반의 애플리케이션 현대화 방안

애플리케이션 현대화는 클라우드 네이티브 조직으로 가는 첫걸음입니다. 많은 조직이 컨테이너 전환과 함께 애플리케이션 현대화의 첫 삽을 뜨는 것을 주변에서 어렵지 않게 볼 수 있죠. 그렇다면 이들 기업은 어떤 고민 속에서 현대화 여정을 걷고 있을까요? 그 길을 살펴보겠습니다.

 

이유 찾기

 

애플리케이션 현대화는 남들이 하니까 우리도 해야 하는 과제가 아닙니다. 클라우드 전환에 있어 누구나 거쳐야 하는 과정입니다. 하지만 처음 계획을 세울 때 왜 해야 하는지에 대한 내부의 공감을 끌어내기 쉽지 않은 것 또한 현실입니다. 애플리케이션 담당자, 인프라 운영자 등 이해관계자의 공감 속에서 공동의 목표를 세우는 것이 생각처럼 쉽지 않을 수 있습니다. 이런 이유로 애플리케이션 현대화를 하는 합리적인 이유를 찾는 것이 계획 수립에 있어 매우 중요합니다. 그 이유는 조직에 따라 다를 것입니다. 사일로 환경을 없애는 것이 목표일 수도 있고, 비용 절감이 최우선 과제일 수 있고, DevOps 체제를 정립해 운영 효율성과 팀의 민첩성을 높이고자 할 수도 있습니다. 무엇이 되었건 모두가 뜻을 모을 수 있는 이유 찾기가 중요합니다.

대상 정하기

 

애플리케이션 현대화는 모든 레거시를 대상으로 할 수 있는 일이 아닙니다. 현대화가 가능한 것과 그렇지 않은 것, 꼭 해야 할 것과 기존 환경을 유지하는 것이 더 유리한 것 등 여러 기준을 적용해 대상을 정해야 합니다. 이 과정 역시 개발과 운영의 합의가 필요합니다. 소프트웨어 아키텍처와 시스템 운영 방식 모두를 살펴야 합니다.

 

개발과 운영은 협의를 통해 대상 선정을 위한 필터링 작업을 합니다. 이를 위해 사전 평가를 합니다. 데이터센터 내에서 운영 중인 메인프레임, 애플리케이션 서버, 데이터베이스 서버 등에 대한 현황 조사를 하는 것이죠. 보통 Java EE, .NET 기반 애플리케이션을 전환 대상으로 검토합니다. 더불어 소프트웨어 측면에서 애플리케이션 현대화에 필요한 요소도 알아봐야 하는데, 현재 사용 중인 상용 미들웨어나 솔루션의 컨테이너 지원 여부를 제공 업체를 통해 확인합니다.

 

방법 정하기

 

대상 선정 후 할 일은 각각에 대한 전환 방법론을 정하는 것입니다. 컨테이너 환경을 기준으로 놓고 레거시 시스템을 어떤 식으로 전환할지 결정해야 합니다. SLA, 종속성 등을 따져 각 애플리케이션에 맞는 방법으로 레드햇 OpenShift 환경으로 옮깁니다.

 

많은 조직이 이 과정에서 알아보는 방법은 리프트 앤 시프트(Lift & Shift)와 리팩토링입니다. 리프트 앤 시프트는 말 그로 기존 환경을 그대로 들어 옮기는 것입니다. 기존 모노리틱 아키텍처의 소프트웨어 스택을 그대로 컨테이너 환경으로 가져오는 것입니다. 에 따라 컨테이너로 옮기기 어려운 워크로드도 있습니다. 이때는 가상 머신을 그대로 레드햇 OpenShift로 가져오면 됩니다. 레드햇은 컨테이너와 가상 머신을 단일 플랫폼 환경에서 운영할 수 있는 기능인 OpenShift Virtualization을 제공합니다. 이를 이용하면 OpenShift 환경에서 컨테이너와 가상 머신을 나란히 운영할 수 있습니다. 여기서 궁금증이 들 것입니다. 가상 머신을 굳이 OpenShift로 옮겨야 하나? 그 이유는 DevOps라는 큰 목표 아래 단일 플랫폼으로 통합하기 위함과 중장기적으로 가상 머신 기반 워크로드까지 현대화하기 위함입니다.

 

다음으로 리팩토링은 기존 애플리케이션을 작은 구성 요소로 나누어 전환하는 것입니다. 완벽한 마이크로서비스로 가기 위한 단계 작업을 한다고 있습니다. 필요에 따라 레거시를 마이크로서비스 형태로 재개발을 하는 경우도 있는데, 이는 별도의 주제로 따로 다루어 보겠습니다.

 

OpenShift 4.7의 등장이 반가운 이유

 

애플리케이션 현대화의 편의성은 나날이 높아지고 있습니다. OpenShift가 버전업을 거듭하면서 애플리케이션 현대화 과정은 점점 간결해 지고 있습니다. 예를 들어 OpenShift 4.7에는 앞서 소개한 OpenShift Virtualization 기능을 지원하여 애플리케이션 현대화 대상의 폭을 넓혔습니다. 더불어 Windows 컨테이너 지원도 강화되었습니다. 관련 기능이 확장되었고, AWSAzureWindows 컨테이너 지원이 추가되었고, vSphereWindows 컨테이너도 지원합니다. 따라서 예전처럼 Windows 서버에서 운영하던 애플리케이션의 컨테이너 전환을 위한 사전 작업으로 리눅스 마이그레이션을 꼭 하지 않아도 됩니다.

 

현대화 다음 단계

 

전환 대상을 각각의 애플리케이션 특징에 맞게 OpenShift 환경으로 옮기는 첫 번째 여정을 마치고 나면 이제 남은 것은 클라우드 네이티브로 본격적으로 나아가는 일이 남습니다. 첫 번째 전환을 하고 나면 보통 전통적인 레거시 애플리케이션과 클라우드 런타임 형태로 패키징된 애플리케이션 그리고 재개발을 통해 클라우드 네이이브 애플리케이션이 공존합니다. 남은 일은 컨테이너 환경으로 옮긴 기존 애플리케이션 모두에 대한 클라우드 네이티브 전환을 진행하는 것입니다. 이상으로 OpenShfit 활용한 컨테이너 기반의 애플리케이션 현대화 방안을 간단히 살펴보았습니다. 더 자세한 사항은 락플레이스로 문의 바랍니다.