INTRO
이 글은 2023 오픈소스 컨트리뷰션에서 Backend.AI 의 코스1 (Backend.AI 써보고 경험 공유하기) 에 대한 리뷰 게시글입니다.
어떻게 구현했을까?
Backend.AI 에서 제공하려는 서비스를 구현하려면 K8s기반으로 만드는게 옳은지, 아니면 Openstack기반으로 만드는게 옳을까? 생각을 정리해보았다.
1. K8s 기반으로 구현
K8s를 가장먼저 생각한 이유는 두가지이다.
VM
보다Container
는 상대적으로 가볍다.- 소수의 사용자가아니라, 다수의 사용자한테 개발환경을 제공해야한다. 동일한 물리장비로 더 많은 사용자에게 제공하려면
Container
를 비롯한 K8s 에서Pod
형태로 유저에게 제공하는게 조금 더 경제적일거라고 생각했다. - K8s에서 GPU 를 제공하는게 가능하다.
딥러닝 관련한 학습환경을 제공해야 할때 가장 신경쓸것은 GPU다. K8s 노드에 GPU를 연결해서 제공할수있으니, 학습환경으로 구성해도 가능할거라고 생각했다.
2. Openstack기반으로 구현
K8s를 생각하다가, 몇가지 이유때문에 Openstack을 떠올리게 되었다.
- K8s의
Pod
에서는 안정성을 충분히 제공하지 못할수도 있을것이다. - 실험환경을 제공한다면, 실험환경이 끊기지않게 유저에게 제공하는것이 매우 중요하다고 생각한다. 그런데, K8s의 여러가지 특징중, 하나는 Desired State 이다. Desired State는 ‘서버가 다운되었을때, 다른서버를 띄워서 서비스를 안정적으로 운영하는것’ 이다. 즉, K8s는 ‘다시 살려내는것’ 에 강점이 있지, ‘아에 죽지 않게 하는것’ 에는 부적합 하다고 생각했다.
- 독립적인 실험환경을 제공해야한다.필자가 다니고있는 회사에서는 Openstack이 설치되어있는데, Openstack으로
VM Instance
를 만들때, 순정OS Image
뿐만아니라, 커스터마이징한OS Image
를 사용해본적이 있다. 순정OS Image
에Metric Beat
를 심고,VM Instance
가 생성되는 순간부터VM Instance
의Metric
을 수집했었다. - Backend.AI에서도 비슷한 방식으로 구성하면 될거라고 생각했다. 개발환경 구성에 필요한 다양한 환경변수를 포함한
OS Image
를 버전별로 만들어놓고, 유저가 Session을 만들때 지정한Image
로Instance
를 만들어주고 제공해주면 될거라고 생각했다. - 세션 환경을 선택할때 Language, ML/DL 등에 따라서 다양한 실험환경을 선택하는것을 확인할수 있었다. 이를 Openstack 기반으로 구축하여 서비스한다면 쉬울것이라고 생각했다.
프로젝트 소개를 보고 알게된것: 가상화
프로젝트 소개 항목을 보고 느꼈던점이 있는데
우측항목에서 Backend.AI Agent 레이어의 상단에, Docker/Containerd 레이어가 있었다는 것이다.
그 위에 TensorFlow, R이 격리되어있었는데, 이를 통해서 가상화 머신에다가 개발환경을 제공해준다는것을 알았고, 이를 통해서 최대한 경량화된 환경을 제공하려는 목적이라는걸 알게되었다.
Cloud Storage 항목에서 놀랐던건 AWS S3
와 GCP GCS
함께 있다는점이다. 보통 여러개의 DB관련 서비스를 사용할때는, 서비스 별로 목적을 구분해서 놔두던데.. 어떤점에서 다를까? 궁금증이 들었다.
좋았던 것
- 지원하는 환경 자체가 매우 다양했음
- 세션연결하면 “웹 터미널 고급 사용법” 이라고 뜨는데, 이거 꽤나 유용했음
- 최근에 업데이트가 한번 되었는데, 내용이 조금 바뀌었는지, 사용할때 매우 편리했음. 특히나, Jupyter를 지원한다는 부분에서 '여기 플랫폼은 데이터분석가, 머신러닝 엔지니어 분들이 사용하기 편하겠다' 라는 생각을 하게 되었음
패치되었으면 좋겠는거(UI)
요구사항 란에 CUDA11.1 인데, CUDA1 까지밖에 안보인다..
이거 패치되었으면 좋을것 같다!
'외부활동' 카테고리의 다른 글
[구글 클라우드 쿠버네티스 스터디잼 중급] 하다가 퀵랩에 문의한썰: 1달 무료구독 안생김 (0) | 2023.06.22 |
---|---|
[오픈소스 컨트리뷰션] 번외코스1. 머신러닝 분산처리 프레임워크 동작 이해하기 (0) | 2023.06.21 |
[구글 클라우드 쿠버네티스 스터디잼 중급] Introduction to Google Cloud (0) | 2023.06.15 |
[구글 클라우드 쿠버네티스 스터디잼 중급] Introduction to Google Cloud 챕터 4. Cloud Shell 코드 편집기 살펴보기 에러해결 (0) | 2023.06.03 |
AWSKRUG 성수 0322 “EKS에서 검색엔진 플랫폼 구축하기” 후기 (0) | 2023.03.24 |