KR20200027780A - 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템 - Google Patents
컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템 Download PDFInfo
- Publication number
- KR20200027780A KR20200027780A KR1020180106015A KR20180106015A KR20200027780A KR 20200027780 A KR20200027780 A KR 20200027780A KR 1020180106015 A KR1020180106015 A KR 1020180106015A KR 20180106015 A KR20180106015 A KR 20180106015A KR 20200027780 A KR20200027780 A KR 20200027780A
- Authority
- KR
- South Korea
- Prior art keywords
- nginx
- component
- container
- software update
- software
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 운영환경을 축소한 시스템 구성을 기반으로 하나의 가상 AI 컴포넌트(nginx)을 대상으로 서비스 중단 없이 소프트웨어를 업데이트하고 부하 분산을 수행하기 위한 기술적 사상에 관한 것으로서, 일실시예에 따른 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템은 AI 컴포넌트(nginx)의 소프트웨어 패치를 통해 버전업을 수행하되, 상기 버전업을 수행하는 동안 서비스가 중단되는지 여부를 감시하는 소프트웨어 업데이트 처리부, 상기 AI 컴포넌트(nginx)의 어플리케이션을 복수 개로 복제하여 부하를 분산 처리하고, 상기 부하의 분산 처리를 감시하는 로드 밸런싱 처리부, 및 상기 복제된 어플리케이션들에서 관찰된 CPU 사용량이 기준 이상으로 증가하면 컴포넌트의 개수를 증가시키고 상기 CPU 사용량이 기준 이하로 감소하면 상기 복제된 어플리케이션들의 개수를 감소시키는 오토 스케일링 처리부를 포함할 수 있다.
Description
본 발명은 운영환경을 축소한 시스템 구성을 기반으로 하나의 가상 AI 컴포넌트(nginx)을 대상으로 서비스 중단 없이 소프트웨어를 업데이트하고 부하 분산을 수행하기 위한 기술적 사상에 관한 것이다.
일반적으로 대규모의 운영환경에서는 이중화를 위해 여러 대의 물리 호스트로 서버를 구성한다. 또한 클라우드 환경에서는 시스템 규모가 큰 경우, 여러 대의 가상 서버(인스턴스)를 구성하여 이를 한 번에 관리할 수 있어야 한다.
기간계 시스템과 미션 크리티컬한 시스템에는 장애가 발생하게 되면 사업 기회를 놓치는 것뿐만 아니라 기업의 신용도가 크게 하락될 수 있다. 그래서 시스템 일부에 장애가 발생하더라도 시스템 전체에 영향을 미치지 않도록 인프라를 구성해야만 한다.
이처럼 만일의 사태 발생 시, 시스템이 정지하지 않도록 하는 기술이 바로 클러스터링이다. 클러스터링이란 여러 대의 서버와 하드웨어를 1대처럼 묶는 기술로서, 클러스터링을 구축하면 시스템 성능을 향상시킬 수 있다.
클러스터링과 관련된 용어 중, 가용성이란 시스템이 연속적으로 가동할 수 있는 능력을 의미한다. 서버 에러나 하드웨어에 장애가 발생하여도 다른 정상 서버나 하드웨어로 전환되어 기존 처리가 이어질 수 있기 때문에 높은 신뢰성을 제공할 수 있다.
또한, 높은 부하로 시스템이 다운되는 것을 피하기 위해 여러 컴퓨터를 클러스터링으로 구축 및 분산하여 신뢰성을 높일 수 있다. 클라우드 가상 서버는 오토 스케일 기능을 제공하는 경우도 있다. 도커에서는 한 대가 아닌 여러 대의 호스트 머신 위에서 도커를 구동시켜 높은 가용성 및 확장성을 가진 애플리케이션 실행 환경을 구축할 수 있다
이처럼 멀티 호스트 환경에서 컨테이너를 클러스터링하는 다양한 툴들이 개발되고 있고, 멀티 호스트 환경에서 컨테이너를 구동하는 경우를 대비하여 컨테이너 장애나 호스트 머신 상태 등을 모니터링하기 위한 기술이 연구 개발되고 있는 추세이다.
본 발명은 각 세부에서 개발한 다양한 AI 컴포넌트를 플러그 앤 플레이 방식으로 쉽게 통합할 수 있는 자율형 디지털 동반자 프레임워크를 제공하는 것을 목적으로 한다.
본 발명은 자율형 디지털 동반자 프레임워크의 무중단 서비스를 위한 개념 검증을 수행하는 것을 목적으로 한다.
본 발명은 검증의 범위에 있어 스토리지와 컴퓨팅을 제외한 소프트웨어 업데이트, 부하분산 상황에서의 무정지 운영을 목적으로 한다.
본 발명은 자율형 디지털 동반자 프레임워크에 있어, 다수의 AI 컴포넌트를 도커 컨테이너화 하여 독립적이고 통합적으로 운영 관리하는 환경을 제공하는 것을 목적으로 한다.
본 발명은 수많은 AI 컴포넌트들을 서비스 중단 없이 소프트웨어 업데이트하고, 부하를 분산함을 목적으로 한다.
본 발명은 도커 컨테이너화된 지능컴포넌트들을 대상으로 한 무정지 운영의 가능성을 사전에 검증하는 것을 목적으로 한다.
일실시예에 따른 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템은 AI 컴포넌트(nginx)의 소프트웨어 패치를 통해 버전업을 수행하되, 상기 버전업을 수행하는 동안 서비스가 중단되는지 여부를 감시하는 소프트웨어 업데이트 처리부, 상기 AI 컴포넌트(nginx)의 어플리케이션을 복수 개로 복제하여 부하를 분산 처리하고, 상기 부하의 분산 처리를 감시하는 로드 밸런싱 처리부, 및 상기 복제된 어플리케이션들에서 관찰된 CPU 사용량이 기준 이상으로 증가하면 컴포넌트의 개수를 증가시키고 상기 CPU 사용량이 기준 이하로 감소하면 상기 복제된 어플리케이션들의 개수를 감소시키는 오토 스케일링 처리부를 포함할 수 있다.
일실시예에 따른 상기 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템은, 검증을 위해 분산 도커 컨테이너 운영환경을 구성하고, 컨테이너 오케스트레이션 툴(K8s)로 클러스터를 구축하며, 상기 클러스터의 구축 이후에 부하 분산을 위한 로드밸런싱, 오토스케일링, 및 무정지 운영을 위한 롤링 업데이트 방식의 소프트웨어 업데이트를 수행할 수 있다.
일실시예에 따른 상기 오토 스케일링 처리부는, 상기 AI 컴포넌트(nginx)에 대한 오토 스케일러를 생성하고, 상기 생성한 오토 스케일러를 이용해서 상기 CPU 사용량에 따른 최소개수 및 최대개수를 적용하여, CPU를 사용하지 않을 때의 최소개수 및 최대개수를 적용하고 아무도 사용 중이지 않을 때 복제되는 어플리케이션의 개수를 확인하여 조절하는 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템.
일실시예에 따르면, 각 세부에서 개발한 다양한 AI 컴포넌트를 플러그 앤 플레이 방식으로 쉽게 통합할 수 있는 자율형 디지털 동반자 프레임워크를 제공할 수 있다.
일실시예에 따르면, 자율형 디지털 동반자 프레임워크의 무중단 서비스를 위한 개념 검증을 수행할 수 있다.
일실시예에 따르면, 검증의 범위에 있어 스토리지와 컴퓨팅을 제외한 소프트웨어 업데이트, 부하분산 상황에서 무정지 운영을 구현할 수 있다.
일실시예에 따르면, 자율형 디지털 동반자 프레임워크에 있어, 다수의 AI 컴포넌트를 도커 컨테이너화 하여 독립적이고 통합적으로 운영 관리하는 환경을 제공할 수 있다.
일실시예에 따르면, 수많은 AI 컴포넌트들을 서비스 중단 없이 소프트웨어 업데이트하고, 부하를 분산할 수 있다.
일실시예에 따르면, 도커 컨테이너화된 지능컴포넌트들을 대상으로 한 무정지 운영의 가능성을 사전에 검증할 수 있다.
도 1은 일실시예에 따른 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템을 설명하는 도면이다.
도 2는 일실시예에 따른 컨테이너 오케스트레이션 클러스터 구성도를 설명하는 도면이다.
도 3은 일실시예에 따른 롤링 업데이트를 설명하는 도면이다.
도 4는 일실시예에 따른 롤링 업데이트 진행 과정의 AI 컴포넌트를 나타내는 도면이다.
도 5는 사용자가 AI 컴포넌트(nginx) 서비스를 이용하는 경우의 화면 UI를 설명하는 도면이다.
도 6은 AI 컴포넌트(nginx) 서비스의 부하 분산을 위한 로드 밸런싱을 설명하는 도면이다.
도 7 및 도 8은 AI 컴포넌트(nginx)가 프레임워크에 배포되어 12개로 복제되는 과정을 나타내는 도면이다.
도 9는 사용자가 AI 컴포넌트(nginx) 서비스를 이용하는 경우의 화면 UI를 설명하는 도면이다.
도 10은 부하 분산을 위한 오토 스케일링을 설명하는 도면이다.
도 11은 오토스케일러를 이용한 결과를 나타내는 도면이다.
도 2는 일실시예에 따른 컨테이너 오케스트레이션 클러스터 구성도를 설명하는 도면이다.
도 3은 일실시예에 따른 롤링 업데이트를 설명하는 도면이다.
도 4는 일실시예에 따른 롤링 업데이트 진행 과정의 AI 컴포넌트를 나타내는 도면이다.
도 5는 사용자가 AI 컴포넌트(nginx) 서비스를 이용하는 경우의 화면 UI를 설명하는 도면이다.
도 6은 AI 컴포넌트(nginx) 서비스의 부하 분산을 위한 로드 밸런싱을 설명하는 도면이다.
도 7 및 도 8은 AI 컴포넌트(nginx)가 프레임워크에 배포되어 12개로 복제되는 과정을 나타내는 도면이다.
도 9는 사용자가 AI 컴포넌트(nginx) 서비스를 이용하는 경우의 화면 UI를 설명하는 도면이다.
도 10은 부하 분산을 위한 오토 스케일링을 설명하는 도면이다.
도 11은 오토스케일러를 이용한 결과를 나타내는 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템(100)을 설명하는 도면이다.
일실시예에 따른 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템(100)은 각 세부에서 개발한 다양한 AI 컴포넌트를 플러그 앤 플레이 방식으로 쉽게 통합할 수 있는 자율형 디지털 동반자 프레임워크를 제공할 수 있다. 또한, 자율형 디지털 동반자 프레임워크의 무중단 서비스를 위한 개념 검증을 수행할 수 있고, 검증의 범위에 있어 스토리지와 컴퓨팅을 제외한 소프트웨어 업데이트, 부하분산 상황에서 무정지 운영을 구현할 수 있다.
이를 위해, 일실시예에 따른 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템(100)은 소프트웨어 업데이트 처리부(110), 로드 밸런싱 처리부(120), 및 오토 스케일링 처리부(130)를 포함할 수 있다.
먼저, 일실시예에 따른 소프트웨어 업데이트 처리부(110)는 상기 AI 컴포넌트(nginx)의 소프트웨어 패치를 통해 버전업을 수행하되, 버전업을 수행하는 동안 서비스가 중단되는지 여부를 감시할 수 있다.
다음으로, 일실시예에 따른 로드 밸런싱 처리부(120)는 AI 컴포넌트(nginx)의 어플리케이션을 복수 개로 복제하여 부하를 분산 처리하고, 부하의 분산 처리를 감시할 수 있다.
또한, 일실시예에 따른 오토 스케일링 처리부(130)는 복제된 어플리케이션들에서 관찰된 CPU 사용량이 기준 이상으로 증가하면 컴포넌트의 개수를 증가시키고 CPU 사용량이 기준 이하로 감소하면 복제된 어플리케이션들의 개수를 감소시킬 수 있다.
이를 위해, 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템(100)은 검증을 위해 분산 도커 컨테이너 운영환경을 구성하고, 컨테이너 오케스트레이션 툴(K8s)로 클러스터를 구축할 수 있다. 또한, 소프트웨어 업데이트 처리부(110), 로드 밸런싱 처리부(120), 및 오토 스케일링 처리부(130)를 이용해서 클러스터의 구축 이후에 부하 분산을 위한 로드밸런싱, 오토스케일링, 및 무정지 운영을 위한 롤링 업데이트 방식의 소프트웨어 업데이트를 수행할 수 있다.
일실시예에 따르면, 오토 스케일링 처리부(130)는 AI 컴포넌트(nginx)에 대한 오토 스케일러를 생성하고, 생성한 오토 스케일러를 이용해서 CPU 사용량에 따른 최소개수 및 최대개수를 적용하여, CPU를 사용하지 않을 때의 최소개수 및 최대개수를 적용하고 아무도 사용 중이지 않을 때 복제되는 어플리케이션의 개수를 확인하여 조절할 수 있다.
이하에서는 구체적인 실시예와 함께, 하나의 가상 AI 컴포넌트(nginx)을 대상으로 서비스 중단 없이 소프트웨어를 업데이트하고 부하 분산을 수행하는 기술에 대해 상세히 설명한다.
도 2는 일실시예에 따른 컨테이너 오케스트레이션 클러스터 구성도(200)를 설명하는 도면이다.
컨테이너 오케스트레이션 클러스터 구성도(200)에서 마스터는 k8s 클러스터를 관리하는 머신에 해당한다. 또한, 노드는 k8s 클러스터를 구성하는 머신에 해당하며, 도커 및 컨테이너를 포함하는 포드(Pod)를 포함할 수 있다. 도커는 컨테이너 실행을 담당하고, 포드는 서로 관련된 컨테이너들을 묶어 놓은 집합으로 해석될 수 있고, k8s의 배포/운영/관리의 단위이다.
일실시예에 따른 컨테이너 오케스트레이션 클러스터 구성도(200)는 하나의 마스터와 여러 개의 노드로 구성되어 있다. 개발자는 kubectl 을 이용해서 마스터에 명령을 내리고, 노드들을 관리하는 반면, 사용자는 노드들 중에서 어느 하나의 노드에 접속해 서비스를 이용할 수 있다. 참고로, kubectl 명령어는 로컬 환경에서 kubernetes를 사용하기 위해 사용되는 명령어로 해석될 수 있다.
마스터에는 작업을 위한 api server, state를 관리하기 위한 분산저장소 etcd, scheduler, controller manager 등이 기본으로 있다. 노드들에는 마스터와 통신하는 kubelet과 외부의 요청을 처리하는 kube-proxy, container 리소스 모니터링을 위한 cAdviser 등이 있다.
보다 구체적으로, 도커는 노드의 기본 요구 사항 중 하나로서, 도커 이미지에서 컨테이너를 가져오고 실행하는 작업을 담당한다.
클러스터의 모든 노드가 간단한 네트워크 proxy를 실행하는데, Kube-Proxy는 클러스터 경로에서 proxy 노드를 사용하여 노드의 올바른 컨테이너에 요청할 수 있다.
Kubelet은 각 노드에서 실행되는 에이전트 프로세스로서, POD와 컨테이너를 관리할 수 있고, YAML 또는 JSON 형식으로 정의된 포드 사양을 처리할 수 있다. 또한, Kubelet은 포드 사양을 취하여 POD가 정상적으로 작동하는지 여부를 확인할 수 있다.
Flannel은 서브넷 주소의 범위를 할당 할 때 작동하는 오버레이 네트워크로서, 클러스터에서 실행되는 각 창의 IP를 지정하고 pod-to-pod 및 pod-to-services 통신을 수행하는 데 사용될 수 있다.
도 3은 일실시예에 따른 롤링 업데이트를 설명하는 도면(300)이다.
컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템은 AI 컴포넌트(nginx)의 SW패치를 통해 v1에서 v2로 버전업 하는 동안 서비스의 무중단 확인을 할 수 있다. 즉, nginx:v1에서 nginx:v2로 버전업을 하는 도중에 서비스가 제대로 되고 있는지, 버전업이 끝나고 nginx:v2로 자연스럽게 서비스되고 있는지를 확인할 수 있다.
도면부호 300에서 보는 바와 같이, 로드밸런싱과 오토스케일링, 롤링 업데이트 3가지의 POC(Proof Of Concept)를 수행할 수 있다.
소프트웨어 업데이트로서의 롤링 업데이트는, A 내지 D의 과정에 대해 한번에 n개씩 포드를 순차적으로 업데이트할 수 있다. 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템은 이를 통해 서비스 중단 현상 없이 애플리케이션 버전을 업데이트할 수 있다.
도 4는 일실시예에 따른 롤링 업데이트 진행 과정의 AI 컴포넌트를 나타내는 도면이다.
도면부호 400에서 보는 바와 같이, 롤링 업데이트 진행 과정에서의 AI 컴포넌트는 AI 컴포넌트 nginx:v1에서 AI 컴포넌트 nginx:v2로 업데이트될 수 있다.
즉, AI 컴포넌트 nginx:v1에 대한 12개의 복제본들이 러닝(running) 중인데 순차적으로 AI 컴포넌트 nginx:v2가 컨테이너 생성(container creating) 되면서 AI 컴포넌트 nginx:v1가 소멸(terminating)될 수 있다.
도 5는 사용자가 AI 컴포넌트(nginx) 서비스를 이용하는 경우의 화면 UI를 설명하는 도면이다.
사용자가 AI 컴포넌트(nginx) 서비스를 이용하면 화면에 'Welcome to nginx! v1'가 표시되며, 롤링 업데이트 후 AI 컴포넌트 nginx:v2로 버전업 되었음을 확인할 수 있다.
도 6은 AI 컴포넌트(nginx) 서비스의 부하 분산을 위한 로드 밸런싱을 설명하는 도면(600)이다.
AI 컴포넌트(nginx) 서비스의 부하 분산을 위한 로드 밸런싱을 위해, 마스터와 복수의 노드들이 하나의 pc와 연결되는 구조로 클러스터를 구현할 수 있다.
AI 컴포넌트(nginx) 어플리케이션이 여러 개 복제되어 띄어져, 사용자들이 서비스를 이용할 때 복제된 어플리케이션들을 모두 사용하는지 확인할 필요가 있다.
본 명세서에서 언급되는 서비스라 함은 같은 일을 하는 포드들의 집합이고, k8s 클러스터 내에서 고유한 또는 고정된 IP 주소가 부여될 수 있다. 참고로, 동일한 서비스에 소속된 멤버 포드들에 대해 로드밸런싱 기능을 수행할 수 있다.
구체적으로, 포드는 Kubernetes의 기본 구성 요소로서, Kubernetes는 사용자가 생성하거나 배포하는 Kubernetes 객체 모델에서 가장 작고 간단한 단위이다. 따라서, 포드는 클러스터에서 실행중인 프로세스를 나타낼 수 있다.
포드는 애플리케이션 컨테이너(또는 경우에 따라 여러 컨테이너), 스토리지 리소스, 고유 한 네트워크 IP 및 컨테이너 실행 방법을 관리하는 옵션을 캡슐화할 수 있다. 즉, 포드는 하나의 컨테이너 또는 단단히 결합되어 리소스를 공유하는 소수의 컨테이너로 구성된 Kubernetes의 단일 응용 프로그램 인스턴스이다.
일실시예에 따른 Kubernetes 클러스터의 포드는 두 가지 주요 방법으로 사용될 수 있다.
단일 컨테이너를 실행하는 포드의 경우, Pod 당 하나의 컨테이너 모델이 가장 일반적인 Kubernetes 유스 케이스이다. 이 경우 포드는 단일 컨테이너를 둘러싼 래퍼로 생각할 수 있으며 Kubernetes는 컨테이너가 아닌 포드를 직접 관리할 수 있다.
함께 사용해야 하는 여러 컨테이너를 실행하는 포드의 경우, 포드 (Pod)는 밀접하게 결합되어 있고 자원을 공유해야 하는 여러 위치에 있는 컨테이너로 구성된 애플리케이션을 캡슐화 할 수 있다.
이렇게 공동 배치된 컨테이너는 공유 볼륨에서 공용으로 파일을 제공하는 하나의 단일 응집 서비스 단위를 형성 할 수 있으며 별도의 사이드카 컨테이너는 해당 파일을 새로 고치거나 업데이트할 수 있다. 한편, 포드는 이러한 컨테이너와 저장소 리소스를 하나의 관리 가능한 엔터티로 함께 그룹핑될 수 있다.
도 7 및 도 8은 AI 컴포넌트(nginx)가 프레임워크에 배포되어 12개로 복제되는 과정을 나타내는 도면이다.
도 7의 도면부호 700에서 보는 바와 같이, 이름이 nginx로 시작되는 복제된 AI 컴포넌트(nginx)들 12개가 대기함을 알 수 있다.
도 8의 도면부호 800에서 보는 바와 같이, 포드들(Pods)은 AI 컴포넌트(nginx)가 프레임워크에 배포되어 12개로 복제될 수 있다. 또한, 12개로 복제된 AI 컴포넌트(nginx)들은 각각의 포드들을 포함하며, nginx로 시작되는 이름을 가질 수 있다. 이때, AI 컴포넌트(nginx)들은 러닝(running)상태로 표시될 수 있다. 또한, 각각의 AI 컴포넌트(nginx)들은 age가 분(m) 단위로 설정되어 어느 하나의 포드에 의해 시스템이 정체하는 것을 예방할 수 있다.
도 9는 사용자가 AI 컴포넌트(nginx) 서비스를 이용하는 경우의 화면 UI를 설명하는 도면(900)이다.
도면부호 900에서 보는 바와 같이, 복제된 어플리케이션들에 1부터 12까지 번호가 넘버링될 수 있다. 넘버링된 번호들은 웹 페이지 타이틀에 보여주도록 하여 1부터 12까지 로드밸런싱하여 부하 분산하는지 확인할 수 있다.
도 10은 부하 분산을 위한 오토 스케일링을 설명하는 도면(1000)이다.
일실시예에 따르면, 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템은 가상의 AI 컨테이너인 nginx에 대한 오토 스케일러를 만들어 CPU 사용량에 따른 복제 갯수의 최소개수-최대개수(min-max)을 적용하고 아무도 사용 중이지 않을 때의 replicas를 확인할 수 있다.
호리즌탈 Pod 오토스케일러의 구조는 복수의 포드들, 스케일을 포함하는 RC/디플로이먼트, 호리즌탈 Pod 오토스케일러를 포함할 수 있다.
RC/디플로이먼트에서의 배포는 응용 프로그램의 인스턴스를 만들고 업데이트하는 역할을 한다. 만약, Kubernetes 클러스터가 실행되면 컨테이너 응용 프로그램을 그 위에 배치 할 수 있다. 이렇게 하려면 Kubernetes 배포 구성을 만들 수 있다.
호리즌탈 Pod 오토스케일러를 사용하면 Kubernetes는 관찰된 CPU 사용률을 기반으로 복제 컨트롤러, 배포 또는 복제본 집합의 포드 수를 자동으로 조정할 수 있다.
관찰된 CPU 사용률 대신, 알파 지원으로 다른 응용 프로그램에서 제공하는 메트릭을 기반으로 복제 컨트롤러, 배포 또는 복제본 집합의 포드 수를 자동으로 조정할 수도 있다.
호리즌탈 Pod 오토스케일러는 크기를 조정할 수 없는 객체에는 적용되지 않으며, Kubernetes API 리소스 및 컨트롤러로 구현될 수 있다. 자원은 컨트롤러의 동작을 결정할 수 있으며, 컨트롤러는 관찰된 평균 CPU 사용률이 사용자가 지정한 대상과 일치하도록 복제 컨트롤러 또는 배포에서 복제본 수를 주기적으로 조정할 수 있다.
도 11은 오토스케일러를 이용한 결과(1100)를 나타내는 도면이다.
도면부호 1100에 따르면, 오토스케일러를 통해 CPU 사용률이 50% 이상일 때, min-max가 3개-9개가 되도록 세팅하고 사용 중이지 않을 때 복제 개수가 3개임을 확인할 수 있다.
결국, 본 발명을 이용하면, 각 세부에서 개발한 다양한 AI 컴포넌트를 플러그 앤 플레이 방식으로 쉽게 통합할 수 있는 자율형 디지털 동반자 프레임워크를 제공할 수 있다. 뿐만 아니라, 자율형 디지털 동반자 프레임워크의 무중단 서비스를 위한 개념 검증을 수행할 수 있다. 또한, 검증의 범위에 있어 스토리지와 컴퓨팅을 제외한 소프트웨어 업데이트, 부하분산 상황에서 무정지 운영을 구현할 수 있다. 이에 더해, 자율형 디지털 동반자 프레임워크에 있어, 다수의 AI 컴포넌트를 도커 컨테이너화 하여 독립적이고 통합적으로 운영 관리하는 환경을 제공할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (3)
- 개발된 AI 컴포넌트(nginx)를 플러그 앤 플레이 방식으로 통합하는데 필요한 무중단 소프트웨어 업데이트 시스템에 있어서,
상기 AI 컴포넌트(nginx)의 소프트웨어 패치를 통해 버전업을 수행하되, 상기 버전업을 수행하는 동안 서비스가 중단되는지 여부를 감시하는 소프트웨어 업데이트 처리부;
상기 AI 컴포넌트(nginx)의 어플리케이션을 복수 개로 복제하여 부하를 분산 처리하고, 상기 부하의 분산 처리를 감시하는 로드 밸런싱 처리부; 및
상기 복제된 어플리케이션들에서 관찰된 CPU 사용량이 기준 이상으로 증가하면 컴포넌트의 개수를 증가시키고 상기 CPU 사용량이 기준 이하로 감소하면 상기 복제된 어플리케이션들의 개수를 감소시키는 오토 스케일링 처리부
를 포함하는 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템. - 제1항에 있어서,
상기 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템은,
검증을 위해 분산 도커 컨테이너 운영환경을 구성하고, 컨테이너 오케스트레이션 툴(K8s)로 클러스터를 구축하며, 상기 클러스터의 구축 이후에 부하 분산을 위한 로드밸런싱, 오토스케일링, 및 무정지 운영을 위한 롤링 업데이트 방식의 소프트웨어 업데이트를 수행하는 것을 특징으로 하는 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템. - 제1항에 있어서,
상기 오토 스케일링 처리부는,
상기 AI 컴포넌트(nginx)에 대한 오토 스케일러를 생성하고, 상기 생성한 오토 스케일러를 이용해서 상기 CPU 사용량에 따른 최소개수 및 최대개수를 적용하여, CPU를 사용하지 않을 때의 최소개수 및 최대개수를 적용하고 아무도 사용 중이지 않을 때 복제되는 어플리케이션의 개수를 확인하여 조절하는 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180106015A KR102147310B1 (ko) | 2018-09-05 | 2018-09-05 | 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템 |
US16/559,840 US20200073655A1 (en) | 2018-09-05 | 2019-09-04 | Non-disruptive software update system based on container cluster |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180106015A KR102147310B1 (ko) | 2018-09-05 | 2018-09-05 | 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200027780A true KR20200027780A (ko) | 2020-03-13 |
KR102147310B1 KR102147310B1 (ko) | 2020-10-14 |
Family
ID=69639884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180106015A KR102147310B1 (ko) | 2018-09-05 | 2018-09-05 | 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20200073655A1 (ko) |
KR (1) | KR102147310B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102320324B1 (ko) * | 2020-11-11 | 2021-11-03 | 한국전자통신연구원 | 쿠버네티스 환경에서의 이종 하드웨어 가속기 활용 방법 및 이를 이용한 장치 |
US11816469B2 (en) | 2021-09-22 | 2023-11-14 | International Business Machines Corporation | Resolving the version mismatch problem when implementing a rolling update in an open-source platform for container orchestration |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11200081B2 (en) * | 2019-10-21 | 2021-12-14 | ForgeRock, Inc. | Systems and methods for tuning containers in a high availability environment |
CN111666088A (zh) * | 2020-06-07 | 2020-09-15 | 中信银行股份有限公司 | Pod的更替方法、装置、电子设备及计算机可读存储介质 |
CN112199106B (zh) * | 2020-10-20 | 2022-08-26 | 新华三信息安全技术有限公司 | 一种跨版本升级方法、装置及电子设备 |
CN112702203A (zh) * | 2020-12-22 | 2021-04-23 | 上海智迩智能科技有限公司 | 一种nginx集群白屏化配置管理方法及*** |
CN112764875B (zh) * | 2020-12-31 | 2023-02-28 | 中国科学院软件研究所 | 一种面向智能计算的轻量级入口容器微服务***及方法 |
CN113037881B (zh) * | 2021-02-05 | 2023-03-14 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes的云原生服务不间断的IP替换方法 |
CN112532751B (zh) * | 2021-02-09 | 2021-05-07 | 中关村科学城城市大脑股份有限公司 | 城市大脑ai计算中心分布式异构算力的调度方法及*** |
JP7240439B2 (ja) * | 2021-04-30 | 2023-03-15 | 株式会社日立製作所 | アップデート装置、アップデート方法、およびプログラム |
US11645066B2 (en) * | 2021-08-23 | 2023-05-09 | International Business Machines Corporation | Managing and distributing patches for multi-tenant applications |
US12014162B2 (en) * | 2021-08-31 | 2024-06-18 | Salesforce, Inc. | Controlled updates of containers in a distributed application deployment environment |
KR20230085668A (ko) | 2021-12-07 | 2023-06-14 | 주식회사 나눔기술 | 컨테이너 기반 분산 클러스터 환경에서 글로벌 이미지 캐시를 구현하는 시스템 |
CN117806815B (zh) * | 2023-11-27 | 2024-07-09 | 本原数据(北京)信息技术有限公司 | 数据处理方法、***、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170067829A (ko) | 2015-04-07 | 2017-06-16 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 모바일 장치 기반 클러스터 컴퓨팅 인프라스트럭처를 위한 방법 및 장치 |
KR101826498B1 (ko) * | 2017-05-02 | 2018-02-07 | 나무기술 주식회사 | 클라우드 플랫폼 시스템 |
KR101876918B1 (ko) | 2017-04-24 | 2018-07-11 | 주식회사 이노그리드 | 다중 오케스트레이터 기반 컨테이너 클러스터 서비스 제공방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015197564A1 (en) * | 2014-06-23 | 2015-12-30 | Getclouder Ltd. | Cloud hosting systems featuring scaling and load balancing with containers |
US10756995B2 (en) * | 2015-07-27 | 2020-08-25 | Datagrid Systems, Inc. | Method, apparatus and system for real-time optimization of computer-implemented application operations using machine learning techniques |
US10255061B2 (en) * | 2016-08-05 | 2019-04-09 | Oracle International Corporation | Zero down time upgrade for a multi-tenant identity and data security management cloud service |
US10225330B2 (en) * | 2017-07-28 | 2019-03-05 | Kong Inc. | Auto-documentation for application program interfaces based on network requests and responses |
US10715388B2 (en) * | 2018-12-10 | 2020-07-14 | Sap Se | Using a container orchestration service for dynamic routing |
-
2018
- 2018-09-05 KR KR1020180106015A patent/KR102147310B1/ko active IP Right Grant
-
2019
- 2019-09-04 US US16/559,840 patent/US20200073655A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170067829A (ko) | 2015-04-07 | 2017-06-16 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 모바일 장치 기반 클러스터 컴퓨팅 인프라스트럭처를 위한 방법 및 장치 |
KR101876918B1 (ko) | 2017-04-24 | 2018-07-11 | 주식회사 이노그리드 | 다중 오케스트레이터 기반 컨테이너 클러스터 서비스 제공방법 |
KR101826498B1 (ko) * | 2017-05-02 | 2018-02-07 | 나무기술 주식회사 | 클라우드 플랫폼 시스템 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102320324B1 (ko) * | 2020-11-11 | 2021-11-03 | 한국전자통신연구원 | 쿠버네티스 환경에서의 이종 하드웨어 가속기 활용 방법 및 이를 이용한 장치 |
US11816469B2 (en) | 2021-09-22 | 2023-11-14 | International Business Machines Corporation | Resolving the version mismatch problem when implementing a rolling update in an open-source platform for container orchestration |
Also Published As
Publication number | Publication date |
---|---|
KR102147310B1 (ko) | 2020-10-14 |
US20200073655A1 (en) | 2020-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102147310B1 (ko) | 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템 | |
JP7391862B2 (ja) | 自動的に配備される情報技術(it)システム及び方法 | |
US11593149B2 (en) | Unified resource management for containers and virtual machines | |
KR102125260B1 (ko) | 분산 지능모듈의 통합관리 시스템 | |
US10387179B1 (en) | Environment aware scheduling | |
US9244676B2 (en) | Virtual machine based controller and upgrade mechanism | |
US9851996B2 (en) | Applying firmware updates in a system with zero downtime by selectively offlining and onlining hardware using a scale-up hypervisor layer | |
US20210019162A1 (en) | Enhanced migration of clusters based on data accessibility | |
US9626172B2 (en) | Deploying a cluster | |
US20200004570A1 (en) | Dynamically scaled hyperconverged system | |
US11934886B2 (en) | Intra-footprint computing cluster bring-up | |
US11169787B2 (en) | Software acceleration platform for supporting decomposed, on-demand network services | |
US11341032B1 (en) | Testing in a disaster recovery computer system | |
KR102114339B1 (ko) | 액티브/스탠바이 모델을 지원하는 쿠버네티스 시스템의 동작 방법 | |
US11477080B2 (en) | Upgrade a version of a service | |
US11892918B2 (en) | System and method for availability group database patching | |
US9106676B1 (en) | Grid-based server messaging infrastructure | |
US11295018B1 (en) | File system modification | |
US11086615B2 (en) | Virtual appliance upgrades in high-availability (HA) computing clusters | |
US20200125381A1 (en) | Enhanced data storage of virtual nodes in a data processing environment | |
KR102394293B1 (ko) | 다종 멀티 지능모듈 프로세스 조합 시스템 | |
US20230195534A1 (en) | Snapshot based pool of virtual resources for efficient development and test of hyper-converged infrastructure environments | |
US20230195983A1 (en) | Hyper-converged infrastructure (hci) platform development with smartnic-based hardware simulation | |
US20240184557A1 (en) | System and method for uniform cloud provider-specific product deployment | |
US20220215001A1 (en) | Replacing dedicated witness node in a stretched cluster with distributed management controllers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |