Auto-Scaler with Docker

배찌 (배찌)·2023년 2월 20일
0

auto-scaler service

목록 보기
1/2

프로젝트의 계기

우선 두번째에 했던 클라우드 게이밍 서비스에 사용되었던 도커 시스템은 상당히 많은 아쉬움이 남앗다.
깊은 이해 없이 진행되었던 오픈소스 프로젝트다 보니 조금 더 내가 컨트롤 하고 싶다는 생각이 들때쯤 마이크로서비스 아키텍처를 알게 되엇다.
이때 나는 어떤 일을 목적을 할지 목적을 정하지 않은 상태였는데 DevOps라는 직업군을 알게되어 그 매력에 반하여 마이크로 서비스 아키텍처를 목적으로 구현하게 되었다.
쿠버네티스를 개인 프로젝트로 한다고 했을때 교수님은 리소스가 상당히 커서 서비스를 구현하기 힘들텐데라고 하셨다.
그때 오히려 아이디어가 생겨서 그러면 Docker를 이용해서 마이크로서비스 핵심 기능인 Auto-scaler를 구현해보자가 핵심 키워드가 되었다.

목적

온프레미스 환경에서 클라우드 환경으로 전환하고 싶지만 상당히 부담스럽고 어려운 설정들이 많은것이 사실이다. 그리고 쿠버네티스의 경우에는 기본적으로 먹는 리소스양도 만만치 않은것이 현실이다. IDC를 빌려서 하면 되지 않겠냐고 하지만 그것 역시 회사 입장에서는 돈과 시간을 써가면서 IDC까지 추가 대여한다? 그것은 기업 입장에서는 말이 되지 않는다.
그렇기 때문에 작은 업체에서 최소한의 리소스로 쿠버네티스의 필수 기능 몇가지를 구현하여 기존 서버에서 전환의 부담을 감소 시키고, 트래픽이 많이 있는 시기에는 IDC로 손쉽게 docker swarm모드를 이용하여 서버중축이 가능하여 유연한 트래픽 대처가 가능해 지는것을 목적으로 한다.

서비스 구현 구조

  1. docker swarm scaler : 서비스 인스턴스 수를 자동으로 조정하도록 도와주는 프로세스
  2. docker swarm service : swarm모드에서 실행되는 서비스 단위로, 서비스 단위로 배포하여 서비스가 죽을 경우 자동으로 보구 해준다.
  3. docker Monitor : 매트릭을 캡쳐서하고, 일정 이상의 매트릭을 감지시 log을 올리고 scaler에 정보를 제공하여 인스턴스 수응 증가 혹은 감소를 한다.
  4. Orchestration : GUI에서 모든것을 확인하고 서버에 GUI로 접근할수 있게 하여 중앙 집중화 시스템을 구현
profile
Never give up Impossible is nothing

0개의 댓글