CB Spider Features - cloud-barista/cb-spider GitHub Wiki

CB-Spider 기능

  멀티 클라우드 인프라 연동 프레임워크가 제공하는 세부 기능은 다음과 같다.

1. 사용자 인터페이스 기능

  멀티 클라우드 인프라 연동 프레임워크의 사용자 인터페이스는 CB-Spider 서브시스템 사용자의 응용 개발을 위한 API와 활용을 위한 명령어를 제공한다. 세부 구조는 그림 5와 같고 세부 기능은 다음과 같다.

  • CB-Spider REST API 제공 REST(Representational State Transfer) 환경 개발자를 위한 REST API 런타임 서버 및 클라이언트 라이브러리를 제공한다. 클라이언트 라이브러리 경우 별도 제공하지 않으며, 개발 언어별 REST 표준 라이브러리를 활용할 수 있다.

  • CB-Spider Go API 제공 Go 언어 환경 개발자를 위한 Go API 런타임 서버 및 클라이언트 라이브러리를 제공한다. Go 언어 개발 환경 사용자는 Go API 클라이언트 라이브러리를 활용하여 CB-Spider 서브시스템 응용 개발이 가능하다. CB-Spider Go API는 gRPC(google RPC) 기반으로 설계 되었으며, gRPC는 IDL(Interface Definition Language) 기반의 API 개발 방법을 제공한다.

  • CB-Spider CLI 도구 제공 터미널 환경 사용자를 위한 CLI 클라이언트 도구를 제공한다. 터미널 환경 사용자는 CLI 클라이언트 도구를 활용하여 CB-Spider 서브시스템의 활용이 가능하다.

2. 멀티 클라우드 인프라 연동 정보 통합 관리 기능

  멀티 클라우드 인프라 연동 정보 통합 관리 기능은 이종의 여러 클라우드 인프라 연동을 위해서 필요한 연결 설정 정보를 통합 관리하여 사용자의 반복적인 클라우드 인프라 연동에 편의성을 제공한다. 세부 구조는 그림 6과 같고 세부 기능은 다음과 같다.

  • 클라우드 인프라 연동 드라이버 정보 관리 특정 클라우드 인프라 연동을 위한 드라이버 정보 관리 기능을 제공하며, 세부 기능은 다음과 같다.

    • 클라우드 드라이버 정보 등록
      • 클라우드 드라이버 정보: 드라이버 이름, CSP(Cloud Service Provider) 이름, 드라이버 라이브러리 경로 등
    • 클라우드 드라이버 정보 제공
    • 클라우드 드라이버 정보 변경
    • 클라우드 드라이버 정보 삭제
  • 클라우드 인프라 인증 정보 관리 클라우드 인프라 연결 및 인증을 위한 크리덴셜 정보 관리 기능을 제공하며, 세부 기능은 다음과 같다.

    • 클라우드 인증 정보 등록
      • 클라우드 인증 정보: 크리덴셜 이름, 클라우드 인프라 서비스 엔드 포인트, 클라우드 인프라 크리덴셜 정보 등
    • 클라우드 인증 정보 제공
    • 클라우드 인증 정보 변경
    • 클라우드 인증 정보 삭제
  • 클라우드 인프라 리젼 정보 관리 연동 대상 클라우드 인프라 서비스의 리젼 정보 관리 기능을 제공하며, 세부 기능은 다음과 같다.

    • 클라우드 리젼(Region) 및 존(Zone) 정보 등록
    • 클라우드 리젼 및 존 정보 제공
    • 클라우드 인증 정보 삭제
  • 클라우드 인프라 연결 설정 정보 관리 클라우드 인프라 연결을 위해 필요한 연결 설정 정보를 등록 및 관리한다.

    • 클라우드 연결 설정 정보 등록
      • 클라우드 연결 설정 정보: 클라우드 연결 설정 이름, 클라우드 드라이버 이름, 클라우드 크리덴셜 이름, 클라우드 리전 이름 등
    • 클라우드 연결 설정 정보 제공
    • 클라우드 연결 설정 정보 변경
    • 클라우드 연결 설정 정보 삭제
  • 클라우드 인프라 연동 정보 운영 관리 클라우드 인프라 연동 정보 통합 관리를 위한 운영 정보를 관리하는 기능을 제공하며, 운영 정보 관리는 CB-Store 기반으로 운영 및 관리한다.

3. 멀티 클라우드 인프라 공통 제어 관리 기능

  멀티 클라우드 인프라 자원의 공통 제어를 위해서는 서로 다른 자원 속성 및 제공 기능에 대한 추상화와 추상화된 자원을 제어 가능한 인터페이스 규격 정의가 필요하다. 멀티 클라우드 인프라 연동 프레임워크의 추상화 방법은 그림 7과 같고, 세부 내용은 다음과 같다.

  멀티 클라우드들이 제공하는 인프라 자원의 제공 기능 관계는 그림 7 (a)에서 보는 바와 같이 (1) 공통 기능, (2) 일부 공통 기능 및 (3) 개별 클라우드만 제공하는 특화 기능으로 구분할 수 있다. 공통 기능만을 제공한다면, 멀티 클라우드 인프라 자원 제공의 범용성이나 확장성 측면에서는 최적일 수 있지만, 사용자에게 각 클라우드가 제공하는 특화 기능을 제공할 수 없어 효율성이 감소한다. 반면 개별 클라우드가 제공하는 모든 특화 기능을 제공한다면, 클라우드별로 다른 인터페이스 및 방법을 제공해야 함으로써 시스템의 복잡도가 증가하고 확장성이 축소된다. CB-Spider 서브시스템은 일부 공통 기능을 중심으로 공통 기능을 제공하지 않는 클라우드에 대해서는 드라이버 계층에서의 기능 보완을 통해 범용성과 확장성, 그리고 자원 활용 효율성을 제공하도록 추상화하고 설계하였다. 추상화 방법은 그림 7 (b)와 같이 연동 대상 클라우드 인프라 자원의 정량적 기준(기능 제공 여부 등)과 정성적 기준(자원 생성 순서 규칙 등)으로 기능을 분석하고, 멀티 클라우드 인프라 자원의 공통 기능을 추출 및 정의하였다. 추상화된 인프라 자원 공통 기능은 클라우드 드라이버 공통 인터페이스(그림 8 참조)로 형상화하였으며, 연동 대상 클라우드는 드라이버 공통 인터페이스를 준수하는 드라이버를 개발하여 추가 연동할 수 있도록 설계하였다.

  CB-Spider 서브시스템 사용자는 최종적으로 그림 9와 같은 멀티 클라우드 인프라 자원 및 가상 머신 구성이 가능하다. 사용자가 정의한 ‘Seoul-connection’ 및 ‘Ohio-connection’과 같은 연결 설정 정보를 중심으로 VPC(Virtual Private Cloud), 서브넷, 보안 그룹 및 가상 머신 등의 환경 구성이 가능하다. 사용자는 연동 프레임워크 인터페이스를 사용하여 동일한 방법으로 인프라 자원을 생성할 수 있으며, 실질적인 자원의 생성은 각 클라우드 인프라의 리젼에서 생성 및 관리된다.

  위와 같은 추상화 및 인터페이스 규격을 기반으로 제공하는 멀티 클라우드 인프라 공통 제어 관리 기능은 그림 10에서 보는 바와 같이 서로 다른 클라우드 인프라를 동일 방식으로 연결 및 제어가 가능한 공통 제어 관리 기능을 제공하며, 세부 기능은 다음과 같다.

  • 멀티 클라우드 인프라 공통 제어 관리

    • 멀티 클라우드 인프라 공통 제어
      • 멀티 클라우드 인프라 자원(VM 이미지, VM 사양, 네트워크, 보안그룹, VM 키페어 등) 생성삭제 및 정보 제공 등 공통 제어
      • 멀티 클라우드 가상머신 생성, 종료, 정보 제공 및 라이프사이클 제어 등 공통 제어
      • 비동기 호출 및 잠금 관리 등 안정적이며 최적화된 기능 제공을 위한 시스템 기능
    • 통합 ID 관리
      • CSP별 서로 다른 ID 체계 관리를 위한 통합 ID 제공
      • 사용자가 부여한 CB-Spider ID와 CSP가 관리하는 대상 자원의 ID 맵핑 관리
  • 클라우드 드라이버 관리 연동 대상 클라우드 인프라의 드라이버 공유 라이브러리를 메모리에 적재하여 사용 가능하도록 하며, 세부 기능은 다음과 같다.

    • 클라우드 드라이버 적재: 공유 라이브러리 형태의 클라우드 드라이버를 동적으로 메모리에 적재
    • 클라우드 드라이버 제공: 적재된 클라우드 드라이버 객체 제공
    • 클라우드 드라이버 하적: 적재된 클라우드 드라이버를 메모리에서 제거
  • 클라우드 드라이버 공통 인터페이스 제공 CB-Spider 서브시스템은 이종 클라우드 인프라 자원 및 가상 머신에 대한 단일 API 및 공통 제어 관리를 위하여 클라우드 드라이버 공통 인터페이스 규격을 제공하며, 신규 클라우드를 연동하고자 하는 시스템 운영 개발자는 클라우드 드라이버 공통 인터페이스 규격을 준수하는 대상 클라우드 드라이버를 개발해야 한다. 클라우드 드라이버 공통 인터페이스의 주요 제공 기능 및 구조는 그림 11과 같고, 세부 내용은 다음과 같다.

    • 클라우드 드라이버 인터페이스
      • 클라우드 드라이버 버전 정보 제공
      • 클라우드 드라이버 제공 기능 목록
      • 대상 클라우드 연결 객체 생성 및 클라우드 연결 관리 인터페이스 제공
    • 클라우드 연결 관리 인터페이스
      • 현재 클라우드 연결 상태 정보 제공
      • 클라우드 인프라 자원 자원 제어 인터페이스 제공
      • 가상 머신 라이프사이클 제어 인터페이스 제공
    • 클라우드 인프라 자원 제어 인터페이스
      • 이미지 자원 제어 인터페이스: 대상 클라우드의 이미지 생성, 목록, 상세 정보 제공 및 이미지 삭제 등
      • VM(가상 머신) 사양 자원 제어 인터페이스: 대상 클라우드의 VM 사양 목록, 상세 정보 제공 등
      • 가상 네트워크 자원 제어 인터페이스: 대상 클라우드의 VPC(Virtual Private Cloud) 및 Subnet 등의 가상 네트워크 자원 생성, 목록, 상세 정보 제공 및 삭제 등
      • 보안그룹 자원 제어 인터페이스: 대상 클라우드의 방화벽 등 보안그룹(SecurityGroup) 생성, 목록, 상세 정보 제공 및 보안그룹 삭제 등
      • VM 키페어(KeyPair) 자원 제어 인터페이스: 대상 클라우드의 키페어 자원 생성, 목록, 상세 정보 제공 및 키페어 삭제 등
    • 가상 머신 라이프사이클 제어 인터페이스
      • 가상 머신 목록 및 특정 가상 머신 세부 정보 제공
      • 가상 머신 상태 목록 및 특정 가상 머신 상태 정보 제공
      • 가상 머신 가동 및 종료
      • 가상 머신 중지 및 재개
      • 가상 머신 재가동
  • 가상 머신 명령 원격 관리 사용자가 요청하여 실행 중인 가상 머신 내부에 원격지에서 명령을 실행하는 기능을 제공하며, 세부 기능은 다음과 같다.

    • 가상 머신 파일 복사: 실행 스크립트 등 로컬의 특정 파일을 가상 머신 내부로 복사 또는, 가상 머신 내부에 존재하는 파일을 로컬로 복사
    • 가상 머신 내부 명령 실행: 원격지의 가상 머신에 존재하는 유틸리티 및 스크립트 등 내부 명령 수행
  • 연결 및 호출 로그 출력 대상 클라우드 인프라에 대한 연동 및 API 호출 로그 출력 기능을 제공하며, 세부 기능은 다음과 같다.

    • 로그 화면 출력: 연동 및 호출 로그 정보를 화면으로 출력
    • 로그 파일 출력: 연동 및 호출 로그 정보를 파일로 출력
    • 로그 출력 여부 설정: 로그 출력 여부 설정 및 출력 장치(화면, 파일) 선택

4. 멀티 클라우드 인프라 연동 이력 정보 관리 기능

  멀티 클라우드 인프라 연동 정보 이력 정보 관리 기능은 그림 12에서 보는 바와 같이 멀티 클라우드 인프라 공통 제어 관리 블록을 통한 클라우드 인프라 자원에 대한 연결 및 함수 호출 이력 정보를 수집하고 관리 기능을 제공한다. 세부 기능은 다음과 같다.

  • 클라우드 인프라 연동 이력 정보 수집 멀티 클라우드 인프라 공통 제어 관리 블록은 운영 중에 빈번하게 발생하는 CSP API 호출에 대한 호출 로그 스트림을 로그 파일로 출력한다. 멀티 클라우드 인프라 연동 정보 이력 정보 관리 블록의 연동 이력 수집 에이전트는 이러한 연동 호출 이력 정보를 수집한다.

  • 클라우드 인프라 연동 이력 정보 제공

    • 수집된 연동 이력 정보 검색 제공
    • 수집된 연동 이력 정보 차트, 그래프 등 시각화 제공