KR102118487B1 - 지속적인 통합 및 배포를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 방법 - Google Patents

지속적인 통합 및 배포를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 방법 Download PDF

Info

Publication number
KR102118487B1
KR102118487B1 KR1020190139432A KR20190139432A KR102118487B1 KR 102118487 B1 KR102118487 B1 KR 102118487B1 KR 1020190139432 A KR1020190139432 A KR 1020190139432A KR 20190139432 A KR20190139432 A KR 20190139432A KR 102118487 B1 KR102118487 B1 KR 102118487B1
Authority
KR
South Korea
Prior art keywords
quality inspection
quality
application
predetermined
source code
Prior art date
Application number
KR1020190139432A
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 KR1020190139432A priority Critical patent/KR102118487B1/ko
Application granted granted Critical
Publication of KR102118487B1 publication Critical patent/KR102118487B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Educational Administration (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • General Factory Administration (AREA)

Abstract

지속적인 통합 및 배포를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 방법이 제공된다. 일부 실시 예에 따른 컨테이너 기반 애플리케이션의 품질검사 시스템이 지속적인 통합 및 배포를 위해 자동으로 애플리케이션의 품질을 검사하는 방법은, 컨테이너 기반 애플리케이션을 개발하기 위해 구성되는 개발 프로세스, 상기 개발 프로세스의 다음 순서로 실행되는 품질분석 프로세스, 및 상기 품질분석 프로세스의 다음 순서로 실행되는 운영 프로세스 각각에서 품질검사 시 필요한 임계치를 개별적으로 설정하는 단계; 상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 중 어느 하나의 소정 프로세스에서, 상기 소정 프로세스에서의 품질검사를 위해 설정된 임계치를 이용하여 상기 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사를 실행하는 단계; 및 상기 소정 프로세스에서의 품질검사 결과를 획득하여 상기 품질검사 결과에 따라 상기 소정 프로세스의 다음 순서로 실행되는 프로세스를 실행할 것인지 여부를 결정하는 단계를 포함한다.

Description

지속적인 통합 및 배포를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 방법{AUTOMATIC QUALITY INSPECTION SYSTEM AND METHOD OF CONTAINER BASED APPLICATION FOR CI/CD}
본 발명은 지속적인 통합 및 배포(Continuous Integration and Continuous Delivery/Deployment)를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 그 품질검사 시스템의 검사방법에 관한 것이다.
최근 서버 인프라를 쉽게 구축할 수 있는 클라우드 컴퓨팅 기술이 보급되어 널리 활용되고 있고, 다양한 정보 공유 사이트와 오픈소스 프로젝트들을 통해 좀더 쉽게 애플리케이션이 개발 및 배포될 수 있는 환경이 조성되어 있다.
이와 관련하여 한국 등록특허공보 제1807806호(발명의 명칭: 클라우드 플랫폼에서 애플리케이션을 컨테이너화하는 방법)는 적은 크기의 컨테이너 이미지로 배포 및 업데이트가 효율적이며, 어디든지 이동이 가능한 클라우드 플랫폼에서 애플리케이션을 컨테이너화하는 방법을 제공하는 기술을 제안하고 있다.
이처럼 애플리케이션을 다양한 인프라에 구성하거나 배포하기에 앞서서 해당 애플리케이션의 개발, 품질분석, 운영 과정에서 발생되는 문제점을 체크하고, 각각의 과정을 검증할 필요성이 있다.
특히 마이크로서비스의 경우 각각의 독립적인 서비스 또는 애플리케이션의 수정 및 업데이트가 빈번하게 발생하므로, 개발, 품질분석, 운영 과정의 소요시간을 최소화하고 업무 효율을 증대시키면서도 마이크로서비스의 품질을 보장할 수 있는 방안이 필요하다.
본 발명의 일부 실시 예는 컨테이너 기반 애플리케이션의 품질을 자동으로 검사 내지 검증할 수 있는 시스템 및 방법을 제공하여 지속적인 통합 및 배포가 이루어질 수 있게끔 하고, 위 시스템 및 방법이 마이크로서비스 제공 시에도 활용될 수 있게 하는 데에 목적이 있다.
또한, 본 발명의 일부 실시 예는 컨테이너 기반 애플리케이션의 개발자, 테스트 담당자 및 운영자의 업무 효율성을 증대시키고 위 애플리케이션의 신뢰성 및 완성도를 향상시킬 수 있는 시스템 및 방법을 제공하는 데에 목적이 있다.
다만, 본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일부 실시 예에 따른 컨테이너 기반 애플리케이션의 품질검사 시스템이 지속적인 통합 및 배포를 위해 자동으로 애플리케이션의 품질을 검사하는 방법은, 컨테이너 기반 애플리케이션을 개발하기 위해 구성되는 개발 프로세스, 상기 개발 프로세스의 다음 순서로 실행되는 품질분석 프로세스, 및 상기 품질분석 프로세스의 다음 순서로 실행되는 운영 프로세스 각각에서 품질검사 시 필요한 임계치를 개별적으로 설정하는 단계; 상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 중 어느 하나의 소정 프로세스에서, 상기 소정 프로세스에서의 품질검사를 위해 설정된 임계치를 이용하여 상기 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사를 실행하는 단계; 및 상기 소정 프로세스에서의 품질검사 결과를 획득하여 상기 품질검사 결과에 따라 상기 소정 프로세스의 다음 순서로 실행되는 프로세스를 실행할 것인지 여부를 결정하는 단계를 포함한다.
또한 일부 실시 예에서, 상기 품질검사 시스템에 연결된 적어도 하나 이상의 컴퓨팅 장치로 상기 소정 프로세스에서의 품질검사 결과를 전송하여 상기 컴퓨팅 장치를 사용하는 개발자에게 상기 품질검사 결과를 리포팅 하는 단계를 더 포함할 수 있다.
이때, 상기 품질검사 결과에 소정 문제점이 포함되어 있는 경우, 상기 소정 문제점을 유발하는 소스코드 또는 프로세스 및 상기 컴퓨팅 장치의 사용자 정보를 이용하여 상기 소정 문제점을 유발하는 소스코드 또는 프로세스의 개발자를 식별하는 단계를 더 포함하고, 상기 리포팅 하는 단계는 상기 식별된 개발자의 컴퓨팅 장치로 상기 소정 문제점이 포함된 품질검사 결과를 전송하는 것을 특징으로 할 수 있다.
또한 일부 실시 예에서, 상기 품질검사 결과에 소정 문제점이 포함되어 있는 경우, 상기 소정 문제점을 유발하는 소스코드 또는 프로세스 및 상기 품질검사 시스템에 연결된 적어도 하나 이상의 컴퓨팅 장치의 사용자 정보를 이용하여 상기 소정 문제점을 유발하는 소스코드 또는 프로세스의 개발자를 식별하는 단계; 상기 식별된 개발자에게 상기 소정 문제점을 유발하는 소스코드 또는 프로세스에 대한 수정 업무를 할당하여 상기 식별된 개발자의 컴퓨팅 장치로 상기 할당된 수정 업무를 전송하는 단계; 및 상기 할당된 수정 업무의 처리과정을 모니터링 하는 단계를 더 포함할 수 있다.
또한 일부 실시 예에서, 상기 소정 프로세스에 포함된 빌드(build) 프로세스의 개시 조건이 충족되었는지 여부를 판단하는 단계; 및 상기 개시 조건이 충족되는 경우, 오픈소스 가상화 플랫폼과 연동하여 상기 소스코드 또는 프로세스를 포함하는 컨테이너 이미지를 이용하여 상기 빌드 프로세스를 개시하는 단계를 더 포함하고, 상기 품질검사를 실행하는 단계는 상기 개시 조건이 충족된 이후에 이루어지는 것을 특징으로 할 수 있다.
또한 일부 실시 예에서, 상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 중 적어도 어느 하나는 제1 오픈소스 도구를 이용하여 구성되고, 상기 개발 프로세스에 포함된 세부 프로세스, 상기 품질분석 프로세스에 포함된 세부 프로세스, 및 상기 운영 프로세스에 포함된 세부 프로세스 중 적어도 어느 하나는 상기 제1 오픈소스 도구와 상이한 적어도 하나 이상의 제2 오픈소스 도구를 이용하여 수행되며, 상기 제1, 제2 오픈소스 도구와 상이한 제3 오픈소스 도구를 이용하여 상기 임계치가 설정되는 한편 상기 품질검사가 실행되는 것을 특징으로 할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일부 실시 예에 따른 지속적인 통합 및 배포를 위해 컨테이너 기반 애플리케이션의 품질을 자동으로 검사하는 애플리케이션 품질검사 시스템은, 컨테이너 기반 애플리케이션을 개발하기 위해 구성되는 개발 프로세스, 상기 개발 프로세스의 다음 순서로 실행되는 품질분석 프로세스, 및 상기 품질분석 프로세스의 다음 순서로 실행되는 운영 프로세스 각각을 순차적으로 수행하는 프로세스 수행 서버; 및 상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 각각에서 품질검사 시 필요한 임계치를 개별적으로 설정하고, 상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 중 어느 하나의 소정 프로세스에서, 상기 소정 프로세스에서의 품질검사를 위해 설정된 임계치를 이용하여 상기 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사를 실행하는 품질검사 서버를 포함한다.
이때, 상기 프로세스 수행 서버는 상기 소정 프로세스에서의 품질검사 결과를 상기 품질검사 서버로부터 획득하여 상기 품질검사 결과에 따라 상기 소정 프로세스의 다음 순서로 실행되는 프로세스를 실행할 것인지 여부를 결정하는 것을 특징으로 한다.
또한 일부 실시 예에서, 상기 프로세스 수행 서버 또는 상기 품질검사 서버는 상기 애플리케이션 품질검사 시스템에 연결된 적어도 하나 이상의 컴퓨팅 장치로 상기 소정 프로세스에서의 품질검사 결과를 전송하여 상기 컴퓨팅 장치를 사용하는 개발자에게 상기 품질검사 결과를 리포팅 하는 것을 특징으로 할 수 있다.
또한 일부 실시 예에서, 상기 프로세스 수행 서버와 상기 품질검사 서버 중 적어도 어느 하나는 상기 품질검사 결과에 소정 문제점이 포함되어 있는 경우, 상기 소정 문제점을 유발하는 소스코드 또는 프로세스 및 상기 애플리케이션 품질검사 시스템에 연결된 적어도 하나 이상의 컴퓨팅 장치의 사용자 정보를 이용하여 상기 소정 문제점을 유발하는 소스코드 또는 프로세스의 개발자를 식별하고, 상기 식별된 개발자에게 상기 소정 문제점을 유발하는 소스코드 또는 프로세스에 대한 수정 업무를 할당하여 상기 식별된 개발자의 컴퓨팅 장치로 상기 할당된 수정 업무를 전송하며, 상기 할당된 수정 업무의 처리과정을 모니터링 하는 것을 특징으로 할 수 있다.
또한 일부 실시 예에서, 상기 프로세스 수행 서버는 상기 소정 프로세스에 포함된 빌드(build) 프로세스의 개시 조건이 충족되었는지 여부를 판단하고, 상기 개시 조건이 충족되는 경우, 오픈소스 가상화 플랫폼과 연동하여 상기 소스코드 또는 프로세스를 포함하는 컨테이너 이미지를 이용하여 상기 빌드 프로세스를 개시하며, 상기 품질검사 서버는 상기 개시 조건이 충족된 이후에 상기 오픈소스 가상화 플랫폼과 연동하여 상기 품질검사를 실행하는 것을 특징으로 할 수 있다.
또한 일부 실시 예에서, 상기 프로세스 수행 서버는 제1 오픈소스 도구를 이용하여 상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 중 적어도 하나를 구성하고, 상기 프로세스 수행 서버는 상기 제1 오픈소스 도구와 상이한 적어도 하나 이상의 제2 오픈소스 도구를 이용하여 상기 개발 프로세스에 포함된 세부 프로세스, 상기 품질분석 프로세스에 포함된 세부 프로세스, 및 상기 운영 프로세스에 포함된 세부 프로세스 중 적어도 어느 하나를 수행하며, 상기 품질검사 서버는 상기 제1, 제2 오픈소스 도구와 상이한 제3 오픈소스 도구를 이용하여 상기 임계치를 설정하는 한편 상기 품질검사를 실행하는 것을 특징으로 할 수 있다.
일부 실시 예에 따르면, 컨테이너 기반 애플리케이션의 품질을 자동으로 검사할 수 있는 환경을 구현함으로써, 반복적으로 이루어지는 업무에서 발생하는 효율 감소 및 생산성 저하 문제를 해결하고, 지속적인 통합 및 배포가 가능하게끔 하여 업무의 속도 향상, 효율성 및 편의성 증대와 같은 효과를 얻을 수 있다.
또한 개발 프로세스, 품질분석 프로세스, 및 운영 프로세스 각각을 컨테이너 기반으로 구성 및 생성할 수 있고(예를 들어 젠킨스의 파이프라인 플러그인을 이용함), 컨테이너 단위로 각 프로세스가 수행된 후 종료됨에 따라 컨테이너 실행 시 점유하는 자원을 효율적으로 이용 및 관리할 수 있다.
또한 소정 프로세스에 대한 품질검사 결과에 따라 소정 프로세스의 다음 순서로 실행되는 프로세스를 실행할 것인지 여부를 결정함으로써, 애플리케이션의 소스코드 또는 프로세스의 품질을 각 단계마다 체크할 수 있고, 완성도 내지 신뢰성을 확보할 수 있다.
또한 컨테이너 기반 애플리케이션은 마이크로서비스 제공을 위해 개발 또는 디자인될 수 있어서, 마이크로서비스 제공 시에도 그 애플리케이션의 개발, 테스트, 배포 과정이 용이하고 신속하게 이루어질 수 있다.
또한 소정 프로세스에 대한 품질검사 결과를 개발자에게 리포팅 하고, 경우에 따라 문제점 발생과 연관된 개발자에게 맞춤형으로 리포팅 함으로써, 해당 개발자는 이에 대해 민첩하게 대처할 수 있다.
또한 개발 프로세스, 품질분석 프로세스, 운영 프로세스 각각에 포함된 세부 프로세스가 그에 적합한 오픈소스 도구에 의해 실행되도록 구성할 수 있어, 높은 자유도를 제공할 수 있고, 비용적인 이득도 기대할 수 있다.
도 1은 본 발명의 일부 실시 예에 따른 애플리케이션 품질검사 시스템과 다른 구성 간의 관계를 전체적으로 도식화한 도면이다.
도 2는 도커 컨테이너 기반 가상화 시스템의 구조를 도식화한 도면이다.
도 3은 본 발명의 일부 실시 예에 따른 애플리케이션 품질검사 과정을 나타낸 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
또한, 본 발명은 본 명세서에 표시된 실시 예들의 모든 가능한 조합들을 망라한다. 본 발명의 다양한 실시 예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시 예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시 예로 구현될 수 있다. 또한, 각각의 개시된 실시 예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. 또한, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우 및 "통신 가능하도록 연결"되어 있는 경우도 포함한다.
명세서 전체에서, "지속적인 통합 (CI; Continuous Integration)"은 개발자에 의하여 애플리케이션(응용소프트웨어 프로그램)의 소스코드 또는 프로세스에 대한 추가, 삭제, 변경 등이 있는 경우 그 새로운 소스코드 또는 프로세스에 대해 빌드, 테스트 등이 자동으로 이루어질 수 있도록 구성된 환경 내지 방법을 의미한다.
또한 "지속적인 배포 (CD; Continuous Deployment)"는 "지속적인 전달 (CD; Continuous Delivery)"와 실질적으로 동일한 의미로 사용되고, 지속적인 통합이 이루어진 애플리케이션(변경 사항 적용된 상태)을 저장소에 자동으로 업로드 하고, 저장소에서 고객이나 일반 사용자가 사용 가능한 프로덕션 환경까지 자동으로 릴리스 하는 것을 포괄하는 개념이다.
일부 실시 예에서 컨테이너 기반 애플리케이션의 품질검사 시스템 및 품질검사 방법은 컨테이너 기반 애플리케이션을 함께 개발하는 다수의 개발자에게 편의성 및 업무 효율성을 제공하고, 운영자의 직접적인 개입 없이도 자동으로 애플리케이션의 품질을 검사하여 지속적인 통합 및 배포가 가능하게 하며, 업무의 효율성, 신뢰도 및 속도를 향상시킨다.
이하에서는 도면을 참고하여 본 발명에서 제안하는 애플리케이션 품질검사 시스템 및 방법에 관하여 상세히 설명하기로 한다.
도 1은 본 발명의 일부 실시 예에 따른 애플리케이션 품질검사 시스템과 다른 구성 간의 관계를 전체적으로 도식화한 도면이다.
도 1에 도시된 개발환경의 컴퓨팅 장치(11), 형상관리 시스템(SCM; Software Configuration Management, 20) 또는 저장소(repository, 20), 애플리케이션 품질검사 시스템(100), 사용환경의 컴퓨팅 시스템(30)은 별도로 설명하지 않는 한 다양한 통신 프로토콜을 이용하여 유무선 통신망 또는 네트워크를 통해 상호 통신할 수 있다.
여기서 네트워크는 예를 들어 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, LTE-A(Long Term Evolution-Advanced) 네트워크, 5G 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network) 등일 수 있고, 기술발전에 따라 추가되는 네트워크도 충분히 포함될 수 있다.
개발환경의 컴퓨팅 장치(11)는 개발자(10)에 의해 컨테이너 기반 애플리케이션을 개발하는 데에 사용되고, 컴퓨터, 휴대용 기기 등일 수 있다.
컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop), 태블릿 PC, 슬레이트 PC 등을 포함하고, 휴대용 기기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System) 단말, GSM(Global System for Mobile communications) 단말, PDC(Personal Digital Cellular) 단말, PHS(Personal Handyphone System) 단말, PDA(Personal Digital Assistant) 단말, IMT(International Mobile Telecommunication)-2000 단말, CDMA(Code Division Multiple Access)-2000 단말, W-CDMA(W-Code Division Multiple Access) 단말, WiBro(Wireless Broadband Internet) 단말, mVoIP(mobile Voice over Internet Protocol) 단말, 스마트 폰(Smart Phone), 웨어러블 장치 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 전자 장치를 포함할 수 있다.
개발환경의 컴퓨팅 장치(11)는 커밋(commit)을 포함하는 공지의 방식을 통해 컨테이너 기반 애플리케이션의 소스코드 또는 프로세스를 형상관리 시스템(SCM; Software Configuration Management, 20) 또는 저장소(repository, 20)로 전달한다.
형상관리 시스템(20) 또는 저장소(20)는 컨테이너 기반 애플리케이션의 소스코드 또는 프로세스(변경사항)를 기록하고, 그 소스코드 또는 프로세스에 대한 개정, 버전 관리, 백업 프로세스를 자동으로 처리하며, 오류 수정 프로세스에도 도움을 줄 수 있다.
예를 들어 저장소(20)는 깃허브(GitHub), 깃(Git), 서브버전(Subversion), 도커 허브(Docker Hub)일 수 있다.
사용환경의 컴퓨팅 시스템(30)은 다양한 목적을 가진 다양한 사용자에 의해 다양한 용도로 사용될 수 있다.
사용환경의 컴퓨팅 시스템(30)은 애플리케이션 품질검사 시스템(100)과 연동하여 할당된 작업을 처리하는 적어도 하나 이상의 호스트(30)를 포함하고, 복수의 호스트(30)는 클러스터를 구성할 수 있다.
호스트(30)는 동종업계 종사자들에게 공지되어 있는 컨테이너(Container) 기술에 따라 독립된 환경에서 애플리케이션을 실행시킬 수 있는데, 이를 "컨테이너 기반 애플리케이션"이라고 호칭한다.
이를 위해 호스트(30)는 컨테이너(31, 32)를 적어도 하나 생성할 수 있다.
컨테이너는 여러 개의 운영체제를 생성하기 위해 서버를 가상화하는 컴퓨팅 가상화(가상머신)와 달리 여러 개의 애플리케이션(다중 워크로드)을 구동하기 위해 운영체제를 가상화한다.
각 컨테이너(31, 32)에는 애플리케이션과 이를 구동하는데 필요한 모든 종속물, 라이브러리, 기타 실행파일(바이너리), 구성 파일 등을 하나의 패키지로 묶은 모듈이 배치될 수 있다.
이에 따라 호스트(30)는 생성된 컨테이너(31, 32)별로 독립적으로 애플리케이션(즉 컨테이너 기반 애플리케이션)을 실행시킬 수 있고, 컨테이너 이미지가 이용될 수 있다.
일부 실시 예에서 컨테이너는 종래 리눅스 컨테이너와 구별되는 도커(docker) 컨테이너일 수 있는데, 도커와 도커 컨테이너에 관하여 도 2를 참고하여 설명하기로 한다.
도 2는 도커 컨테이너 기반 가상화 시스템의 구조를 도식화한 도면이다.
도커는 리눅스 커널과 함께 씨그룹(cgroups) 및 네임스페이스와 같은 커널의 기능을 사용하여 프로세스 및 자원을 격리시킴으로써 격리된 프로세스가 해당 자원을 이용하여 독립적으로 실행될 수 있도록 한다.
즉 도커는 컨테이너의 자원, 파일 시스템, 네트워크를 기존 시스템과 격리시키고, 도커 이미지를 관리하고 공유하는 기능 및 도구를 제공한다.
도커는 분산 환경을 쉽게 구축할 수 있는 클라우드 시스템에 적용될 수 있고, 마이크로서비스에서 사용되는 경우 마이크로서비스의 각 서비스를 컨테이너로 배포할 수 있다.
그 내용에 관해서는 "www.docker.com"에서 확인할 수 있다.
도커는 도커 엔진, 도커 레지스트리(registry), 도커 컴포우즈(compose), 도커 머신, 도커 스왐(swarm) 등으로 구성된다.
도커 엔진은 도커 이미지를 생성하고 컨테이너를 실행하는 핵심 기능을 수행한다.
도커 레지스트리는 도커 이미지를 공개 및 공유한다.
도커 컴포우즈는 다수의 컨테이너를 관리한다.
도커 머신은 로컬의 가상머신이나 퍼블릭 클라우드에 도커 실행 환경을 구축한다.
도커 스왐은 다수의 도커 호스트를 마스터와 노드 구조로 클러스터화 하는 기능을 제공한다.
도커 이미지는 컨테이너 이미지로서 컨테이너 기반 애플리케이션 실행에 필요한 서버 프로그램, 코드, 컴파일된 실행 파일, 라이브러리 등을 묶은 파일을 의미하고, 저장소로 업로드(push)되거나 저장소로부터 다운로드 (pull)될 수 있다.
도커 컨테이너는 도커 이미지를 실행한 상태를 지칭하고, 도커 이미지로 여러 개의 도커 컨테이너를 만들 수 있다.
이를 통해 도 1에 도시된 컴퓨팅 시스템(11)의 개발환경이나 컴퓨팅 시스템(30)의 사용환경에 관계 없이 언제나 동일하게 컨테이너 기반 애플리케이션이 실행될 것을 보증한다.
도커는 인프라 스트럭쳐(41)와 호스트 운영체제(42)를 공유하고 호스트 운영체제(42) 위에 도커 엔진(43)을 두어, 도커 엔진(43)이 호스트 운영체제(42)와 여러 애플리케이션을 연결시킨다. 도커 이미지를 실행하면 여러 개의 도커 컨테이너(44a, 44b, 44c)가 만들어지고, 도커 엔진(43)은 각각의 실행파일, 라이브러리 등을 이용하여 각각의 애플리케이션을 독립적으로 실행할 수 있다.
이러한 도커는 후술할 것처럼 도 1에 도시된 프로세스 수행 서버(110)에 설치될 수 있다.
다시 도 1을 참고하여 애플리케이션 품질검사 시스템(100)에 관하여 설명한다.
애플리케이션 품질검사 시스템(100)은 적어도 하나 이상의 범용 컴퓨터, 특수 서버 컴퓨터(예를 들어, PC 서버, 유닉스 서버, 미드 레인지(mid-range) 서버, 메인 프레임 컴퓨터, 랙 장착형(rack-mounted) 서버 등), 서버 팜, 서버 클러스터, 또는 임의의 다른 적절한 배열 및/또는 조합으로 이루어져 있을 수 있다.
또한 애플리케이션 품질검사 시스템(100)은 적어도 하나 이상의 상이한 운영 체제를 포함할 수 있고, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 사용하여 구현될 수 있다.
또한 애플리케이션 품질검사 시스템(100)은 소프트웨어를 기반으로 컴퓨팅, 스토리지, 네트워크 자원을 관리할 수 있다.
또한 애플리케이션 품질검사 시스템(100)은 적어도 하나 이상의 응용프로그램 프로그래밍 인터페이스를 포함할 수 있다. 응용프로그램 프로그래밍 인터페이스는 표준화된 프로토콜, 아키텍처 스타일, 및/또는 포맷(예컨대, REST 프로토콜)에 따라 요청(그의 파라미터를 포함함)이 소정 프로그램으로부터 수신될 수 있게 할 수 있는 공통 또는 표준 인터페이스를 지원할 수 있다. 응용프로그램 프로그래밍 인터페이스는 통신 프로토콜에 따라 애플리케이션 품질검사 시스템(100)의 다양한 서비스에 대한 요청을 수신하거나 각 서비스와 관련된 데이터를 변환 또는 전환하도록 구성될 수 있다. 예를 들어, 응용프로그램 프로그래밍 인터페이스는 REST 프로토콜에 따른 요청을 지원하는 REST API일 수 있고, REST 프로토콜은 URI 또는 URL을 포함하는 포맷을 지원할 수 있다.
일부 실시 예에 따르면, 애플리케이션 품질검사 시스템(100)은 지속적인 통합 및 배포를 위해 컨테이너 기반 애플리케이션의 품질을 자동으로 검사하고, 프로세스 수행 서버(110) 및 품질검사 서버(120)를 포함하며, 이들은 서로 통신 가능하게 구성된다.
프로세스 수행 서버(110) 및 품질검사 서버(120)는 가상화된 클라우드 서버의 형태일 수 있으나, 물리적 서버의 형태로도 마련될 수도 있다. 또한 프로세스 수행 서버(110) 및 품질검사 서버(120)는 도 1에 별도 도시되었지만, 각각의 동작 및 기능을 통합하여 수행할 수 있는 통합 서버 형태로 구현될 수도 있다.
프로세스 수행 서버(110)는 형상관리 시스템(20) 또는 저장소(20)와 연동하여 다양한 데이터를 풀링(pulling) 내지 수신할 수 있다.
프로세스 수행 서버(110)는 컨테이너 기반 애플리케이션을 개발하기 위해 구성되는 개발 프로세스, 그 개발 프로세스의 다음 순서로 실행되는 품질분석 프로세스, 및 그 품질분석 프로세스의 다음 순서로 실행되는 운영 프로세스 각각을 순차적으로 수행한다.
여기서 컨테이너 기반 애플리케이션은 마이크로서비스 제공을 위해 개발되거나 디자인될 수 있고, 개발 프로세스, 품질분석 프로세스, 운영 프로세스 역시 마이크로서비스 제공을 위해 구성 또는 생성될 수 있다.
또한 개발 프로세스는 지속적인 통합과 관련성을 가지고, 품질분석 프로세스 및 운영 프로세스는 지속적인 배포와 관련성을 가질 수 있다.
따라서 마이크로서비스를 구성하는 일부분에 대한 추가나 변경이 필요한 경우 컨테이너 기반 애플리케이션에 그 추가나 변경된 부분을 신속하고 간단하게 반영함으로써 추가사항, 변경사항이 적용된 마이크로서비스를 제공할 수 있게 된다.
마이크로서비스는 단독으로 실행 가능하고 독립적으로 배치될 수 있는 작은 단위(모듈)로 기능을 분해하여 서비스하는 아키텍처 또는 그러한 각각의 기능을 수행하는 서비스로 구성된 프레임워크를 의미한다. 각각의 마이크로서비스는 공유나 프로세스 간 통신이 없어도 독립적으로 실행되며 운영 및 관리된다. 마이크로서비스 간의 연결은 응용프로그램 프로그래밍 인터페이스(API; Application Programming Service)를 이용한다.
품질검사 서버(120)는 개발 프로세스, 품질분석 프로세스, 및 운영 프로세스 각각에서 품질검사 시 필요한 임계치를 개별적으로 설정한다.
품질분석 프로세스에서의 품질검사용 임계치는 비즈니스 및 서비스의 용도에 따라 다르게 설정될 수 있다.
또한 품질분석 프로세스에서의 품질검사용 임계치는 개발 프로세스에서의 품질검사용 임계치 보다 높게 설정될 수 있고, 운영 프로세스에서의 품질검사용 임계치는 품질분석 프로세스에서의 품질검사용 임계치 보다 높게 설정될 수 있다.
이처럼 임계치를 다르게 설정해둠으로써, 컨테이너 기반 애플리케이션의 신뢰성을 더 높일 수 있다.
또한 품질검사 서버(120)는 개발 프로세스, 품질분석 프로세스, 및 운영 프로세스 중 어느 하나의 소정 프로세스에서, 소정 프로세스에서의 품질검사를 위해 설정된 임계치를 이용하여 컨테이너 기반 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사를 실행한다.
품질검사는 개발 프로세스, 품질분석 프로세스, 운영 프로세스에 포함된 세부 프로세스 중 하나로서 실행될 수 있고, 또는 이들 프로세스와 별개로 실행될 수도 있다.
이때, 프로세스 수행 서버(110)는 소정 프로세스에서의 품질검사 결과를 품질검사 서버(120)로부터 획득하여 위 품질검사 결과에 따라 소정 프로세스의 다음 순서로 실행되는 프로세스를 실행할 것인지 여부를 결정한다.
예를 들어 개발 프로세스에서 개발 프로세스에서의 품질검사용 임계치를 이용하여 현재 상태의 소스코드 또는 프로세스에 대한 품질검사가 실행되고, 그 품질검사 결과에 따를 때 현재 상태의 소스코드 또는 프로세스에 대한 수정 및 보완이 필요한 경우(개발 프로세스에서의 품질검사용 임계치를 만족하지 못한 경우), 프로세스 수행 서버(110)는 개발 프로세스 이후에 실행되는 품질분석 프로세스를 실행하지 않고, 현재 상태의 소스코드 또는 프로세스에 대한 수정 및 보완을 위해 필요한 후속 프로세스를 수행할 수 있다.
품질분석 프로세스나 운영 프로세스에서도 마찬가지로 이해될 수 있다. 즉 프로세스 수행 서버(110)는 운영 프로세스에서 품질검사 결과에 따를 때 현재 상태의 소스코드 또는 프로세스에 대한 수정 및 보완이 필요한 경우, 운영 프로세스 이후에 실행되는 라이브러리 관리 등의 후속 프로세스를 실행하지 않을 수 있다.
또한 프로세스 수행 서버(110) 또는 품질검사 서버(120)는 애플리케이션 품질검사 시스템(100)에 연결된 적어도 하나 이상의 컴퓨팅 장치(11)로 소정 프로세스에서의 품질검사 결과를 전송하여 컴퓨팅 장치(11)를 사용하는 개발자(10)에게 위 품질검사 결과를 리포팅 할 수 있다.
컴퓨팅 장치(11)의 사용자(10)는 웹(web), 위젯, 이메일, 메신저, RSS, 문자 메시지, SNS(Social Network Service) 등의 방식을 통해 검사 결과를 확인할 수 있으며, 품질검사 결과는 다양한 방식으로 시각화되어 컴퓨팅 장치(11)의 화면 상에 출력되거나 컴퓨팅 장치(11)의 알림 기능을 통해 전달될 수 있다.
한편 일부 실시 예에서 프로세스 수행 서버(110)는 제1 오픈소스 도구를 이용하여 개발 프로세스, 품질분석 프로세스, 및 운영 프로세스 중 적어도 하나를 구성 내지 생성할 수 있다.
예를 들어 제1 오픈소스 도구는 젠킨스(Jenkins)일 수 있고, 프로세스 수행 서버(110)는 젠킨스의 파이프라인 플러그인(plug-in)을 이용하여 개발 프로세스, 품질분석 프로세스, 및 운영 프로세스 중 적어도 어느 하나를 구성 내지 생성할 수 있다.
젠킨스는 애플리케이션 개발시 지속적인 통합을 위해 사용되는 도구를 제공하고, 그 내용에 관해서는 "jenkins-ci.org"에서 확인할 수 있다.
젠킨스는 개발 프로세스, 품질분석 프로세스, 및 운영 프로세스 각각에 포함된 세부 프로세스 예를 들어 빌드 프로세스, 단위 테스트 프로세스, 코드 점검 프로세스, UI 테스트 프로세스, 성능 점검 프로세스, 배포 프로세스의 자동화 수행을 위한 도구를 제공한다.
또한 젠킨스는 거의 모든 언어의 조합과 천 개 이상의 플러그인을 제공한다.
젠킨스의 파이프라인 플러그인은 연속적인 이벤트 혹은 업무의 통합 및 구현을 지원하며, 이에 관한 모든 코드는 깃허브에서 내려 받을 수 있다.
젠킨스의 파이프라인은 선언적 또는 스크립트일 수 있다.
젠킨스의 파이프라인은 예를 들어 아래와 같이 파이프라인(pipeline) 블록으로 시작하여 에이전트(agent)를 정의하고, 실행 가능한 스텝(steps)을 포함하는 스테이지(stages)를 정의하는 방식으로 선언될 수 있다.
pipeline {
agent {(…)
}
stages {
stage(‘Build‘) {
steps {(…)
}
}
stage(‘Test‘) {
steps {(…)
}
}
stage(‘Deploy‘) {
steps {(…)
}
}
}
}
또한 일부 실시 예에서 프로세스 수행 서버(110)는 제1 오픈소스 도구와 상이한 적어도 하나 이상의 제2 오픈소스 도구를 이용하여 개발 프로세스에 포함된 세부 프로세스, 품질분석 프로세스에 포함된 세부 프로세스, 및 운영 프로세스에 포함된 세부 프로세스 중 적어도 어느 하나를 수행할 수 있다.
제1 오픈소스 도구가 젠킨스인 경우, 각각의 제2 오픈소스 도구는 젠킨스와 연동 가능하다.
예를 들어 프로세스 수행 서버(110)는 제2 오픈소스 도구인 셀레늄(Selenium) 을 이용하여 세부 프로세스 중 하나인 UI 테스트 프로세스를 수행할 수 있고, 배포 프로세스 이전에 제2 오픈소스 도구인 제이메터(JMeter)를 이용하여 운영 환경과 동일한 환경으로 구성된 스테이지 환경에서 세부 프로세스 중 하나인 성능 점검 프로세스를 수행할 수 있다.
또한 일부 실시 예에서 프로세스 수행 서버(110)에는 오픈소스 가상화 플랫폼이 설치되어 있거나 프로세스 수행 서버(110)는 오픈소스 가상화 플랫폼과 연동할 수 있다.
오픈소스 가상화 플랫폼은 상술한 도커일 수 있다. 프로세스 수행 서버(110)에는 도커가 상술한 젠킨스 혹은 그 밖의 다른 오픈소스 도구와 함께 설치될 수 있다.
이때 프로세스 수행 서버(110)는 소정 프로세스(개발 프로세스, 품질분석 프로세스, 운영 프로세스 중 하나)에 포함된 빌드(build) 프로세스의 개시 조건이 충족되었는지 여부를 판단할 수 있다.
만약 개시 조건이 충족되는 경우, 프로세스 수행 서버(110)는 오픈소스 가상화 플랫폼와 연동하여 애플리케이션의 소스코드 또는 프로세스를 포함하는 컨테이너 이미지(예를 들어 도커 이미지 등)를 이용하여 빌드 프로세스를 개시할 수 있고, 품질검사 서버(120)는 개시 조건이 충족된 이후에 오픈소스 가상화 플랫폼과 연동하여 소정 프로세스에서 품질검사를 실행할 수 있다.
개시 조건은 일 예에 따르면 일정 시간마다 주기적으로 자동 개시되도록 설정될 수 있고, 다른 예에 따르면 저장소(20)와 연동하여 소스코드의 커밋(commit)이 감지되거나 변경된 소스가 저장소(20)로 푸쉬 되는 경우 개시되도록 설정될 수 있다.
나아가 일부 실시 예에서 품질검사 서버(120)는 상술한 제1, 제2 오픈소스 도구와 상이한 제3 오픈소스 도구를 이용하여 소정 프로세스에서의 품질검사 시 필요한 임계치를 개별적으로 설정하는 한편, 그 임계치를 이용하여 컨테이너 기반 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사를 실행할 수 있다.
예를 들어 품질검사 서버(120)는 제3 오픈소스 도구인 소나큐브(Sonarqube)를 이용하여 임계치 설정과 품질검사 실행을 수행할 수 있다.
품질검사 서버(120)에 소나큐브가 설치되는 경우, 컨테이너 기반 애플리케이션의 소스코드 또는 프로세스에 사용된 언어에 맞추어 설치과정이 진행될 수 있다. 소나큐브는 코드 품질을 지속적으로 검사하기 위하여 소스코드 또는 프로세스의 정적 분석을 수행함으로써, 버그, 코드 냄새, 중복코드, 미사용 변수, 코딩 규칙 적합성, 보안 취약성 등을 탐지할 수 있다.
정적 분석이란 애플리케이션의 실제 실행 없이 코드를 분석하는 것을 의미하고, 소나큐브의 스캐너가 정적 분석을 수행할 수 있다.
이때 품질검사 서버(120)는 소나큐브의 품질 프로파일 기능 또는 품질 게이트 기능을 이용하여 임계치를 설정할 수 있으며, 소나큐브의 스캐닝 기능을 이용하여 소스코드 또는 프로세스에 대한 정적 분석을 실행할 수 있다.
더불어 프로세스 수행 서버(110)와 품질검사 서버(120) 중 적어도 어느 하나는 품질검사 결과에 소정 문제점이 포함되어 있는 경우, 소정 문제점을 유발하는 소스코드 또는 프로세스 및 위 컴퓨팅 장치(11)의 사용자 정보를 이용하여 소정 문제점을 유발하는 소스코드 또는 프로세스의 개발자를 식별할 수 있다.
이러한 경우 프로세스 수행 서버(110)와 품질검사 서버(120) 중 적어도 어느 하나는 식별된 개발자에게 소정 문제점(예를 들어 코딩 규칙 위반 등)을 유발하는 소스코드 또는 프로세스에 대한 수정 업무를 할당하여 식별된 개발자의 컴퓨팅 장치로 그 할당된 수정 업무를 전송할 수 있고, 그 할당된 수정 업무의 처리과정을 모니터링 할 수 있다.
예를 들어 프로세스 수행 서버(110)와 품질검사 서버(120) 중 적어도 어느 하나는 오픈소스 도구인 레드마인(Redmine)을 이용하거나 연동하여 위 수정업무(일감)을 등록하고, 식별된 개발자(특히 마지막 수정작업을 수행한 개발자)에게 자동으로 위 수정 업무(일감)을 할당하며, 위 수정 업무의 처리과정을 모니터링 및 관리할 수 있다.
이하에서는 일부 실시 예에 따른 컨테이너 기반 애플리케이션의 품질검사 시스템이 지속적인 통합 및 배포를 위해 자동으로 애플리케이션의 품질을 검사하는 방법에 관하여 좀더 상세히 설명하기로 한다.
도 3은 본 발명의 일부 실시 예에 따른 애플리케이션 품질검사 과정을 나타낸 흐름도이다.
지속적인 통합 및 배포를 위하여, 컨테이너 기반 애플리케이션을 개발하기 위해 구성되는 개발 프로세스(A), 그 개발 프로세스(A)의 다음 순서로 실행되는 품질분석 프로세스(B), 그 품질분석 프로세스(B)의 다음 순서로 실행되는 운영 프로세스(C)가 구성 내지 생성된다.
각각의 프로세스(A, B, C)는 빌드 프로세스, 단위 테스트 프로세스, 코드 점검 프로세스, UI 테스트 프로세스, 배포 프로세스, 품질검사 프로세스, 성능 점검 프로세스 등과 같은 세부 프로세스를 포함할 수 있다. 품질검사 프로세스는 각각의 프로세스(A, B, C)에 포함되어 있지 않고 별개로 존재할 수도 있다.
각각의 프로세스(A, B, C)는 애플리케이션 품질검사 시스템에 의해 구성될 수 있고, 그와 연결된 다른 시스템에 의해 구성될 수도 있다.
일부 실시 예에서 개발 프로세스(A), 품질분석 프로세스(B), 및 운영 프로세스(C) 중 적어도 어느 하나는 제1 오픈소스 도구를 이용하여 구성될 수 있고, 제1 오픈소스 도구는 예를 들어 젠킨스(Jenkins)일 수 있으며, 각각의 프로세스(A, B, C)는 젠킨스의 파이프라인 플러그인을 이용하여 구성 내지 생성될 수 있다.
또한 애플리케이션 품질검사 시스템은 오픈소스 가상화 플랫폼과 연동할 수 있고, 예를 들어 오픈소스 가상화 플랫폼은 도커(docker)일 수 있다.
이때 애플리케이션 품질검사 시스템은 소정 프로세스에 포함된 빌드(build) 프로세스의 개시 조건이 충족되었는지 여부를 판단할 수 있다(S110).
위 개시 조건이 충족되는 경우, 애플리케이션 품질검사 시스템은 오픈소스 가상화 플랫폼과 연동하여 애플리케이션의 소스코드 또는 프로세스를 포함하는 컨테이너 이미지(예를 들어 도커 이미지 등)를 이용하여 빌드 프로세스를 개시할 수 있다.
세부 프로세스 중 하나인 빌드 프로세스 이외에, 개발 프로세스(A)에 포함된 세부 프로세스, 품질분석 프로세스(B)에 포함된 세부 프로세스, 및 운영 프로세스(C)에 포함된 세부 프로세스 중 적어도 어느 하나는 제1 오픈소스 도구와 상이한 적어도 하나 이상의 제2 오픈소스 도구를 이용하여 수행될 수 있다.
제2 오픈소스 도구는 예를 들어 셀레늄(Selenium), 제이메터(JMeter)일 수 있다.
다음으로 애플리케이션 품질검사 시스템은 개발 프로세스(A), 품질분석 프로세스(B), 및 운영 프로세스(C) 각각에서 품질검사 시 필요한 임계치를 포함하는 품질검사 조건을 개별적으로 설정한다(S120, S140, S160).
S120, S140, S160 단계에서 설정되는 품질검사 조건은 각기 상이할 수 있고, S160 단계에서의 품질검사 조건이 가장 엄격할 수 있으며, 이를 통해 신뢰성을 향상시킬 수 있다.
다음으로 애플리케이션 품질검사 시스템은 개발 프로세스(A), 품질분석 프로세스(B), 및 운영 프로세스(C) 중 어느 하나의 소정 프로세스에서, 소정 프로세스에서의 품질검사를 위해 설정된 임계치를 이용하여 컨테이너 기반 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사를 실행한다.
이때 품질검사는 상술한 개시 조건이 충족된 이후에 이루어질 수 있다.
또한 상술한 제1, 제2 오픈소스 도구와 상이한 제3 오픈소스 도구를 이용하여 품질검사 시 필요한 임계치가 설정되는 한편 컨테이너 기반 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사가 실행될 수 있다.
제3 오픈소스 도구는 예를 들어 소나큐브(Sonarqube)일 수 있다.
이러한 경우 애플리케이션 품질검사 시스템은 일 예로 소나큐브의 품질 프로파일 기능 또는 품질검사용 룰 세트를 이용하여 소정 프로세스에서의 품질검사 시 필요한 임계치를 설정할 수 있다.
품질검사용 룰 세트는 파인드 버그(Find Bugs), 파인드 시큐리티 버그(Find Security Bugs), PMD, 체크 스타일(Check Style)을 포함할 수 있고, 지정 내지 선택된 적어도 하나 이상의 룰에 의해 품질검사용 룰 세트가 설정될 수 있다.
또한 애플리케이션 품질검사 시스템은 다른 예로 소나큐브의 품질 게이트 기능을 이용하여 소정 프로세스(A, B 또는 C)에서의 품질검사 요소의 임계치를 설정할 수 있다.
예를 들어 품질검사 요소인 버그, 커버리지, 단위테스트 성공률 각각의 임계치는 10건, 50%, 80%로 설정될 수 있고, 품질검사 결과가 복수의 품질검사 요소에 대한 임계치 조건을 모두 만족할 것(버그 10건 초과 & 커버리지 50% 미만 & 단위테스트 성공률 80% 미만)을 품질검사 조건으로 할 수 있다.
그뿐만 아니라 애플리케이션 품질검사 시스템은 소나큐브와 연동하여 소나큐브의 스캐닝 기능을 이용하여 정적 분석을 실행할 수 있다.
다음으로 애플리케이션 품질검사 시스템은 소정 프로세스(A, B 또는 C)에서의 품질검사 결과를 획득하여 그 품질검사 결과에 따라 소정 프로세스(A, B 또는 C)의 다음 순서로 실행되는 프로세스를 실행할 것인지 여부를 결정한다(S130, S150, S170).
예를 들어 품질검사 결과가 S120, S140, S160 단계에서 설정된 품질검사 조건을 만족하지 못한다면 품질 게이트의 상태 값은 실패로 출력될 수 있다.
또한 일부 실시 예에서 애플리케이션 품질검사 시스템은 품질검사 시스템에 연결된 적어도 하나 이상의 컴퓨팅 장치로 소정 프로세스(A, B 또는 C)에서의 품질검사 결과를 전송하여 그 컴퓨팅 장치를 사용하는 개발자에게 위 품질검사 결과를 리포팅 할 수 있다.
만약 품질검사 결과에 소정 문제점이 포함되어 있는 경우, 애플리케이션 품질검사 시스템은 소정 문제점을 유발하는 소스코드 또는 프로세서 및 사용자 단말(개발환경의 컴퓨팅 장치)의 계정 정보, 식별 정보 등과 같은 사용자 정보를 이용하여 그 소정 문제점을 유발하는 소스코드 또는 프로세스의 개발자를 식별할 수 있다.
이 경우 애플리케이션 품질검사 시스템은 복수의 컴퓨팅 장치 중에서 식별결과에 따라 식별된 사용자(개발자)의 컴퓨팅 장치로 소정 문제점이 포함된 품질검사 결과를 맞춤형으로 전송할 수 있다.
나아가 일부 실시 예에서 애플리케이션 품질검사 시스템은 품질검사 결과에 소정 문제점이 포함되어 있는 경우, 소정 문제점을 유발하는 소스코드 또는 프로세스 및 애플리케이션 품질검사 시스템에 연결된 적어도 하나 이상의 컴퓨팅 장치의 사용자 정보를 이용하여 소정 문제점을 유발하는 소스코드 또는 프로세스의 개발자를 식별할 수 있다.
이 경우 애플리케이션 품질검사 시스템은 그 식별된 개발자에게 소정 문제점을 유발하는 소스코드 또는 프로세스에 대한 수정 업무를 할당하여 식별된 개발자의 컴퓨팅 장치로 그 할당된 수정 업무를 전송할 수 있고, 그 할당된 수정 업무의 처리과정을 모니터링 할 수도 있다.
한편, 본 발명의 일부 실시 예는 컴퓨터에 의해 실행 가능한 명령어를 실행하도록 하는 프로그램 또는 상술한 방법을 실행하도록 하는 컴퓨터 프로그램을 기록한 컴퓨터 가독형 기록매체(컴퓨터로 판독 가능한 기록 매체)의 형태로도 구현될 수 있다. 컴퓨터 가독형 기록매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 가독형 기록매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
지금까지 본 발명의 방법 및 시스템은 특정 실시 예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍처를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (11)

  1. 컨테이너 기반 애플리케이션의 품질검사 시스템이 지속적인 통합 및 배포를 위해 자동으로 애플리케이션의 품질을 검사하는 방법에 있어서,
    컨테이너 기반 애플리케이션을 개발하기 위해 구성되는 개발 프로세스, 상기 개발 프로세스의 다음 순서로 실행되는 품질분석 프로세스, 및 상기 품질분석 프로세스의 다음 순서로 실행되는 운영 프로세스 각각에서 품질검사 시 필요한 임계치를 개별적으로 설정하는 단계;
    상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 중 어느 하나의 소정 프로세스에서 상기 소정 프로세스의 개시 조건이 충족된 이후에, 상기 소정 프로세스에서의 품질검사를 위해 설정된 제1 임계치를 이용하여 상기 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사를 실행하는 단계;
    상기 소정 프로세스에서의 품질검사 결과를 획득하여 상기 품질검사 결과에 소정 문제점이 포함되어 있는지 여부에 따라 상기 소정 프로세스의 다음 순서로 실행되는 프로세스를 실행할 것인지 여부를 결정하는 단계;
    상기 소정 프로세스의 다음 순서로 실행되는 프로세스를 실행하기로 결정한 경우, 상기 소정 프로세스의 다음 순서로 실행되는 프로세스의 개시 조건이 충족된 이후에, 상기 소정 프로세스의 다음 순서로 실행되는 프로세스에서의 품질검사를 위해 설정된 제2 임계치를 이용하여 상기 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사를 실행하는 단계; 및
    상기 소정 프로세스의 다음 순서로 실행되는 프로세스를 실행하지 않기로 결정한 경우, 상기 소정 문제점을 유발하는 소스코드 또는 프로세스를 식별하는 단계를 포함하고,
    상기 제2 임계치는 상기 제1 임계치보다 높게 설정되는 것을 특징으로 하는 애플리케이션 품질검사 방법.
  2. 제 1 항에 있어서,
    상기 품질검사 시스템에 연결된 적어도 하나 이상의 컴퓨팅 장치로 상기 소정 프로세스에서의 품질검사 결과를 전송하여 상기 컴퓨팅 장치를 사용하는 개발자에게 상기 품질검사 결과를 리포팅 하는 단계를 더 포함하는 애플리케이션 품질검사 방법.
  3. 제 2 항에 있어서,
    상기 식별된 소스코드 또는 프로세스 및 상기 컴퓨팅 장치의 사용자 정보를 이용하여 상기 식별된 소스코드 또는 프로세스의 개발자를 식별하는 단계를 더 포함하고,
    상기 리포팅 하는 단계는
    상기 식별된 개발자의 컴퓨팅 장치로 상기 소정 문제점이 포함된 품질검사 결과를 전송하는 것을 특징으로 하는 애플리케이션 품질검사 방법.
  4. 제 1 항에 있어서,
    상기 식별된 소스코드 또는 프로세스 및 상기 품질검사 시스템에 연결된 적어도 하나 이상의 컴퓨팅 장치의 사용자 정보를 이용하여 상기 식별된 소스코드 또는 프로세스의 개발자를 식별하는 단계;
    상기 식별된 개발자에게 상기 식별된 소스코드 또는 프로세스에 대한 수정 업무를 할당하여 상기 식별된 개발자의 컴퓨팅 장치로 상기 할당된 수정 업무를 전송하는 단계; 및
    상기 할당된 수정 업무의 처리과정을 모니터링 하는 단계를 더 포함하는 애플리케이션 품질검사 방법.
  5. 제 1 항에 있어서,
    상기 소정 프로세스에 포함된 빌드(build) 프로세스의 개시 조건이 충족되었는지 여부를 판단하는 단계; 및
    상기 개시 조건이 충족되는 경우, 오픈소스 가상화 플랫폼과 연동하여 상기 소스코드 또는 프로세스를 포함하는 컨테이너 이미지를 이용하여 상기 빌드 프로세스를 개시하는 단계를 더 포함하는 애플리케이션 품질검사 방법.
  6. 제 1 항에 있어서,
    상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 중 적어도 어느 하나는 제1 오픈소스 도구를 이용하여 구성되고,
    상기 개발 프로세스에 포함된 세부 프로세스, 상기 품질분석 프로세스에 포함된 세부 프로세스, 및 상기 운영 프로세스에 포함된 세부 프로세스 중 적어도 어느 하나는 상기 제1 오픈소스 도구와 상이한 적어도 하나 이상의 제2 오픈소스 도구를 이용하여 수행되며,
    상기 제1, 제2 오픈소스 도구와 상이한 제3 오픈소스 도구를 이용하여 상기 제1 임계치 및 제2 임계치가 각각 다르게 설정되는 한편 상기 품질검사가 실행되는 것을 특징으로 하는 애플리케이션 품질검사 방법.
  7. 지속적인 통합 및 배포를 위해 컨테이너 기반 애플리케이션의 품질을 자동으로 검사하는 애플리케이션 품질검사 시스템에 있어서,
    컨테이너 기반 애플리케이션을 개발하기 위해 구성되는 개발 프로세스, 상기 개발 프로세스의 다음 순서로 실행되는 품질분석 프로세스, 및 상기 품질분석 프로세스의 다음 순서로 실행되는 운영 프로세스 각각을 순차적으로 수행하는 프로세스 수행 서버; 및
    상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 각각에서 품질검사 시 필요한 임계치를 개별적으로 설정하고, 상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 중 어느 하나의 소정 프로세스에서 상기 소정 프로세스의 개시 조건이 충족된 이후에, 상기 소정 프로세스에서의 품질검사를 위해 설정된 제1 임계치를 이용하여 상기 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사를 실행하는 품질검사 서버를 포함하고,
    상기 프로세스 수행 서버는
    상기 소정 프로세스에서의 품질검사 결과를 상기 품질검사 서버로부터 획득하여 상기 품질검사 결과에 소정 문제점이 포함되어 있는지 여부에 따라 상기 소정 프로세스의 다음 순서로 실행되는 프로세스를 실행할 것인지 여부를 결정하며,
    상기 품질검사 서버는
    상기 프로세스 수행 서버가 상기 소정 프로세스의 다음 순서로 실행되는 프로세스를 실행하기로 결정한 경우, 상기 소정 프로세스의 다음 순서로 실행되는 프로세스의 개시 조건이 충족된 이후에, 상기 소정 프로세스의 다음 순서로 실행되는 프로세스에서의 품질검사를 위해 설정된 제2 임계치를 이용하여 상기 애플리케이션의 소스코드 또는 프로세스에 대한 품질검사를 실행하고,
    상기 프로세스 수행 서버가 상기 소정 프로세스의 다음 순서로 실행되는 프로세스를 수행하지 않기로 결정한 경우, 상기 소정 문제점을 유발하는 소스코드 또는 프로세스를 식별하며,
    상기 제2 임계치는 상기 제1 임계치보다 높게 설정되는 것을 특징으로 하는 애플리케이션 품질검사 시스템.
  8. 제 7 항에 있어서,
    상기 프로세스 수행 서버 또는 상기 품질검사 서버는
    상기 애플리케이션 품질검사 시스템에 연결된 적어도 하나 이상의 컴퓨팅 장치로 상기 소정 프로세스에서의 품질검사 결과를 전송하여 상기 컴퓨팅 장치를 사용하는 개발자에게 상기 품질검사 결과를 리포팅 하는 것을 특징으로 하는 애플리케이션 품질검사 시스템.
  9. 제 7 항에 있어서,
    상기 프로세스 수행 서버와 상기 품질검사 서버 중 적어도 어느 하나는
    상기 식별된 소스코드 또는 프로세스 및 상기 애플리케이션 품질검사 시스템에 연결된 적어도 하나 이상의 컴퓨팅 장치의 사용자 정보를 이용하여 상기 식별된 소스코드 또는 프로세스의 개발자를 식별하고,
    상기 식별된 개발자에게 상기 식별된 소스코드 또는 프로세스에 대한 수정 업무를 할당하여 상기 식별된 개발자의 컴퓨팅 장치로 상기 할당된 수정 업무를 전송하며,
    상기 할당된 수정 업무의 처리과정을 모니터링 하는 것을 특징으로 하는 애플리케이션 품질검사 시스템.
  10. 제 7 항에 있어서,
    상기 프로세스 수행 서버는
    상기 소정 프로세스에 포함된 빌드(build) 프로세스의 개시 조건이 충족되었는지 여부를 판단하고,
    상기 개시 조건이 충족되는 경우, 오픈소스 가상화 플랫폼과 연동하여 상기 소스코드 또는 프로세스를 포함하는 컨테이너 이미지를 이용하여 상기 빌드 프로세스를 개시하는 것을 특징으로 하는 애플리케이션 품질검사 시스템.
  11. 제 7 항에 있어서,
    상기 프로세스 수행 서버는 제1 오픈소스 도구를 이용하여 상기 개발 프로세스, 상기 품질분석 프로세스, 및 상기 운영 프로세스 중 적어도 하나를 구성하고,
    상기 프로세스 수행 서버는 상기 제1 오픈소스 도구와 상이한 적어도 하나 이상의 제2 오픈소스 도구를 이용하여 상기 개발 프로세스에 포함된 세부 프로세스, 상기 품질분석 프로세스에 포함된 세부 프로세스, 및 상기 운영 프로세스에 포함된 세부 프로세스 중 적어도 어느 하나를 수행하며, 상기 품질검사 서버는 상기 제1, 제2 오픈소스 도구와 상이한 제3 오픈소스 도구를 이용하여 상기 제1 임계치 및 제2 임계치를 각각 다르게 설정하는 한편 상기 품질검사를 실행하는 것을 특징으로 하는 애플리케이션 품질검사 시스템.
KR1020190139432A 2019-11-04 2019-11-04 지속적인 통합 및 배포를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 방법 KR102118487B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190139432A KR102118487B1 (ko) 2019-11-04 2019-11-04 지속적인 통합 및 배포를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190139432A KR102118487B1 (ko) 2019-11-04 2019-11-04 지속적인 통합 및 배포를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102118487B1 true KR102118487B1 (ko) 2020-06-03

Family

ID=71087658

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190139432A KR102118487B1 (ko) 2019-11-04 2019-11-04 지속적인 통합 및 배포를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102118487B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112379969A (zh) * 2020-11-13 2021-02-19 中国人寿保险股份有限公司 一种基于容器化应用的持续集成交付方法及相关设备
KR102235029B1 (ko) * 2020-10-05 2021-04-02 주식회사 인재아이엔씨 지속적인 통합 및 배포를 위한 보안 검증 시스템 및 방법
KR102658479B1 (ko) 2023-04-21 2024-04-17 주식회사 파이미디어랩 품질 검사 서버 및 이의 실행 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005173788A (ja) * 2003-12-09 2005-06-30 Ibm Japan Ltd オートノミック・コンピューティングシステム、実行環境制御方法及びプログラム
JP2013218607A (ja) * 2012-04-11 2013-10-24 Mitsubishi Electric Corp ソフトウェア品質評価装置、ソフトウェア品質評価方法、及び、プログラム
KR101506656B1 (ko) * 2013-10-29 2015-03-27 주식회사 레인트 애플리케이션 품질 관리를 위한 시스템 및 그 방법
US20190028336A1 (en) * 2017-07-21 2019-01-24 Accenture Global Solutions Limited Automatic provisioning of a software development environment
US20190171550A1 (en) * 2016-08-09 2019-06-06 SeaLights Technologies LTD System and method for continuous testing and delivery of software

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005173788A (ja) * 2003-12-09 2005-06-30 Ibm Japan Ltd オートノミック・コンピューティングシステム、実行環境制御方法及びプログラム
JP2013218607A (ja) * 2012-04-11 2013-10-24 Mitsubishi Electric Corp ソフトウェア品質評価装置、ソフトウェア品質評価方法、及び、プログラム
KR101506656B1 (ko) * 2013-10-29 2015-03-27 주식회사 레인트 애플리케이션 품질 관리를 위한 시스템 및 그 방법
US20190171550A1 (en) * 2016-08-09 2019-06-06 SeaLights Technologies LTD System and method for continuous testing and delivery of software
US20190028336A1 (en) * 2017-07-21 2019-01-24 Accenture Global Solutions Limited Automatic provisioning of a software development environment

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102235029B1 (ko) * 2020-10-05 2021-04-02 주식회사 인재아이엔씨 지속적인 통합 및 배포를 위한 보안 검증 시스템 및 방법
CN112379969A (zh) * 2020-11-13 2021-02-19 中国人寿保险股份有限公司 一种基于容器化应用的持续集成交付方法及相关设备
CN112379969B (zh) * 2020-11-13 2024-04-16 中国人寿保险股份有限公司 一种基于容器化应用的持续集成交付方法及相关设备
KR102658479B1 (ko) 2023-04-21 2024-04-17 주식회사 파이미디어랩 품질 검사 서버 및 이의 실행 방법

Similar Documents

Publication Publication Date Title
US10606739B2 (en) Automated program code analysis and reporting
US11586461B2 (en) Service creation and management
US10042636B1 (en) End-to end project management platform with artificial intelligence integration
US9667489B2 (en) Generation and management of computing infrastructure instances
US11455184B2 (en) End-to-end validation of virtual machines
US8812911B2 (en) Distributed testing of a software platform
US20180046457A1 (en) Method and system for enhancing application container and host operating system security in a multi-tenant computing environment
KR102118487B1 (ko) 지속적인 통합 및 배포를 위한 컨테이너 기반 애플리케이션의 자동 품질검사 시스템 및 방법
JP2019509681A (ja) クラウド検証及びテスト自動化
US10892948B2 (en) Creating and using service control functions
US11900131B2 (en) Dynamic remediation actions in response to configuration checks in an information processing system
US11689641B2 (en) Resiliency control engine for network service mesh systems
US20170123777A1 (en) Deploying applications on application platforms
CN111831567B (zh) 应用的测试环境配置方法、装置、系统和介质
US10705895B2 (en) Device based automated tool integration for lifecycle management platform
US11494184B1 (en) Creation of transportability container files for serverless applications
US11531526B1 (en) Creating portable serverless applications
US11513833B1 (en) Event listener interface for container-based execution of serverless functions
EP3379409B1 (en) Automated program code analysis and reporting
US10203970B2 (en) Dynamic configuration of native functions to intercept
EP3220263B1 (en) Evaluation framework for cloud readiness of virtual appliances to enforce the suitability for automated self-provisioning
US20230385045A1 (en) Method, device, and computer program product for upgrading virtual system
US20230281054A1 (en) Computer System Execution Environment Builder Tool
CN115955409A (zh) 一种变更编排方法及相关装置

Legal Events

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