기존 애플리케이션을 컨테이너로 이전하는 쉬운 방법

이번 글에서는 기존 애플리케이션을 쉽게 컨테이너로 이전하는 방법에 대해서 안내드리도록 하겠씁니다.


주로 개발자들이 애플리케이션을 개발할 때는 개인 환경에서 개발한 뒤에 통합 환경에서 여러 개발자의 코드를 통합합니다. 

그 다음 테스트 환경에서 애플리케이션을 테스트 한 뒤에, 실제 운영 환경으로 애플리케이션을 이전하게 됩니다. 이렇게 수차례 환경을 이전하다 보면 소프트웨어의 버전이나 서버 설정의 차이로 인해 다양한 장애가 매우 빈번하게 발생하고 이를 해결하기 위해 많은 시간이 소요됩니다.

컨테이너를 사용하면 환경 이전이 쉽기 때문에 소요 시간을 대폭 줄일 수 있습니다. 




컨테이너에 애플리케이션과 애플리케이션을 구동하는 환경을 그대로 담고 그 환경 자체를 다른 서버로 이전하면, 장애 걱정 없이 신속하고 안정적으로 환경을 이전할 수 있습니다.

베어메탈 또는 VM에서 기동 되는 애플리케이션들은 각자의 운영체제, TCP 및 파일 스택 등이 필요하며 호스트 시스템의 상당한 처리 성능과 메모리를 사용합니다.


반면에 컨테이너화된 앱은 적은 메모리와 CPU 오버헤드를 사용하며, 호스트 운영체제의 커널, TCP 및 파일 스택 등의 리소스를 공유하면서 서로 독립적으로 격리됩니다. 따라서 다른 컨테이너에 영향을 끼치지 않고 유연하게 확장될 수 있어, 성능과 리소스 측면에서 활용도가 높습니다.



기존 애플리케이션을 컨테이너로 마이그레이션 하는 것의 동기는 이제 충분합니다. 

그러면 어떻게 기존 애플리케이션 앱을 컨테이너화 할까요?


우선 기존 애플리케이션 앱을 분석하여 분해 가능한 마이크로서비스를 식별해야 합니다. 

기존 애플리케이션을 논리적으로 분해될 수 있는 작은 독립된 서비스로 쪼개는 것은 마이그레이션의 첫 걸음입니다. 

식별된 마이크로서비스를 도커의 도움으로 컨테이너화 할 수 있습니다. 컨테이너화된 마이크로서비스를 쿠버네티스를 통해 클러스터에 배포함으로써 마이그레이션은 최종 마무리 됩니다.


전통적인 3-tier 구조의 WEB, WAS, DB로 구성된 시스템에서 WAS를 가지고 예를 들어보겠습니다.

상용 WAS인 경우 이를 운영하기 위한 3가지 종류의 인스턴스가 있습니다. 

Domain Admin Server, Node Manager, Managed Server 입니다.


Domain Admin Server는 도메인의 모든 리소스를 구성하고 관리 운영하는 매니저 역할을 하며, 

Node Manager는 관리 서버 추가 및 삭제를 담당합니다. 

Managed Server는 실제 서비스를 수행합니다.


도커 엔진을 통해서 Managed Server의 컨테이너 이미지를 만들어야 합니다. 

이 시점에서는 노드에 대한 관리가 필요 없기 때문에 Node Manager 컨테이너가 필요 없어져 인프라 구조가 심플해 집니다.

이미지를 만들었으면 컨테이너의 데이터를 지속시키기 위해서 PV을 설정해야 합니다. 

쿠버네티스에서는 여러 유형의 스토리지를 통해 PV를 제공합니다. 

PVC를 사용하면 컨테이너화된 WAS에서 사용하는 로그나 데이터를 스토리지에 영구적으로 저장할 수 있습니다.

인증 정보나 서비스의 구성의 하드 코딩 방지를 하고 배포의 유연함을 위해 모든 구성 정보는 환경 변수로 저장을 해야 합니다. 

쿠버네티스에서는 Secret과 ConfigMap을 작성하여 이를 가능케 합니다.



이렇게 구성된 도커 이미지와 볼륨, 환경변수, Secret, ConfigMap을 조합하여 클러스터에 배포합니다. 

마이그레이션을 위해 도커 파일을 만들고, Deployment.yaml 파일을 작성하는 위와 같은 일련의 작업들은 운영자 입장에서 많은 어려움이 있습니다. 


컨테이너 통합 관리 솔루션은 이럴 때 필요합니다.


대표적인 컨테이너 통합관리 솔루션 아코디언의 경우 도커 파일과 Jenkins 기반의 빌드를 수행 할 수 있는 애플리케이션 템플릿을 제공하며, 

앱 배포 시 자동으로 Deployment.yaml 파일이 생성되고 커스터마이징 할 수 있는 환경을 제공하여 

운영자는 손쉽게 기존 애플리케이션을 컨터이너화 하여 클러스터에 배포할 수 있습니다


다음 2편에서는 하이브리드 / 멀티 클라우드 구축 운영시에 쓰이는 컨테이너 통합관리 솔루션에 대해 설명해드리도록 하겠습니다! 


1개의 댓글이 있습니다.

약 3년 전

감사합니다~

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입