Loading...

컨테이너화

2 Contents
최신순

EOST2020

SK텔레콤의 한유(HANU) 프로젝트는 '함께 누리'라는 뜻을 담아, 클라우드 인프라를 클라우드 네이티브 방식으로 관리하기 위한 기술적 토대를 제공합니다. 이는 단순히 특정 기업의 솔루션을 넘어, 다양한 오픈소스 소프트웨어를 결합하고 국내 기술 커뮤니티가 활성화될 수 있는 열린 공간을 지향합니다. 인프라 구축의 장벽을 낮추고 기술 공유를 통해 국내 생태계가 함께 성장하는 것을 목표로 삼고 있으며, 이를 위해 다년간 축적된 상용화 기술들을 순차적으로 공개하고 있습니다. 한유(HANU) 프로젝트의 핵심 기술 중 하나인 TACO는 쿠버네티스를 기반으로 클라우드 인프라를 선언적으로 관리할 수 있도록 돕습니다. 2016년부터 개발을 시작하여 오픈스택을 컨테이너화하고 쿠버네티스상에서 구동함으로써 설치와 업그레이드 편의성을 극대화했습니다. 초기에는 네트워크 가상화를 위한 IaaS 기능에 집중했으나, 현재는 프라이빗과 하이브리드 클라우드 환경 전반을 아우르는 PaaS 영역까지 확장되었습니다. 이는 T map을 비롯한 다양한 서비스에 적용되며 기술적 완성도를 입증해왔습니다. 클라우드 플랫폼 자체와 인프라 리소스의 생명주기를 선언적으로 관리하는 것은 이 프로젝트의 가장 큰 차별점입니다. 이를 실현하기 위해 데카파드(Decapod)라는 애플리케이션 배포 도구를 개발하여 활용하고 있습니다. 데카파드(Decapod)는 GitOps 방식을 채택하여 복잡한 시스템 구성을 구조화하고, 문제 발생 시 특정 시점을 지정해 신속하게 트러블슈팅하거나 롤백할 수 있는 환경을 제공합니다. 이는 대규모 클러스터 운영 시 발생하는 의존성 문제와 배포의 복잡성을 획기적으로 해결해 주는 중요한 도구입니다. 이러한 기술력은 SK브로드밴드의 B tv 서비스에 실제로 적용되어 대규모 가동 사례를 확보했습니다. 약 550만 가입자를 보유한 IPTV 서비스의 가용성을 높이기 위해 멀티 하이브리드 클러스터 구조가 설계되었으며, 개인화 서비스와 인증 시스템 등이 100% 컨테이너화되어 운영되고 있습니다. 특히 서비스 클러스터와 관리용 어드민 클러스터를 분리함으로써, 관리 시스템에 예기치 못한 오류가 발생하더라도 실제 서비스의 연속성에는 영향을 주지 않도록 안정성을 확보한 것이 핵심입니다. 한유(HANU) 프로젝트는 단순한 코드 공개에 그치지 않고, 글로벌 수준의 오픈소스 거버넌스를 정착시키고자 노력하고 있습니다. 개발자가 기여자로 참여하여 핵심 개발자로 성장할 수 있는 로드맵을 제시하고, 투명한 테스트 및 개발 프로세스를 구축하는 데 집중하고 있습니다. 국내 기술 생태계가 견고해질 때 비로소 글로벌 진출의 발판이 마련된다는 믿음으로, 기업과 개인이 협력할 수 있는 방안을 모색 중입니다. 앞으로도 한유(HANU)는 모두가 함께 기술적 혜택을 누릴 수 있는 지속 가능한 공유의 장이 될 것입니다.

EOST2020
한국전자통신연구원오픈소스 테크데이
  • 융합
  • 공학·기술

BeeAI 공모전 교육 영상(05) - Python 사용자 정의 함수를 활용한 데이터 처리하기(96~103p)

파이썬 UDF를 활용한 데이터 처리는 BeeAI 플랫폼의 핵심적인 기능 중 하나입니다. 이번 과정에서는 사용자가 직접 파이썬으로 구현한 로직을 도커 이미지로 변환하고, 이를 REST API 형태로 통합하여 실시간 데이터를 처리하는 실습을 진행합니다. 이 방식은 복잡한 데이터 전처리나 특수한 연산이 필요할 때 매우 유용하며, 플랫폼에서 제공하는 다섯 가지 엔진 유형 중 마지막인 '온디맨드 익스터널 서빙 엔진'을 통해 구현됩니다. 온디맨드 익스터널 서빙 엔진을 사용하려면 먼저 '파이 모듈 러너'를 설정해야 합니다. 사용자는 파이썬 코드가 저장된 폴더 경로를 지정하고, 생성될 도커 이미지의 이름과 REST API 통신에 사용할 포트 번호를 입력합니다. 이때 이미지 이름은 도커의 규약에 따라 영문 소문자만 사용해야 하며 특수문자 사용은 지양해야 합니다. 이렇게 설정된 정보는 플랫폼 내에서 자동으로 컨테이너화되어 데이터 파이프라인의 일원이 될 준비를 마칩니다. 엔진을 통해 생성된 REST API는 외부 데이터와의 통로 역할을 수행합니다. 데이터 파이프라인 상에서 처리하고자 하는 데이터를 해당 API로 전송하면, 도커 인스턴스 내부에서 사용자가 작성한 파이썬 코드가 실행되어 결과값을 반환합니다. 기본적으로 문자열 기반의 데이터가 송수신되는데, 이미지나 오디오 같은 멀티미디어 데이터의 경우 Base64 인코딩을 통해 문자열로 변환하여 처리하는 방식을 주로 사용하게 됩니다. 성공적인 배포를 위해서는 몇 가지 코딩 규약을 준수해야 합니다. 파이썬 모듈화를 위한 __init__.py 파일이 반드시 존재해야 하며, 실제 로직은 base.py 파일 내에 메인 함수 형태로 구현되어야 합니다. 또한, 코드 작성에 사용된 외부 라이브러리들은 requirements.txt 파일에 명시해야만 도커 이미지가 생성될 때 해당 패키지들이 자동으로 설치됩니다. 이러한 폴더 구조를 갖추어야만 시스템이 코드를 인식하고 서빙 환경을 구축할 수 있습니다. 이미지 회전과 같은 시각적 데이터 처리는 파이썬 UDF의 장점이 잘 드러나는 사례입니다. 스파크나 하둡 기반의 일반적인 배치 처리로는 복잡할 수 있는 작업을 파이썬의 Pillow 라이브러리를 활용하면 단 몇 줄의 코드로 구현할 수 있습니다. 입력된 이미지 바이트 스트림을 이미지 객체로 변환하고 90도 회전시킨 뒤 다시 결과값을 내보내는 로직을 온디맨드 익스터널 서빙 엔진에 탑재하면 강력한 커스텀 오퍼레이터가 완성됩니다. 실습에서는 JSON 문자열을 처리하는 시뮬레이션도 함께 진행합니다. 특정 키값을 추출하여 연산을 수행하고 결과를 반환하는 엔진을 구동하면, BeeAI 대시보드에서 실시간으로 생성된 서비스 상태를 확인할 수 있습니다. 시뮬레이터 엔진이 1초 간격으로 데이터를 REST API에 전송하면, 도커 컨테이너 내부에서 처리된 결과값이 즉각적으로 반환됩니다. 이는 데이터가 수집되고 저장되는 과정 사이에 사용자 정의 로직이 어떻게 유기적으로 개입하는지를 잘 보여줍니다. 안정적인 데이터 처리를 위해서는 시스템 환경 구성도 중요합니다. 특히 여러 개의 엔진을 동시에 구동하여 엔드투엔드 워크북을 실행할 때는 최소 8코어 이상의 CPU와 16GB 이상의 메모리가 권장됩니다. 파이썬 UDF 처리까지 포함된 복합적인 파이프라인은 자원 소모가 크기 때문입니다. 이러한 기초적인 데이터 처리 기법들을 숙지하고 나면, 다음 단계인 머신러닝 모델 학습과 GPU를 활용한 가속 서빙 단계로 원활하게 넘어갈 수 있습니다.

BeeAI 공모전 교육 영상(05) - Python 사용자 정의 함수를 활용한 데이터 처리하기(96~103p)
한국전자통신연구원ETRI 클래스
  • 공학·기술