쿠버네티스 일반/Diamanti

Diamanti 제품 소개

Jerry_이정훈 2021. 7. 2. 08:48
728x90

Kubernetes 도입의 어려움 

뱅크 샐러드 배포 주기

위 그래프는 국내 핀테크 기업 뱅크샐러드에서 공개한 일일 배포 횟수 입니다. 2019년 11월 기준으로 일일 평균 약 20회 정도의 비약적인 상승을 이루었습니다. 

 

그에 반하여 일반 회사들의 배포 주기는 어떻게 될까요?

 

일반적으로 기존 기업들은 평균 9개월에 한 번이라고 합니다. 핀테크 기업과 동일 업계인 금융권에서(20년 이상 업력) 2~3년 마다 대규모 시스템 업그레이드 작업을 한다는 것과 비교하면 뱅크 샐러드 사례는 많은 시사점이 있습니다. 

배포 주기가 길다는 것은 그만큼 고객의 요구 사항을 빠르게 수용하지 못한다는 것을 의미 합니다. 두말 할 것 없이 빠른 배포를 통한 즉각적인 고객 만족도 향상은 중요한 비즈니스 성공 요소 입니다. 

 

기업 문화, MSA 등 여러 요인이 있겠지만 핵심 기술의 하나는 Kubernetes 입니다. 이제는 많이 보편화되어  아마도 거의 모든 기업에서 검토 하였고 비록 규모는 작지만 개발 시스템에서 한 번 정도는 검증은 완료 한 것 같습니다. 하지만 아직 기업의 핵심 서비스를 Kube 환경에서 운영 중인 기업들은 카카오, 네이버 등 일부 기술 중심의 기업 이 외 많지는 않은 것 같습니다. 

위 사진은 Kubernetes 복잡함을 보여주는 대표적인 사진입니다. k8s는 단순하게 한두개의 솔루션으로 이루어지지 않았습니다. 스토리지, 네트워크, 보안 등 데이터센터 전체 운영에 필요한 거의 모든 현재의 Best Practice 기술들의 집합입니다. 여러 복잡한 Stack입니다. 아무래도 초기 기술 진입 장벽이 높은 편 입니다. 

 

또한 개발계 시스템 수준이 아닌 Enterprise 운영 수준의 편의성, 안정성을 갖추기 위해서는 Kube 이 외 여러 가지 오픈소스 기술 스택(Prometheus, Argo, GitLab, Harbor 등) 또한 필요 합니다.

해결 방안

1. 교육 지원

Kubernetes 도입을 위하여 제가 생각하는 가장 중요한 포인트는 내재화 입니다. 기존 다른 SI 프로젝트 혹은 솔루션 도입처럼 ‘고객은 지시만 명령어는 업체가’라는 방식으로 프로젝트를 진행하면 어려울 가능성이 매우 높습니다. 아마도 복잡한 Kube Stack 중에서 아주 일부분 껍데기만 하고 그치겠죠. Kube 도입은 일회성 프로젝트가 아닌 지속적인 요구 사항 반영 및 업그레이드가 필수적입니다. 그러므로 초기 단계에서 소개만 하고 빠지는 벤더가 아니라 향후 지속적으로 기술 지원을 받아야 하는 믿을 수 있는 파트너를 선정하시는 것이 중요 합니다.

 

저희 SPK는 2018년 부터 Kubernetes 관련 사업을 진행 하였습니다. 사업 수행 중 다수의 고객들에게  Kubernetes 초/중급 교육을 제공 하였습니다. 기술 공유를 통하여 고객들과 같이 성장한다는 목표 아래 블로그, 커뮤니티, 메일 등을 적극적으로 활용하고 있습니다. Kube 관련 자세한 교육 목차 및 상세 기술 자료(총 24회)를 블로그에 공유하고 있으며 관련된 소스는 GitHub에서 언제든지 사용 가능합니다.

 

Kube 교육 소개 : https://jerryljh.tistory.com/12

 

00. Kube 교육 - 개요 및 목차

Why Kube 교육 제가 생각하기에 기업 환경의 Kubernetes 도입의 핵심은 내재화 입니다. 기존 상용 Solution 혹은 SI Project 처럼 ‘명령어는 업체가 고객은 지시만(라고 쓰고 갈구기)’ 하면 100% 망합니다.

jerryljh.tistory.com

 

 

 2. Software, Hardware Full Stack 지원

저희는 Diamanti 라는 Kubernetes를 위한 전용 장비를 제공합니다. Hardwaare, Software 일체형이라 고객은 15 분 이내 바로 Kubernetes Cluster 사용이 가능합니다.

 

Local NVMe 스토리지 CSI 및  Network SR-IOV CNI을 지원하는 전용 하드웨어 및 OS/Container Run Time/Kubernetes + Loki/Prometheus/ArgoCD/Harbor/GitLab/Polaris 등 고객 필요에 따른 오픈 소스까지 일체형으로 제공하여 고객은 편리하게 기술 지원을 받을 수 있습니다.  

Kubernetes 운영 하시면 Network, Storage 부분은 항상 문제를 일으키기 쉽고 이해가 잘 안되어 대응이 쉽지 않습입니다. Diamanti는 SR-IOV를 사용하여 네트워크 성능 가속화 및 관리를 단순화합니다. 그리고 외부 3rd Party Network(Calico, Flannel등), Storage 솔루션(Ceph, NetApp 등)이 아닌 자체 IP 기반의 FPGA 하드웨어 가속 솔루션을 제공하여 높은 신뢰성을 제공합니다. 

 

3. 15분 이내 Kubernetes 제공

고객 네트워크 환경만 준비되면 고객은 15 분 이내 Kubernetes Cluster 사용이 가능합니다. 통상 6개월 이상 소요되는 도입 검토 및 검증에 필요한 시간을 최소화하고 실제 Kubernetes Cluster 환경에서 Application 검증이 가능합니다. 실 Application 대상으로 잦은 검토, 테스트를 통하여 좀 더 향상된 서비스를 빠르게 고객에게 제공 가능합니다.

 

고객 사례 

 국내 대표 고객 사례로는 국내 시장점유율 1위의 기업용 ERP 솔루션을 제공하는 Douzone이 입니다. 더존은 2019년 말 MariaDB Database를 Diamanti Kubernetes 환경으로 이전하였습니다. 이 후 성공적으로 운영하여 현재는 DB 뿐만 아니라 NGINX/Tomcat/Elastic/ Kafka/RabbitMQ/Redis/Golang/MQTT 등 전체 Application을 Kubernetes 환경에서 운영 중 입니다. 

 

도입 효과로는 기존 물리 1 노드 당 2~3개 DB만 운영 중 이었으나 컨테이너 환경 이전 후 노드 당 9~10개의 DB를 운영하여 3배 이상의 TCO를 절감 하였습니다. 이는 NVMe Disk를 이용한 IO 성능 향상과 VM과 달리 컨테이너는 사용한만큼 메모리 자원을 할당하여 가능 하였습니다. 

 

또한 NVMe Disk를 사용하여 기존 VM 환경 대비 27배 이상의 I/O latency 개선 효과가 있었습니다. SSD 기반의 분산 스토리지 환경이 아닌 FCoE 기반의 Local NVMe Disk는 뛰어난 성능을 보여 주었습니다. 

1MS 미만의 Write Latency

이 외 처음에 DB 환경이라 우려가 많았지만 현재까지도 1년 6개월 이상 무장애가 지속되면서 컨테이너 DB에 대한 신뢰가 높아졌습니다. 작업 시간 개선 사례로는 30개 DB 이전 작업 기준으로 기존 VM 환경에서 매주 금요일 마다 4번, 각 6시간 이상 필요한 작업이었으나, Kubernetes 환경에서는 1회 2시간 안에 작업을 완료하여 대폭적인 개선이 있었습니다. 

 

무엇보다 Kubernetes 도입 이 후 차근차근 MSA 까지 도입하시면서 기존 VM 기반의 IT 환경이 컨테이너로 변경되면서 잦은 배포, 변경/배포/운영 작업 및 장애 시간 등이 감소하면서 전반적인 IT 업무 혁신 및 대외 신뢰성 향상을 이루었습니다. 

 

운영 인력 역시 처음의 높은 Kubernetes Learning Curve로 걱정이 많으셨으나 이제는 주니어 포함 3명의 인력으로 전체 시스템이 안정적으로 운영되고 있습니다. 

 

이상 Diamanti 제품 소개입니다. Kubernetes는 오픈 소스로 내재화 하여 사용하시는 것이 가장 효과적입니다. 만약 시간과 인력 등의 이유로 좀 더 빠르고 비용 효과적으로 Kubernetes 도입이 필요하신 경우 Diamanti가 하나의 대안이 될 수 있습니다. 

 

Diamanti 및 Kubernetes 교육/기술지원 문의 : leejunghoon@spkr.co.kr

반응형