skip to Main Content

애플리케이션 운영관리 FAQ (1)

Q. 개발자PC, 개발서버, 운영서버의 환경이 서로 달라 테스트를 할 때마다 어려움이 많습니다. 애플리케이션을 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 이동하면서도 안정적으로 실행할 수 있는 방법이 없을까요?

A: 컨테이너를 이용해 애플리케이션을 패키징하면 오류를 최소화 할 수 있습니다. 컨테이너는 애플리케이션의 코드, 구성 및 종속성을 하나의 객체로 패키징하는 표준화된 방식을 제공합니다. 컨테이너는 서버에 설치된 운영 체제를 공유하며 리소스가 격리된 프로세스 형태로 실행되므로, 환경에 상관없이 빠르고 안정적이며 일관된 배포를 보장합니다. 최근에는 VSCode, IntelliJ와 같은 IDE를 통해 컨테이너 플랫폼에서 쉽게 개발할 수 있는 환경을 제공하고 있습니다.

Q. 여러 대의 애플리케이션 서버를 관리하고 있는데 각 서버들의 OS Library 패치나 애플리케이션의 환경설정이 서로 다릅니다. 이럴 땐 어떻게 관리하면 좋을까요?

A: 애플리케이션 운영 상황에서 각종 Library 패치, 애플리케이션 환경 설정 변경과 같은 요구 사항이 발생하게 되면 서버에 반영하는 작업을 해야합니다. 서버가 한 대일 경우에는 상관없으나 여러 대를 운영하다 보면, 각 서버마다 Library 버전이나 환경설정 등이 다를 수 있습니다. 그리고 서버가 증설되는 경우에도 운영체제부터 Library, 환경설정 등을 완전히 동일하게 구성하기가 쉽지 않습니다. 이러한 문제는 컨테이너를 활용해 서버 환경이나 Library 패치, 애플리케이션을 패키징함으로써 손쉽게 해결할 수 있습니다.

Q. 수정한 내용을 배포할 때는 FTP를 사용하여 각 서버에 업로드하고 있습니다. 불편하기도 하지만 실수로 배포하지 못하는 서버가 있으면 장애도 많이 발생합니다. 다수의 Web/WAS를 사용 중인데 보안 패치 또는 업그레이드 할 때 마다 1주일 정도가 소요됩니다. 이로 인한 시간과 인력의 소모가 심할 뿐 아니라 누락된 서버가 발생할 수 있어 불안합니다. 좋은 해결 방법이 없을까요?

A: 서버가 1~2대인 경우에는 불편하더라도 FTP를 이용하여 소스를 직접 배포할 수 있습니다. 반면, 다수의 서버를 운영할 경우 소스 변경이나 보안패치/업그레이드 등이 발생하게 되면 개별 서버에서 별도의 작업을 진행함으로써 실수로 인한 장애가 발생할 가능성이 높습니다. 수정된 소스나 보안패치/업그레이드 등을 도커를 활용해 이미지 생성 후 이미지 저장소에 업데이트를 수행하고, 쿠버네티스를 이용하여, 운영 중인 각 서버에 해당 이미지를 배포하게 되면 손쉽게 동일한 환경으로 구성할 수 있게 됩니다.

Q. Web/WAS 운영 중인데 사용자가 점점 늘어나 서버 증설이 필요합니다. 기본 서버에 설치된 패키지가 너무 많아 설치할 때 마다 어려움이 많습니다. 쉽게 설치할 수 있는 방법이 없을까요?

A: 동일한 서버를 계속 증설해야 할 때 다양한 스크립트 언어를 사용해서 설치 자동화를 구성하는 Provisioning을 사용하는 경우가 많았습니다. 하지만 컨테이너는 복잡한 Provisioning 언어를 습득하지 않아도 되며, 자원 사용의 효율성 및 증설에 따른 배포 시간 축소, 이미지 경량화 등에서 우수합니다. 따라서 운영중인 Web/WAS의 환경 구성을 이미지로 생성하여 컨테이너화하면 쉽게 확장 및 운영 관리할 수 있습니다.

Q. IT환경 변화에 빠르게 대처하기 위해 MSA(Micro Service Architecture)로 차세대를 구축하려고 합니다. 컨테이너를 사용하여 MSA를 구성하는 것이 좋다고 하는데 어떤 이유 때문인가요?

A: MSA는 하나의 큰 서비스를 독립적인 역할을 수행하는 작은 단위의 서비스로 분리할 수 있어 애플리케이션 변경이 용이하고, 효율적인 자원 사용이 가능하다는 장점이 있습니다. 그렇기때문에 MSA는 수평적 확장이 가능한 탄력적 아키텍처로 설계되어야 하며, 급격한 변화에 빠르게 대응할 수 있도록 프로그램에 대한 효율적인 설계, 구축, 배포, 운영이 필요합니다. 확장성과 표준성을 특징으로 하는 도커는 마이크로서비스의 유연하고 탄력적인 배포에 매우 적합합니다. 쿠버네티스에서는 istio 플랫폼과 연동하여 마이크로서비스를 위한 연결, 관리, 보안기능을 기본 제공함으로써 로드밸런싱, 서비스-서비스 간 인증, 모니터링 등을 어떤 코드의 변경 없이 서비스들 간의 네트워크를 쉽게 만들어 줄 수 있습니다.

Back To Top