KR102271829B1 - 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템 - Google Patents

시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템 Download PDF

Info

Publication number
KR102271829B1
KR102271829B1 KR1020210024516A KR20210024516A KR102271829B1 KR 102271829 B1 KR102271829 B1 KR 102271829B1 KR 1020210024516 A KR1020210024516 A KR 1020210024516A KR 20210024516 A KR20210024516 A KR 20210024516A KR 102271829 B1 KR102271829 B1 KR 102271829B1
Authority
KR
South Korea
Prior art keywords
information
server
servers
identified
correlation
Prior art date
Application number
KR1020210024516A
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 주식회사 오픈소스컨설팅
Priority to KR1020210024516A priority Critical patent/KR102271829B1/ko
Application granted granted Critical
Publication of KR102271829B1 publication Critical patent/KR102271829B1/ko
Priority to US18/278,833 priority patent/US20240137278A1/en
Priority to PCT/KR2021/019926 priority patent/WO2022181958A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • 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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • G06F9/4875Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with migration policy, e.g. auction, contract negotiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/065Generation of reports related to network devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 일 실시 예는, 복수의 서버를 포함하는 데이터센터에서 제1시점에서 구동중인 서버를 파악하고, 파악된 서버들의 운영체제정보를 분석하여 인벤토리에 저장하는 인벤토리저장단계; 상기 인벤토리에 저장된 서버들의 프로세스 정보를 수집하는 프로세스정보수집단계; 상기 수집된 프로세스 정보를 분석한 결과를 기초로, 각 프로세스를 사용하는 소프트웨어의 프로세스 상태정보를 조회하는 역추적단계; 상기 조회된 프로세스 상태정보를 기초로 서버, 상기 서버와 네트워크로 연결된 연결대상서버 및 상기 서버에서 실행되는 소프트웨어간의 상관관계 정보를 파악하는 상관관계정보파악단계; 및 상기 파악된 상관관계 정보를 출력하는 상관관계정보출력단계를 포함하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법을 개시한다.

Description

시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템 {Method for analyzing cloud migration data of data center using system process information and system thereof}
본 발명은 데이터센터에서 구동되는 다수의 서버를 분석하는 방법에 관한 것으로서, 보다 구체적으로는, 데이터센터에 포함되어 동작하는 다수의 서버들을 클라우드 환경으로 이전하기에 앞서 효율성을 증대시키기 위해서, 데이터센터를 분석하고 관리하는 방법에 관한 것이다.
데이터센터(data center)는 서버 컴퓨터와 네트워크 회선을 제공하는 건물이나 시설을 의미하며, 과거의 의미보다 더욱 확장된 개념으로서, 인터넷과 연결된 각종 데이터를 모아두는 시설로 정의되기도 한다. 데이터센터는 통신 기기인 라우터(router)와 복수의 서버, 데이터센터를 구성하는 각 모듈에 안정적으로 전력이 공급되도록 제어하기 위한 UPS(Uninterruptible Power Supply system)등으로 구성된다. 데이터센터는 인터넷을 통해 수집되는 각종 정보를 효율적으로 처리하기 위해서, 스토리지를 지리적으로 중앙집중화시킬 필요가 있을 때에 설립되는 특징을 갖는다.
데이터센터는 일정 규모 이상의 기업에서 모두 필요로 할 정도로 필수적임에도 불구하고, 데이터센터를 물리적으로 온전하게 구축하기 위해서는 안정적인 공간을 확보해야 하며, 데이터센터를 서포트하는 다양한 장비들을 사전에 구성해야 할 필요가 있어서, 최근 트렌드는 기업에서 물리적인 공간을 확보하여 직접 데이터센터를 구축하고 운용하는 방식에서, 클라우드 서비스 공급업체를 통해서 가상의 데이터센터를 구축하여 이용하는 방식으로 변화하고 있다.
데이터센터의 가상화(virtualization)는 기존의 물리적인 데이터센터에 비해서 더 적은 장비, 전력 및 공간을 소비할 뿐만 아니라, 더 많은 스토리지나 처리 리소스가 필요한 경우, 퍼블릭(public) 또는 프라이빗(private) 클라우드에 액세스하거나 버스팅(bursting)할 수 있는 장점이 있다. 클라우드에 기반한 가상의 데이터센터가 제공하는 네트워킹 및 스토리지 같은 서비스는 하드웨어가 아닌 소프트웨어를 통해 제공되기 때문에 가상 데이터 센터는 소프트웨어로 정의된 데이터센터(Software-Defined Data Center)로 별칭될 수 있다.
한편, 다양한 운영체제가 혼재하는 데이터센터 내의 다수의 서버 운영 환경에서 구동되는 각종 서버들에는, 업무 애플리케이션을 구동하기 위한 소프트웨어가 다수 설치되어 있다. 서버에 설치되어 있는 애플리케이션을 관리하기 위해서, EAMS(Enterprise Asset Management Systems)솔루션, 인벤토리 관리 시스템 등이 도입되고 있으나, 현실적으로 서버 관리자, 네트워크 관리자, 애플리케이션 관리자, 데이터베이스 관리자로 관리 영역을 각각 나누고 업무 기준 단위의 시스템 분석 정보를 자동으로 수집하는 방법이 없어서, 수집된 시스템 정보와 실제 시스템 정보와의 괴리가 발생되는 문제점이 있다.
또한, 현재 관리 방식에 따르면, 하나의 서버를 다수의 관리자가 공유하여 작업을 하는 특성상, 시스템에 추가적인 소프트웨어의 설치하거나 업무 애플리케이션 추가하는 등의 변화에 대해 시스템 현행화가 이루어지지 않아서, 물리적인 데이터센터를 클라우드 시스템 기반의 가상의 데이터센터로 전환하고자 하는 경우, 이를 파악하고 분석하기 위해서, 많은 리소스를 추가적으로 투입하는 상황이 필연적으로 발생된다. 즉, 물리적인 데이터센터에서 가상의 데이터센터로 이전함에 있어서, 기본적인 이전비용 외에 별도의 많은 비용과 시간이 소요되는 문제점이 있으며, 이러한 문제점을 해결하기 위한 방책이 현 시점에는 전무하다.
구체적으로, 기존의 유닉스(UNIX)환경에서 x86환경으로 전환됨에 따라서, 시스템의 복잡도가 증가하고 업무 담당자의 변경으로 인해 시스템 분석 작업이 더욱 어려워지는 상황이 발생되고 있는데, 인벤토리 솔루션(inventory solution)을 활용하여 마이그레이션(migration)을 진행한다고 하더라도, 소프트웨어 정보와 업무 시스템 정보를 맵핑하는 과정은 개별적으로 처리되어야만 한다.
종래에도 단순히 데이터센터의 마이그레이션의 효율성을 증대시키기 위한 기술은 있었다. 예를 들어, 후술하는 선행문헌 1(등록특허 제10-1634409호)에서는 데이터센터들에 걸친 리소스 위치를 확인하는 방법을 제안하여 마이그레이션의 효율성을 증대시키고자 하였고, 선행문헌 2(등록특허 제10-1675818호)에는 클라우드 마이그레이션을 위한 파라미터화된 다이나믹 모델이 제시되어 있다.
다만, 전술한 선행문헌들에 개시된 방법론들은 물리적인 데이터센터간의 마이그레이션에 관한 기술이거나, 클라우드 마이그레이션시 시스템 프로세스 정보와 포트 정보의 환경을 분석하여 단순히 서버 시스템 간의 통신 인터페이스에 대한 연관 관계 분석으로 한정된 것에 불과하다. 구체적으로, 종래에 알려진 기술들은, 시스템 포트 정보에서 발생하는 소스 서버와 타깃 서버의 연결 포트 정보를 활용하여 한 서버에서 다른 서버로 통신하는 시스템 인터페이스 정보를 추출하고 시스템 간 정보를 보여주고 서버를 별도로 관리하는 방식을 사용하고 있다.
또 다른 분석방법인, 기존 로그 분석을 통한 마이그레이션 방법도, 현재 사용중인 시스템 프로세스가 아닌 후처리된 결과로서 단순히 호출된 클라이언트 IP 또는 호출 대상 IP를 추적하고 있어 인터페이스 연관 관계를 표현하는 데 한계점을 가지고 있다.
또한, 별도의 CMDB(Configuration Management DB)를 통해 IT 서비스 운영에 필요한 서비스의 절차나 문서, 소스, 구성, 토폴로지, 애플리케이션 등을 보관하고 이를 효율적으로 사용하기 위한 데이터 저장소를 구축하는 방법도 알려져 있으나, 이러한 방법도 담당자가 능동적으로 해당 내용을 업로드하고 관리하여야 하는 문제점과, 시스템의 변화를 실시간으로 반영하지 못해 현행화되지 않는 문제점을 가지고 있다.
결국, 종전에 알려진 방법 및 그 방법을 구현하기 위한 분석시스템은 사전에 다수의 서버의 프로세스 간의 상관관계를 정확히 분석하는 선행절차가 전혀 이루어지지 않은 상태에서, 시간이 경과함에 따라 변경되는 시스템적인 상황 변화를 정확하게 반영시키지 못하므로, 실제 시스템을 분석 후 클라우드 환경으로 전환하게 되는 경우 전체 시스템을 다시 분석을 해야 하는 상황이 필연적이어서, 이중분석으로 인한 비용, 시간 낭비가 발생될 수 밖에 없다.
1. 대한민국 등록특허 제10-1634409호 (2016.06.28) 2. 대한민국 등록특허 제10-1675818호 (2016.11.08) 3. 대한민국 공개특허공보 제10-2016-0070636호 (2016.06.20)
본 발명이 해결하고자 하는 기술적 과제는 다수의 서버로 구성된 물리적인 데이터센터 시스템을 클라우드 환경으로 마이그레이션(migration)을 수행할 경우에 발생되는 문제점을 사전에 파악할 수 있도록 데이터센터를 관리하고 분석하는 방법 및 그 방법을 구현하기 위한 시스템을 제공하는 데에 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 방법은, 복수의 서버를 포함하는 데이터센터에서 제1시점에서 구동중인 서버를 파악하고, 파악된 서버들의 운영체제정보를 분석하여 인벤토리에 저장하는 인벤토리저장단계; 상기 인벤토리에 저장된 서버들의 프로세스 정보를 수집하는 프로세스정보수집단계; 상기 수집된 프로세스 정보를 분석한 결과를 기초로, 각 프로세스를 사용하는 소프트웨어의 프로세스 상태정보를 조회하는 역추적단계; 상기 조회된 프로세스 상태정보를 기초로 서버 및 상기 서버와 네트워크로 연결된 연결대상서버 및 상기 서버에서 실행되는 소프트웨어간의 상관관계 정보를 파악하는 상관관계정보파악단계; 및 상기 파악된 상관관계 정보를 출력하는 상관관계정보출력단계를 포함한다.
상기 방법에 있어서, 상기 프로세스정보수집단계는, 상기 인벤토리에 저장된 서버들의 IP정보 및 Port정보를 더 수집하고, 상기 역추적단계는, 상기 수집된 프로세스 정보, IP정보 및 Port정보를 분석한 결과를 기초로, 상기 프로세스 상태정보를 조회하는 것을 특징으로 할 수 있다.
상기 방법에 있어서, 상기 인벤토리저장단계는, 상기 운영체제에 의해 오픈된 소켓 정보(socket information)을 파악하고, 상기 프로세스정보수집단계는, 상기 파악된 소켓 정보를 통해, 상기 서버들에서 사용되는 운영체제에서 오픈되는 Port정보를 파악하는 것을 특징으로 할 수 있다.
상기 방법에 있어서, 상기 역추적단계는, 상기 파악된 Port정보를 기초로, 현재 구동중인 서버에서 사용하고 있는 프로그램 목록과 상기 서버들과 연결된 연결대상서버의 정보를 파악하는 것을 특징으로 할 수 있다.
상기 방법에 있어서, 상기 역추적단계는, 데몬(daemon)을 구동하는 프로그램의 프로세스 아이디(Process ID)를 확인하고, 상기 확인된 프로세스 아이디를 기초로 하여 상기 인벤토리에 저장된 서버들이 웹서버, 웹애플리케이션서버(WAS:Web Application Server) 및 데이터베이스(DB) 중 어느 유형에 속하는지 판단하는 것을 특징으로 할 수 있다.
상기 방법에 있어서, 상기 역추적단계는, 상기 수집된 프로세스 정보를 분석한 결과를 기초로 하여, 마이그레이션의 효율성을 낮추는 대상소프트웨어를 판별하는 것을 특징으로 할 수 있다.
상기 방법에 있어서, 상기 역추적단계는, 상기 수집된 프로세스 정보가 자바(JAVA)의 정보라면, 자바 런타임 버전, 클래스 정보, 구동에 필요한 라이브러리를 조회하는 것을 특징으로 할 수 있다.
상기 방법에 있어서, 상기 역추적단계는, 상기 수집된 프로세스 정보가 SSH, FTP, Telnet 중 하나의 정보라면, 상기 제1시점에서 파악된 서버 외에 다른 서버를 추가로 탐지하는 것을 특징으로 할 수 있다.
상기 방법은, 애플리케이션 트리거링(application triggering)을 통해 클라우드 마이그레이션의 효율성을 낮추는 애플리케이션을 특정하고, 상기 특정된 애플리케이션의 패키징과 리패키징을 순차적으로 수행하는 애플리케이션변환단계를 더 포함하는 것을 특징으로 할 수 있다.
상기 방법에 있어서, 상기 상관관계정보출력단계는, 상기 제1시점에서 파악된 서버들로 구성된 정보를 기반으로 토폴로지를 구축하여 시각화하여 출력하는 것을 특징으로 할 수 있다.
상기 방법에 있어서, 상기 상관관계정보출력단계는, 상기 파악된 상관관계 정보를 기설정된 등급 이상의 사용자만 열람가능한 문서로 가공하여 출력하는 것을 특징으로 할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 일 실시 예에 따른 시스템은, 복수의 서버를 포함하는 데이터센터에서 제1시점에서 구동중인 서버를 파악하고, 파악된 서버들의 운영체제정보를 분석하여 인벤토리에 저장하는 인벤토리저장처리부; 상기 인벤토리에 저장된 서버들의 프로세스 정보를 수집하는 프로세스정보수집부; 상기 수집된 프로세스 정보를 분석한 결과를 기초로, 각 프로세스를 사용하는 소프트웨어의 프로세스 상태정보를 조회하는 역추적수행부; 상기 조회된 프로세스 상태정보를 기초로 서버 및 상기 서버와 네트워크로 연결된 연결대상서버 및 상기 서버에서 실행되는 소프트웨어간의 상관관계 정보를 파악하는 상관관계정보파악부; 및 상기 파악된 상관관계 정보를 출력하는 상관관계정보출력부를 포함한다.
본 발명의 일 실시 예는, 상기 방법을 실행시키기 위한 프로그램을 저장하고 있는 컴퓨터 판독가능한 기록매체를 개시한다.
본 발명에 따르면, 데이터센터 내의 다수의 서버를 클라우드 환경으로 이전하기 위해 발생하는 비용을 획기적으로 줄일 수 있다.
또한, 본 발명에 따르면, 다양한 퍼블릭/프라이빗 클라우드 환경으로 서버를 전환할 때 발생되는 오류를 최소화하고, 전환속도를 향상시킬 수 있다.
도 1은 본 발명을 구현하는 전체 시스템을 개략적으로 나타낸 도면이다.
도 2는 데이터 분석 시스템의 일 예의 블록도를 도식적으로 나타낸 도면이다.
도 3은 데이터 분석 시스템의 다른 일 예의 블록도를 도식적으로 나타낸 도면이다.
도 4는 도 3의 서버분석모듈이 처리하는 서버 인벤토리 추적 알고리즘을 설명하기 위한 흐름도이다.
도 5는 서버분석모듈이 네트워크 인터페이스 대상 서버를 추출하는 과정을 설명하기 위한 도면이다.
도 6은 서버분석모듈이 네트워크에서 추출된 PID를 이용하여 프로세스 정보를 획득하는 방식을 설명하기 위한 도면이다.
도 7은 분석 대상이 되는 서버에서 서버분석모듈이 추출가능한 정보간의 관계를 도식적으로 나타낸 도면이다.
도 8은 운영체제 명령을 통한 솔루션 역추적 방법의 일 예를 흐름도로 도식화하여 나타낸 것이다.
도 9는 웹 서버 프로세스로 설정 내용을 추적하여 획득가능한 정보를 도식적으로 나타낸 것이다.
도 10은 웹 애플리케이션 서버 프로세스로 설정 내용을 추적하여 획득가능한 정보를 도식적으로 나타낸 것이다.
도 11은 WAS설정 파일을 분석하여 네트워크 인터페이스 정보를 획득하는 방법을 설명하기 위한 도면이다.
도 12는 웹 애플리케이션 서버에서 기동되는 프로그램(소프트웨어)을 분석하는 기법을 설명하기 위한 흐름도이다.
도 13은 애플리케이션이 엔터프라이즈 자바빈즈(EJB 자바표준)일 때, 분석되는 과정을 도식화한 흐름도이다.
도 14는 서비스 분석 실시 예에 따른 흐름도를 도식적으로 나타내고 있다.
도 15는 데이터센터의 서버간 상관관계 구조도의 일 예를 도식적으로 나타내고 있다.
도 16은 본 발명에 따른 프로세스 정보로 이용한 클라우드 마이그레이션 데이터 분석 방법의 일 예를 흐름도로 나타낸 도면이다.
실시 예들에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "…부", "…모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명을 구현하는 전체 시스템을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 본 발명을 구현하는 전체 시스템은 데이터센터(10), 데이터센터통신망(20), 본 발명에 따른 클라우드 마이그레이션 데이터 분석 시스템(200) 및 인터넷(30)을 포함하는 것을 알 수 있다. 이하에서는, 설명의 편의를 위해서, 본 발명에 따른 클라우드 마이그레이션 데이터 분석 시스템(200)을 데이터 분석 시스템(200)으로 약칭하도록 한다.
먼저, 데이터센터(10)는 복수의 서버들이 데이터센터통신망(20)을 통해서 연결된 형태로 구현될 수 있다. 이때, 데이터센터(10)는 그 데이터센터(10)를 운용하는 기업이 사용하는 공간 중 일정한 공간을 물리적으로 차지하는 전통적인 개념의 데이터센터를 의미하며, 클라우드 환경으로 마이그레이션(migration)되기 전의 모습을 나타낸 것이다.
데이터센터통신망(20)은 데이터센터(10)를 구성하는 서버와 각종 네트워크 지원 모듈을 연결하는 기능을 수행하고, 인트라넷(intranet), VPN(virtual private network)뿐만 아니라, 실시 예에 따라 인터넷으로 구현될 수도 있다. 도 1에서는 생략되었으나, 도 1의 전체 시스템에 ISP(Internet Service Provider)에서 할당해주는 하나의 IP를 이용하여 여러 대의 서버가 인터넷(30)에 접속할 수 있도록 해 주는 공유기(router) 및 패킷을 감시하고 선택적으로 차단하는 방화벽(firewall)과 같은 일반적인 구성이 포함된다는 것을 이 분야의 통상의 지식을 가진 자에게 자명할 것이다.
데이터 분석 시스템(200)은 데이터센터통신망(20)에 연결되어 데이터센터(10)에 포함되어 있는 서버들 중에서 구동 중인 서버들을 선택적으로 식별하고 프로세스 정보를 수집하여 분석함으로써, 데이터센터(10)의 전체 또는 일부를 클라우드 환경으로 마이그레이션할 경우에 발생될 가능성이 있는 문제점을 사전에 진단하는 기능을 수행한다. 데이터 분석 시스템(200)은 데이터센터통신망(20)을 이용하여 데이터센터(10)에 포함된 서버들의 프로세스 정보를 수집하거나, 서버에서 실행되고 있는 소프트웨어의 프로세스의 상태정보를 역추적할 수 있으며, 이러한 기능을 수행하기 위해서 데이터센터(10)를 구성하는 각 서버들에 에이전트(agent) 프로그램이 사전에 미리 설치될 필요가 없는 특징이 있다.
데이터 분석 시스템(200)은 복수의 서버와 WEB/WAS/DB 솔루션, 프로그램 구동에 필요한 보안정보(security information), 프로그램 구동에 필수적인 라이브러리정보(library information) 등의 서드파티(third party) 솔루션들을 포함하는 정보들의 상관관계를 분석하여 사용자에게 제공함으로써, 마이그레이션의 효율성을 대폭 향상시킬 수 있다.
본 발명에서 설명하는 데이터 분석 시스템(200)은 구동 중인 서버에서 실시간으로 출력되는 프로세스 정보를 기반으로 클라우드 마이그레이션의 효율성을 향상시키기 위한 분석을 수행하는 점에 있다.
종래의 알려진 방식 중 하나인 서버들의 로그(log)를 분석하여 활용하는 방식의 경우, 로그가 후행성 데이터에 불과하여, 애플리케이션의 로그를 개발 레벨에서 변경하지 않는 이상, 서버간 인터페이스의 상관관계에 대한 추적이 불가능한 한계가 있었다.
반면, 본 발명처럼 서버의 프로세스 정보를 통해서 인터페이스를 확인하고 분석하면, 이를 통해 획득할 수 있는 특정 데몬(daemon)을 사용하는 프로세스, 특정 포트(port)를 사용하는 프로그램, 소스/목적 IP(source/destination IP)의 통신 방향성을 일괄적으로 파악할 수 있게 되어, 네트워크 시각화를 보다 효과적으로 트리거링할 수 있게 되는 이점이 있다.
인터넷(30)은 데이터센터(10)에 포함되어 있는 서버들이 외부 시스템과 연결하는 통신망으로서, 데이터센터(10)은 인터넷(30)을 통해서 클라우드 서비스 제공업체가 공급하는 클라우드(cloud)에 접속할 수 있고, 인터넷(30)을 통해 데이터센터(10)의 가상화(virtualization)가 처리될 수 있다. 가상화가 완료된 데이터센터(10)의 운용도 인터넷(30)을 통해 수행될 수 있다.
도 2는 데이터 분석 시스템의 일 예의 블록도를 도식적으로 나타낸 도면이다.
도 2를 참조하면, 본 발명에 따른 데이터 분석 시스템(200)은 인벤토리저장처리부(210), 프로세스정보수집부(230), 역추적수행부(250), 상관관계정보파악부(270) 및 상관관계정보출력부(290)를 포함하는 것을 알 수 있다. 도 2의 데이터 분석 시스템(200)은 도 1에서 설명한 데이터 분석 시스템(200)의 기능을 간결하고 직관적으로 나타낸 것으로서, 도 3에서 설명하는 각종 모듈들을 하위 모듈로 포함할 수 있다. 데이터 분석 시스템(200)에 포함된 각 구성들의 구체적인 기능에 대해서는, 도 3 내지 도 14를 통해 후술하기로 한다.
또한, 데이터 분석 시스템(200)에 포함되는 인벤토리저장처리부(210), 프로세스정보수집부(230), 역추적수행부(250), 상관관계정보파악부(270) 및 상관관계정보출력부(290)는 적어도 하나 이상의 프로세서(processor)에 해당하거나, 적어도 하나 이상의 프로세서를 포함할 수 있다. 이에 따라, 데이터 분석 시스템(200)은 마이크로 프로세서나 범용 컴퓨터 시스템과 같은 다른 하드웨어 장치에 포함된 형태로 구동될 수 있다.
데이터 분석 시스템(200)에 포함된 각 구성들의 명칭은 해당 구성들의 기능을 가장 직관적으로 표현할 수 있도록 명명된 것으로서, 실제로 구현되어 동작할 때에는 도 2에 도시된 것과 다르게 호칭될 수 있음은 이 분야의 통상의 기술자에게 자명할 것이다.
인벤토리저장처리부(210)는 복수의 서버를 포함하는 데이터센터(10)에서 제1시점에서 구동 중인 서버를 파악하고, 파악된 서버들의 운영체제(OS)정보를 분석하여 인벤토리에 저장한다. 여기서, 제1시점은 데이터센터(10)에 포함된 서버들 중에서 실제로 구동되고 있어서 데이터센터통신망(20)을 통해 추적가능한 서버들만 특정하기 위해서 지정된 시점을 나타내는 것으로서, 본 발명에 따른 데이터 분석 시스템(200)은 일정한 주기로 서버들의 프로세스 정보를 수집하고 분석하게 되므로, 시간의 경과에 따라서, 제2시점, 제3시점 등과 같은 무한히 많은 시점이 존재할 수 있다.
프로세스정보수집부(230)는 인벤토리에 저장된 서버들의 프로세스 정보를 수집한다.
일 실시 예로서, 인벤토리저장처리부(210)는 서버들의 운영체제에 의해 오픈된 소켓 정보(socket information)를 파악하고, 프로세스정보수집부(230)는 상기 파악된 소켓 정보를 활용하여 운영체제에서 오픈된 포트(Port)정보를 파악할 수 있다. 후술하는 역추적수행부(250)는 프로세스정보수집부(230)에서 파악된 Port정보를 활용하여 서버에서 사용 중인 프로그램 목록과 그 서버와 연결되어 있는 연결대상 시스템을 파악할 수 있다.
역추적수행부(250)는 수집된 프로세스 정보를 분석한 결과를 기초로, 각 프로세스를 사용하는 소프트웨어의 프로세스 상태정보를 조회한다.
일 실시 예로서, 프로세스정보수집부(230)는 전술한 프로세스정보 외에 인벤토리에 저장된 서버들의 IP정보 및 Port정보를 더 수집할 수 있고, 역추적수행부(250)는 수집된 프로세스정보, IP정보 및 Port정보를 분석한 결과를 기초로, 소프트웨어의 프로세스 상태 정보를 조회할 수도 있다.
다른 일 실시 예로서, 역추적수행부(250)는 데몬(daemon)을 구동하는 프로그램의 프로세스 아이디(Process ID)를 확인하고, 확인된 프로세스 아이디를 기초로 하여 인벤토리에 저장된 서버들이 웹서버(Web Server), 웹애플리케이션서버(WAS: Web Application Server) 및 데이터베이스(DB) 중 어느 유형에 속하는지 판단할 수 있다.
또한, 역추적수행부(250)는 수집된 프로세스 정보를 분석한 결과를 기초로 하여, 마이그레이션의 효율성을 낮추는 대상소프트웨어(target software)를 판별할 수도 있다. 마이그레이션의 효율성에 영향을 주는 소프트웨어는 패키지가 해제된 후에 기설정된 룰에 따라 변환된 후 리패키징(repackaging)될 수 있고, 이에 대해서는 도 12 및 도 13을 통해 후술하기로 한다.
역추적수행부(250)는 수집된 프로세스 정보가 자바(JAVA)이면, 자바 런타임 버전(JAVA runtime version), 클래스 정보, 구동에 필요한 라이브러리(DLL확장자 파일)를 조회할 수 있다. 또한, 역추적수행부(250)는 수집된 프로세스 정보가 SSH, FTP, Telnet 중 하나의 정보라면, 제1시점에서 파악된 서버 외에 다른 서버를 추가로 탐지할 수 있다.
상관관계정보파악부(270)는 역추적수행부(250)에서 조회한 프로세스 상태정보를 기초로, 서버, 서버와 데이터센터통신망(20)으로 연결된 연결대상서버 및 서버에서 실행되는 소프트웨어간의 상관관계정보를 파악한다.
상관관계정보출력부(290)는 상관관계정보파악부(270)에서 파악된 상관관계정보를 출력한다. 일 예로서, 상관관계정보출력부(290)는 상관관계정보파악부(270)에서 파악된 상관관계정보를 기설정된 등급 이상의 사용자만 열람가능한 문서로 가공하여 출력할 수도 있다. 다른 일 예로서, 상관관계정보출력부(290)는 제1시점에서 파악된 서버들로 구성된 정보를 기반으로 토폴로지(topology)를 구축하여 시각화된 정보를 사용자의 단말에 출력할 수 있다. 사용자는 문서나 토폴로지를 확인함으로써, 마이그레이션으로 유발되는 문제점을 사전에 탐지할 수 있다.
도 3은 데이터 분석 시스템의 다른 일 예의 블록도를 도식적으로 나타낸 도면이다.
도 3은 도 2에서 설명한 데이터 분석 시스템(200)을 세부적으로 나타낸 도면으로서, 도 3에 도시되어 있는 각각의 블록은 개별적인 동작이 가능한 모듈을 의미하고, 각 모듈은 데이터 분석 시스템(200)에 포함된 각 구성에 포함되는 형태로 구현될 수 있다는 이미 설명한 바 있다. 이하에서는, 도 2를 참조하여 설명하기로 한다.
먼저, 도 3의 최상단의 분석대상서버군(1)은 데이터센터(10)에 포함되어 있는 복수의 서버를 의미한다. 도 3에서 분석대상서버군(1)에 포함된 서버는 4개이나, 이는 설명의 편의를 위한 것이므로, 실시 예에 따라서, 분석대상서버군에 포함되는 서버의 수가 4개보다 더 많을 수 있다는 것은 자명하다.
이어서, 서버분석모듈(2)은 분석대상서버군(1)에 포함된 서버들을 식별하고, 각 서버가 갖는 프로세스의 유형에 따라서 분석을 처리하는 모듈이다. 서버분석모듈(2)은 데이터센터(10)에 포함된 서버들 중에서 구동 중인 서버를 파악하고, 파악된 서버의 운영체제정보를 분석하여 저장하는 인벤토리저장처리부(210)에 포함되는 형태로 구현될 수 있다.
서버분석모듈(2)은 데이터센터(10)에 연결된 데이터센터통신망(20)에 접속하여, 분석대상서버군(1)에 포함된 서버들 중에서 구동 중인 서버를 파악하고, 그 서버들의 운영체제(OS)의 시스템 정보를 분석 후, 인벤토리(inventory)에 저장한다. 여기서, 인벤토리는 서버분석모듈(2)이 관리 및 분석을 하기로 되어 있는 서버들을 정리한 기록으로서, 제1시점 이후에 시간이 경과할 때마다 업데이트될 수 있다.
도 4는 도 3의 서버분석모듈이 처리하는 서버 인벤토리 추적 알고리즘을 설명하기 위한 흐름도이다.
먼저, 서버분석모듈(2)은 분석대상서버군(1)에서 구동 중(online)인 서버들만 선택적으로 식별하고, 식별된 서버들을 분석 대상 서버 인벤토리에 등록한다(S410).
이어서, 서버분석모듈(2)은 인벤토리에 등록된 서버들의 프로세스 정보를 수집하여 시스템을 분석하고 네트워크 실시간 정보를 추출한다(S430).
서버분석모듈(2)은 등록되지 않은 서버를 발견할 수 있으며(S450), 발견된 미등록 서버를 인벤토리에 등록하고 분석을 진행할 수 있다(S470). 단계 S410 내지 단계 S470은 일정한 주기로 반복될 수 있다.
도 3에 도시된 것처럼, 서버분석모듈(2)은 식별된 서버들의 시스템을 분석하기 위해서 각 서버들의 운영체제의 시스템 정보를 먼저 파악하는 과정을 거치므로, 하위모듈로서, 유닉스분석모듈(Unix Analyzer), 리눅스분석모듈(Linux Analyzer), 윈도우분석모듈(Windows Analyzer)을 포함하고 있다.
또한, 서버분석모듈(2)은 인벤토리에 저장된 서버들의 프로세스정보를 수집하는 프로세스정보수집부(230)에 포함되는 형태로 구현된다. 즉, 서버분석모듈(2)은 운영체제에 의해 오픈된 소켓 정보를 활용하여 현재 운영체제에서 오픈된 포트 정보를 파악하게 되고, 이를 활용하여 서버에서 현재 사용 중인 프로그램의 목록과 그 서버와 연결되어 있는 연결대상서버(연결대상시스템)를 파악하게 된다.
도 5는 서버분석모듈이 네트워크 인터페이스 대상 서버를 추출하는 과정을 설명하기 위한 도면이다.
서버분석모듈(2)은 도 5와 같은 정보에서 오픈된 Port정보를 파악하고, 이를 활용하여 사용 중인 프로그램 목록과 연결대상시스템을 파악한다. 서버분석모듈(2)은 상태(state)가 LISTEN인 정보에 대해서만 해당 포트를 사용하는 데몬(daemon)을 구동하는 프로그램의 프로세스 아이디(Process ID)를 확인하고, 프로세스 아이디를 통해서 해당 서버가 웹서버(Web Server), WAS, DB 중 어느 유형에 해당하는지 파악할 수 있다.
위와 같이, 본 발명에 따르면, 데이터센터를 구성하는 각 서버에 별도의 에이전트 프로그램을 설치하지 않고, 각 서버마다 미리 라벨링(labeling)이 되어 있지 않더라도, 프로세스 아이디를 통해서 서버가 웹서버, WAS, DB 중 어느 유형에 해당하는지 파악할 수 있다.
이어서, 서버분석모듈(2)은 네트워크에서 추출된 PID(Process ID) 목록을 활용하여 프로세스 정보를 수집하고, 수집된 프로세스 정보로 가동 중인 마이그레이션 대상 소프트웨어를 파악할 수 있다.
도 6은 서버분석모듈이 네트워크에서 추출된 PID를 이용하여 프로세스 정보를 획득하는 방식을 설명하기 위한 도면이다.
보다 구체적으로, 도 6은 17229라고 표시된 프로세스 아이디의 매칭을 통해서, 자바 런타임(JAVA Runtime)에 대한 프로세스 정보를 획득한 결과를 도식적으로 나타내고 있다.
서버분석모듈(2)은 사용하는 포트를 통해 프로세스 파악이 완료되면, 그 프로세스를 사용하는 소프트웨어의 프로세스 상태 정보(process state information)를 조회하고, 해당 소프트웨어에 대한 역추적 작업을 수행하게 된다. 예를 들어, 서버에서 실행되는 프로세스가 JAVA로 판명되면, 웹 애플리케이션 서버(WAS)를 활용하는 데몬은 이를 기동하기 위해 필요한 자바 런타임 버전, 소프트웨어를 구동하기 위한 클래스 정보, 필요한 라이브러리파일(DLL)의 목록을 파악하게 되므로, 서버분석모듈(2)은 파악된 자바 런타임 버전, 클래스 정보, 라이브러리의 목록을 프로세스 상태 정보로 활용하여 해당 소프트웨어를 역추적하게 된다.
다른 예로서, 서버분석모듈(2)이 파악한 프로세스가, 운영체제에서 사용하는 시스템 프로세스 중 네트워크를 사용하는 SSH, FTP, Telnet 등의 프로세스라면, 어떤 클라이언트가 대상 서버에 접속했는지 여부도 전술한 방법으로 파악하게 되며, 사전에 작성된 인벤토리에 포함되어 있는 서버인지 확인하고, 미등록 서버라면 인벤토리에 등록시키고 해당 작업 루틴을 반복하게 된다. 미등록 서버의 인벤토리 등록 및 분석과정에서 대해서는 도 4에서 이미 설명한 바 있으므로 생략한다.
위와 같이, 서버분석모듈(2)은 도 2에서 설명한 인벤토리저장처리부(210), 프로세스정보수집부(230) 및 역추적수행부(250)에 각각 포함되는 형태로 구현될 수 있다. 데이터 분석 시스템(200)의 사용자/프로세스/네트워크 상태 정보의 분석을 통해서 소프트웨어가 사용하고 있는 정보가 서버분석모듈(2)이 역추적으로 추출하는 정보(프로세스 상태 정보)가 되며, 분석대상서버의 사용자, 그 서버에서 실행되는 프로세스 및 그 서버의 네트워크 상태정보와의 관계는 도 7과 같다.
도 7은 분석 대상이 되는 서버에서 서버분석모듈이 추출가능한 정보간의 관계를 도식적으로 나타낸 도면이다.
도 7에 도시된 바와 같이, 서버분석모듈이 추출(조회)가능한 프로세스 상태 정보는 사용자, 프로세스, 네트워크 상태정보가 맞물려 있으므로, 어느 하나에 대한 정보가 파악되는 대로 연관된 나머지 정보들이 파악될 수 있다.
구체적인 예로, 업무 시스템에 오픈소스 웹 서버(Web server)를 통해 DB의 연관관계를 파악하는 과정을 예를 들면, 서버분석모듈(2)은 웹 서버 프로세스를 통해 웹 서버가 구동되는 서버의 위치를 파악할 수 있고, 해당 위치에서 설정 파일(configuration file)이 존재하는 디렉토리를 자동으로 찾을 수 있게 된다. 서버분석모듈(2)은 웹 서버의 설정 파일을 통해서 대상 서버가 사용하는 포트 번호, 인증서 정보, 다큐먼트 루트(document root), 사용 중인 라이브러리(Active DLL), 로그 위치 등을 파악할 수 있다. 또한, 서버분석모듈(2)은 이때 사용하는 백엔드(backend)의 WAS의 정보를 설정파일에서 파악할 수 있다.
도 7에 도시된 정보간의 상관관계를 통해서 정보를 역으로 파악해나가는 과정은 정보의 트리거링(triggering)으로 호칭될 수 있고, 이하에서는, 분석대상서버군(1)에 포함된 서버가 웹서버, WAS, DB 중 어느 하나로 파악되었을 때 수행되는 트리거링에 대해서 구체적으로 설명하기로 한다. 트리거링을 통한 정보 수집의 장점은 도 7에서 설명한 것처럼, 운영체제의 요소(component)인 사용자/프로세스/네트워크/서버 간의 연관(상관)관계를 효과적으로 파악할 수 있고, 그에 따라서 마이그레이션의 효율성을 낮추는 부분을 정확하게 판단할 수 있는 데에 있다.
도 8은 운영체제 명령을 통한 솔루션 역추적 방법의 일 예를 흐름도로 도식화하여 나타낸 것이다.
네트워크 확인명령이 있을 경우(S810), 서버분석모듈(2)은 프로세스 번호(프로세스 아이디)와 대상 서버에서 사용 중인 프로그램 목록을 추출한다(S830).
서버분석모듈(2)은 프로그램 분석을 통해서 솔루션을 파악하고(S850), 서버의 유형에 따라 솔루션 정보를 역으로 파악하여 추출한다(S870).
단계 S870에서, 서버가 아파치 웹 서버(Apache Web Server), IIS(Internet Information Server), IHS(IBM HTTP Server), OHS웹 서버(Oracle Web Server) 중하나로 판명된 경우, 단계 S871로 분기되고, 웹 서버 트리거링은 도 9와 같은 과정으로 진행된다.
도 9는 웹 서버 프로세스로 설정 내용을 추적하여 획득가능한 정보를 도식적으로 나타낸 것이다.
웹 서버는 다양한 종류의 솔루션으로 나뉘어질 수 있으며, 서버분석모듈(2)은 각 솔루션이 가진 프로세스에 해당하는 환경설정 정보를 운영체제에 기동 중인 프로세스 내에서 추출하게 된다.
예를 들면, 아파치 웹 서버가 실시간으로 구동된 상태에서 프로세스를 분석하게 되면, 서버분석모듈(2)은 RPM 기반으로 설치 또는 사용자 컴파일 여부를 파악하게 되고, 해당 프로세스를 기동하는 설정 파일의 위치의 역추적이 가능해진다. 도 9는 위와 같이, 서버분석모듈(2)이 웹 서버 트리거링을 통해 웹 서버로 기능하는 대상서버의 기본적인 환경설정정보와 확장된 정보를 알 수 있다는 것을 나타내고 있다.
다른 예로서, 단계 S870에서, 서버가 오라클 웹로직(Oracle WebLogic), 티맥스소프트 JEUS(TmaxSoft JEUS) 및 IBM 웹스피어(IBM Websphere) 중 하나로 판명된 경우, 단계 S873으로 분기되고, WAS정보 트리거링은 도 10과 같은 과정으로 진행될 수 있다.
도 10은 웹 애플리케이션 서버 프로세스로 설정 내용을 추적하여 획득가능한 정보를 도식적으로 나타낸 것이다.
서버분석모듈(2)은 단계 S873에서, 웹 서버에 기술된 백엔드 WAS의 정보가 동일 서버내 또는 다른 서버에서 기동되는 것을 파악하게 된다. 서버분석모듈(2)은 파악된 정보를 활용하여 해당 서버에서 특정 포트로 기동되는 자바 프로세스(JAVA Process)를 확인할 수 있고, 이 자바 프로세스의 상태 메시지로 표현되는 특정 문자열을 통해 해당 웹 애플리케이션 소프트웨어의 기동 자바 버전, 설정 파일의 위치, 소켓 정보 및 언어 정보를 파악할 수 있다. WAS의 제조사는 다양하므로, 서버분석모듈(2)은 각 제조사별 설정 파일들을 갖고 있는 파싱 리포지토리(parsing repository)를 통해 분석 정보를 추출하는 정책을 포함할 수 있다.
도 10을 참조하면, 서버분석모듈(2)이 웹 애플리케이션 서버 트리거링을 통해 WAS로 판명된 서버의 기본적인 환경설정정보(사용하는 포트, 구동 IP, 애플리케이션 배포 정보)와 리소스 연결 정보(연결대상 소프트웨어 정보, 연결대상 서버 IP정보, 연결대상 서버 Port정보, 대상접속계정정보)를 파악하게 되는 것을 알 수 있다.
웹 애플리케이션 서버들은 서버를 구동하게 하는 기본적인 정보를 모두 XML파일형태로 저장하고 있다. 서버분석모듈(2)이 프로세스 기동에 필요한 Main XML파일을 분석하면, 서버가 기동하는 포트번호, 사용하는 클래스 라이브러리, 서버이름, 데이터베이스 연결에 필요한 정보, 배포되는 애플리케이션 이름, 디렉토리 위치, 각종 튜닝 정보를 파악할 수 있다. 여기서, 파악된 정보들은 데이터 분석 시스템(200)이 상관관계정보를 시각화하여 출력할 때 개별 컴포넌트로 표현될 수 있다.
도 11은 WAS설정 파일을 분석하여 네트워크 인터페이스 정보를 획득하는 방법을 설명하기 위한 도면이다.
도 11에 도시된 파일은 서버분석모듈(2)이 탐지한 WAS 설정 파일을 나타내며, XML포맷으로 기술되어 있다. 서버분석모듈(2)은 도 11에서 다섯 번째 줄의 하이라이트된 정보(URL정보)를 네트워크 인터페이스 정보로서 획득하고 활용할 수 있다.
또 다른 예로서, 단계 S870에서, 단계 S875로 분기될 수 있다. 데이터베이스 정보 트리거링(DB information Triggering)은 서버분석모듈(2)에서 웹 애플리케이션 서버에서 등록된 연결정보를 파악하고, 대상 서버의 관리자 등록이 이루어지면, 해당 데이터베이스 서버의 데이터 사용량, 테이블 스페이스, 아카이브 정보, 테이블별 데이터 건수 등의 데이터 분석이 이루어진 이후에 정보가 획득되는 절차를 의미한다.
마지막으로, 서버분석모듈(2)은 애플리케이션 정보 트리거링을 수행할 수 있다. 서버분석모듈(2)은 프로세스 정보를 통해 획득된 정보를 기반으로 WAS가 분석되면, 분석된 WAS의 정보를 활용하여 애플리케이션이 배포된 위치 정보를 역으로 추적할 수 있다. 위치가 파악된 자바 애플리케이션은 그 유형에 따라 패키징된 방법(JAR, WAR, EAR 등)이 상이하고 고유의 표준화된 구조를 갖고 있으며, 서버분석모듈(2)은 하위 디렉토리 내의 파일 분석을 통해 화면 수, 비즈니스 로직 처리 파일, 환경설정 파일 등을 추출할 수 있다. 이 과정에서, 애플리케이션은 도 12 또는 도 13과 같은 형태로 분석 및 변환되어 마이그레이션되며, 분석대상서버가 WAS인 경우, 소프트웨어 제조사의 벤더별 속성을 활용하는 분석절차과 디렉토리 표준 분석절차가 병행될 수 있다.
도 12는 웹 애플리케이션 서버에서 기동되는 프로그램(소프트웨어)을 분석하는 기법을 설명하기 위한 흐름도이다.
도 12에 도시된 것처럼, WAS에서 기동되는 프로그램은 단계 S1210에서 DD변경절차를 거치거나, 단계 S1230에서 XML의존성 라이브러리 제거 절차를 통해 가공된 후 리패키징됨으로써, 마이그레이션에서 발생되는 문제점을 사전에 제거할 수 있다.
위 과정에서, 분석된 애플리케이션의 디렉토리의 하위 디렉토리는 표준 기반으로 구성되어야 리패키징후에도 오류없이 기동가능하므로, 서버분석모듈(2)은 해당 디렉토리의 파일 인코딩 분석, 배포 디스크립터 분석, 라이브러리 연관관계 분석, 의존성 내용 분석, 특정 프로퍼티(property) 파일 분석 등을 수행하여, 마이그레이션시 발생 가능한 문제점을 사전에 파악할 수 있고, 차후에 해당 문제점을 기재한 문서가 생성되도록 제어할 수 있다.
본 발명에서 애플리케이션의 패키징을 해제하고 분석함으로써 파악가능한 마이그레이션 시 발생될 우려가 있는 문제점에는 여러 가지가 포함될 수 있다. 예를 들어, 본 발명처럼 애플리케이션의 패키징을 해제하여 분석함으로써, 각 애플리케이션 서버의 엔진 제어가 가능한 JMX(Java Management Extension)를 활용하는 것과 같이, WAS에 의존성이 있는 라이브러리를 파악할 수 있다.
다른 예로서, 관리자는 위와 같은 방법을 통해, 디스크립터(descriptor) 파일 목록을 확인할 수 있고, 그 목록으로 통해 특정 벤더(vendor)에 의존성(dependency) 문제가 있다는 것이 파악할 수 있으며, JDK버전(Java Development Kit version)을 업그레이드할 때에 관측되는 “더 이상 지원되지 않는(Deprecated) 소스 코드”의 존부도 파악할 수 있다.
그 외에도, 도 12에 도시된 과정을 통해 후술하는 엔터프라이즈 자바 빈즈 및 웹 서비스와 같은 WAS런타임에 의존적인 소스 코드가 파악될 수 있고, 클라우드 환경으로의 마이그레이션이 완료된 후 업무가 개시될 때에 발생되는 환경설정(configuration) 옵션이나 소드 코드 내에 포함된 레거시 시스템(legacy system)의 IP주소 등이 사전에 파악될 수 있다.
도 13은 애플리케이션이 엔터프라이즈 자바빈즈(EJB 자바표준)일 때, 분석되는 과정을 도식화한 흐름도이다.
도 13을 참조하면, 도 12와 유사하게, 서버분석모듈(2)이 jeus-ejb-dd.xml 분석을 선택적으로 수행하여, jboss.xml변환처리를 실행하며(S1310), EJB리패키징을 수행함으로써, 애플리케이션에 대한 분석을 완료하는 것을 알 수 있다(S1330).
일반적인 개발자와 엔지니어들은 엔터프라이즈 자바빈즈에 대한 개념 및 속성에 대한 이해도가 높지 않아서, 애플리케이션이 EJB 자바표준일 때 WAS를 변경할 경우 비용(시간, 인건비)이 과도해지는 경향이 있으나, 도 13과 같이 애플리케이션을 분석함에 따라서, 데이터센터(10)를 클라우드 환경으로 마이그레이션할 경우에 발생되는 문제점을 사전에 파악할 수 있고, 단계 S1310에서의 변환처리를 통해서 마이그레이션의 효율성을 향상시킬 수 있다.
구체적으로, 애플리케이션이 엔터프라이즈 자바빈즈일 경우, 분석 후에 제공되는 가이드에 따라서 클라우드 환경으로의 마이그레이션을 제어하고 관리하는 관리자(administrator)가 WAS에 의존적인 배포 지시자(Deployment Descriptor)파일 및 소스를 변경할 수 있게 되어, 마이그레이션 과정에서 발생되는 문제점이 사전에 제거될 수 있다.
이하에서는, 다시 도 3에 대한 설명을 이어서 하기로 한다.
미들웨어분석모듈(3)은 서버분석모듈(2)의 프로세스 분석에 의해서 역추적대상이 미들웨어(middleware)로 분석되는 경우에 한해, 분석대상 서버가 현재 업계에서 판매되고 있는 특정 솔루션 벤더(vendor)의 서버인지 파악하고, 이를 활용하여 각 서버가 갖고 있는 서버 설정 정보를 디렉토리 기반으로 역추적하여 각 서버의 XML기반의 설정 정보를 분석하는 기능을 수행한다. 실시 예에 따라서, 미들웨어분석모듈(3)은 서버분석모듈(2)에 물리적 또는 논리적으로 종속되어 동작할 수 있으며, 그에 따라서, 도 2의 역추적수행부(250)에 포함되는 형태로 구현될 수 있다.
데이터베이스분석모듈(4)은 서버분석모듈(2) 및 미들웨어분석모듈(3)에서 분석된 프로세스에 의해 추적된 데이터베이스 정보를 분석하는 기능을 수행한다. 데이터베이스분석모듈(4)은 데이터베이스의 사용자, 데이터베이스의 메타정보, 데이터베이스의 용량, 데이터베이스의 프로시저(procedure) 등을 추적하게 되고, 추가적으로 데이터파일, 컨트롤파일, 세그먼트, DB Links 등의 정보를 파악할 수 있다. 데이터베이스분석모듈(4)도 실시 예에 따라서, 서버분석모듈(2)에 물리적 또는 논리적으로 포함되어 동작할 수 있으며, 도 2의 역추적수행부(250)에 포함되는 형태로 구현될 수 있다.
애플리케이션분석모듈(5)은 전술한 애플리케이션 트리거링에 관여하면서, 서버분석모듈(2)에 물리적 또는 논리적으로 포함되는 방식으로 구현될 수 있다.
도 14는 서비스 분석 실시 예에 따른 흐름도를 도식적으로 나타내고 있다.
보다 구체적으로, 도 14는 도 3의 서버분석모듈(2), 미들웨어분석모듈(3), 데이터베이스분석모듈(4) 및 애플리케이션분석모듈(5)이 수행하는 기능을 하나의 흐름도로 간략하게 나타낸 것이다.
도 14는 미들웨어가 역추적되는 경우 설정 분석을 통하여 배포된 애플리케이션에 대한 추적 실시가 가능해지며, 본 발명에 따른 데이터 분석 시스템(200)이 자바를 사용할 경우, 사용되는 프레임워크 정보, 프로퍼티 내의 외부 시스템 인터페이스 IP, Port 정보, 사용되는 쿼리 분석 등을 통해 마이그레이션 시 발생하는 문제점을 사전에 파악하는 기능을 수행하는 모듈을 포함하고 있다는 것을 도식적으로 설명하고 있다.
만약, 자바 프로그램이 소스가 아닌 클래스 파일로 진행되는 경우 데이터 분석 시스템(200)에 포함된 분석모듈들은 BCI(ByteCode Instrument)기술을 활용하여 이진 파일(binary file)내의 아이피와 포트를 추적하게 되며, 이는 서버간 인터페이스 상관관계를 파악하는 중요한 도구가 된다.
관리모듈(6)은 전술한 각종 분석 모듈에서 수집된 정보들을 저장하고, 주기적인 작업을 실행시켜서 분석대상서버군(1)의 갱신된 정보를 지속적으로 수집하여 관리하는 기능을 수행한다. 관리모듈(6)은 위와 같은 작업을 처리하기 위해서, Task Executor, Scheduler, Meta Post Processor 및 Meta Repository를 하위 모듈로 포함하고 있다.
관리모듈(6)은 프로세스와 네트워크 정보에 의해 역추적되어 수집된 프로세스 정보 및 프로세스 상태정보를 상관관계 데이터로 맵핑하고 시각화된 정보로서 출력하기 위해 메타 데이터를 구성하고 처리하는 기능을 수행한다. 관리모듈(6)이 수행하는 기능은 본 발명의 가장 중요한 특징 중 하나로서, 전술한 운영체제 분석 정보, 웹서버 분석정보, 웹 애플리케이션 서버 분석 정보, 데이터베이스 정보를 각 시스템 간의 상관관계 그래프로 표현가능하도록 메타 정보를 설정하는 기능이다.
본 발명에서 데이터센터(10)를 구성하는 분석대상서버군(1)은 제1시점에 대해서 최초로 분석된 이후에, 관리자에 의해 추가적으로 설치되거나 제1시점 이후에 구동되기 시작한 서버들에 의해서 상태가 달라질 수 있다. 즉, 제1시점에서 인벤토리에 기록된 서버들은 제1시점 이후(제2시점, 제3시점 등)에는 갱신하고 재분석되어야 시스템 현행화가 가능하게 되므로, 관리모듈(6)은 스케쥴러(scheduler)를 통해 일정한 주기로 서버들간의 상관관계 정보를 업데이트하는 방식으로 최신상태의 정보를 유지할 수 있다. 관리모듈(6)은 도 2의 상관관계정보파악부(270)에 물리적 또는 논리적으로 포함되는 형태로 구현될 수 있다.
이어서, 애플리케이션결과모듈(7)은 관리모듈(6)이 산출한 상관관계정보를 엑셀(excel)이나 워드(word)문서와 같은 포맷의 결과물로 가공하는 기능을 수행하고, Rest API모듈(8)은 애플리케이션결과모듈(7)이 출력하는 문서를 시각화하여 사용자의 단말의 화면으로 송출하는 기능을 수행한다. 애플리케이션결과모듈(7) 및 Rest API모듈(8)은 도 2의 상관관계정보출력부(290)에 물리적 또는 논리적으로 포함되는 형태로 구현될 수 있다.
관리모듈(6)은 분석대상서버군(1)에 포함된 각종 유형의 서버들간의 연결된 정보를 활용하여 메타데이터를 축적하며, 애플리케이션결과모듈(7)은 관리모듈(6)로부터 수신한 데이터를 기초로 시스템 간의 인터페이스 관계도를 산출하기 위한 그래프 라이브러리를 포함하고 있다.
데이터센터(10)에 접근가능하고 권한 있는 사용자는, 도 15와 같은 서버간 상관 관계 구조도를 한눈에 확인함으로써, 데이터센터(10)내의 데이터 흐름을 직관적으로 파악할 수 있으며, 이 과정에서 진행된 상관관계 분석결과 및 애플리케이션 변환/리패키징 절차는 데이터센터(10)를 클라우드 환경으로 마이그레이션할 경우에 발생되는 문제점을 대폭 감소시켜서 시간 및 비용이 절감될 수 있다.
도 15는 데이터센터의 서버간 상관관계 구조도의 일 예를 도식적으로 나타내고 있다.
사용자는 도 15와 같은 서버간 상관관계의 토폴로지가 갱신될 때마다 사용자 단말을 통해서 확인할 수 있다. 사용자는 도 15를 통해서, 언노운 서버(Unknown Server) 3대가 갱신으로 추가되었음을 확인할 수 있다.
본 발명의 상관관계정보파악부(270)는 특정 포트를 통해 외부 서버와 통신하는 업무를 수행하는 서버들의 목록과 상호 연관 인터페이스 구성 정보를 파악하여 상관관계정보출력부(290)에 전달할 수 있다.
상관관계정보출력부(290)는 상관관계정보파악부(270)로부터 전달받은 자바스크립트 형태의 정보를 활용하여 도 15와 같은 토폴로지를 시각화하여 출력할 수 있다.
이때, 상관관계정보파악부(270)가 상관관계정보출력부(290)에 전달하는 시스템간 상관관계 구조도를 시각적으로 출력하기 위한 정보에는 본 발명에서 각 서버들의 프로세스정보를 분석하여 획득한 결과물이 포함됨으로써, 클라우드 환경으로의 마이그레이션이 진행된 결과를 더 완성도 있게 표현하는 데에 활용된다. 예를 들어, 본 발명에 따르면, 재귀적인(recursive) 분석과정을 통해 서버들간의 상관관계 구조도에서 마이그레이션을 진행할 때 분석되지 않는 서버들을 정확하게 파악하여 시각화된 자료로 출력할 수 있다.
도 16은 본 발명에 따른 프로세스 정보로 이용한 클라우드 마이그레이션 데이터 분석 방법의 일 예를 흐름도로 나타낸 도면이다.
도 16에 도시된 방법은 도 2 또는 도 3을 통해 구현될 수 있으므로, 이하에서는 도 2를 참조하여 설명하기로 하고, 도 2 및 도 3에서 설명한 내용과 중복되는 설명은 생략하기로 한다.
인벤토리저장처리부(210)는 데이터센터에 포함된 서버의 OS정보를 분석하고, 분석이 완료된 서버들을 인벤토리에 저장한다(S1610).
프로세스정보수집부(230)는 인벤토리에 저장된 서버들의 프로세스 정보를 수집한다(S1630).
역추적수행부(250)는 프로세스 정보를 분석한 결과로 소프트웨어의 프로세스 상태정보를 조회하여 역추적한다(S1650).
상관관계정보파악부(270)는 역추적 결과로 서버들 및 소프트웨어간의 상관관계를 파악한다(S1670).
상관관계정보출력부(290)는 파악된 상관관계정보를 시각화하여 출력하거나, 문서화처리한다(S1690).
단계 S1610 내지 S1690를 수행하는 하드웨어 주체는, 전술한 주체 외에 도 2의 각 모듈에 포함되어 있는 도 3의 하위모듈에 의해서 수행될 수도 있다는 것은 이미 설명한 있다.
본 발명의 시스템 프로세스를 통한 업무 및 인터페이스 역추적 방법에 의하면, 데이터센터에서 관리하는 복수의 서버의 분석과 마이그레이션 비용을 최소화할 수 있으며, 실시간으로 분석되는 정보를 통해 수많은 서버에 대한 인벤토리 관리가 가능해진다. 사전에 분석되고 지속적으로 업데이트되는 정보에 의해서, 클라우드 환경으로 마이그레이션을 진행할 경우, 업무 시스템의 이관, 변경 사항 반영이 빨라지게 되므로, 기존에 사람에 의해 중복적으로 분석되고 관리되던 작업을 시스템화하여 실수를 최소화하고, 정확한 관리 업무를 수행할 수 있다.
또한, 기존의 로그 레벨의 분석이 아닌 현재 기동 중인 프로세스 분석을 진행함으로써 마이그레이션 대상 서버, 프로세스, 소프트웨어의 신뢰성을 높일 수 있다.
또한, 데이터센터의 관리자가 업무 서비스간의 인터페이스를 시각적이고 효과적으로 파악하게 됨으로써 마이그레이션의 효율성을 대폭 증대시킬 수 있다.
이상 설명된 본 발명에 따른 실시 예는 컴퓨터상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
1: 분석대상서버군
2: 서버분석모듈
3: 미들웨어분석모듈
4: 데이터베이스분석모듈
5: 애플리케이션분석모듈
6: 관리모듈
7: 애플리케이션결과모듈
8: Rest API모듈
10: 데이터센터
20: 데이터센터통신망
30: 인터넷
210: 인벤토리저장처리부
230: 프로세스정보수집부
250: 역추적수행부
270: 상관관계정보파악부
290: 상관관계정보출력부

Claims (13)

  1. 복수의 서버를 포함하는 데이터센터에서 제1시점에서 구동중인 서버를 파악하고, 파악된 서버들의 운영체제정보를 분석하여 인벤토리에 저장하는 인벤토리저장단계;
    상기 인벤토리에 저장된 서버들의 프로세스 정보를 수집하는 프로세스정보수집단계;
    상기 수집된 프로세스 정보를 분석한 결과를 기초로, 각 프로세스를 사용하는 소프트웨어의 프로세스 상태정보를 조회하는 역추적단계;
    상기 조회된 프로세스 상태정보를 기초로, 서버, 상기 서버와 네트워크로 연결된 연결대상서버 및 상기 서버에서 실행되는 소프트웨어간의 상관관계 정보를 파악하는 상관관계정보파악단계; 및
    상기 파악된 상관관계 정보를 출력하는 상관관계정보출력단계를 포함하고,
    상기 인벤토리저장단계는,
    상기 운영체제에 의해 오픈된 소켓 정보(socket information)를 더 파악하고,
    상기 프로세스정보수집단계는,
    상기 파악된 소켓 정보를 통해, 상기 서버들에서 사용되는 운영체제에서 오픈되는 Port정보를 파악하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법.
  2. 제1항에 있어서,
    상기 프로세스정보수집단계는,
    상기 인벤토리에 저장된 서버들의 IP정보 및 Port정보를 더 수집하고,
    상기 역추적단계는,
    상기 수집된 프로세스 정보, IP정보 및 Port정보를 분석한 결과를 기초로, 상기 프로세스 상태정보를 조회하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법.
  3. 삭제
  4. 제2항에 있어서,
    상기 역추적단계는,
    상기 파악된 Port정보를 기초로, 현재 구동중인 서버에서 사용하고 있는 프로그램 목록과 상기 서버들과 연결된 연결대상서버의 정보를 파악하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법.
  5. 제4항에 있어서,
    상기 역추적단계는,
    데몬(daemon)을 구동하는 프로그램의 프로세스 아이디(Process ID)를 확인하고, 상기 확인된 프로세스 아이디를 기초로 하여 상기 인벤토리에 저장된 서버들이 웹서버, 웹애플리케이션서버(WAS:Web Application Server) 및 데이터베이스(DB) 중 어느 유형에 속하는지 판단하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법.
  6. 제1항에 있어서,
    상기 역추적단계는,
    상기 수집된 프로세스 정보를 분석한 결과를 기초로 하여, 복수 종류의 소프트웨어 중에서 적어도 하나 이상의 대상소프트웨어를 판별하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법.
  7. 제1항에 있어서,
    상기 역추적단계는,
    상기 수집된 프로세스 정보가 자바(JAVA)의 정보라면, 자바 런타임 버전, 클래스 정보, 구동에 필요한 라이브러리를 조회하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법.
  8. 제1항에 있어서,
    상기 역추적단계는,
    상기 수집된 프로세스 정보가 SSH, FTP, Telnet 중 하나의 정보라면, 상기 제1시점에서 파악된 서버 외에 다른 서버를 추가로 탐지하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법.
  9. 제1항에 있어서,
    상기 방법은,
    애플리케이션 트리거링(application triggering)을 통해, 적어도 하나 이상의 애플리케이션을 특정하고, 상기 특정된 애플리케이션의 패키징과 리패키징을 순차적으로 수행하는 애플리케이션변환단계를 더 포함하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법.
  10. 제1항에 있어서,
    상기 상관관계정보출력단계는,
    상기 제1시점에서 파악된 서버들로 구성된 정보를 기반으로 토폴로지를 구축하여 시각화하여 출력하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법.
  11. 제1항에 있어서,
    상기 상관관계정보출력단계는,
    상기 파악된 상관관계 정보를 기설정된 등급 이상의 사용자만 열람가능한 문서로 가공하여 출력하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법.
  12. 제1항, 제2항, 제4항 내지 제11항 중 어느 한 항에 따른 방법을 실행시키기 위한 프로그램을 저장하고 있는 컴퓨터 판독가능한 기록매체.
  13. 복수의 서버를 포함하는 데이터센터에서 제1시점에서 구동중인 서버를 파악하고, 파악된 서버들의 운영체제정보를 분석하여 인벤토리에 저장하는 인벤토리저장처리부;
    상기 인벤토리에 저장된 서버들의 프로세스 정보를 수집하는 프로세스정보수집부;
    상기 수집된 프로세스 정보를 분석한 결과를 기초로, 각 프로세스를 사용하는 소프트웨어의 프로세스 상태정보를 조회하는 역추적수행부;
    상기 조회된 프로세스 상태정보를 기초로 서버 및 상기 서버와 네트워크로 연결된 연결대상서버 및 상기 서버에서 실행되는 소프트웨어간의 상관관계 정보를 파악하는 상관관계정보파악부; 및
    상기 파악된 상관관계 정보를 출력하는 상관관계정보출력부를 포함하고,
    상기 인벤토리저장처리부는,
    상기 운영체제에 의해 오픈된 소켓 정보(socket information)을 파악하고,
    상기 프로세스정보수집부는,
    상기 파악된 소켓 정보를 통해, 상기 서버들에서 사용되는 운영체제에서 오픈되는 Port정보를 파악하는 것을 특징으로 하는, 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 시스템.
KR1020210024516A 2021-02-24 2021-02-24 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템 KR102271829B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210024516A KR102271829B1 (ko) 2021-02-24 2021-02-24 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템
US18/278,833 US20240137278A1 (en) 2021-02-24 2021-12-27 Cloud migration data analysis method using system process information, and system thereof
PCT/KR2021/019926 WO2022181958A1 (ko) 2021-02-24 2021-12-27 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210024516A KR102271829B1 (ko) 2021-02-24 2021-02-24 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR102271829B1 true KR102271829B1 (ko) 2021-07-02

Family

ID=76896911

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210024516A KR102271829B1 (ko) 2021-02-24 2021-02-24 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템

Country Status (3)

Country Link
US (1) US20240137278A1 (ko)
KR (1) KR102271829B1 (ko)
WO (1) WO2022181958A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022181958A1 (ko) * 2021-02-24 2022-09-01 주식회사 오픈소스컨설팅 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템
KR102614060B1 (ko) * 2023-11-21 2023-12-15 인프라닉스 주식회사 일반 애플리케이션을 서비스형 소프트웨어 애플리케이션으로 변환하기 위한 자동 분석 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100333116A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
KR20110063637A (ko) * 2008-09-11 2011-06-13 마이크로소프트 코포레이션 데이터 센터들에 걸친 리소스 위치 확인 및 마이그레이션 기법
KR20160070636A (ko) 2014-12-10 2016-06-20 경희대학교 산학협력단 분산 클라우드 환경에서의 마이그레이션 제어 장치 및 이를 이용한 마이그레이션 제어 방법
KR101675818B1 (ko) 2012-01-27 2016-11-14 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 클라우드 마이그레이션을 위한 파라미터화된 다이나믹 모델

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9912549B2 (en) * 2013-06-14 2018-03-06 Catbird Networks, Inc. Systems and methods for network analysis and reporting
KR102271829B1 (ko) * 2021-02-24 2021-07-02 주식회사 오픈소스컨설팅 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110063637A (ko) * 2008-09-11 2011-06-13 마이크로소프트 코포레이션 데이터 센터들에 걸친 리소스 위치 확인 및 마이그레이션 기법
KR101634409B1 (ko) 2008-09-11 2016-06-28 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 데이터 센터들에 걸친 리소스 위치 확인 및 마이그레이션 기법
US20100333116A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
KR101675818B1 (ko) 2012-01-27 2016-11-14 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 클라우드 마이그레이션을 위한 파라미터화된 다이나믹 모델
KR20160070636A (ko) 2014-12-10 2016-06-20 경희대학교 산학협력단 분산 클라우드 환경에서의 마이그레이션 제어 장치 및 이를 이용한 마이그레이션 제어 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
‘Azure Migrate를 사용하여 마이그레이션 계획 빌드’, 2020.11.11. *
‘To the cloud and beyond! Planning a multi-year data center migration’, 2021.02.18. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022181958A1 (ko) * 2021-02-24 2022-09-01 주식회사 오픈소스컨설팅 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템
KR102614060B1 (ko) * 2023-11-21 2023-12-15 인프라닉스 주식회사 일반 애플리케이션을 서비스형 소프트웨어 애플리케이션으로 변환하기 위한 자동 분석 방법

Also Published As

Publication number Publication date
US20240137278A1 (en) 2024-04-25
WO2022181958A1 (ko) 2022-09-01

Similar Documents

Publication Publication Date Title
CN108475360B (zh) 分布式计算依赖管理系统
US11663110B2 (en) Analysis to check web API code usage and specification
US9727407B2 (en) Log analytics for problem diagnosis
US8429645B2 (en) Method for optimizing migration of software applications to address needs
US8572625B2 (en) Method and system for application migration using per-application persistent configuration dependency
US9900374B2 (en) Application bundle management across mixed file system types
KR102271829B1 (ko) 시스템 프로세스 정보를 이용한 클라우드 마이그레이션 데이터 분석 방법 및 그 시스템
US11200048B2 (en) Modification of codified infrastructure for orchestration in a multi-cloud environment
US11379221B2 (en) Version control mechanisms augmented with semantic analysis for determining cause of software defects
CN116324714A (zh) 将域特定语言与通用语言组合以用于无服务器网络功能
US20230214229A1 (en) Multi-tenant java agent instrumentation system
US8677339B2 (en) Component relinking in migrations
Oliveira et al. Delivering software with agility and quality in a cloud environment
CN116324712A (zh) 用于无服务器网络功能的域特定语言
US10838712B1 (en) Lifecycle management for software-defined datacenters
US11184251B2 (en) Data center cartography bootstrapping from process table data
US20160283522A1 (en) Matching untagged data sources to untagged data analysis applications
US11785115B2 (en) Request tracing
CN117859309A (zh) 自动选择在其上执行任务的节点
US10992742B2 (en) Managing asset placement with respect to a distributed computing environment having a set of hosts
Pratap Yadav et al. A formal approach for Docker container deployment
US10778538B2 (en) Automated self-recovery of distributed services
US11762749B2 (en) Software application intelligence platform, and method thereof
US11875202B2 (en) Visualizing API invocation flows in containerized environments
US20050278694A1 (en) Describing Runtime Components of a Solution for a Computer System

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant