이전 포스트
OpenInfra Summit Asia 2024 & OCP APAC Summit 2024 - 2일차
24.09.03-24.09.04, 광교에서 진행한 오픈 인프라 세미나
kata container
starlingx
zuul
openstack
네이버 AI Suite에서 사용되는 클라우드 파일 시스템
네이버는 AI AI Workload를 위해 Storage로 다음을 고려하였음
NFS는 Scalability / Cache 미지원
Ceph는 RWX / Cache 미지원
처음엔 이를 극복하고자 Alluxio HDFS를 사용했으나.. POSIX 호환성 부족, 일관성 불안정, 운영 부담 높았음
그래서 고민 끝에 JuiceFS로 전환. JuiceFS는 다음의 특징을 가짐
JuiceFS Feature
Naver에서는 어떻게 쓰나
장점
프라이빗 클라우드의 도전 과제: 프라이빗 클라우드는 운영 비용 절감과 효율적인 자원 관리 등의 이점이 있지만, 실제로는 총소유비용(TCO)이 증가하는 경우가 많음
이는 온프레미스 환경에 비해 프라이빗 클라우드가 더 많은 장점을 제공하지만, 즉각적인 비용 절감이 어려운 이유
프라이빗 클라우드에서 TCO를 최적화하기 위해 리소스 사용을 효율적으로 관리하는 방법을 제안; 서버의 전력 사용량, 서버 구매 가격, 네트워크 대역폭 사용량 등을 관리함으로써 비용 절감을 도모
Private Cloud에서 중요한 것은
리소스 관리 방안:
Workload 대한 사용량을 Forecasing을 할 필요가 있다
Workload Trends에 대한 패턴을 파악하여 최적화 플랜을 설계하자; 이를 위한 AI 모델.. ARIMA / Prophet 적용해봄
https://doheon.github.io/%EC%84%B1%EB%8A%A5%EB%B9%84%EA%B5%90/time-series/ci-6.compare-post/
시스템 사용량을 예측하여 필요 없을꺼 같으면 끄고, 필요하면 키거나 구매하는 전략을 잘 적용해보자
대규모 Python 프로젝트에 대한 성찰
이미징 워크로드와 오케스트레이션 eBPF: eBPF(extended Berkeley Packet Filter)는 지난 10년간 가장 큰 혁신 중 하나로, 보편적인 내부 가상 머신이 되는 것을 목표로 함. 네트워크 및 보안 하위 시스템에서 특히 중요한 역할. 사용자 공간 버전인 uBPF도 있으며, 네트워킹과 블록체인에서 사용 Wasm: 원래 브라우저에서 사용되도록 설계된 이식성 있는 바이트코드로, 웹 어셈블리 시스템 인터페이스(WASI)를 통해 사용 범위가 확장될 수 있음. 현재 Linux 커널로도 이식 가능성이 논의되고 있으며, 보안 분야에서 중요한 역할 오케스트레이션 시스템: eBPF와 Wasm을 위한 다양한 오케스트레이션 시스템이 존재하며, SpinKube와 같은 프로젝트가 최근 주목받고 있음
Python 기반 도메인 언어(DSL)
Mojo: LLVM의 창시자가 개발한 Python 유사 언어로, ML 기반이며 Python과 Rust의 조합. 이기종 병렬 프로그래밍을 지원하지만, 컴퓨팅 분산에 대한 내장 지원이 부족함.
Acton: Python 언어에 Acton 모델을 추가한 언어로, 정적 결합과 명시적 메모리 관리가 없는 것이 특징. 현재 실험적 상태이며, Mojo와는 달리 완전히 오픈 소스는 아님
xDSL: 새로운 Python eDSL(도메인 특정 언어)로, Moja에 대한 오픈 소스 대안입니다. Acton과 유사한 액터 모델을 Python에 추가하였으며, 새로운 워크로드를 위한 오케스트레이션 시스템에 적합
새로운 워크로드를 위한 오케스트레이션 시스템 설계
Ray 프로젝트: 분산 AI 워크로드를 위한 프레임워크로, 2단계 스케줄링 메커니즘과 클러스터링을 지원. 그러나 이 시스템은 새로운 오케스트레이션 시스템에 완전히 적합하지 않을 수 있음
IREE 프로젝트: AI 모델을 통합하는 프레임워크로, 가벼운 가상 머신을 지원하며, 엣지에서 클라우드까지 다양한 시나리오에 적응할 수 있음
SuperVM: 경량 가상 머신 구현으로, eBPF와 Wasm의 하위 집합을 기반으로 설계 모듈 방식의 RISC-V 설계와 유사한 플러그인 및 확장 메커니즘을 제공
결론 및 요약
Cluster API (CAPI)란?
쿠버네티스(Kubernetes) 클러스터의 수명 주기 관리를 자동화하기 위한 오픈소스 프로젝트
이는 쿠버네티스 클러스터의 설치, 업그레이드, 스케일링, 복구 등을 간소화하고 자동화하는 데 초점
Cluster API는 선언적 API를 통해 클러스터의 상태를 관리하고, 쿠버네티스의 자체 리소스 정의(Custom Resource Definitions, CRDs)를 활용하여 클러스터를 구성하고 운영
주요 특징:
Cluster API를 이용하여 Kakao Cloud에서 사용자에게 어떻게 클러스터를 제공해주는지, 그리고 어떻게 적합하게 커스터 마이징 했는지 소개
카카오에서 미래에 개발하고 싶은 Feature..