[2021 클라우드 DT 웨비나④] PaaS를 활용한 비대면 개발환경 구축하기
이진현 맨텍 OSS 본부장
[아이티데일리] 세 번째 순서는 이진현 맨텍 OSS 본부장이 ‘PaaS를 활용한 비대면 개발환경 구축하기’라는 주제로 발표를 진행했다.
이진현 본부장은 쿠버네티스를 활용해 화두가 되고 있는 비대면 서비스에 적용하는 방법에 대해 공유했다. 이 본부장은 비대면 개발 환경을 구축해야 하는 이유에 대해 “코로나 팬데믹 상황에서 고객들의 요구사항은 더욱 늘어나고 있다. 실제 닷컴, 물류 회사의 경우 수십 배 이상 다양한 요구사항이 쏟아지고 있으며 트래픽 또한 크게 늘어났다. 그러나 전문 개발자를 구하기는 어려워 이러한 요구사항에 대응하기는 어려워 졌다”면서, “IT 기업들이 코로나로 인해 특수를 맞아 개발 인원들을 흡수하고 있다. 그리고 더욱 힘든 것은 그동안 개발자들이 머리를 맞대고 모여서 개발해왔는데, 이 모임이 금지됐다”고 설명했다.
최근에는 컨테이너 기반의 데브옵스를 구현하기 위해 많은 기업들은 힘을 쏟고 있다. 하지만 제대로 구현하지는 못하고 있다. 이유는 비대면으로 개발환경을 구축할 때에는 생산성을 어떻게 높일지, 프로세스를 만들고 정착할 수 있는데 집중해야 하는데, 여기에 사용되는 솔루션만 적용하고 있기 때문이다. 제대로 된 데브옵스를 구현하기 위해서는 개발 프로세스를 정립해야 하고, 이렇게 정립된 프로세스를 기업의 개발 과정에 정착시켜야 한다는 것이다.
이 같은 프로세스 정립과 정착을 지원할 수 있는 툴이 바로 쿠버네티스와 컨테이너다. 이진현 본부장은 쿠버네티스와 컨테이너 기반으로 데브옵스를 구축할 때 고려해야 할 사항에 대해 설명했다. 핵심은 개발된 소스코드를 지정된 곳에 강제로 저장해야 한다. SI 형태로 개발할 경우 소스코드 저장에 대한 관리가 명확하지 않다. 가령 외부 개발자나 프리랜서를 고용하는데, 개발이 끝나면 개발에 사용된 소스코드가 행방불명되는 경우가 있다. 그렇기에 Git허브나 SVN 등에 저장할 수 있도록 강제로 자동화해야 한다.
다음은 데브옵스 프로세스에 적용되는 수많은 애플리케이션을 하나의 방식으로 형상화해 관리해야 한다. 개발에 필요한 언어나, 미들웨어 종류는 많다. 이를 하나의 방식으로 형상화해 관리해야만 빠르게 배포하고 개발할 수 있다. 이진현 본부장은 “많은 개발 산출물들을 하나의 형상인 컨테이너로 구성하게 될 경우 빠르게 배포하고 개발할 수 있다”면서, “개발된 것들을 컨테이너에 저장하기 위해서는 컨테이너 저장소도 필요하다”고 설명했다.
특히, 컨테이너에 이미지 파일들을 저장하고 이를 관리하기 위해서는 컨테이너 오케스트레이션 툴도 필요한데 대표적인 게 바로 쿠버네티스다. 이를 이용해 빌드부터 컨테이너로의 병합, 서비스 배포를 자동화할 수 있다.
쿠버네티스 환경을 구성하는 방식도 중요하다. 쿠버네티스 환경을 구성하기 위해서는 마스터 노드가 필요하다. 보통 1대만 있어도 쿠버네티스 환경을 구성할 수는 있지만, 장애가 발생할 때 모니터링, 서비스 배포 등이 중단된다. 그렇기에 마스터노드는 이중화 혹은 삼중화를 해야 한다. 물리환경이던, 가상화 환경이던, 컨테이너 환경이던 동일하다. 마스터노드는 쿠버네티스 마스터의 역할을 수행하고, DB나 싱글사인온(SSO) 등을 포함해야 한다.
다음으로 인프라노드를 만들어야 한다. 이진현 본부장은 고성능을 위해서는 인프라노드를 2대 이상 구성하는 것이 좋다고 강조했다. 인프라 노드에는 모니터링이나 알람, 로깅과 관련된 SW들이 포함된다. 워커노드에는 컨테이너 형태로 개발된 SW를 올리기 위한 환경이 구성되며, 형상관리를 위한 소스 저장소가 포함된다. 쿠버네티스로 비대면 개발환경을 만들기 위해서는 마스터노드, 인프라노드, 워커노드 등 최소 3대의 서버가 필요하다.
내부 환경을 구성하는 스택의 경우에는 빌드 배포환경으로 ‘젠킨스’를 사용할 수 있다. 컨테이너 기반의 애플리케이션 패키지를 위해서는 헬름차트도 구성해야 한다. 컨테이너를 저장할 때의 저장소도 구성해야 한다.
이진현 본부장은 이 같은 환경 구성 이후에는 애플리케이션을 위한 개발 도구를 제공해야 한다고 설명했다. 이 본부장은 “개발 도구를 개발자들에게 제공하기 위해서는 2가지 방식이 있다. 바로 웹 기반의 IDE로 제공하는 방법과 VDI 환경으로 제공하는 방법”이라며, “현재 많은 기업과 기관들이 이 2가지를 고려하고 있다”고 말했다.
먼저 웹 IDE를 통해 개발하기 위해선 웹브라우저로 접속하게 된다. 웹 브라우저로 접속하기 때문에 다바이스 제약이 없다. 웹 기반으로 IDE를 제공할 경우, 개발 소스를 자동으로 깃허브나 SVN에 강제로 소스를 저장할 수도 있다. VDI로 접속할 경우, 클라이언트를 설치해야 한다. VDI는 현재 윈도우 OS만 제공하고 있기 때문에, 디바이스 제약이 있다.
이진현 본부장은 “웹 기반 IDE와 VDI 등 2가지 방식은 기업의 예산 사항과 프로세스에 맞게 선택할 수 있다”면서, “비용은 웹 IDE가, 성능은 VDI가 좋다고 알려졌다. 다만, 최근에는 웹 IDE도 VDI와 성능 면에서 큰 차이가 없다”고 설명했다.