KR102340180B1 - 컴포넌트간 의존성을 고려한 프로비저닝 방법 - Google Patents

컴포넌트간 의존성을 고려한 프로비저닝 방법 Download PDF

Info

Publication number
KR102340180B1
KR102340180B1 KR1020150148590A KR20150148590A KR102340180B1 KR 102340180 B1 KR102340180 B1 KR 102340180B1 KR 1020150148590 A KR1020150148590 A KR 1020150148590A KR 20150148590 A KR20150148590 A KR 20150148590A KR 102340180 B1 KR102340180 B1 KR 102340180B1
Authority
KR
South Korea
Prior art keywords
component
distribution
node
completed
components
Prior art date
Application number
KR1020150148590A
Other languages
English (en)
Other versions
KR20170047912A (ko
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 에스케이텔레콤 주식회사
Priority to KR1020150148590A priority Critical patent/KR102340180B1/ko
Publication of KR20170047912A publication Critical patent/KR20170047912A/ko
Application granted granted Critical
Publication of KR102340180B1 publication Critical patent/KR102340180B1/ko

Links

Images

Classifications

    • H04L67/36
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Abstract

본 발명에 따르면, 컴포넌트간 의존성을 고려하는 프로비저닝 서비스에 있어서, 의존성 관계가 있는 컴포넌트를 배포 시 다른 컴포넌트를 의존하지 않는 컴포넌트 A와 컴포넌트 A를 의존하는 컴포넌트 B로 구별하고, 컴포넌트 B에 대해서는 컴포넌트 A가 구동되기 전까지 구동되지 않도록 하는 조건 체크 로직을 시작 스크립트에 삽입하여 배포하고, 컴포넌트 A의 배포가 완료되는 시점에 컴포넌트 B로 구동 명령을 전달함으로써 컴포넌트를 배포하는 순서를 관리할 필요 없이 일괄적으로 컴포넌트의 배포를 수행할 수 있으며, 도메인 서버를 통해 컴포넌트 B가 도메인 이름으로 컴포넌트 A에 접속할 수 있도록 하여 컴포넌트 B의 배포 코드상에 미리 컴포넌트 A의 엔드포인트를 정적으로 넣을 필요가 없게 된다.

Description

컴포넌트간 의존성을 고려한 프로비저닝 방법{PROVISIONING METHOD BASED ON DEPENDANCY BETWEEN COMPONENTS}
본 발명은 소프트웨어 프로비저닝에 관한 것으로, 특히 의존성 관계가 있는 컴포넌트를 배포함에 있어서, 다른 컴포넌트에 의존하지 않는 컴포넌트 A와 컴포넌트 A를 의존하는 컴포넌트 B로 구별하고, 컴포넌트 B에 대해서는 컴포넌트 A가 구동되기 전까지 구동되지 않도록 하는 조건 체크 로직을 시작 스크립트에 삽입하여 배포하고, 컴포넌트 A의 배포가 완료되는 시점에 컴포넌트 B로 구동 명령을 전달함으로써 컴포넌트를 배포하는 순서를 관리할 필요 없이 일괄적으로 컴포넌트의 배포를 수행할 수 있으며, 도메인 서버를 통해 컴포넌트 B가 가상 도메인 이름으로 컴포넌트 A에 접속할 수 있도록 하여 컴포넌트 B의 배포 코드상에 미리 컴포넌트 A의 엔드포인트(endpoint)(IP 주소)를 정적으로 넣을 필요가 없도록 하는, 컴포넌트간 의존성을 고려하는 프로비저닝 방법에 관한 것이다.
일반적으로 프로비저닝은 특정 서비스를 제공받기 위하여 서비스 설치부터 시작해 서비스 환경 구성 및 실행 등 서비스를 제공받기 전 단계까지 처리되는 일련의 절차를 말한다.
이러한 프로비저닝 중 소프트웨어를 시스템에 설치/배포 하고 필요한 모든 구성 및 설정 작업을 해서 소프트웨어가 실행될 수 있는 환경을 갖추는 과정을 소프트웨어 프로비저닝이라 부른다.
위와 같은 소프트웨어 프로비저닝에 있어서 의존성 있는 컴포넌트들을 배포함에 있어서 컴포넌트 B가 컴포넌트 A에 의존하는 경우, 컴포넌트 A와 컴포넌트 B가 서로 통신을 하기 위해서는 컴포넌트 B에서 컴포넌트 A의 정적 엔드포인트(endpoint) 즉, IP 주소를 알고 있어야 하며, 컴포넌트 A가 먼저 동작하고 있어야 하는 제약 조건이 있다.
위와 같은 제약 조건에 따라 종래에는 의존성이 있는 컴포넌트를 배포하는 작업자가 컴포넌트별 의존성 관계를 고려하여 컴포넌트의 설치 순서를 일일이 신경써야 하므로 작업에 많은 시간이 소요되고 작업자의 실수로 인한 장애 발생의 소지가 많았다.
(특허문헌)
대한민국 등록특허번호 10-1159384호(등록일자 2012년 06월 18일)
따라서, 본 발명에서는 의존성 관계가 있는 컴포넌트를 배포함에 있어서, 다른 컴포넌트에 의존하지 않는 컴포넌트 A와 컴포넌트 A를 의존하는 컴포넌트 B로 구별하고, 컴포넌트 B에 대해서는 컴포넌트 A가 구동되기 전까지 구동되지 않도록 하는 조건 체크 로직을 시작 스크립트에 삽입하여 배포하고, 컴포넌트 A의 배포가 완료되는 시점에 컴포넌트 B로 구동 명령을 전달함으로써 컴포넌트를 배포하는 순서를 관리할 필요 없이 일괄적으로 컴포넌트의 배포를 수행할 수 있으며, 도메인 서버를 통해 컴포넌트 B가 가상 도메인 이름으로 컴포넌트 A에 접속할 수 있도록 하여 컴포넌트 B의 배포 코드상에 미리 컴포넌트 A의 엔드포인트(endpoint)(IP 주소)를 정적으로 넣을 필요가 없도록 하는 컴포넌트간 의존성을 고려하는 프로비저닝 방법을 제공하고자 한다.
상술한 본 발명은 컴포넌트간 의존성을 고려한 프로비저닝 방법으로서, 의존성 관계가 있는 컴포넌트들을 다른 컴포넌트를 의존하지 않는 제1 컴포넌트와 상기 제1 컴포넌트를 의존하는 제2 컴포넌트로 구별하는 단계와, 상기 제2 컴포넌트에 대해서는 상기 제1 컴포넌트와의 동기화를 위한 조건 체크 로직을 삽입하여 첨부하는 단계와, 네트워크상 복수의 노드에 상기 제1 컴포넌트 또는 제2 컴포넌트를 배포하는 단계와, 상기 제1 컴포넌트 또는 제2 컴포넌트로부터 상기 배포가 완료되었음을 나타내는 배포 수행 결과를 수신하는 단계와, 상기 제1 컴포넌트로부터 상기 배포 수행 결과를 수신하는 경우, 상기 제2 컴포넌트의 배포가 완료된 해당 노드로 상기 제2 컴포넌트의 구동 명령을 전송하는 단계를 포함한다.
또한, 상기 구동 명령을 전송하는 단계는, 상기 배포 수행 결과를 수신하는 경우 상기 제1 컴포넌트에 매칭되는 동작 설정 파일을 검색하는 단계와, 상기 동작 설정 파일에서 상기 제2 컴포넌트가 설치된 또는 설치될 노드 리스트를 추출하는 단계와, 상기 추출된 노드별 상기 제2 컴포넌트의 배포 상태를 검사하는 단계와, 상기 제2 컴포넌트의 배포가 완료된 것으로 확인된 노드를 타겟노드로 선정하여 상기 타겟노드로 상기 제2 컴포넌트의 구동 명령을 전송하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 방법은, 상기 동작 설정 파일에서 상기 제1 컴포넌트가 배포된 노드의 가상 도메인 이름과 IP 주소값을 추출하여 DNS 테이블에 추가하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 조건 체크 로직은, 상기 제1 컴포넌트의 배포가 완료되기 전에 상기 제2 컴포넌트가 구동되지 않도록 제어하는 로직인 것을 특징으로 한다.
또한, 상기 제2 컴포넌트는, 상기 제2 컴포넌트의 배포가 완료되는 시점에 상기 제1 컴포넌트의 배포가 완료된 상태이면 상기 제2 컴포넌트의 배포가 완료되는 시점에 곧바로 구동되며, 상기 제1 컴포넌트의 배포가 완료되지 않은 상태이면 상기 구동 명령을 대기하고, 상기 구동 명령의 수신 시 구동되는 것을 특징으로 한다.
본 발명에 따르면, 컴포넌트간 의존성을 고려하는 프로비저닝 서비스에 있어서, 의존성 관계가 있는 컴포넌트를 배포 시 다른 컴포넌트에 의존하지 않는 컴포넌트 A와 컴포넌트 A를 의존하는 컴포넌트 B로 구별하고, 컴포넌트 B에 대해서는 컴포넌트 A가 구동되기 전까지 구동되지 않도록 하는 조건 체크 로직을 시작 스크립트에 삽입하여 배포하고, 컴포넌트 A의 배포가 완료되는 시점에 컴포넌트 B로 구동 명령을 전달함으로써 컴포넌트를 배포하는 순서를 관리할 필요 없이 일괄적으로 컴포넌트의 배포를 수행할 수 있는 이점이 있다.
또한, 도메인 서버를 통해 컴포넌트 B가 가상 도메인 이름으로 컴포넌트 A에 접속할 수 있도록 하여 컴포넌트 B의 배포 코드상에 미리 컴포넌트 A의 엔드포인트(endpoint)(IP 주소)를 정적으로 넣을 필요가 없어 배포 코드를 컴포넌트 A의 배포시점 이전에 미리 작성할 수 있는 이점이 있다.
도 1은 본 발명의 실시예에 따른 컴포넌트간 의존성을 고려한 이벤트 기반의 프로비저닝 장치의 상세 블록 구성도,
도 2는 본 발명의 실시예에 따른 컴포넌트간 의존성을 고려한 프로비저닝 장치에서 컴포넌트를 배포하는 동작 제어 흐름도,
도 3은 도 3은 본 발명의 실시예에 따른 컴포넌트 B에서의 배포 및 동기화 동작에 대한 제어 흐름도.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 실시예에 따른 컴포넌트간 의존성을 고려한 이벤트 기반의 프로비저닝 장치의 상세 블록 구성을 도시한 것으로, 설정파일 관리부(106), 배포부(102), 콜백부(callback)(104), DNS(domain name server)부(108), 제어부(110) 등을 포함할 수 있다.
이하, 도 1을 참조하여, 본 발명의 프로비저닝 장치의 각 구성요소에서의 동작을 보다 상세히 설명하기로 한다.
먼저, 배포부(102)는 의존성 관계가 있는 컴포넌트들(components)을 네트워크상 복수의 노드(node)에 배포하는 배포 태스크(task)를 수행한다.
즉, 배포부(102)는 제어부(110)로부터 네트워크상 복수의 노드 각각에 대응되는 컴포넌트들을 배포하는 명령을 수신할 수 있으며, 이러한 명령을 수신하는 경우 해당 컴포넌트를 각 노드에 설치 및 구성하는 배포 태스크를 수행할 수 있다.
또한, 이러한 배포부(102)는 인프라 자동화 툴(tool)을 의미할 수 있으며, 리눅스에서는 chef, puppet 등의 툴이 이러한 배포부(102)의 역할을 수행할 수 있으나 이에 한정되는 것은 아니다. 이때, 이러한 chef, puppet 등의 툴은 소프트웨어 프로비저닝(software provisioning) 서비스에 특화된 툴로써 위와 같은 컴포넌트의 배포에 있어서 순차적으로 수행되어야 하는 동작들을 스크립트 형태로 작성하여 자동화함으로써 해당 컴포넌트를 타겟(target)이 되는 각 노드로 배포하는 툴을 의미할 수 있다.
설정파일 관리부(106)는 위와 같이 의존성 관계를 가지는 컴포넌트들을 다른 컴포넌트를 의존하지 않는 컴포넌트 A(150)와 컴포넌트 A(150)를 의존하는 컴포넌트 B(120, 130)로 구별할 수 있다. 이때, 컴포넌트 B(120, 130)에 대해서는 컴포넌트 A(150)와의 동기화를 위해 컴포넌트 B(120, 130)의 시작 스크립트에 조건 체크 로직이 삽입될 수 있다. 여기서 조건 체크 로직은 컴포넌트 A의 배포가 완료되기 전에 컴포넌트 B가 구동되지 않도록 제어하는 정보일 수 있다. 또한, 이러한 조건 체크 로직이 삽입된 시작 스크립트는 시스템 관리자에 의해 미리 생성될 수 있으며, 이와 같이 생성된 시작 스크립트는 배포부(102)로 제공될 수 있다. 이에 따라, 배포부(102)는 각 노드로 컴포넌트를 배포하는 경우 컴포넌트 B(120, 130)에 대해서는 컴포넌트 A(150)와의 동기화를 위해 생성된 시작 스크립트를 첨부하여 해당 노드로 배포할 수 있다.
이때, 이러한 의존성 관계가 있는 컴포넌트는 예를 들어 서버-클라이언트 구조의 애플리케이션(application)일 수 있으며, 컴포넌트 A(150)는 서버용 애플리케이션이 될 수 있고, 컴포넌트 B(120, 130)는 클라이언트용 애플리케이션이 될 수 있으나, 이에 한정되는 것은 아니다.
또한, 설정파일 관리부(106)는 컴포넌트 B(120, 130)에 의해 의존되는 컴포넌트 A(150)에 대해서는 동작 설정 파일을 작성하여 컴포넌트 B(120, 130)와의 동기화를 수행하기 위한 정보로 제공할 수 있다.
이러한 동작 설정 파일은 위 도 1에서 보여지는 바와 같이 해당 컴포넌트 A(150)가 배포된 노드의 가상 도메인 이름(domain name)과 컴포넌트 A(150)에 의존성을 가지는 컴포넌트 B(120, 130)가 배포된 또는 배포될 노드를 선별할 수 있는 필터링 조건을 포함한다.
또한, 동작 설정 파일은 위와 같이 컴포넌트 A(150)에 대해 의존성을 가지는 컴포넌트 B(120, 130)로 전송할 명령(command) 정보를 포함할 수 있다. 이때, 이러한 명령은 예를 들어 컴포넌트 A(150)의 배포가 완료되는 경우 컴포넌트 B(120, 130)를 구동시키도록 하는 "컴포넌트 B 구동(start component B)" 명령인 것을 예시하였으나, 이에 한정되는 것은 아니다.
콜백부(callback module)(104)는 컴포넌트 A(150) 또는 컴포넌트 B(120, 130)가 배포된 네트워크상 각 노드에서 해당 컴포넌트 A(150) 또는 컴포넌트 B(120, 130)의 배포가 완료되는 경우 해당 노드로부터 배포 완료를 알리는 배포 수행 결과를 수신한다.
즉, 예를 들어 배포부(102)에서 네트워크상 복수의 노드로 컴포넌트 A(150) 또는 컴포넌트 B(120, 130)가 배포되는 경우, 컴포넌트 A(150) 또는 컴포넌트 B(120, 130)는 배포된 각 노드에 설치된다. 이어 컴포넌트 A(150) 또는 컴포넌트 B(120, 130)의 배포가 완료되는 경우 해당 노드는 콜백부(104)로 배포가 완료되었음을 알리는 배포 수행 결과를 송신함으로써 콜백부(104)에서 해당 배포 수행 결과가 수신될 수 있다.
이때, 콜백부(104)는 이러한 배포 수행 결과를 수신하는 경우 해당 정보를 제어부(110)로 제공할 수 있다.
DNS부(108)는 컴포넌트 A(150)에 대한 endpoint(가상 도메인 이름)와 IP 주소가 등록되는 매핑 테이블을 관리하며, 컴포넌트 B(120, 130)로부터 컴포넌트 A(150)의 endpoint(가상 도메인 이름)에 실제로 접속하기 위한 쿼리 요청이 있는 경우, 매핑 테이블에서 컴포넌트 A(150)의 가상 도메인 이름에 매핑된 IP 주소를 추출하여 컴포넌트 B(120, 130)에게 제공한다.
여기서 endpoint 라는 것은 도메인(domain) 이름과 IP 두 가지 모두 사용 가능한 개념일 수 있으며, 이때, IP는 고정된 값이라서 '정적'이라고 볼 수 있다. 도메인 이름 또한 원래 통상적으로는 해당 노드의 이름과 같은 역할을 하는 호스트 이름(hostname)을 고정적으로 사용하므로 역시 정적이라고 볼 수 있다. 하지만 본 발명에서의 endpoint는 원래 노드의 호스트 이름이 아니고 임의로 정하는 값이 될 수 있기 때문에 '가상'이라고 볼 수 있다. 즉, 예를 들어 원래 노드의 호스트 이름이 'server1.domain1.com'이지만 가상 도메인 이름은 'server1_endpoint'와 같이 정해질 수 있으며, 이 값이 동작 설정 파일에 포함될 수 있다.
이때, DNS부(108)에 컴포넌트 A(150)가 배포된 노드의 가상 도메인 이름(domain name)과 IP 주소가 등록되는 과정에 대해 간편히 살펴보면, 제어부(110)는 콜백부(104)를 통해 컴포넌트 A(150)로부터 배포가 완료되었음을 알리는 배포 수행 결과가 수신되는 경우 컴포넌트 A(150)에 대해 작성된 동작 설정 파일을 검색한 후, 동작 설정 파일내에 명시된 endpoint(가상 도메인 이름)을 가져오고, 컴포넌트 A(150)가 배포된 노드의 IP 주소와 함께 DNS부(108)에 제공한다.
그러면, DNS부(108)는 제어부(110)로부터 컴포넌트 A(150)의 가상 도메인 이름과 IP 주소를 수신하여 위와 같은 매핑 테이블에 저장하게 되는 것이다.
제어부(110)는 본 발명의 실시예에 따른 프로비저닝 장치의 전반적인 동작을 제어한다.
또한, 제어부(110)는 네트워크상 복수의 노드에 대해 어떤 노드에 컴포넌트 A(150) 또는 컴포넌트 B(120, 130)를 배포할지를 결정하고, 노드별 결정된 컴포넌트 A(150) 또는 컴포넌트 B(120, 130)를 대응되는 노드로 배포하도록 명령한다. 이러한 배포 명령은 제어부(110)를 통해 배포부(102)로 전달될 수 있으며, 이에 따라 배포부(102)는 컴포넌트 A(150), 컴포넌트 B(120, 130) 등과 같은 의존성 관계가 있는 컴포넌트들을 네트워크상 복수의 노드에 배포하는 배포 태스크를 수행한다.
이때, 컴포넌트 A(150)가 해당 노드에 배포가 완료되는 경우 컴포넌트 A(150)로부터 배포가 완료되었음을 알리는 배포 수행 결과가 전송되어, 콜백부(104)에서 수신된다. 위와 같이 컴포넌트 A(150)로부터 배포 수행 결과가 수신되는 경우 제어부(110)는 컴포넌트 A(150)와 의존성 관계가 있는 컴포넌트 B(120, 130) 중 해당 노드에 배포가 완료된 컴포넌트로 구동 명령을 전송하게 된다.
즉, 제어부(110)는 컴포넌트 A(150)로부터 배포 수행 결과를 수신하는 경우 컴포넌트 A(150)에 매칭되는 동작 설정 파일을 검색하고, 검색된 동작 설정 파일내 포함된 필터링 조건을 참조하여 컴포넌트 A(150)에 의존성을 가지는 컴포넌트 B(120, 130)가 배포된 또는 배포될 노드 리스트를 추출한다. 이어, 제어부(110)는 동작 설정 파일내 포함된 컴포넌트 B(120, 130)로 전송할 명령(command) 정보를 확인하고, 위와 같이 추출된 노드 중 컴포넌트 B(120, 130)의 배포가 완료된 노드를 타겟노드로 선정하여 컴포넌트 B(120, 130)의 구동 명령을 전송한다.
또한, 제어부(110)는 컴포넌트 A(150)로부터 배포가 완료되었음을 알리는 배포 수행 결과가 수신되는 경우, 동작 설정 파일내 명시된 컴포넌트 A(150)의 endpoint(가상 도메인 이름)를 가져오고, 배포 수행 결과를 알려온 컴포넌트 A(150)가 배포된 노드의 IP 주소와 함께 DNS부(108)에 제공하여 DNS부(108)에서 관리하는 매핑 테이블에 컴포넌트 A(150)의 endpoint(가상 도메인 이름)와 IP주소가 등록되도록 한다.
도 2는 본 발명의 실시예에 따른 컴포넌트간 의존성을 고려한 프로비저닝 장치에서 컴포넌트를 배포하는 동작 제어 흐름을 도시한 것이다. 이하, 도 1 및 도 2를 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
먼저, 프로비저닝 장치(100)의 제어부(110)는 의존성 관계가 있는 컴포넌트들을 배포할 노드들을 결정하고, 배포부(102)로 노드별 결정된 컴포넌트를 배포하도록 명령할 수 있다.
이때, 위와 같이 의존성 관계를 가지는 컴포넌트들을 다른 컴포넌트를 의존하지 않는 컴포넌트 A(150)와 컴포넌트 A(150)를 의존하는 컴포넌트 B(120, 130)로 구별할 수 있으며, 예를 들어 컴포넌트 A(150)는 서버용 애플리케이션이 될 수 있고, 컴포넌트 B(120, 130)는 클라이언트용 애플리케이션이 될 수 있다.
이에 따라, 배포부(102)는 제어부(110)로부터 네트워크상 복수의 노드 각각에 대응되는 컴포넌트들을 배포하는 명령을 수신할 수 있으며, 이러한 명령을 수신하는 경우 해당 컴포넌트를 각 노드에 설치 및 구성하는 배포 태스크를 수행할 수 있다(S200).
이어, 위와 같은 배포 태스크가 수행되어 각 노드에서 컴포넌트 A(150) 또는 컴포넌트 B(120, 130)의 배포가 완료되는 경우, 해당 컴포넌트 A(150) 또는 컴포넌트 B(120, 130)로부터 배포가 완료되었음을 알리는 배포 수행 결과가 전송되어, 콜백부(104)에서 수신된다(S202).
이때, 위와 같은 컴포넌트 A(150) 또는 컴포넌트 B(120, 130)로부터의 배포 수행 결과를 수신하게 되면 제어부(110)는 동작 설정 파일을 검색하여 컴포넌트A에 해당하는 파일을 찾아낸다. (S204).
이어, 제어부(110)는 검색된 동작 설정 파일에 포함된 컴포넌트 A(150)의 endpoint(가상 도메인 이름)를 가져오고, 배포 수행 결과를 알려온 컴포넌트 A(150)가 배포된 노드의 IP 주소와 함께 DNS부(108)에 제공하여 DNS부(108)에서 관리되는 매핑 테이블에 컴포넌트 A(150)의 endpoint(가상 도메인 이름)와 IP주소가 등록되도록 한다(S208).
그런 후, 제어부(110)는 동작 설정 파일내 포함된 필터링 조건을 참조하여 컴포넌트 A(150)에 의존성을 가지는 컴포넌트 B(120, 130)가 배포된 또는 배포될 노드 리스트를 추출하고, 각 노드에서 컴포넌트 B(120, 130)의 배포가 완료되었는지에 대한 배포 태스크 수행 상태를 확인한다.
이어, 제어부(110)는 배포 태스크 수행 상태에 대한 정보를 참조하여 위와 같이 추출된 노드 중 컴포넌트 B(120, 130)의 배포가 완료된 노드를 타겟노드로 선정한다(S210). 그런 후, 동작 설정 파일내 포함된 명령(command) 정보를 확인하고, 위와 같이 선정된 타겟노드로 명령 정보로 기록된 컴포넌트 B(120, 130)의 구동 명령을 전송한다(S212).
즉, 예를 들어 네트워크상 복수의 노드에 의존성 관계가 있는 컴포넌트 A(150)와 컴포넌트 B(120, 130)를 배포함에 있어서, 서버에 대응되는 노드에 컴포넌트 A(150)가 먼저 배포 완료된 이후에는 컴포넌트 B(120, 130)가 구동되어도 문제가 없게 되나, 이와 반대로 컴포넌트 B(120, 130)가 컴포넌트 A(150)보다 먼저 배포 완료되어 구동되는 경우에는 컴포넌트 B(120, 130)가 의존하고 있는 컴포넌트 A(150)가 아직 네트워크상에 구동되지 않은 상황이므로, 컴포넌트 B(120, 130)는 제대로 서버에 접속을 하지 못해 정상적으로 구동이 되지 않는 문제점이 있다.
따라서, 본 발명에서는 컴포넌트 B(120, 130)에 대해서는 컴포넌트 A(150)와의 동기화를 위한 조건 체크 로직이 삽인된 시작 스크립트를 첨부하여 해당 노드로 배포할 수 있으며, 이러한 조건 체크 로직에는 컴포넌트 A(150)의 배포가 완료되기 전까지 컴포넌트 B(120, 130)가 구동되지 않도록 제어하는 정보가 포함될 수 있다.
이에 따라, 컴포넌트 B(120, 130)는 해당 노드에서 배포가 완료된 이후에도 컴포넌트 A(150)가 배포 완료되기 전까지 구동하지 않고 대기하게 됨으로써 컴포넌트 B(120, 130)가 컴포넌트 A(150)와 안정적으로 동기화를 수행하고 구동할 수 있게 된다.
도 3은 본 발명의 실시예에 따른 컴포넌트 B에서의 배포 및 동기화 동작에대한 제어 흐름을 도시한 것이다. 이하, 도 1 및 도 3을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
먼저, 프로비저닝 장치(100)의 배포부(102)에서 컴포넌트 B(120, 130)가 배포될 노드로 컴포넌트 B(120, 130)를 설치 및 구성하는 배포 태스크가 수행되어, 해당 노드에 컴포넌트 B(120, 130)가 배포될 수 있다(S300).
이어, 위와 같이 컴포넌트 B(120, 130)의 배포가 완료되는 경우, 컴포넌트 B(120, 130)는 의존성 관계가 있는 컴포넌트 A(150)가 배포 완료되어 동작 중인지 여부를 검사한다(S302).
이때, 컴포넌트 A(150)가 동작 중인 것으로 확인되는 경우 컴포넌트 B(120, 130)는 곧바로 구동한다(S308).
그러나, 컴포넌트 A(150)가 동작 중이 아닌 것으로 확인되는 경우 컴포넌트 B(120, 130)는 컴포넌트 A(150)가 배포 완료되어 동작될 때까지 구동하지 않고 대기한다(S304).
이어, 컴포넌트 B(120, 130)는 컴포넌트 A(150)가 배포 완료되어, 프로비저닝 장치(100)로부터 구동 명령이 수신되는 경우(S306), 구동함으로써(S308) 컴포넌트 A(150)와 안정적인 동기화를 수행하고 구동할 수 있게 된다.
상기한 바와 같이, 본 발명에 따르면, 컴포넌트간 의존성을 고려하는 프로비저닝 서비스에 있어서, 의존성 관계가 있는 컴포넌트를 배포 시 다른 컴포넌트를 의존하지 않는 컴포넌트 A와 컴포넌트 A를 의존하는 컴포넌트 B로 구별하고, 컴포넌트 B에 대해서는 컴포넌트 A가 구동되기 전까지 구동되지 않도록 하는 조건 체크 로직을 삽입한 시작 스크립트를 첨부하여 배포하고, 컴포넌트 A의 배포가 완료되는 시점에 컴포넌트 B로 구동 명령을 전달함으로써 컴포넌트를 배포하는 순서를 관리할 필요 없이 일괄적으로 컴포넌트의 배포를 수행할 수 있으며, 도메인 서버를 통해 컴포넌트 B가 도메인 이름으로 컴포넌트 A에 접속할 수 있도록 하여 컴포넌트 B의 배포 코드상에 미리 컴포넌트 A의 엔드포인트를 정적으로 넣을 필요가 없게 된다.
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
본 발명의 실시예에 따른 컴포넌트간 의존성을 고려하는 프로비저닝 서비스를 적용하는 경우, 컴포넌트의 배포 시 컴포넌트별 배포하는 순서를 관리할 필요 없이 일괄적으로 컴포넌트의 배포를 수행할 수 있게 되어 컴포넌트 배포 작업을 용이하게 수행할 수 있게 된다.
102 : 배포부 104 : 콜백부
106 : 설정파일 관리부 108 : DNS부

Claims (5)

  1. 프로비저닝 장치에서 수행되는 컴포넌트간 의존성을 고려한 프로비저닝 방법에 있어서,
    복수의 컴포넌트들을 제1 컴포넌트와 상기 제1 컴포넌트를 의존하는 제2 컴포넌트로 구별하는 단계와,
    상기 제2 컴포넌트에 대해서는 상기 제1 컴포넌트와의 동기화를 위한 조건 체크 로직을 삽입하여 첨부하는 단계와,
    네트워크상의 복수의 노드들 각각에 상기 제1 컴포넌트 및 상기 제2 컴포넌트를 배포하는 단계와,
    상기 제1 컴포넌트로부터 상기 복수의 노드들 중 적어도 하나의 제1 노드로의 상기 제1 컴포넌트의 배포 완료를 나타내는 배포 수행 결과를 수신하는 단계와,
    상기 제2 컴포넌트로부터 상기 복수의 노드들 중 적어도 하나의 제2 노드로의 상기 제2 컴포넌트의 배포 완료를 나타내는 배포 수행 결과를 수신하는 단계와,
    상기 제1 컴포넌트의 배포가 완료되는 시점에, 상기 복수의 노드들 중 상기 제2 컴포넌트의 배포가 완료된 적어도 하나의 제2 노드로 상기 제2 컴포넌트의 구동 명령을 전송하는 단계를 포함하고,
    상기 제1 컴포넌트로부터 배포 수행 결과의 수신이 완료되면 상기 제1 컴포넌트에 매칭되는 동작 설정 파일 내 상기 제1 컴포넌트의 가상 도메인 이름과 상기 제1 컴포넌트가 배포된 노드의 IP 주소값을 추출하여 DNS 테이블에 추가하고,
    상기 제2 컴포넌트로부터 상기 제1 컴포넌트의 가상 도메인 이름에 접속하기 위한 요청이 수신되면, 상기 DNS 테이블에서 상기 요청에 대응하는 제1 컴포넌트의 가상 도메인 이름에 매핑된 IP 주소를 추출하여 상기 제2 컴포넌트에 제공하는 컴포넌트간 의존성을 고려한 프로비저닝 방법.
  2. 제 1 항에 있어서,
    상기 구동 명령을 전송하는 단계는,
    상기 제1 컴포넌트에 매칭되는 상기 동작 설정 파일을 검색하는 단계와,
    상기 동작 설정 파일에서 상기 제2 컴포넌트가 설치된 또는 설치될 노드의 리스트를 추출하는 단계와,
    상기 추출된 노드의 리스트에 포함된 노드별 상기 제2 컴포넌트의 배포 상태를 검사하는 단계와,
    상기 제2 컴포넌트의 배포가 완료된 것으로 확인된 노드를 상기 제2 노드로 선정하여 상기 제2 노드로 상기 제2 컴포넌트의 구동 명령을 전송하는 단계
    를 포함하는 것을 특징으로 하는 컴포넌트간 의존성을 고려한 프로비저닝 방법.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 조건 체크 로직은,
    상기 제1 컴포넌트의 배포가 완료되기 전에 상기 제2 컴포넌트가 구동되지 않도록 제어하는 정보인 것을 특징으로 하는 컴포넌트간 의존성을 고려한 프로비저닝 방법.
  5. 제 1 항에 있어서,
    상기 제2 컴포넌트는,
    상기 제2 컴포넌트의 배포가 완료되는 시점에 상기 제1 컴포넌트의 배포가 완료된 상태이면 상기 제2 컴포넌트의 배포가 완료되는 시점에 곧바로 구동되며, 상기 제1 컴포넌트의 배포가 완료되지 않은 상태이면 상기 구동 명령을 대기하고, 상기 구동 명령의 수신 시 구동되는 것을 특징으로 하는 컴포넌트간 의존성을 고려한 프로비저닝 방법.
KR1020150148590A 2015-10-26 2015-10-26 컴포넌트간 의존성을 고려한 프로비저닝 방법 KR102340180B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150148590A KR102340180B1 (ko) 2015-10-26 2015-10-26 컴포넌트간 의존성을 고려한 프로비저닝 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150148590A KR102340180B1 (ko) 2015-10-26 2015-10-26 컴포넌트간 의존성을 고려한 프로비저닝 방법

Publications (2)

Publication Number Publication Date
KR20170047912A KR20170047912A (ko) 2017-05-08
KR102340180B1 true KR102340180B1 (ko) 2021-12-16

Family

ID=60164235

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150148590A KR102340180B1 (ko) 2015-10-26 2015-10-26 컴포넌트간 의존성을 고려한 프로비저닝 방법

Country Status (1)

Country Link
KR (1) KR102340180B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099307A (ja) * 2004-09-29 2006-04-13 Hitachi Ltd 分散サーバへのアプリケーションセットのインストール方法
JP3861538B2 (ja) * 1999-12-15 2006-12-20 株式会社日立製作所 プログラム配付管理システム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610631B2 (en) 2004-11-15 2009-10-27 Alexander Frank Method and apparatus for provisioning software

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3861538B2 (ja) * 1999-12-15 2006-12-20 株式会社日立製作所 プログラム配付管理システム
JP2006099307A (ja) * 2004-09-29 2006-04-13 Hitachi Ltd 分散サーバへのアプリケーションセットのインストール方法

Also Published As

Publication number Publication date
KR20170047912A (ko) 2017-05-08

Similar Documents

Publication Publication Date Title
EP1914629A2 (en) Method and system for automatic generation of operating system boot images
CN110752947B (zh) 一种k8s集群部署方法及装置,一种部署平台
US10353728B2 (en) Method, system and device for managing virtual machine software in cloud environment
US7448034B2 (en) Build time determination and installation of drivers on cloned systems
CN110572436A (zh) 多地跨集群的服务器部署方法及系统
US7334226B2 (en) Autonomic auto-configuration using prior installation configuration relationships
TWI411958B (zh) 建立離線資源模板
US20080109542A1 (en) Software Distribution Application Supporting Operating System Installations
CN106528143A (zh) 一种配置管理方法及装置
CN104767649A (zh) 部署裸金属服务器的方法及装置
CN113312064B (zh) 物理机的安装配置方法、装置以及计算机可读介质
KR20080085934A (ko) 자동업데이트 기능을 구비한 원격관리 시스템
US20150113423A1 (en) System and method to configure a field device
CN102360299B (zh) 软件系统重装方法、服务器以及客户端
GB2462160A (en) A distributed server system includes a table indicating communication relationships between various service programs
CN103200271A (zh) Arm服务器及其自动化安装系统的方法
CN105512026A (zh) 一种批量自动测试方法
CN113326053A (zh) 一种机器人管理系统和方法
CN102567050B (zh) B/s系统远程部署项目的方法和装置
CN107968725B (zh) 家庭网关单元型终端设备配置信息返回及配置方法、设备
EP3193253B1 (en) Method, apparatus and system for displaying names of virtual machine
KR102340180B1 (ko) 컴포넌트간 의존성을 고려한 프로비저닝 방법
US20030120827A1 (en) Method and apparatus for automatically detecting machine states during an operating system installation through a network
CN107659621B (zh) 一种raid控制卡配置方法及装置
CN105373477B (zh) 一种容量测试方法

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant