KR20220000880A - 서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법 - Google Patents

서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20220000880A
KR20220000880A KR1020210187561A KR20210187561A KR20220000880A KR 20220000880 A KR20220000880 A KR 20220000880A KR 1020210187561 A KR1020210187561 A KR 1020210187561A KR 20210187561 A KR20210187561 A KR 20210187561A KR 20220000880 A KR20220000880 A KR 20220000880A
Authority
KR
South Korea
Prior art keywords
virtual server
configuration file
role
configuration
virtual
Prior art date
Application number
KR1020210187561A
Other languages
English (en)
Inventor
김태경
Original Assignee
쿠팡 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쿠팡 주식회사 filed Critical 쿠팡 주식회사
Publication of KR20220000880A publication Critical patent/KR20220000880A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 개시는 가상 서버 관리를 위한 컴퓨터-구현 시스템에 관한 것이다. 시스템은 명령을 저장하는 메모리; 및 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 명령은 가상 서버 인스턴스와 연관된 구성 파일을 유지하고; 가상 서버 인스턴스와 연관된 역할을 수신하고; 구성 파일 및 역할에 기초하여 필요한 가상 서버 구성을 결정하고; 가상 서버 구성에 기초하여 적어도 하나의 가상 서버를 스핀업하고; 적어도 하나의 가상 서버가 에러 상태에 도달했는지 여부를 결정하고; 적어도 하나의 가상 서버가 에러 상태에 도달했다는 결정에 기초하여, 적어도 하나의 가상 서버가 복구 가능한지 여부를 결정하고; 적어도 하나의 가상 서버가 복구가 가능하지 않다는 결정에 기초하여, 적어도 하나의 가상 서버에 대한 액세스를 종료하고; 그리고 가상 서버 구성에 기초하여 적어도 두 번째 가상 서버를 스핀업하는 것을 포함할 수 있다.

Description

서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법{SYSTEMS AND METHODS FOR CENTRALIZATION OF SERVER INITIALIZATION INFORMATION}
본 개시는 일반적으로 서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법에 관한 것이다. 특히, 본 개시의 실시예들은 가상 서버 인스턴스와 연관된 구성 파일을 유지하는 시스템에 관한 것이다. 시스템은 구성 파일로부터 가상 서버에 필요한 리소스를 결정하여 가상 서버를 인스턴스화하고 필요한 리소스를 제공하도록 가상 서버를 구성한다. 이러한 방식으로, 단일 구성 관리 데이터베이스는 성능 또는 스토리지를 개선하거나 서버 오류 또는 비효율성으로부터 복구하기 위해 가상 서버의 다수의 복사 또는 복제를 신속하게 인스턴스화 할 수 있다.
가상 서버의 확산으로 저렴한 비용으로 대규모 컴퓨팅 리소스에 대한 액세스가 확대되었다. 다양한 기업들이 클라우드 컴퓨팅이라고도 하는 가상 서버 리소스를 제공한다. 또한, 회사, 대학, 정부 조직은 다른 서비스들 중에서도, 웹 사이트를 호스트하고, 복잡한 컴퓨터 시뮬레이션을 수행하며, 대규모 데이터베이스를 저장하는 데 가상 서버를 활용한다. 가상 서버는 클라이언트에 안전하고 신뢰할 수 있으며 확장 가능한 컴퓨팅 리소스를 제공하므로, 클라이언트가 서버 역량을 유지하기 보다는 제품을 만드는 데 집중할 수 있게 한다.
그러나, 많은 양의 가상 서버 리소스를 소비하는 복잡한 조직은 종종 가상 서버의 많은 상이한 구성을 추적하는 데 어려움을 겪는다. 예를 들어, 대기업은 각각 다른 가상 서버 리소스와 구성을 필요로 하는 여러 가지 다른 운영을 가질 수 있다. 관리 부서는 가상 서버에 스토리지가 필요할 수 있는 반면, 연구 및 개발은 연산 모델링을 위한 처리가 필요하며, 영업 부서는 웹 사이트를 호스트 하기 위해 가상 서버가 필요할 수 있다.
또한, 조직은 때때로 가상 서버에서 리던던시(redundancy)를 요구한다. 예를 들어, 중요한 상태(health) 또는 재무 정보의 데이터베이스는 하드웨어 오류 또는 정전으로부터 보호하기 위해 이중 또는 삼중 리던던시가 필요할 수 있다. 추가적으로, 가상 서버가 패일(fail)하거나 사용할 수 없게 되면, 조직은 새로운 가상 서버에서 동일한 동작을 다시 설정하는 데 상당한 시간을 할애해야 한다. 가상 서버가 많은 조직의 경우, 가상 서버 운영을 유지하려면 새로운 가상 서버를 자주 구성해야 한다. 그러나, 여러 가지 역할에 대해 많은 서로 다른 구성을 유지하면 에러와 불일치가 발생할 수 있다. 예를 들어, 가상 서버가 패일하면, 패일 된 서버의 역할을 수행하기 위해 새로운 가상 서버를 구성하는 직원은 실수로 구성 설정을 잊어버려, 클라이언트와 사용자의 서버 리소스에 대한 액세스를 방해할 수 있다.
추가적으로, 예를 들어, 전자상거래 웹사이트가 판매를 하거나 연구 개발 회사가 단기적이지만 리소스 집약적인 컴퓨터 모델을 운영하는 경우, 대규모 조직은 가상 서버 리소스를 신속하게 확장해야 할 수 있다. 많은 가상 서버를 구성해야 하는 요건은 확장성을 손상시키고 비용을 증가시킨다.
따라서, 가상 서버를 관리하고 서버 초기화 정보를 중앙 집중화하는 시스템 및 방법이 필요하다.
본 개시의 일 양상은 가상 서버 관리를 위한 컴퓨터-구현 시스템에 관한 것이다. 시스템은 명령을 저장하는 메모리 및 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 명령은 데이터 스토어에서, 가상 서버 인스턴스와 연관된 구성 파일을 유지하고; 그리고 데이터 스토어에서, 구성 파일을 찾고(locate); 구성 파일의 콘텐츠에 기초하여 필요한 가상 서버 리소스를 결정하며; 구성 파일의 콘텐츠에 기초하여 가상 서버의 적어도 하나의 리소스를 구성하며; 그리고 가상 서버를 스핀업 하는 것에 의해; 가상 서버 인스턴스에 기초하여 가상 서버를 인스턴스화하는 것을 포함한다.
본 개시의 또 다른 양상은 가상 서버 관리를 위한 컴퓨터-구현 방법에 관한 것이다. 방법은, 데이터 스토어에서, 가상 서버 인스턴스와 연관된 구성 파일을 유지하는 단계; 및 데이터 스토어에서, 구성 파일을 찾는 단계; 구성 파일의 콘텐츠에 기초하여 필요한 가상 서버 리소스를 결정하는 단계; 구성 파일의 콘텐츠에 기초하여 가상 서버의 적어도 하나의 리소스를 구성하는 단계; 및 가상 서버를 스핀업 하는 단계에 의해; 가상 서버 인스턴스에 기초하여 가상 서버를 인스턴스화하는 단계를 포함한다.
본 개시의 또 다른 양상은 가상 서버 관리를 위한 컴퓨터-구현 시스템에 관한 것이다. 시스템은 명령을 저장하는 메모리 및 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 명령은 데이터 스토어에서, 가상 서버 인스턴스와 연관된 구성 파일을 유지하고, - 구성 파일은 로딩에 대한 서비스의 목록을 포함함 -; 인스턴스화된 가상 서버와 연관된 효율성 메트릭을 결정하며; 효율성 메트릭이 임계값 아래일 때 가상 서버에 대한 액세스를 종료하며; 데이터 스토어에서, 구성 파일을 찾고; 구성 파일의 콘텐츠에 기초하여 필요한 가상 서버 리소스를 결정하며; 구성 파일의 콘텐츠에 기초하여 가상 서버의 적어도 하나의 리소스를 구성하며; 그리고 가상 서버를 스핀업 하는 것에 의해; 가상 서버 인스턴스에 기초하여 새로운 가상 서버를 인스턴스화하는 것을 포함한다.
본 개시의 또 다른 양상은 가상 서버 관리를 위한 컴퓨터-구현 시스템에 관한 것이다. 시스템은 명령을 저장하는 메모리; 및 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 명령은 가상 서버 인스턴스와 연관된 구성 파일을 유지하고; 가상 서버 인스턴스와 연관된 역할을 수신하고; 구성 파일 및 역할에 기초하여 필요한 가상 서버 구성을 결정하고; 가상 서버 구성에 기초하여 적어도 하나의 가상 서버를 스핀업하고; 적어도 하나의 가상 서버가 에러 상태에 도달했는지 여부를 결정하고; 적어도 하나의 가상 서버가 에러 상태에 도달했다는 결정에 기초하여, 적어도 하나의 가상 서버가 복구 가능한지 여부를 결정하고; 적어도 하나의 가상 서버가 복구가 가능하지 않다는 결정에 기초하여, 적어도 하나의 가상 서버에 대한 액세스를 종료하고; 그리고 가상 서버 구성에 기초하여 적어도 두 번째 가상 서버를 스핀업하는 것을 포함한다.
본 개시의 또 다른 양상은 가상 서버 관리를 위한 컴퓨터-구현 방법에 관한 것이다. 방법은, 가상 서버 인스턴스와 연관된 구성 파일을 유지하고; 가상 서버 인스턴스와 연관된 역할을 수신하고; 구성 파일 및 역할에 기초하여 필요한 가상 서버 구성을 결정하고; 가상 서버 구성에 기초하여 적어도 하나의 가상 서버를 스핀업 하고; 적어도 하나의 가상 서버가 에러 상태에 도달했는지 여부를 결정하고; 적어도 하나의 가상 서버가 에러 상태에 도달했다는 결정에 기초하여, 적어도 하나의 가상 서버가 복구 가능한지 여부를 결정하고; 적어도 하나의 가상 서버가 복구가 가능하지 않다는 결정에 기초하여, 적어도 하나의 가상 서버에 대한 액세스를 종료하고; 그리고 가상 서버 구성에 기초하여 적어도 두 번째 가상 서버를 스핀업하는 것을 포함한다.
다른 시스템들, 방법들 및 컴퓨터-판독 가능한 매체도 본 명세서에서 논의된다.
도 1은 개시된 실시예에 따른, 클라이언트와 가상 서버를 포함하는 네트워크를 도시한다.
도 2는 개시된 실시예에 따른, 가상 서버 관리 프로세스의 흐름도이다.
도 3은 개시된 실시예에 따른, 가상 서버 비용 스토리지 프로세스의 흐름도이다.
도 4는 개시된 실시예에 따른, 리소스 사용(usage) 메트릭(metric) 계산 프로세스의 흐름도이다.
이어서 첨부된 도면을 참조하여 자세하게 설명된다. 가능하면, 다음의 설명에서 같거나 유사한 부분에 대해 참조되도록 도면에서 같은 도면 부호가 사용된다. 여기에 몇몇 예시적인 실시예가 설명되지만, 변경, 조정 및 다른 구현도 가능하다. 예를 들면, 도면 내의 구성 및 스텝에 대해 교체, 추가, 또는 변경이 이루어질 수 있고, 여기에 설명된 예시적인 방법은 개시된 방법에 대해 스텝을 교체, 순서 변경, 제거 또는 추가함으로써 변경될 수 있다. 따라서, 다음의 자세한 설명은 개시된 실시예 및 예시로 제한되는 것은 아니다. 대신에 본 발명의 적절한 범위는 청구범위에 의해 규정된다.
본 개시의 실시예는 가상 서버 관리를 위한 시스템 및 방법에 관한 것이다.
도 1은 가상 서버 리소스 사용 메트릭 등급 시스템(102)을 포함하는 네트워크(100)를 보여준다. 시스템(102)은 적어도 하나의 프로세서(116), 데이터가 전송될 수 있는 입출력(I/O) 디바이스(118) 및 적어도 하나의 메모리(120)를 포함한다. 메모리(120)는 IP 분류 모듈을 동작시키기 위한 프로그램을 저장한다. 메모리(120)는 또한 그래픽 사용자 인터페이스(GUI)에 대한 명령을 저장할 수 있다.
더욱이, 프로세서(116)는 정보를 조작하거나 처리할 수 있는 범용 또는 특정 전자 디바이스일 수 있다. 예를 들어, 프로세서(103)는 임의의 수의 중앙 처리 장치(또는 "CPU"), 그래픽 처리 장치(또는 "GPU"), 광학 프로세서, 프로그래머블 로직 컨트롤러, 마이크로컨트롤러, 마이크로프로세서, 디지털 신호 프로세서, IP 코어, 프로그래머블 로직 어레이(Programmable Logic Array)(PLA), 프로그래머블 어레이 로직(PAL), 일반 어레이 로직(Generic Array Logic)(GAL), 복합 프로그래머블 로직 디바이스(CPLD), 필드-프로그래머블 게이트 어레이(FPGA), 시스템 온 칩(SoC), 주문형 반도체(Application-Specific Integrated Circuit)(ASIC) 및 데이터 처리가 가능한 임의의 타입의 회로의 임의의 조합을 포함할 수 있다. 프로세서는 또한 네트워크를 통해 연결된 다수의 기계 또는 디바이스에 걸쳐 분산된 하나 이상의 프로세서를 포함하는 가상 프로세서일 수 있다.
추가적으로, 메모리(120)는 프로세서에 의해(예를 들면, 미도시된 버스를 통해) 접근할 수 있는 코드와 데이터를 저장할 수 있는 범용 또는 특정 전자 디바이스일 수 있다. 예를 들어, 메모리(105)는 임의의 수의 랜덤-액세스 메모리(RAM), 읽기-전용 메모리(ROM), 광학 디스크, 자기 디스크, 하드 드라이브, 솔리드 스테이트 드라이브, 플래시 드라이브, 보안 디지털(SD) 카드, 메모리 스틱, 소형 플래시(CF) 카드 또는 임의의 유형의 저장 디바이스의 임의의 조합을 포함할 수 있다. 코드는 특정 작업을 위한 하나 이상의 응용 프로그램(또는 "앱(apps)")과 운영 시스템(OS)을 포함할 수 있다. 메모리는 또한 네트워크를 통해 연결된 다수의 기계 또는 디바이스에 걸쳐 분산된 하나 이상의 메모리를 포함하는 가상 메모리일 수 있다.
시스템(102)은 구성 관리 데이터베이스(CMDB)(104)에 연결된다. CMDB(104)는 프로세서, I/O 디바이스 및 메모리를 포함할 수 있다. CMDB(104)의 메모리는, 프로세서 속도 및 메모리를 포함하는 필요한 리소스 할당, 저장된 변수, 포트 및 IP 주소를 포함하는 연결 파라미터와 같은, 가상 서버를 초기화하기 위한 구성 파일을 저장할 수 있다. CMDB(104)는 또한 가상 서버 리소스에 대한 역할에 대응하는 사용자 요청을 저장할 수 있다. 일부 실시예에서, 시스템(102)은 CMDB(104)로서 동시에 동작할 수 있다.
시스템(102)은 컴퓨터 네트워크(106)에 연결된다. 예를 들어, 컴퓨터 네트워크(106)는 임의의 수의 인터넷, 인트라넷, 랜(Local-Area Network)(LAN), 광역 통신망(Wide-Area Network)(WAN), 거대 도시 통신망(Metropolitan-Area Network)(MAN), 가상 사설 네트워크(VPN), 무선 네트워크(예를 들면, IEEEE 802.11a/b/g/n 준수), 유선 네트워크, 전용 회선, 셀룰러 데이터 네트워크, 블루투스 연결, 적외선 연결 또는 근거리 통신(NFC) 연결을 사용하는 네트워크의 임의의 조합을 포함할 수 있다.
시스템(102)은, 직접 또는 컴퓨터 네트워크(106)를 통해, 클라이언트 디바이스(108)에 추가로 연결된다. 클라이언트 디바이스(108)는 랩톱, 독립형 컴퓨터, 휴대폰 등 일 수 있다. 사용자는 클라이언트 디바이스(108)를 통해 가상 서버 리소스 요청을 시스템(102)으로 전송할 수 있다. 일부 실시예에서, 시스템(102)은 단일 장치가 사용자 요청을 수신하고 구성 파일을 생성 및 저장하도록 클라이언트 디바이스(108)를 포함할 수 있다. 대안적으로, 시스템(102) 및 클라이언트 디바이스(108)는 클라이언트 디바이스(108)와 시스템(102) 사이에 교환된 정보가 컴퓨터 네트워크(106)를 통해 전달될 필요가 없도록 직접 연결될 수 있다.
추가적으로, 시스템(102)은 가상 서버 제공자(110)와 통신한다. 예를 들어, 제공자(110)는 임대 또는 구입이 가능한, 서버 팜과 같은, 복수의 서버 또는 범용 컴퓨터를 운영하는 서비스일 수 있다. 일부 실시예에서, 제공자(110)는 처리 시간, 프로세서 역량, 스토리지 또는, 대역폭과 같은, 연결성(connectivity)에 대해 사용자에게 청구할 수 있다. 제공자(110)는 또한, 사용 수준에 관계없이, 추후 액세스를 보장하기 위한 리테이너(retainer)로서, 가상 서버에 연결하기 위해 설정된 기본 요금(baseline)을 사용자에게 청구할 수 있다. 제공자(110)는 다양한 역량의 서버 및 컴퓨터를 보유할 수 있으며, 유지 수수료를 청구하면서 사용자에게 시스템을 판매할 수 있다. 제공자(110)에 의해 가상 서버 리소스를 판매하는 다른 구성도 가능하다.
일부 실시예에서, 고객 디바이스(112)는 네트워크(106)를 통해 제공자(110)의 가상 서버에 의해 호스팅되는 서비스에 연결할 수 있다. 예를 들어, 회사는 전자상거래 웹사이트를 호스트하기 위해 제공자(110)에 의해 운영되는 서버를 이용할 수 있다. 그 다음에 고객 디바이스(112)는 네트워크(106)를 통해 전자상거래 웹사이트에 연결할 수 있다. 이러한 방식으로, 고객은 회사가 소유한 컴퓨터에 직접 액세스하지 않고 회사의 웹사이트에 액세스할 수 있으며, 대신 제공자(110)에 의해 운영되는 가상 서버와 상호작용 할 수 있다. 이는 서버를 운영할 유기적인 직원이 없는 편리함을 회사에 제공하고, 회사가 필요로 하는 컴퓨팅 파워의 양에 대해서만 비용을 지불함으로써 비용을 절감할 수 있다. 대안적으로, 고객 디바이스(112)는, 예를 들어, 대규모 서버 팜을 운영하지 않고도 제공자(110)의 가상 서버나 컴퓨팅 파워에 의해 저장된 공통 데이터를 공유할 수 있는 연구 협력자일 수 있다.
도 2는 가상 서버 관리 프로세스(200)의 단계를 보여준다. 시스템(102)은 가상 서버 관리 프로세스(200)를 수행할 수 있다. 가상 서버 관리 프로세스(200)를 수행하기 위한 명령은 메모리(120)에 저장되고 시스템(102)의 프로세서(116)에 의해 구현될 수 있다. 가상 서버 관리 프로세스(200)는 다음의 단계들을 포함한다.
단계 202에서, 시스템(102)은, 데이터 스토어에서, 가상 서버 인스턴스와 연관된 구성 파일을 유지한다. 시스템(102)은 구성 파일을 메모리(120), CMDB(104) 또는 제공자(110)의 가상 서버 중 하나에 유지할 수 있다. 시스템(102)은 복수의 역할에 대한 복수 구성 파일을 저장할 수 있다. 파일은 텍스트 형식, SQL 데이터베이스 등으로 저장될 수 있다. 예를 들어, 구성 파일은, IP 주소, MAC 주소 또는 스토리지 볼륨을 찾을 수 있는 디렉토리와 같은, 마운팅에 대한 스토리지 볼륨의 목록을 포함할 수 있다. 스토리지 볼륨은 또한 가상 서버에 위치될 수 있고, 구성 파일은, 예를 들어, 가상 서버의 식별자 및 스토리지 볼륨에 대한 경로를 제공할 수 있다. 가상 서버 인스턴스와 연관된 구성 파일은 또한, 프로그램, VPN 정보 또는 통신 프로토콜과 같은, 로딩에 대한 서비스의 목록을 포함할 수 있다. 구성 파일은 또한 시스템(102)에 의한 가상 서버 성능의 추가 분석이 가능하도록, IP 주소, 역할 이름, 사용자 식별자 또는 가상 서버에 대한 고유 식별자와 같은, 로딩에 대한 환경 변수의 목록을 포함할 수 있다. 일부 실시예에서, 예를 들어, 연구 및 개발 조직이 컴퓨터 모델링을 수행할 때, 구성 파일은 또한 과학적 상수의 값을 포함할 수 있다. 조직이 보관된 이메일을 저장하기 위해 가상 서버의 스토리지를 사용하는 경우, 환경 변수는 사용자가 기록 보관소(archives)에 액세스할 수 있도록 사용자 이름과 암호 목록을 포함할 수 있다. 추가 정보 및 메타데이터도 구성 파일에 저장될 수 있다.
그 후 시스템(102)은 구성 파일에 대응하는 가상 서버 인스턴스에 기초하여 가상 서버를 인스턴스화 할 수 있다. 단계 204에서, 시스템(102)은, 데이터 스토어에서, 구성 파일을 찾는다(locate). 이는, 요청시, 예를 들어 관리자가 새로운 가상 서버를 인스턴스화 하기 위한 요청을 시작할 때 또는 후술될 것과 같이, 자동으로, 발생할 수 있다. 추가적으로, 사용자는 새로운 가상 서버 리소스를 요청함으로써 새로운 가상 서버가 인스턴스화 되도록 트리거할 수 있다. 예를 들어, 사용자는 클라이언트 디바이스(108)를 사용하여 가상 서버에 대한 새로운 역할을 창출할 수 있다. 사용자는 역할에, 캐시 메모리, 스토리지 메모리, 처리 시간, 처리 역량 또는 네트워크 역량이 필요함을 지정하는 것과 같이, 필요한 가상 서버 리소스에 대한 세부 정보를 제공할 수 있으며, 필요한 각 리소스의 수량 및 리소스가 필요한지 여부를 추가로 지정할 수 있다.
일부 실시예에서, 조직은 사용자가 기술적 세부사항을 제공하지 않고 역할을 지정할 수 있도록 다양한 역할에 대한 템플릿 리소스 요건을 가질 수 있다. 또한, 이들 템플릿은 시스템(102)에 의해 구성 파일로서 저장될 수 있다. 예를 들어, 전자상거래 조직의 그래픽 디자이너 사용자는 새로운 제품 사이트를 만들기를 원할 수 있다. 클라이언트 디바이스(108)를 사용하여, 사용자는 새로운 웹사이트를 생성할 것이라고 시스템(102)과 통신할 수 있다. 시스템(102)은 새로운 웹 사이트를 호스팅하기 위해 가상 서버를 생성하기 위한 구성 파일을 찾을 수 있다. 파일은 통신 프로토콜, 리소스 요건, 템플릿 그래픽 및 균일성을 위한 다른 조직 표준을 제공할 수 있다. 그런 다음, 사용자는 시스템(102)이 가상 서버를 구성하면서 가상 서버에서 호스팅 될 새 제품 사이트를 설계하는 것을 시작할 수 있다. 또한, 트레이닝된 엔지니어에 의해 생성된 표준 구성 파일이 사용될 수 있으므로 비용을 증가시키고 성능을 저하시킬 수 있는 구성 에러가 제거된다.
단계 206에서, 시스템(102)은 구성 파일의 콘텐츠에 기초하여 필요한 가상 서버 리소스를 결정한다. 구성 파일은 필요한 가상 서버 리소스의 목록을 포함할 수 있고, 단계 206은 리소스의 목록을 복사하는 것을 포함할 수 있다. 대안적으로, 시스템(102)은 구성 파일의 정보에 기초하여 어느 리소스가 필요한지를 결정할 수 있다. 예를 들어, 구성 파일이 포트 및 IP 주소를 포함하면, 시스템(102)은 역할이 가상 서버로부터의 연결 리소스를 필요로 한다고 결정할 수 있다.
단계 208에서, 시스템(102)은 구성 파일의 콘텐츠에 기초하여 가상 서버의 적어도 하나의 리소스를 구성한다. 시스템(102)은 데이터, 변수 및 소프트웨어를 가상 서버에 업로드 함으로써 리소스를 구성할 수 있다. 시스템(102)은 또한 가상 서버 연결 설정에 통신 주소와 프로토콜을 입력할 수 있다. 일부 실시예에서, 시스템(102)은 가상 서버에 의해 예상되는 설정을 통신하기 위해 API를 사용하여 네트워크(106)을 통해 가상 서버와 통신할 수 있다. 시스템(102)은 또한 제공자(110)의 웹사이트를 사용하여 자동으로 정보를 가상 서버로 전송하기 위해 자동화된 웹 브라우징 소프트웨어를 사용할 수 있다. 시스템(102)은 또한 구성 파일이 다수의 서버가 필요하다고 나타내는 경우 단일 또는 다수의 가상 서버의 여러 리소스를 구성할 수 있다. 시스템(102)은 또한 구성 파일에 기초하여 다수의 가상 서버가 필요한지 여부를 결정할 수 있다. 예를 들어, 구성 파일이 역할에 100 테라바이트의 스토리지가 필요하다고 나타내면, 가상 서버 스토리지가 50 테라바이트로 제한될 경우 시스템(102)은 두 개의 가상 서버로부터 스토리지를 구성할 수 있다.
단계 210에서, 시스템(102)은 가상 서버를 스핀업한다. 단계 210은 기존 서버와 새로운 서버 간의 통신을 가능하게 하여 역할의 연속적인 동작을 보장하도록 새로운 가상 서버의 식별자 및 주소를 제공하기 위해 다른 가상 또는 하드웨어 서버와 통신하는 것을 포함할 수 있다. 또한, 시스템(102)은, 예를 들어, 새로운 가상 서버의 성능 테스트를 수행하거나 가상 서버가 스핀업 되기 전에 가상 서버가 모두 구성되어 있는지 확인하기 위해 가상 서버 리소스를 구성한 후 서버를 스핀업 하는 것을 지연할 수 있다.
단계 212에서, 시스템(102)은 인스턴스화된 가상 서버가 에러 상태에 도달했는지 여부를 결정한다. 인스턴스화된 가상 서버 자체는, 이메일과 같은 통지를 통해 또는 API를 통해, 하드웨어 오류 또는 통신 에러와 같은, 에러 상태를 보고할 수 있다. 대안적으로, 시스템(102)은 가상 서버가 에러 상태에 도달했는지를 결정하기 위해 가상 서버 성능을 주기적으로 테스트하도록 구성될 수 있다. 또한, 시스템(102)은 에러 상태의 심각도를 결정하고 가상 서버를 복구하려고 시도할 수 있다. 예를 들어, 손상된 데이터 또는 새로운 필수 IP 주소로 인한, 잘못된 IP 주소와 같이, 잘못 적용된 통신 설정에 의해 에러 상태가 발생되는 경우, 시스템(102)은 통신 에러를 정정하기 위해 가상 서버를 재구성하려고 시도할 수 있다. 시스템(102)이 인스턴스화된 가상 서버가 에러 상태에 도달하지 않았다고 판단하거나, 시스템(102)이 인스턴스화된 가상 서버가 복구 가능한 에러 상태에 도달했다고 판단하면, 단계 212는 아니오(NO)이고, 시스템(102)은 단계 214로 진행한다.
단계 214에서, 시스템(102)은 인스턴스화된 가상 서버와 연관된 효율성 메트릭을 결정한다. 효율성 메트릭은, 예를 들어, 동작, 스토리지 또는 연결 당 비용 또는 속도일 수 있다. 단계 216에서, 시스템(102)은 효율성 메트릭이 임계값 아래인지를 결정한다. 효율성 메트릭이 임계값 아래에 있지 않으면, 단계 216는 아니오(NO)이고, 시스템(102)은 에러 상태 또는 임계값 아래의 효율성 메트릭에 대한 모니터링을 계속하기 위해 단계 212로 돌아간다. 일부 실시예에서, 시스템(102)은 또한 상태 요청 및 처리를 제한하기 위해 에러 상태를 확인하기 전에 대기할 수 있다.
예를 들어, 에러 상태가 검출되거나 효율성 메트릭이 임계값 아래에 있어, 단계 212 또는 단계 216 중 하나가 예(YES)인 경우, 시스템(102)은 단계 218로 진행하며 인스턴스화된 가상 서버와 연관된 구성 파일을 결정한다. 일부 실시예에서, 시스템(102)은 또한 효율성 메트릭이 임계값 아래일 때 가상 서버에 대한 액세스를 종료할 수 있다. 시스템(102)은, 예를 들어, 역할 식별자를 구성 파일에 포함된 역할 식별자와 매칭시킴으로써 구성 파일을 결정할 수 있다. 시스템(102)은 또한 패일되거나 비효율적인 가상 서버의 리소스 또는 구성을 저장된 구성 파일에 매칭시킴으로써 구성 파일을 결정할 수 있다. 일부 실시예에서, 시스템(102)은 에러 또는 비효율성 없이 단계 218로 건너뛸 수 있다. 예를 들어, 사용자는 다수의 가상 서버 간에 새로운 설정이 적용되고 표준화되어야 할 필요가 있다고 결정할 수 있다. 사용자는 시스템(102)이 단계 218로 점프하도록 강제할 수 있으며, 단계 212 및 단계 216에서 가상 서버가 패일하거나 비효율적이 되지 않으면서 새로운 구성 파일을 결정하게 할 수 있다.
시스템(102)이 인스턴스화된 가상 서버와 연관된 구성 파일을 결정하면, 단계 220에서, 시스템(102)은 결정된 구성 파일을 이용하여 새로운 가상 서버를 인스턴스화 한다. 시스템(102)은 패일 된 단일 가상 서버의 기능을 대체하거나 리던던시를 설정하기 위해 복수의 가상 서버를 인스턴스화 할 수 있다. 시스템(102)은 손실된 기능을 대체하기 위해 새로운 가상 서버가 인스턴스화 될 때까지, 역량이 저하된 경우에도, 패일 된 또는 비효율적인 서버가 기능을 계속하도록 허용할 수 있다. 시스템(102)은 단계 220에서 새로운 가상 서버를 인스턴스화 하기 전에 에러 또는 비효율성의 표시를 사용자에게 추가적으로 제공하고 사용자 승인을 기다릴 수 있다.
또한, 시스템(102)이 단계 220에서 새로운 가상 서버를 인스턴스화 한 후, 시스템(102)은 단계 212 내지 단계 216에서 새로운 가상 서버의 에러 상태 또는 비효율성에 대해 모니터링 하기 위해 단계 212로 복귀한다. 시스템(102)은 조직에 속하는 다양한 역할을 수행하는 복수의 가상 서버를 동시에 모니터링 할 수 있다.
도 3은 가상 서버 비용 스토리지 프로세스(300)의 단계를 보여준다. 시스템(102)은 가상 서버 비용 스토리지 프로세스(300)를 수행할 수 있다. 가상 서버 비용 스토리지 프로세스(300)를 수행하기 위한 명령은 메모리(120)에 저장되고 시스템(102)의 프로세서(116)에 의해 구현될 수 있다. 가상 서버 비용 스토리지 프로세스(300)는 다음의 단계들을 포함한다.
단계 302에서, 시스템(102)은 제1 역할을 가상 서버의 적어도 하나의 리소스와 연관시키도록 가상 서버를 구성한다. 역할을 리소스에 연관시키려면 시스템(102)(또는 가상 서버)이, CMDB(104)로부터, IP 주소 및 포트와 같은, 데이터를 검색해야 할 수 있다. 대안적으로, 소프트웨어, 코드, 초기화 데이터 또는 파라미터 또는 디지털 자산은 CMDB(104) 또는 다른 스토리지로부터 복사되어 가상 서버에 제공될 수 있다. 시스템(102)은 가상 서버에 필요한 리소스를 결정할 수 있다. 반면에, 가상 서버는 요청에 포함된 역할에 기초하여 필요한 리소스를 결정할 수 있다.
단계 304에서, 시스템(102)은 가상 서버와 연관된 식별자 및 가상 서버에 할당된 제1 역할의 식별자를 포함하도록 데이터베이스를 수정한다. 데이터베이스는, 예를 들어, CMDB(104), 메모리(120)이거나, 가상 서버에 저장될 수 있다. 예를 들어, 데이터베이스는 가상 서버 식별자 및 제1 역할 식별자를 SQL 데이터베이스에 기록할 수 있다. 제공자(110)는, 영숫자 코드, MAC 주소, IP 주소 또는, 예를 들어, 서버 창고 위치 및 창고 내의 서버 스택 위치를 포함하는 지구물리적 위치와 같은, 리소스를 호스팅 하는 가상 서버에 대한 고유한 식별자를 제공할 수 있다. 가상 서버 식별자는 또한 역할을 수행하는 가상 서버의 리소스를 지정할 수 있다.
단계 306에서, 시스템(102)은 제1 역할의 식별자와 연관된 리소스 사용의 복수의 표시들을 수신한다. 표시들은 전력 소비, 처리 기간, 프로세서 동작, 대역폭 사용, 스토리지 등일 수 있다. 또한, 표시들은, 시간당 센트, 실행당 센트 또는 부동 소수점 운영당 센트와 같은, 단위당 비용을 포함할 수 있다. 표시들은, 월당 테라바이트 당 센트와 같은, 시간 당 단위당 비용을 포함할 수 있다. 대안적으로, 단위당 비용은 제1 리소스 사용의 표시들과 별도로 얻을 수 있다. 일부 실시예에서, 표시들은 특정 가상 서버 또는 가상 서버 리소스를 소비하는 계정을 식별하는 정보를 추가적으로 포함할 수 있다. 표시들은 제공자(110)에 의해 운영되는 애플리케이션 프로그래밍 인터페이스(API)에 의해 또는 가상 서버에 의해 직접 제공될 수 있다.
일부 실시예에서, 수신된 표시들은 가상 서버 식별자를 포함하지 않는다. 그 다음에 시스템(102)은 리소스 사용을 제공자(110)의 다른 정보와 매칭시켜 가상 서버 식별자를 결정할 수 있다. 예를 들어, 수신된 표시들은, 한 달 동안 23 테라바이트, 29 테라바이트, 51 테라바이트, 81 테라바이트의 스토리지와 같은, 사용 목록만 포함할 수 있다. 예를 들어, 시스템(102)은 추가 단계에서 제공자 웹 사이트에 액세스하여, 예를 들어, 한달 동안 23 테라바이트가 저장된 가상 서버를 결정함으로써, 제1 역할에 매핑 할 수 있는 가상 서버 식별자를 얻을 수 있다.
리소스 사용을 데이터베이스 또는, 제공자 정보와 같은, 다른 리소스와 비교한 후, 시스템(102)은 제2 리소스가 어떠한 역할과도 연관되지 않은 것으로 판단하고 액세스를 종료할 수 있다. 예를 들어, 시스템(102)은 가상 서버 식별자가 없고 0.20 달러의 비용으로 5시간의 처리 시간의 표시를 수신할 수 있다. 추가 예로서, 시스템(102)은 식별자 A623g.6을 가진 가상 서버에 대해 2 테라바이트의 스토리지 표시를 수신할 수 있다. 시스템(102)은 식별자 A623g.6을 가진 서버에 대해 데이터베이스를 검색할 수 있지만, 예를 들어, 사용자가 역할을 중단하고 더 이상 리소스를 요구하지 않음을 나타내는, 관련 역할이 없음을 찾을 수 있다. 그 다음에 시스템(102)은 자동으로 종료할 수 있다. 일부 실시예에서, 시스템(102)은 관련된 역할을 갖지 않는 가상 서버 리소스에 다른 역할을 자동으로 재할당하거나, 사용자에 의한 재할당을 위해 관련되지 않은 리소스임을 플래그 할 수 있다.
단계 308에서, 시스템(102)는 수신된 표시들의 비용을 계산한다. 이는, 예를 들어, 비용 비율에 리소스 소비를 곱하는 것을 포함할 수 있다. 시스템(102)은 또한, 가상 서버의 월별 액세스 요금과 같이, 사용에 따라 확장되지 않는 기준 요금을 포함할 수 있다. 또한, 시스템(102)은 단일 역할에 대응하는 복수의 리소스에 대한 복수의 표시들과 연관된 비용을 결합할 수 있다. 예를 들어, 역할은 4개의 가상 서버로부터의 처리 및 스토리지가 필요할 수 있다. 역할에 대한 총 비용은 개별 가상 서버 비용의 합으로 계산된 수 있다. 또한, 단일 가상 서버는 복수의 역할에 대한 리소스를 제공할 수 있다. 예를 들어, 단일 가상 서버는 역할 A 및 B에 대한 스토리지 및 역할 A에 대한 처리를 제공할 수 있다. 시스템(102)은 또한 가상 서버의 총 비용을 계산할 수 있다.
단계 310에서, 시스템(102)은 제1 역할에 대해 계산된 비용을 데이터 스토어에 저장한다. 시스템(102)은 데이터 스토어에 저장된 가상 서버의 과거 비용을 분석할 수 있다. 데이터 스토어는 CMDB(104) 또는 가상 서버일 수 있다. 또한, 시스템(102)은 프로세스(200)의 단계 216에서 비용 효율성을, 예를 들어, 처리 시간당 비용 및 과거 비용 효율성에 기초한 임계값으로 결정할 수 있다. 예를 들어, 가상 서버는 신경망 트레이닝 역할에 대한 리소스를 처리하는 데 월당 10 달러의 과거 비용을 가질 수 있다. 가상 서버가 나중에 동일한 역할을 수행하기 위해 한 달에 20 달러의 비용이 든다면, 서버의 비용 효율성이 감소하여, 단계 216가 예(YES)가 되고 시스템(102)이 새로운 가상 서버를 인스턴스화 하게 될 수 있다. 임계값은 과거 절대 비용 또는 비용 효율성으로부터의 편차에 기초할 수 있다.
도 4는 효율성 메트릭 계산 프로세스(400)의 단계를 보여준다. 일부 실시예에서, 시스템(102)은 프로세스(200)의 단계 214와 함께 효율성 메트릭 값을 결정하기 위해 프로세스(400)를 수행할 수 있다. 다른 실시예에서, 시스템(102)은 프로세스(400)를 연속적으로 또는 언제든지(온디맨드 포함) 수행할 수 있다. 프로세스(400)는 다음의 단계들을 포함한다.
단계 402에서, 시스템(102)은 제1 역할과 연관된 리소스 사용을 결정하기 위해 복수의 역할에 대한 리소스 사용의 수신된 표시들을 필터링한다. 시스템(102)은, 예를 들어, 가상 서버 식별자, 리소스 또는 관련 역할에 의해 수신된 표시를 필터링 할 수 있다. 단계 404에서, 시스템(102)은 제1 역할과 연관된 리소스 사용을 결정하기 위해 필터링된 표시들을 검사한다. 시스템(102)은, 예를 들어, 제1 역할과 연관된 총 리소스 사용을 결정하기 위해, 일정 기간 동안, 가상 서버들 또는 제공자들의 사용을 종합할 수 있다. 일부 실시예에서, 표시들은 필터링 및 종합을 용이하게 하기 위해 다양한 데이터 구조에 통합될 수 있다. 예를 들어, 데이터는 프로세스(400) 이전에 SQL 데이터베이스로 변환될 수 있다.
단계 406에서, 시스템(102)은 가장 낮은 리소스 사용을 갖는 역할을 결정하기 위해 리소스 사용의 수신된 표시들을 필터링하고, 단계 408에서, 가장 높은 리소스 사용을 갖는 역할을 결정하기 위해 리소스 사용의 수신된 표시들을 필터링한다. 단계 406 및 단계 408는 전체 최저 및 최고 리소스 사용 역할을 결정하기 위해 각 역할에 대해 일정 기간 동안 총 사용을 결정하는 종합 단계를 더 포함할 수 있다.
단계 410에서, 시스템(102)은 가장 낮은 리소스 사용을 갖는 역할과 연관된 리소스 사용을 제외한 제1 역할과 연관된 리소스 사용을 포함하는 제1 요소를 결정한다. 즉, 시스템(102)은 모든 역할 중 가장 낮은 리소스 사용과 제1 역할의 리소스 사용 사이의 차이를 결정한다. 또한, 단계 412에서, 시스템(102)은 가장 낮은 리소스 사용을 갖는 역할과 연관된 리소스 사용을 제외한 가장 높은 리소스 사용을 갖는 역할과 연관된 리소스 사용을 포함하는 제2 요소를 결정한다. 이러한 방식으로, 시스템(102)은 분석되고 있는 역할에 대한 리소스 사용 범위를 결정한다.
단계 414에서, 시스템(102)은 제2 요소에 대한 제1 요소에 기초하여 효율성 메트릭을 계산한다. 예를 들어, 역할을 이용하는 가장 높은 리소스는 1의 효율성 메트릭을 가질 수 있고, 역할을 이용하는 가장 낮은 리소스는 0의 효율성 메트릭을 가질 수 있다. 그 다음에 나머지 역할은 0에서 1 사이의 효율성 메트릭을 가질 수 있다. 그러나, 이 예는 예시를 위해 제공되며, 효율성 메트릭은, 0 내지 100과 같은, 임의의 범위를 가질 수 있다.
일부 실시예에서, 시스템(102)은 효율성 메트릭을 계산하는 것의 일부로서 리소스 사용의 표시를 추가로 분석하거나 정규화하기 위해 단계 410 ~ 414의 변형을 사용할 수 있다. 추가적으로, 서로 다른 리소스에 대해 서로 다른 변형이 사용될 수 있다. 예를 들어, 시스템(102)은 주당 평균 CPU 사용을 반영하는 프로세서 효율성 메트릭을 결정할 수 있다. 시스템(102)은 가장 낮은 프로세서 사용을 갖는 역할과 연관된 프로세서 사용의 자연 로그를 제외한 제1 역할과 연관된 프로세서 사용의 자연 로그에 기초하여 제1 요소를 결정할 수 있다. 시스템(102)은 또한 가장 낮은 프로세서 사용을 갖는 역할과 연관된 프로세서 사용의 자연 로그를 제외한 가장 높은 리소스 사용을 갖는 역할과 연관된 프로세서 사용의 자연 로그에 기초하여 제2 요소를 결정할 수 있다. 시스템(102)은 제2 요소에 대한 제1 요소에 기초하여 역할에 대한 프로세서 효율성을 계산할 수 있다.
시스템(102)은 또한 일주일 동안 각 단위 통화당 처리되거나 전송되는 바이트 수인 네트워크 속도(ratio)를 반영하는 네트워크 효율성 메트릭을 결정할 수 있다. 시스템(102)은 가장 낮은 프로세서 사용을 갖는 역할과 연관된 네트워크 속도의 자연 로그를 제외한 제1 역할과 연관된 네트워크 속도의 자연 로그에 기초하여 제1 요소를 결정할 수 있다. 시스템(102)은 또한 가장 낮은 프로세서 사용을 갖는 역할과 연관된 프로세서 사용의 자연 로그를 제외한 가장 높은 리소스 사용을 갖는 역할과 연관된 프로세서 사용의 자연 로그에 기초하여 제2 요소를 결정할 수 있다. 시스템(102)은 제2 요소에 대한 제1 요소에 기초하여 프로세서 효율성 메트릭을 계산할 수 있다. 시스템(102)은 또한, 예를 들어, 주당 평균 메모리 사용에 기초하여, 유사한 방식으로 메모리 효율성 메트릭을 계산할 수 있다.
프로세스(400)를 이용하여 효율성 메트릭을 계산한 후, 시스템(102)은 효율성 메트릭 값이 프로세스(200)의 단계 216에서의 임계값 아래인지를 결정할 수 있다. 임계값은, 예를 들어, 조직 표준 또는 과거 효율성 메트릭 값에 기초할 수 있다.
본 개시의 예시적인 실시예로서, 리소스 사용 추적을 위한 컴퓨터-구현 시스템은 명령을 저장하는 메모리 및 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함한다. 명령은 시스템이 가상 서버 인스턴스와 연관된 구성 파일을 데이터 스토어에 유지하게 하고, 구성 파일은 로딩에 대한 서비스의 목록을 포함한다. 시스템은 또한 인스턴스화된 가상 서버와 연관된 효율성 메트릭을 결정하고 효율성 메트릭이 임계값 아래일 때 가상 서버에 대한 액세스를 종료한다. 시스템은 또한, 데이터 스토어에서, 구성 파일을 찾는 것에 의해 가상 서버 인스턴스에 기초하여 새로운 가상 서버를 인스턴스화 하고; 구성 파일의 콘텐츠에 기초하여 필요한 가상 서버 리소스를 결정하며; 구성 파일의 콘텐츠에 기초하여 가상 서버의 적어도 하나의 리소스를 구성하며; 가상 서버를 스핀업한다.
본 개시는 그 특정 실시예를 참조하여 도시되고 설명되었지만, 본 개시는 다른 환경에서, 변경없이, 실시될 수 있음을 이해할 것이다. 전술한 설명은 예시의 목적으로 제시되었다. 그것은 개시된 정확한 형태나 실시예에 대해 총망라된 것이 아니며 이것으로 한정되는 것은 아니다. 개시된 실시예의 설명 및 실시를 고려하는 것으로부터 변경 및 조정이 통상의 기술자에게 명백할 것이다. 추가적으로, 비록 개시된 실시예의 형태가 메모리에 저장되는 것으로서 설명되었지만, 통상의 기술자는 이들 형태가 2차 저장 디바이스, 예를 들면, 하드디스크나 CD ROM, 또는 다른 형태의 RAM이나 ROM, USB 매체, DVD, 블루레이, 또는 다른 광 드라이브 매체와 같이, 다른 형태의 컴퓨터 판독 가능한 매체에 저장될 수도 있는 것을 이해할 것이다.
상술한 설명 및 개시된 방법에 기초한 컴퓨터 프로그램은 숙련된 개발자의 기술 내에 있다. 여러 프로그램 혹은 프로그램 모듈은 통상의 기술자에게 알려진 어느 기술을 이용하여 생성되거나, 또는 기존의 소프트웨어와 연결하여 설계될 수 있다. 예를 들면, 프로그램 섹션 혹은 프로그램 모듈은 닷넷 프레임워크, 닷넷 컴팩트 프레임워크(및 비주얼 베이식, C 등과 같은, 관련 언어), 자바, C++, 오브젝티브 C, HTML, HTML/AJAX 조합, XML, 또는 자바 애플릿이 포함된 HTML 내에서 혹은 그것들에 의해서 설계될 수 있다.
게다가, 여기에서는 예시적인 실시예가 설명되었지만, 본 개시에 기초하여 통상의 기술자가 이해할 수 있는 바와 같이, 일부 또는 모든 실시예의 범위는 동등한 요소, 변경, 생략, 조합(예로써, 여러 실시예에 걸치는 형태의 조합), 조정 및/또는 수정을 가질 수 있다. 청구범위 내의 제한 사항은 그 청구범위 내에 적용된 언어에 기초하여 폭넓게 이해되도록 하는 것이며, 응용의 수행 동안 혹은 본 명세서 내에 설명된 예시로 한정되는 것은 아니다. 그 예시는 비배타적으로 해석되도록 하기 위한 것이다. 추가로, 개시된 방법의 스텝은 어떤 다른 방법으로 변경되거나, 스텝을 재배열 및/또는 스텝을 삽입하거나 삭제하는 것을 포함할 수 있다. 그러므로, 설명 및 예시는 오직 예시적으로 고려되는 것이며, 진정한 범위 및 기술 사상은 다음의 청구범위 및 그 동등한 전체 범위에 의해 나타내지는 것으로 의도된다.

Claims (20)

  1. 명령을 저장하는 메모리; 및
    상기 명령을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
    상기 명령은
    가상 서버 인스턴스와 연관된 구성 파일을 유지하고;
    상기 가상 서버 인스턴스와 연관된 역할을 수신하고;
    상기 구성 파일 및 상기 역할에 기초하여 필요한 가상 서버 구성을 결정하고;
    상기 가상 서버 구성에 기초하여 적어도 하나의 가상 서버를 스핀업하고;
    상기 적어도 하나의 가상 서버가 에러 상태에 도달했는지 여부를 결정하고;
    상기 적어도 하나의 가상 서버가 상기 에러 상태에 도달했다는 결정에 기초하여, 상기 적어도 하나의 가상 서버가 복구 가능한지 여부를 결정하고;
    상기 적어도 하나의 가상 서버가 복구가 가능하지 않다는 결정에 기초하여, 상기 적어도 하나의 가상 서버에 대한 액세스를 종료하고; 그리고
    상기 가상 서버 구성에 기초하여 적어도 두 번째 가상 서버를 스핀업하는 것을 포함하는 가상 서버 관리를 위한 컴퓨터-구현 시스템.
  2. 청구항 1에 있어서,
    상기 명령은 상기 프로세서가 추가로
    가상 서버가 복구가 가능하지 않다는 상기 결정에 기초하여,
    상기 가상 서버와 연관된 구성 파일을 결정하고; 그리고
    상기 결정된 구성 파일에 기초하여 새로운 가상 서버를 스핀업 하도록 하는 컴퓨터-구현 시스템.
  3. 청구항 1에 있어서,
    상기 명령은 상기 프로세서가 추가로
    가상 서버와 연관된 효율성 메트릭을 결정하고;
    상기 효율성 메트릭이 임계값 아래일 때 상기 가상 서버에 대한 액세스를 종료하고;
    상기 가상 서버와 연관된 구성 파일을 결정하고; 그리고
    상기 결정된 구성 파일에 기초하여 새로운 가상 서버를 스핀업 하도록 하는 컴퓨터-구현 시스템.
  4. 청구항 1에 있어서,
    상기 가상 서버 구성은
    캐시 메모리, 스토리지 메모리, 처리 시간, 처리 역량 또는 네트워크 역량 중 하나 이상을 포함하는 컴퓨터-구현 시스템.
  5. 청구항 1에 있어서,
    상기 가상 서버 인스턴스와 연관된 상기 구성 파일은 마운팅에 대한 스토리지 볼륨의 목록을 포함하는 컴퓨터-구현 시스템.
  6. 청구항 1에 있어서,
    상기 가상 서버 인스턴스와 연관된 상기 구성 파일은 로딩에 대한 서비스의 목록을 포함하는 컴퓨터-구현 시스템.
  7. 청구항 1에 있어서,
    상기 가상 서버 인스턴스와 연관된 상기 구성 파일은 스토리지 및 네트워크 리소스에 대한 가상 서버 요건의 목록을 포함하는 컴퓨터-구현 시스템.
  8. 청구항 1에 있어서,
    상기 명령은 상기 프로세서가 추가로
    상기 역할을 상기 가상 서버의 적어도 하나의 리소스에 연관시키도록 상기 가상 서버를 구성하고;
    상기 가상 서버와 연관된 식별자 및 상기 역할의 식별자를 포함하도록 데이터베이스를 수정하고;
    상기 역할의 상기 식별자와 연관된 리소스 사용 비용의 복수의 표시들을 수신하고;
    상기 수신된 표시들의 총 비용을 계산하고; 그리고
    상기 역할에 대한 상기 계산된 총 비용을 데이터 스토어에 저장하도록 하는 컴퓨터-구현 시스템.
  9. 청구항 8에 있어서,
    상기 가상 서버와 연관된 상기 식별자는 IP 주소인 컴퓨터-구현 시스템.
  10. 청구항 8에 있어서,
    상기 복수의 표시들은 애플리케이션 프로그래밍 인터페이스(API)에 의해 제공되는 컴퓨터-구현 시스템.
  11. 가상 서버 인스턴스와 연관된 구성 파일을 유지하고;
    상기 가상 서버 인스턴스와 연관된 역할을 수신하고;
    상기 구성 파일 및 상기 역할에 기초하여 필요한 가상 서버 구성을 결정하고;
    상기 가상 서버 구성에 기초하여 적어도 하나의 가상 서버를 스핀업 하고;
    상기 적어도 하나의 가상 서버가 에러 상태에 도달했는지 여부를 결정하고;
    상기 적어도 하나의 가상 서버가 상기 에러 상태에 도달했다는 결정에 기초하여, 상기 적어도 하나의 가상 서버가 복구 가능한지 여부를 결정하고;
    상기 적어도 하나의 가상 서버가 복구가 가능하지 않다는 결정에 기초하여, 상기 적어도 하나의 가상 서버에 대한 액세스를 종료하고; 그리고
    상기 가상 서버 구성에 기초하여 적어도 두 번째 가상 서버를 스핀업하는 것을 포함하는 가상 서버 관리를 위한 컴퓨터-방법.
  12. 청구항 11에 있어서,
    가상 서버가 복구가 가능하지 않다는 상기 결정에 기초하여,
    상기 가상 서버와 연관된 구성 파일을 결정하고; 그리고
    상기 결정된 구성 파일에 기초하여 새로운 가상 서버를 스핀업 하는 것을 추가로 포함하는 컴퓨터-구현 방법.
  13. 청구항 11에 있어서,
    가상 서버와 연관된 효율성 메트릭을 결정하고;
    상기 효율성 메트릭이 임계값 아래일 때 상기 가상 서버에 대한 액세스를 종료하고;
    상기 가상 서버와 연관된 구성 파일을 결정하고; 그리고
    상기 결정된 구성 파일에 기초하여 새로운 가상 서버를 스핀업 하는 것을 추가로 포함하는 컴퓨터-구현 방법.
  14. 청구항 11에 있어서,
    상기 가상 서버 구성은
    캐시 메모리, 스토리지 메모리, 처리 시간, 처리 역량 또는 네트워크 역량 중 하나 이상을 포함하는 컴퓨터-구현 방법.
  15. 청구항 11에 있어서,
    상기 가상 서버 인스턴스와 연관된 상기 구성 파일은 마운팅에 대한 스토리지 볼륨의 목록을 포함하는 컴퓨터-구현 방법.
  16. 청구항 11에 있어서,
    상기 가상 서버 인스턴스와 연관된 상기 구성 파일은 로딩에 대한 서비스의 목록을 포함하는 컴퓨터-구현 방법.
  17. 청구항 11에 있어서,
    상기 가상 서버 인스턴스와 연관된 상기 구성 파일은 스토리지 및 네트워크 리소스에 대한 가상 서버 요건의 목록을 포함하는 컴퓨터-구현 방법.
  18. 청구항 11에 있어서,
    상기 역할을 상기 가상 서버의 적어도 하나의 리소스에 연관시키도록 상기 가상 서버를 구성하고;
    상기 가상 서버와 연관된 식별자 및 상기 역할의 식별자를 포함하도록 데이터베이스를 수정하고;
    상기 역할의 상기 식별자와 연관된 리소스 사용 비용의 복수의 표시들을 수신하고;
    상기 수신된 표시들의 총 비용을 계산하고; 그리고
    상기 역할에 대한 상기 계산된 총 비용을 데이터 스토어에 저장하는 것을 추가로 포함하는 컴퓨터-구현 방법.
  19. 청구항 18에 있어서,
    상기 가상 서버와 연관된 상기 식별자는 IP 주소인 컴퓨터-구현 방법.
  20. 청구항 18에 있어서,
    상기 복수의 표시들은 애플리케이션 프로그래밍 인터페이스(API)에 의해 제공되는 컴퓨터-구현 방법.
KR1020210187561A 2020-01-30 2021-12-24 서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법 KR20220000880A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/777,591 US11016799B1 (en) 2020-01-30 2020-01-30 Systems and methods for centralization of server initialization information
US16/777,591 2020-01-30
KR1020200055321A KR102344992B1 (ko) 2020-01-30 2020-05-08 서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200055321A Division KR102344992B1 (ko) 2020-01-30 2020-05-08 서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20220000880A true KR20220000880A (ko) 2022-01-04

Family

ID=75981981

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200055321A KR102344992B1 (ko) 2020-01-30 2020-05-08 서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법
KR1020210187561A KR20220000880A (ko) 2020-01-30 2021-12-24 서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200055321A KR102344992B1 (ko) 2020-01-30 2020-05-08 서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법

Country Status (5)

Country Link
US (2) US11016799B1 (ko)
KR (2) KR102344992B1 (ko)
SG (1) SG11202104537RA (ko)
TW (2) TWI845918B (ko)
WO (1) WO2021152375A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019113553A1 (en) 2017-12-08 2019-06-13 Net-Thunder, Llc Automatically deployed information technology (it) system and method
US11665106B2 (en) * 2021-09-07 2023-05-30 Hewlett Packard Enterprise Development Lp Network-aware resource allocation

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489995B2 (en) * 2008-03-18 2013-07-16 Rightscale, Inc. Systems and methods for efficiently managing and configuring virtual servers
JP5708937B2 (ja) * 2010-01-08 2015-04-30 日本電気株式会社 構成情報管理システム、構成情報管理方法、及び構成情報管理用プログラム
US8635607B2 (en) * 2011-08-30 2014-01-21 Microsoft Corporation Cloud-based build service
US9223604B2 (en) * 2011-12-08 2015-12-29 Hitachi, Ltd. Control method of virtual machine and virtual machine system
US8549570B2 (en) 2012-02-23 2013-10-01 Ericsson Television Inc. Methods and apparatus for managing network resources used by multimedia streams in a virtual pipe
JP6007532B2 (ja) * 2012-03-21 2016-10-12 日本電気株式会社 仮想化システム、仮想化サーバ、マイグレーション方法、マイグレーションプログラム
US9258262B2 (en) * 2012-04-30 2016-02-09 Racemi, Inc. Mailbox-based communications system for management communications spanning multiple data centers and firewalls
US9571507B2 (en) * 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
US20150006730A1 (en) * 2013-06-27 2015-01-01 Sap Ag Enabling multi-tenant virtual servers in a cloud system
CN103701920A (zh) 2013-12-31 2014-04-02 曙光云计算技术有限公司 云环境下配置虚拟应用服务器的方法
CN103957237A (zh) 2014-04-03 2014-07-30 华南理工大学 一种弹性云的体系结构
US9917811B2 (en) * 2015-10-09 2018-03-13 International Business Machines Corporation Security threat identification, isolation, and repairing in a network
KR20160070726A (ko) * 2016-04-06 2016-06-20 (주)한위드정보기술 가상화 서비스 제공을 위한 컨텐츠 제공 시스템
US10334075B2 (en) * 2016-05-23 2019-06-25 Citrix Systems, Inc. Virtual browser integration
US10534629B1 (en) 2017-10-31 2020-01-14 EMC IP Holding Company LLC Virtual data management services
WO2019113553A1 (en) * 2017-12-08 2019-06-13 Net-Thunder, Llc Automatically deployed information technology (it) system and method
US10880312B1 (en) * 2018-11-21 2020-12-29 Amazon Technologies, Inc. Authentication and authorization with remotely managed user directories

Also Published As

Publication number Publication date
US11016799B1 (en) 2021-05-25
TW202232916A (zh) 2022-08-16
KR20210097592A (ko) 2021-08-09
TWI845918B (zh) 2024-06-21
WO2021152375A1 (en) 2021-08-05
TWI764472B (zh) 2022-05-11
KR102344992B1 (ko) 2021-12-30
US11573820B2 (en) 2023-02-07
US20210240515A1 (en) 2021-08-05
SG11202104537RA (en) 2021-09-29
TW202131660A (zh) 2021-08-16

Similar Documents

Publication Publication Date Title
US9781020B2 (en) Deploying applications in a networked computing environment
US10289468B1 (en) Identification of virtual computing instance issues
US8904377B2 (en) Reconfiguration of computer system to allow application installation
US12039415B2 (en) Debugging and profiling of machine learning model training
US11573848B2 (en) Identification and/or prediction of failures in a microservice architecture for enabling automatically-repairing solutions
CA2991150C (en) Multi-stage network discovery
US11449798B2 (en) Automated problem detection for machine learning models
KR20220000880A (ko) 서버 초기화 정보의 중앙 집중화를 위한 시스템 및 방법
JP2022100301A (ja) ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨)
US10656934B2 (en) Efficient software testing
US11599404B2 (en) Correlation-based multi-source problem diagnosis
US10951540B1 (en) Capture and execution of provider network tasks
US11468365B2 (en) GPU code injection to summarize machine learning training data
US11354113B1 (en) Reliable deployment of upgrade events for a service based on predefined rollout policies
US11188249B2 (en) Storage alteration monitoring
US11307940B2 (en) Cognitive data backup
WO2021067385A1 (en) Debugging and profiling of machine learning model training
TWI760022B (zh) 用於診斷虛擬伺服器及時表現資料的電腦實施系統以及方法
KR102346364B1 (ko) 가상 서버 리소스 사용량 메트릭 평가 및 성능 추적을 위한 시스템 및 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal