KR102050188B1 - 마이크로서비스 시스템 및 방법 - Google Patents

마이크로서비스 시스템 및 방법 Download PDF

Info

Publication number
KR102050188B1
KR102050188B1 KR1020190014740A KR20190014740A KR102050188B1 KR 102050188 B1 KR102050188 B1 KR 102050188B1 KR 1020190014740 A KR1020190014740 A KR 1020190014740A KR 20190014740 A KR20190014740 A KR 20190014740A KR 102050188 B1 KR102050188 B1 KR 102050188B1
Authority
KR
South Korea
Prior art keywords
log
proxy
service
communication
unit
Prior art date
Application number
KR1020190014740A
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 KR1020190014740A priority Critical patent/KR102050188B1/ko
Application granted granted Critical
Publication of KR102050188B1 publication Critical patent/KR102050188B1/ko
Priority to PCT/KR2020/001614 priority patent/WO2020162680A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers
    • H04L67/2838
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1002
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 컨테이너 플랫폼 기반에서 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 마이크로서비스 플랫폼을 포함하고, 상기 마이크로서비스 플랫폼은 상기 각 단위 서비스마다 배치되어 상기 단위 서비스 간의 통신 연결을 대행하는 프록시, 상기 단위 서비스가 새롭게 배포될 때마다 상기 프록시를 배치하고, 이후 상기 프록시를 지속적으로 관리하는 폴리시 매니저, 임의의 사용자 또는 시스템에 의해 상기 프록시가 제어되지 않도록 제어 접속 인증을 수행하는 세큐리티 매니저, 상기 각 프록시로부터 로그를 수집하고, 수집된 상기 로그를 외부의 저장소에 저장하는 로그 콜렉터, 상기 로그 콜렉터에 의해 상기 외부의 저장소에 저장된 상기 로그를 읽어들여 서비스의 동작을 분석하는 로그 애널라이저를 포함하며, 상기 프록시는 상기 각 단위 서비스 간의 데이터 송수신 대행, 상기 단위 서비스 간의 보안 연결(TLS), 상기 단위 서비스 간의 L4 부하 분산(L4 수준의 라운드 로빈 방식, 가중치 방식), 상기 단위 서비스 간의 L7 부하 분산(서비스 요청 헤더의 내용 기반), 상대 단위 서비스의 헬스체크, 상대 단위 서비스와의 통신 장애 대응(재전송·타임아웃·서킷브레이커), 상대 단위 서비스와의 통신 제어(동시 접속자 제한, 동시 요청수 제한), 상기 폴리시 매니저와의 통신(폴리시의 실시간 동기), 상기 세큐리티 매니저와의 통신(암호화 키 접근), 상기 단위 서비스들 간의 통신 중 발생하는 오류에 대한 처리 기능 중 적어도 하나를 구현하고, 상기 각 단위 서비스가 복수의 인스턴스로 동작할 때, 상기 각 인스턴스로의 부하 분산 역할도 함께 수행하며, 상기 부하 분산은 L4 수준의 라운드 로빈 방식, 가중치 방식, 서비스 요청 헤더의 내용을 기반으로 하는 L7 수준의 지능화된 부하 분산 중 적어도 하나를 포함하며, 상기 폴리시 매니저는 상기 프록시가 수행하는 부하 분산과 통신 오류 대응에 대한 서비스 정책을 정의하고, 상기 각 단위 서비스에게 정의된 정책을 실시간으로 동기화시키고, 상기 로그 콜렉터는 상기 프록시에 상기 로그 생성과 전송 라이브러리 제공, 상기 프록시로부터 상기 로그 수신과 저장, 상기 로그 애널라이저의 규격에 맞게 로그 포맷 정합, 상기 로그 수신량에 따른 인스턴스 자동 확장 기능 중 적어도 하나를 구현하며, 상기 로그 애널라이저는 상기 각 단위 서비스 구간 중 장애 지점과 그 처리 상태를 파악하고, 상기 각 단위 서비스 구간의 응답 속도를 비교하여 전체 서비스의 병목 지점을 찾아내는 마이크로서비스 시스템을 제공한다.
본 발명에 의한 마이크로서비스 시스템은 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리, 프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있는 장점을 갖는다.

Description

마이크로서비스 시스템 및 방법{Microservice system and method thereof}
본 발명은 마이크로서비스 시스템 및 방법에 관한 것으로서, 보다 상세하게는 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리·프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있는 마이크로서비스 시스템 및 방법에 관한 것이다.
마이크로서비스란 하나의 서비스를 여러 개의 부분 업무 영역으로 나눈 후, 각 개별 영역을 완결된 작은 단위의 서비스들의 연결로 구성하는 소프트웨어 설계와 개발 방법론이다.
마이크로서비스는 웹 기반 온라인 서비스의 글로벌화와 대용량화에 따라 서비스의 안정성을 위해서 분산 구조의 네트워크 시스템 설계 방식으로 등장하였으며, 빠르게 변화하는 비즈니스 환경에 맞춰 서비스의 변경과 개선을 유연하고 빠른 주기로 지속적으로 배포할 수 있는 아키텍처로 각광받으며 전 세계적으로 확산되어 가고 있다.
마이크로서비스는 구조적으로 많은 단위 서비스로 나누어져 있고, 각 단위 서비스마다 수많은 통신연결을 가지게 된다. 따라서 마이크로서비스 구조로 구축하기 위해서는 새롭게 고려할 개발 사항이 크게 증가하고, 복잡한 구조를 가진 서비스를 안정적으로 운영하기 위해 많은 노력과 투자가 필요하다.
이러한 마이크로서비스를 도입하기 위해서는 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경이 필요할 것이다.
대한민국 공개특허 제10-2015-0142871호(2015. 12. 23. 공개)
이에 본 발명은 이러한 상기 문제점을 해결하기 위해 창출된 것으로, 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리·프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있는 마이크로서비스 시스템 및 방법을 제공하는 데 그 목적이 있다.
그러나 본 발명의 기술적 과제들은 위에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시례에 따른 마이크로서비스 시스템은 컨테이너 플랫폼 기반에서 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 마이크로서비스 플랫폼을 포함하고, 상기 마이크로서비스 플랫폼은 상기 각 단위 서비스마다 배치되어 상기 단위 서비스 간의 통신 연결을 대행하는 프록시, 상기 단위 서비스가 새롭게 배포될 때마다 상기 프록시를 배치하고, 이후 상기 프록시를 지속적으로 관리하는 폴리시 매니저, 임의의 사용자 또는 시스템에 의해 상기 프록시가 제어되지 않도록 제어 접속 인증을 수행하는 세큐리티 매니저, 상기 각 프록시로부터 로그를 수집하고, 수집된 상기 로그를 외부의 저장소에 저장하는 로그 콜렉터, 상기 로그 콜렉터에 의해 상기 외부의 저장소에 저장된 상기 로그를 읽어들여 서비스의 동작을 분석하는 로그 애널라이저를 포함하며, 상기 프록시는 상기 각 단위 서비스 간의 데이터 송수신 대행, 상기 단위 서비스 간의 보안 연결(TLS), 상기 단위 서비스 간의 L4 부하 분산(L4 수준의 라운드 로빈 방식, 가중치 방식), 상기 단위 서비스 간의 L7 부하 분산(서비스 요청 헤더의 내용 기반), 상대 단위 서비스의 헬스체크, 상대 단위 서비스와의 통신 장애 대응(재전송·타임아웃·서킷브레이커), 상대 단위 서비스와의 통신 제어(동시 접속자 제한, 동시 요청수 제한), 상기 폴리시 매니저와의 통신(폴리시의 실시간 동기), 상기 세큐리티 매니저와의 통신(암호화 키 접근), 상기 단위 서비스들 간의 통신 중 발생하는 오류에 대한 처리 기능 중 적어도 하나를 구현하고, 상기 각 단위 서비스가 복수의 인스턴스로 동작할 때, 상기 각 인스턴스로의 부하 분산 역할도 함께 수행하며, 상기 부하 분산은 L4 수준의 라운드 로빈 방식, 가중치 방식, 서비스 요청 헤더의 내용을 기반으로 하는 L7 수준의 지능화된 부하 분산 중 적어도 하나를 포함하며, 상기 폴리시 매니저는 상기 프록시가 수행하는 부하 분산과 통신 오류 대응에 대한 서비스 정책을 정의하고, 상기 각 단위 서비스에게 정의된 정책을 실시간으로 동기화시키고, 상기 로그 콜렉터는 상기 프록시에 상기 로그 생성과 전송 라이브러리 제공, 상기 프록시로부터 상기 로그 수신과 저장, 상기 로그 애널라이저의 규격에 맞게 로그 포맷 정합, 상기 로그 수신량에 따른 인스턴스 자동 확장 기능 중 적어도 하나를 구현하며, 상기 로그 애널라이저는 상기 각 단위 서비스 구간 중 장애 지점과 그 처리 상태를 파악하고, 상기 각 단위 서비스 구간의 응답 속도를 비교하여 전체 서비스의 병목 지점을 찾아낸다.
상기 프록시는 상기 로그 콜렉터가 제공하는 라이브러리를 이용한 로그/트레이스(Log/Trace)의 로컬(Local) 저장, 상기 로그 콜렉터가 제공하는 라이브러리를 이용한 상기 로그 콜렉터로의 전송 기능 중 적어도 하나를 구현한다.
상기 폴리시 매니저는 제어를 위한 API 접속 인증, L4/L7 부하 분산 정책 생성과 저장, 상대 단위 서비스와의 통신 장애 대응을 위한 정책 생성과 저장, 상대 단위 서비스와의 통신제어, 보안 통신을 위한 정책 생성과 저장, 상기 프록시와의 통신(폴리시의 실시간 동기) 기능 중 적어도 하나를 구현한다.
상기 세큐리티 매니저는 임의의 프록시가 설치되어 비정상적인 동작을 유발하지 못하도록 상기 프록시를 인증하고, 상기 단위 서비스에 각각 설치된 상기 프록시 간에 벌어지는 데이터 통신에 대해서도 암호화된 TLS 보안 접속을 할 수 있도록 암호화 키를 관리한다.
상기 세큐리티 매니저는 제어를 위한 API 접속 인증, 상기 단위 서비스 간 암호화 통신을 위한 인증 키 발급과 저장, 상기 프록시와의 통신 기능 중 적어도 하나를 구현한다.
상기 로그 콜렉터는 수집하는 상기 로그의 양에 따라 성능 지연이 없도록 빠르게 확장 가능한 구조를 가지고, 상기 외부의 저장소의 장애 상황을 고려하여 수집된 상기 로그가 유실되지 않도록 고가용성의 캐시 구조를 갖는다.
상기 로그 애널라이저에 의해 분석 파악된 결과는 트래픽 라우팅(Traffic Routing)의 서비스 정책을 조정하거나 해당 단위 서비스의 기능 변경 또는 성능 개선에 사용된다.
상기 로그 애널라이저는 상기 로그 콜렉터로부터 중계된 상기 로그의 최종 저장, 상기 로그의 분석 자동화 도구 개발(장애·병목·지연, 리소스 과부하의 탐지와 예상), 필수 분석 기능의 대시보드 기능 중 적어도 하나를 구현한다.
또한 본 발명의 실시례에 따른 마이크로서비스 방법은 컨테이너 플랫폼 기반에서 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 마이크로서비스 플랫폼에서 프록시가 상기 각 단위 서비스마다 배치되어 상기 단위 서비스 간의 통신 연결을 대행하는 단계; 상기 마이크로서비스 플랫폼에서 폴리시 매니저가 상기 단위 서비스가 새롭게 배포될 때마다 상기 프록시를 배치하고, 이후 상기 프록시를 지속적으로 관리하는 단계; 상기 마이크로서비스 플랫폼에서 세큐리티 매니저가 임의의 사용자 또는 시스템에 의해 상기 프록시가 제어되지 않도록 제어 접속 인증을 수행하는 단계; 상기 마이크로서비스 플랫폼에서 로그 콜렉터가 상기 각 프록시로부터 로그를 수집하고, 수집된 상기 로그를 외부의 저장소에 저장하는 단계; 상기 마이크로서비스 플랫폼에서 로그 애널라이저가 상기 로그 콜렉터에 의해 상기 외부의 저장소에 저장된 상기 로그를 읽어들여 서비스의 동작을 분석하는 단계; 상기 프록시가 상기 각 단위 서비스 간의 데이터 송수신 대행, 상기 단위 서비스 간의 보안 연결(TLS), 상기 단위 서비스 간의 L4 부하 분산(L4 수준의 라운드 로빈 방식, 가중치 방식), 상기 단위 서비스 간의 L7 부하 분산(서비스 요청 헤더의 내용 기반), 상대 단위 서비스의 헬스체크, 상대 단위 서비스와의 통신 장애 대응(재전송·타임아웃·서킷브레이커), 상대 단위 서비스와의 통신 제어(동시 접속자 제한, 동시 요청수 제한), 상기 폴리시 매니저와의 통신(폴리시의 실시간 동기), 상기 세큐리티 매니저와의 통신(암호화 키 접근), 상기 단위 서비스들 간의 통신 중 발생하는 오류에 대한 처리 기능 중 적어도 하나를 구현하는 단계; 상기 프록시가 상기 각 단위 서비스가 복수의 인스턴스로 동작할 때, 상기 각 인스턴스로의 부하 분산 역할도 함께 수행하는 단계; 상기 폴리시 매니저가 상기 프록시가 수행하는 부하 분산과 통신 오류 대응에 대한 서비스 정책을 정의하고, 상기 각 단위 서비스에게 정의된 정책을 실시간으로 동기화시키는 단계; 상기 로그 콜렉터가 상기 프록시에 상기 로그 생성과 전송 라이브러리 제공, 상기 프록시로부터 상기 로그 수신과 저장, 상기 로그 애널라이저의 규격에 맞게 로그 포맷 정합, 상기 로그 수신량에 따른 인스턴스 자동 확장 기능 중 적어도 하나를 구현하는 단계; 및 상기 로그 애널라이저가 상기 각 단위 서비스 구간 중 장애 지점과 그 처리 상태를 파악하고, 상기 각 단위 서비스 구간의 응답 속도를 비교하여 전체 서비스의 병목 지점을 찾아내는 단계를 포함하고, 상기 부하 분산은 L4 수준의 라운드 로빈 방식, 가중치 방식, 서비스 요청 헤더의 내용을 기반으로 하는 L7 수준의 지능화된 부하 분산 중 적어도 하나를 포함한다.
상기 프록시가 상기 로그 콜렉터가 제공하는 라이브러리를 이용한 로그/트레이스(Log/Trace)의 로컬(Local) 저장, 상기 로그 콜렉터가 제공하는 라이브러리를 이용한 상기 로그 콜렉터로의 전송 기능 중 적어도 하나를 구현하는 단계를 더 포함한다.
상기 폴리시 매니저가 제어를 위한 API 접속 인증, L4/L7 부하 분산 정책 생성과 저장, 상대 단위 서비스와의 통신 장애 대응을 위한 정책 생성과 저장, 상대 단위 서비스와의 통신제어, 보안 통신을 위한 정책 생성과 저장, 상기 프록시와의 통신(폴리시의 실시간 동기) 기능 중 적어도 하나를 구현하는 단계를 더 포함한다.
상기 세큐리티 매니저가 임의의 프록시가 설치되어 비정상적인 동작을 유발하지 못하도록 상기 프록시를 인증하고, 상기 단위 서비스에 각각 설치된 상기 프록시 간에 벌어지는 데이터 통신에 대해서도 암호화된 TLS 보안 접속을 할 수 있도록 암호화 키를 관리하는 단계를 더 포함한다.
상기 세큐리티 매니저가 제어를 위한 API 접속 인증, 상기 단위 서비스 간 암호화 통신을 위한 인증 키 발급과 저장, 상기 프록시와의 통신 기능 중 적어도 하나를 구현하는 단계를 더 포함한다.
상기 로그 콜렉터는 수집하는 상기 로그의 양에 따라 성능 지연이 없도록 빠르게 확장 가능한 구조를 가지고, 상기 외부의 저장소의 장애 상황을 고려하여 수집된 상기 로그가 유실되지 않도록 고가용성의 캐시 구조를 갖는다.
상기 로그 애널라이저에 의해 분석 파악된 결과는 트래픽 라우팅(Traffic Routing)의 서비스 정책을 조정하거나 해당 단위 서비스의 기능 변경 또는 성능 개선에 사용되는 단계를 더 포함한다.
상기 로그 애널라이저가 상기 로그 콜렉터로부터 중계된 상기 로그의 최종 저장, 상기 로그의 분석 자동화 도구 개발(장애·병목·지연, 리소스 과부하의 탐지와 예상), 필수 분석 기능의 대시보드 기능 중 적어도 하나를 구현하는 단계를 더 포함한다.
본 발명에 의한 마이크로서비스 시스템 및 방법은 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리·프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있는 효과를 갖는다.
도 1은 본 발명의 일 실시례에 따른 마이크로서비스 시스템의 구성도이다.
도 2는 라이브러리·프레임워크 방식과 본 발명에 따른 마이크로서비스 플랫폼 방식의 비교 도면을 나타낸다.
도 3은 본 발명의 일 실시례에 따른 마이크로서비스 플랫폼의 구성을 나타낸 도면이다.
도 4 및 도 5는 본 발명의 일 실시례에 따른 마이크로서비스 방법을 나타낸 흐름도이다.
본 발명의 장점 및 특징 그리고 그것들을 달성하는 방법들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시례들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시례들에 한정되는 것이 아니라 또 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시례들은 본 발명의 개시가 완전하도록 하고 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 단지 청구항에 의해 정의될 뿐이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.
이하 첨부된 도면들을 참고하여 본 발명의 실시례에 따른 마이크로서비스 시스템 및 방법에 대해 설명하도록 한다.
이때 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다.
이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터·특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈·세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한 몇 가지 대체 실행례들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 본 발명의 일 실시례에 따른 마이크로서비스 시스템의 구성도이며, 도 2는 라이브러리·프레임워크 방식과 본 발명에 따른 마이크로서비스 플랫폼 방식의 비교 도면을 나타낸 것이다.
도 1을 참조하면, 본 발명의 일 실시례에 따른 마이크로서비스 시스템은 컨테이너 플랫폼(100), 마이크로서비스 플랫폼(120), 및 UI(User Interface) 제공부(140)를 포함한다.
컨테이너 플랫폼(100)은 컨테이너와 컨테이너 오케스트레이션(Orchestration)을 기반으로 만들어진 것으로서, 어플리케이션(160)의 배포와 운영을 자동화하는 환경을 제공한다. 컨테이너는 어플리케이션(160)마다의 독립적인 실행 환경을 만들어 주는 OS(Operating System) 가상화 기술로, 어플리케이션(160)을 배포할 때 발생할 수 있는 인프라 관련한 문제를 경감시켜 주며, 인프라 자원 활용의 효율 측면에서도 가상 머신(Virtual Machine, VM)보다 3~5배 정도 향상된 결과를 가져온다. 컨테이너 오케스트레이션은 컨테이너를 상용 환경에서 사용하기 위해서 수많은 컨테이너를 일관성 있게 안정적으로 통합 관리하는 역할을 수행한다.
다시 말해서 컨테이너 플랫폼(100)은 마이크로서비스의 각 단위 서비스(160)들을 독립적으로 개발하여 배포할 수 있는 환경, 배포된 단위 서비스(160)들이 상호 간에 복잡한 설정 없이 쉽게 연결될 수 있는 환경을 제공한다. 그리고 컨테이너 플랫폼(100)은 배포된 단위 서비스(160)들이 높은 가용성으로 안정적으로 운영될 수 있는 환경을 제공함과 동시에 운영 업무의 부담을 줄이기 위해 부하 분산, 장애 복구, 부하 증가에 따른 자동 스케일링 등이 자동화된 환경을 제공한다.
본 발명에 따른 컨테이너 플랫폼(100)은 본 출원인이 출원한 특허출원 제10-2017-0056478호("클라우드 플랫폼 시스템") 및 특허출원 제10-2017-0056483호("클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법")를 참조한다.
마이크로서비스 플랫폼(120)은 어플리케이션(160)의 배포와 운영을 자동화하는 컨테이너 관리 환경인 컨테이너 플랫폼(100) 위에서 마이크로서비스의 각 단위 서비스(160)들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당한다. 마이크로서비스 구조의 어플리케이션(160)을 라이브러리나 프레임워크의 형태가 아닌 플랫폼의 형태로 제공함으로써, 해당 기능을 서비스에 맞게 사용하기 위해 개발자가 개발 소스 내에서 직접 라이브러리와 프레임워크를 이용하여 구현할 필요가 없다(도 2 참조). 여기서 마이크로서비스 플랫폼(120)의 제어 관리 기능은 라우팅 관리, 통신 장애 대응, 부하 방지, 보안 통신, 요청/응답 추적, 로그 중앙화, 리소스 모니터링 기능 중 적어도 하나를 포함한다.
단위 서비스(160)들 간에 이루어지는 통신은 프록시(Proxy)(180)를 통해 이루어진다(도 2 참조). 단위 서비스(160)가 기동될 때 단위 서비스(160)마다 전용의 프록시(180)가 쌍으로 배포되고, 각 단위 서비스(160) 간의 통신은 프록시(180)를 거쳐서 이루어진다. 단위 서비스(160)는 연결 대상인 단위 서비스(160)의 식별 정보만 지정해서 프록시(180)에게 통신을 요청하기만 하면 된다. 이후에 통신 과정에서 고려해야 되는 제어는 프록시(180)가 대신 처리하게 된다. 이러한 기능 제공을 통해 개발자들은 통신 제어에 대해서는 고민할 필요 없이 담당하는 단위 서비스(160)의 비즈니스 로직 개발에만 집중할 수 있다.
프록시(180)가 처리하는 통신 제어 기능은 통신 오류 처리와 지능적 부하 분산이 있다. 통신 오류 처리는 상대방 단위 서비스(160)와의 통신에 문제가 있을 때의 대응 기능들로 타임아웃, 재전송, 동시 접속수 제한, 접속당 동시 요청수 제한, 서비스 인스턴스들의 주기적인 헬스 체크, 임계치 초과 시 연결 해제 또는 에러 반환 중 적어도 하나를 포함한다. 부하 분산은 L7 스위치 수준으로 제공한다. 즉 L4 수준의 부하 분산 방식인 라운드 로빈 방식, 가중치 방식과 랜덤 방식뿐만 아니라 L7수준에서의 지능화된 부하 분산인 서비스 요청 헤더의 내용을 기반으로 부하를 분산할 수 있다. 이에 따라 L4 수준의 단순한 라우팅뿐만 아니라 L7 수준에서의 정교한 트래픽 제어가 가능해진다.
서비스마다 쌍으로 배포되는 프록시(180)는 개별적으로 라우팅 정책을 설정 관리하지 않고, 중앙에서 일원화하여 모든 라우팅 정책을 관리한다. 라우팅 정책의 변경은 동적으로 각 프록시(180)에 반영되기 때문에 해당 단위 서비스(160)를 재기동하거나 수정할 필요가 없다. 또한 각 프록시(180)에서 발생한 로그는 중앙으로 수집되기 때문에 사용자 요청이 여러 단위 서비스(160)를 거쳐서 처리가 되더라도 동일 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간을 모니터링 할 수 있어 빠른 조치가 가능하다.
그리고 마이크로서비스 플랫폼(120)은 멀티 클라우드를 지원하며, 컨테이너 기술 기반이기 때문에 기존 가상 머신 기술 대비 보다 많은 어플리케이션(160)을 수용할 수 있어 멀티 클라우드 및 프라이빗 클라우드 도입에 따른 고객의 요구를 해소해 줄 수 있다.
도 3은 본 발명의 일 실시례에 따른 마이크로서비스 플랫폼(120)의 구성을 나타낸 도면이다.
도 3을 참조하면, 마이크로서비스 플랫폼(120)은 프록시(Proxy(L7 Proxy))(180), 폴리시 매니저(Policy Manager)(200), 세큐리티 매니저(Security Manager)(220), 로그 콜렉터(Log Collector)(240), 및 로그 애널라이저(Log Analyzer)(260)를 포함한다.
프록시(180), 폴리시 매니저(200), 및 세큐리티 매니저(220)는 마이크로서비스에서 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 담당한다.
로그 콜렉터(240), 및 로그 애널라이저(260)는 프록시(180)가 만들어내는 로그를 수집하고 분석하는 기능을 담당한다.
프록시(L7 프록시)(180)는 각 단위 서비스마다 하나씩 배치가 되어 단위 서비스 간의 통신을 대행한다. 각 단위 서비스는 복수의 인스턴스로 동작할 수 있어서, 각 인스턴스로의 부하 분산 역할도 함께 수행한다. 부하 분산은 L4 수준의 라운드 로빈 방식, 가중치 방식을 포함해서 서비스 요청 헤더의 내용을 기반으로 하는 L7 수준의 지능화된 부하 분산까지 하게 된다. 또한 단위 서비스들 간의 통신 중 발생하는 오류에 대한 처리도 담당한다.
각 단위 서비스는 상대방 단위 서비스의 연결 주소만을 지정한 채 프록시(180)에게 TCP 접속으로 전달하기만 하면 된다. 단위 서비스의 코드 변경은 필요하지 않다.
프록시(180)는 단위 서비스 간의 통신 연결 대행, 단위 서비스 간의 데이터 송수신 대행, 단위 서비스 간의 보안 연결(TLS), 단위 서비스 간의 L4 부하 분산(L4 수준의 라운드 로빈 방식, 가중치 방식), 단위 서비스 간의 L7 부하 분산(서비스 요청 헤더의 내용 기반), 상대 단위 서비스의 헬스체크, 상대 단위 서비스와의 통신 장애 대응(재전송·타임아웃·서킷브레이커), 상대 단위 서비스와의 통신 제어(동시 접속자 제한, 동시 요청수 제한), 폴리시 매니저(200)와의 통신(폴리시의 실시간 동기), 세큐리티 매니저(220)와의 통신(암호화 키 접근) 등의 기능을 구현한다.
프록시(180)는 로그 콜렉터(240)가 제공하는 라이브러리를 이용한 로그/트레이스(Log/Trace)의 로컬(Local) 저장, 로그 콜렉터(240)가 제공하는 라이브러리를 이용한 로그 콜렉터(240)로의 전송 기능을 구현한다.
폴리시 매니저(200)는 단위 서비스가 새롭게 배포될 때마다 프록시(180)를 배치하고 이후 프록시(180)를 지속적으로 관리한다. 프록시(180)의 수행하는 부하 분산과 통신 오류 대응에 대한 서비스 정책을 정의하고, 각 단위 서비스에게 정의된 정책을 실시간으로 동기화시킨다.
서비스 정책이 변경되어도 각 단위 서비스가 재기동하거나 코드를 변경할 필요는 없다.
폴리시 매니저(200)는 제어를 위한 API 접속 인증, 단위 서비스마다 프록시(180)를 자동 배치, 배포된 프록시(180)의 지속 관리, L4/L7 부하 분산 정책 생성과 저장, 상대 단위 서비스와의 통신 장애 대응을 위한 정책 생성과 저장, 상대 단위 서비스와의 통신 제어, 보안 통신을 위한 정책 생성과 저장, 프록시(180)와의 통신(폴리시의 실시간 동기) 기능을 구현한다.
세큐리티 매니저(220)는 임의의 사용자 또는 시스템에 의해 프록시(180)가 제어되지 않도록 제어 접속 인증을 수행한다. 역으로 임의의 프록시(180)가 설치되어 비정상적인 동작을 유발하지 못하도록 프록시(180)를 인증한다. 단위 서비스에 각각 설치된 프록시(180) 간에 벌어지는 데이터 통신에 대해서도 암호화된 TLS 보안 접속을 할 수 있도록 암호화 키를 관리한다.
세큐리티 매니저(220)는 제어를 위한 API 접속 인증, 배포된 프록시(180)의 인증, 단위 서비스 간 암호화 통신을 위한 인증 키 발급과 저장, 프록시(180)와의 통신 기능을 구현한다.
각 프록시(180)는 자신이 처리한 요청과 응답에 대해 기록을 남긴다. 이 정보들은 로그 콜렉터(240)에 실시간 또는 주기적으로 전달된다. 전달되는 과정은 프록시(180)의 데이터 통신과는 별도로 동작하여 서비스에 영향을 주지 않는다.
로그 콜렉터(240)는 각 프록시(180)로부터 수집된 로그의 최종 종착지가 아니라 외부의 지정된 저장소에게 중계하여 로그 애널라이저(260)가 분석할 수 있도록 한다. 수집하는 로그의 양에 따라 성능 지연이 없도록 빠르게 확장 가능한 구조를 가지고, 외부 저장소의 장애 상황을 고려하여 수집된 로그가 유실되지 않도록 고가용성의 캐시 구조를 갖는다.
로그 콜렉터(240)는 프록시(180)에 로그 생성과 전송 라이브러리 제공, 프록시(180)로부터 로그 수신과 저장, 프록시(180)로부터 수신한 로그를 외부 로그 저장소에 중계, 외부 로그 분석기의 규격에 맞게 로그 포맷 정합, 로그 수신량에 따른 인스턴스 자동 확장 기능을 구현한다.
로그 애널라이저(260)는 로그 콜렉터(240)가 로그를 저장한 외부의 저장소에서 로그를 읽어들여 서비스의 동작을 분석한다. 각 단위 서비스 구간 중 장애 지점과 그 처리 상태를 파악하고, 각 단위 서비스 구간의 응답 속도를 비교하여 전체 서비스의 병목 지점을 찾아내도록 한다.
분석 파악된 결과는 트래픽 라우팅(Traffic Routing)의 서비스 정책을 조정하거나 해당 단위 서비스의 기능 변경 또는 성능 개선에 사용된다.
로그 애널라이저(260)는 로그 콜렉터(240)로부터 중계된 로그의 최종 저장, 로그의 분석 자동화 도구 개발(장애·병목·지연, 리소스 과부하의 탐지와 예상), 필수 분석 기능의 대시보드 기능을 구현한다.
이에 따라 각 단위 서비스 구간에서 발생한 로그를 수집하여 외부의 중앙 저장소에 저장한 후, 서비스의 동작을 분석할 수 있게 된다. 그리고 각 단위 서비스 구간 중 장애 지점과 그 처리 상태를 파악할 수 있게 된다.
로그를 전달하고 분석하는 과정은 프록시(180)의 데이터 통신과는 별도로 동작하여 서비스에 영향을 주지 않는다.
본 시스템은 각 단위 서비스가 본 기술이 제시하는 기능을 사용하기 위해 일체의 코드 삽입이 필요없을 뿐만 아니라 제어부(폴리시 매니저(200), 세큐리티 매니저(220), 로그 콜렉터(240), 및 로그 애널라이저(260))와 실행부(프록시(180), 단위 서비스)로 크게 나눌 수 있다.
이는 구조적인 특성상 많은 단위 서비스들로 구성될 수밖에 없는 마이크로서비스 구조에서 일원화되고 실시간적인 정책 설정의 변경을 할 수 있어 관리의 효율성을 높인다.
본 발명에 따른 마이크로서비스 시스템은 컨테이너 기반 마이크로서비스 플랫폼(120) 기술을 기반으로 기업 내부의 IT 시스템에 마이크로서비스를 도입하기 위한‘기업형 마이크로서비스 플랫폼(120)'을 제공할 수도 있고, 퍼블릭 클라우드 환경에서 별도의 제품 도입과 설치 비용을 부담하지 않고 간단하게 기업형 마이크로서비스 플랫폼(120)이 제공하는 것과 동일한 기능을 온라인에서 즉시 사용하고 싶은 고객들에게는 '마이크로서비스 플랫폼(120) 온라인 서비스'를 온라인 방식으로 제공할 수도 있다.
기업형 마이크로서비스 플랫폼(120)은 어플리케이션(160)의 배포와 운영을 자동화하는 컨테이너 기반의 어플리케이션(160) 관리 환경과 마이크로서비스의 각 단위 서비스(160)들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리 기능을 통합하여 제공한다. 기업이 마이크로서비스를 도입하기 위해 필요한 환경을 라이브러리나 프레임워크 수준이 아닌 인프라 수준에서 제공함으로써 마이크로서비스 개발을 위해 고려해야 하는 기술적인 사항을 단순화시킨다. 마이크로서비스의 운영에 필요한 모든 단위 서비스(160)의 통신과 트래픽에 대한 제어와 모니터링은 중앙에서 일원화된 인터페이스로 할 수 있어 개발자가 아닌 운영자에 의해 통제될 수 있다. 하나의 제품으로 멀티 클라우드 환경에서 멀티 클러스터를 운영할 수 있다. 기업의 사업 요건 또는 보안의 이유로 퍼블릭 클라우드의 인프라보다는 자사의 인프라를 선호하는 기업들, 운영 비용 절감을 위해 퍼블릭 클라우드 인프라 사용을 원하는 기업들 또는 퍼블릭과 프라이빗을 함께 사용하는 기업들 모두에게 제공할 수 있다
마이크로서비스 플랫폼(120) 온라인 서비스는 기업형 마이크로서비스 플랫폼(120)의 온라인 서비스 제품으로, 기업이 어플리케이션(160) 배포를 원하는 퍼블릭 클라우드를 직접 선택하여 사용할 수 있도록 할 수 있다. 온라인 서비스를 위한 멀티테넌시(Multitenancy), 회원 가입, 결제 기능이 추가된다. 퍼블릭 클라우드 인프라에서의 서비스 개발과 운영을 위한 온라인 서비스를 제공한다. 사용자가 운영하는 어플리케이션(160)의 규모에 따라 사용료를 부과하며, 다른 온라인 서비스와 다르게 특정 퍼블릭 클라우드 인프라의 사용을 강제하지 않고, 사용자가 원하는 퍼블릭 클라우드 인프라를 선택하여 자신의 어플리케이션(160)을 배포하여 운영할 수 있다.
이와 같이 본 발명은 마이크로서비스 관리와 컨테이너 오케스트레이션 기능을 통합한 것이다. 즉 컨테이너 오케스트레이션 플랫폼 상에서 마이크로서비스 관리 기능을 통합시킨 것으로, 기업 입장에서는 이 기술의 도입만으로 마이크로서비스 도입에 필요했던 노력을 대폭 절감시킬 수 있다.
UI 제공부(140)는 컨테이너 플랫폼(100)과 마이크로서비스 플랫폼(120)을 통합하여 운영 관리할 수 있도록 일관성 있는 웹(Web) UI(User Interface)를 제공한다. 컨테이너 플랫폼(100)과 마이크로서비스 플랫폼(120)의 설정과 분석은 웹 UI를 통해서 실행이 가능하다. 명령어 기반의 인터페이스가 개발자의 관점에서는 다양한 사용 편의를 제공하지만, 운영의 관점에서는 실수에 의한 오류 발생 가능성이 높기 때문에 웹 UI를 제공하는 것이 바람직하다.
이러한 구성을 갖는 마이크로서비스 시스템의 마이크로서비스 방법을 도 4 및 도 5를 참조하여 설명하면 다음과 같다.
도 4를 참조하면, 컨테이너 플랫폼(100)이 마이크로서비스의 배포와 운영을 자동화하는 환경을 제공한다(S100).
그리고 마이크로서비스 플랫폼(120)이 컨테이너 플랫폼(100) 기반에서 마이크로서비스의 각 단위 서비스(160)들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당한다(S110).
UI 제공부(140)는 컨테이너 플랫폼(100)과 마이크로서비스 플랫폼(120)을 통합하여 운영 관리하는 웹(Web) UI(User Interface)를 제공한다(S120).
마이크로서비스 플랫폼(120)에서 프록시(180)를 통해 단위 서비스(160)들 간에 통신이 이루어진다(S130).
마이크로서비스 플랫폼(120)에서 단위 서비스(160)들 간에 통신이 이루어지는 과정은 도 5를 참조하여 구체적으로 설명한다.
폴리시 매니저(200)가 단위 서비스가 새롭게 배포될 때마다 프록시(180)를 배치하고, 이후 프록시(180)를 지속적으로 관리한다(S200).
구체적으로 폴리시 매니저(200)는 프록시(180)가 수행하는 부하 분산과 통신 오류 대응에 대한 서비스 정책을 정의하고, 각 단위 서비스에게 정의된 정책을 실시간으로 동기화시킨다. 폴리시 매니저(200)는 제어를 위한 API 접속 인증, L4/L7 부하 분산 정책 생성과 저장, 상대 단위 서비스와의 통신 장애 대응을 위한 정책 생성과 저장, 상대 단위 서비스와의 통신 제어, 보안 통신을 위한 정책 생성과 저장, 상기 프록시(180)와의 통신(폴리시의 실시간 동기) 기능을 구현한다.
세큐리티 매니저(220)는 임의의 사용자 또는 시스템에 의해 프록시(180)가 제어되지 않도록 제어 접속 인증을 수행한다(S210).
단위 서비스(160)는 연결 대상인 단위 서비스(160)의 식별 정보를 지정해서 프록시(180)에게 통신을 요청한다(S220).
프록시(180)는 통신 오류 처리와 지능적 부하 분산을 포함하는 통신 제어 기능을 처리한다(S230). 이때 세큐리티 매니저(220)는 단위 서비스에 각각 설치된 프록시(180) 간에 벌어지는 데이터 통신에 대해서도 암호화된 TLS 보안 접속을 할 수 있도록 암호화 키를 관리한다.
구체적으로 프록시(180)는 각 단위 서비스 간의 데이터 송수신 대행, 단위 서비스 간의 보안 연결(TLS), 단위 서비스 간의 L4 부하 분산(L4 수준의 라운드 로빈 방식, 가중치 방식), 단위 서비스 간의 L7 부하 분산(서비스 요청 헤더의 내용 기반), 상대 단위 서비스의 헬스체크, 상대 단위 서비스와의 통신 장애 대응(재전송·타임아웃·서킷브레이커), 상대 단위 서비스와의 통신 제어(동시 접속자 제한, 동시 요청수 제한), 폴리시 매니저(200)와의 통신(폴리시의 실시간 동기), 세큐리티 매니저(220)와의 통신(암호화 키 접근), 단위 서비스들 간의 통신 중 발생하는 오류에 대한 처리 기능을 구현한다. 프록시(180)는 각 단위 서비스가 복수의 인스턴스로 동작할 때, 각 인스턴스로의 부하 분산 역할도 함께 수행한다. 부하 분산은 L4 수준의 라운드 로빈 방식, 가중치 방식, 서비스 요청 헤더의 내용을 기반으로 하는 L7 수준의 지능화된 부하 분산 중 적어도 하나를 포함한다. 그리고 프록시(180)는 로그 콜렉터(240)가 제공하는 라이브러리를 이용한 로그/트레이스(Log/Trace)의 로컬(Local) 저장, 로그 콜렉터(240)가 제공하는 라이브러리를 이용한 로그 콜렉터(240)로의 전송 기능을 구현한다.
로그 콜렉터(240)가 각 프록시(180)에서 발생한 로그를 수집하고, 수집된 로그를 외부의 저장소에 저장한다(S240). 로그 콜렉터(240)는 프록시(180)에 로그 생성과 전송 라이브러리 제공, 로그 애널라이저(260)의 규격에 맞게 로그 포맷 정합, 로그 수신량에 따른 인스턴스 자동 확장 기능을 구현한다.
로그 애널라이저(260)가 로그 콜렉터(240)에 의해 외부의 저장소에 저장된 로그를 읽어들여 서비스의 동작을 분석한다(S250). 로그 애널라이저(260)가 각 단위 서비스 구간 중 장애 지점과 그 처리 상태를 파악하고, 각 단위 서비스 구간의 응답 속도를 비교하여 전체 서비스의 병목 지점을 찾아낸다. 로그 애널라이저(260)에 의해 분석 파악된 결과는 트래픽 라우팅(Traffic Routing)의 서비스 정책을 조정하거나 해당 단위 서비스의 기능 변경 또는 성능 개선에 사용된다. 로그 애널라이저(260)는 로그 콜렉터(240)로부터 중계된 로그의 최종 저장, 로그의 분석 자동화 도구 개발(장애·병목·지연, 리소스 과부하의 탐지와 예상), 필수 분석 기능의 대시보드 기능을 구현한다.
한편 상술한 본 발명의 실시례들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면 롬· 플로피 디스크·하드디스크 등), 광학적 판독 매체(예를 들면 CD-ROM·DVD 등) 및 캐리어 웨이브(예를 들면 인터넷을 통한 전송)와 같은 저장 매체를 포함한다.
이와 같이 본 발명에 의한 마이크로서비스 시스템 및 방법에 따르면 마이크로서비스의 각 단위 서비스(160)들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스(160)들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리·프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시례들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시례들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 컨테이너 플랫폼 120: 마이크로서비스 플랫폼
140: UI 제공부 160: 어플리케이션(단위 서비스)
180: 프록시 200: 폴리시 매니저
220: 세큐리티 매니저 240: 로그 콜렉터
260: 로그 애널라이저

Claims (26)

  1. 컨테이너 플랫폼 기반에서 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 마이크로서비스 플랫폼을 포함하고,
    상기 마이크로서비스 플랫폼은 상기 각 단위 서비스마다 배치되어 상기 단위 서비스 간의 통신 연결을 대행하는 프록시, 상기 단위 서비스가 새롭게 배포될 때마다 상기 프록시를 배치하고, 이후 상기 프록시를 지속적으로 관리하는 폴리시 매니저, 임의의 사용자 또는 시스템에 의해 상기 프록시가 제어되지 않도록 제어 접속 인증을 수행하는 세큐리티 매니저, 상기 각 프록시로부터 로그를 수집하고, 수집된 상기 로그를 외부의 저장소에 저장하는 로그 콜렉터, 상기 로그 콜렉터에 의해 상기 외부의 저장소에 저장된 상기 로그를 읽어들여 서비스의 동작을 분석하는 로그 애널라이저를 포함하며,
    상기 프록시는 상기 각 단위 서비스 간의 데이터 송수신 대행, 상기 단위 서비스 간의 보안 연결(TLS), 상기 단위 서비스 간의 L4 부하 분산(L4 수준의 라운드 로빈 방식, 가중치 방식), 상기 단위 서비스 간의 L7 부하 분산(서비스 요청 헤더의 내용 기반), 상대 단위 서비스의 헬스체크, 상대 단위 서비스와의 통신 장애 대응(재전송·타임아웃·서킷브레이커), 상대 단위 서비스와의 통신 제어(동시 접속자 제한, 동시 요청수 제한), 상기 폴리시 매니저와의 통신(폴리시의 실시간 동기), 상기 세큐리티 매니저와의 통신(암호화 키 접근), 상기 단위 서비스들 간의 통신 중 발생하는 오류에 대한 처리 기능 중 적어도 하나를 구현하고, 상기 각 단위 서비스가 복수의 인스턴스로 동작할 때, 상기 각 인스턴스로의 부하 분산 역할도 함께 수행하며, 상기 부하 분산은 L4 수준의 라운드 로빈 방식, 가중치 방식, 서비스 요청 헤더의 내용을 기반으로 하는 L7 수준의 지능화된 부하 분산 중 적어도 하나를 포함하며,
    상기 폴리시 매니저는 상기 프록시가 수행하는 부하 분산과 통신 오류 대응에 대한 서비스 정책을 정의하고, 상기 각 단위 서비스에게 정의된 정책을 실시간으로 동기화시키고,
    상기 로그 콜렉터는 상기 프록시에 상기 로그 생성과 전송 라이브러리 제공, 상기 프록시로부터 상기 로그 수신과 저장, 상기 로그 애널라이저의 규격에 맞게 로그 포맷 정합, 상기 로그 수신량에 따른 인스턴스 자동 확장 기능 중 적어도 하나를 구현하며,
    상기 로그 애널라이저는 상기 각 단위 서비스 구간 중 장애 지점과 그 처리 상태를 파악하고, 상기 각 단위 서비스 구간의 응답 속도를 비교하여 전체 서비스의 병목 지점을 찾아내는 마이크로서비스 시스템.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 프록시는 상기 로그 콜렉터가 제공하는 라이브러리를 이용한 로그/트레이스(Log/Trace)의 로컬(Local) 저장, 상기 로그 콜렉터가 제공하는 라이브러리를 이용한 상기 로그 콜렉터로의 전송 기능 중 적어도 하나를 구현하는 마이크로서비스 시스템.
  5. 삭제
  6. 제1항에 있어서,
    상기 폴리시 매니저는 제어를 위한 API 접속 인증, L4/L7 부하 분산 정책 생성과 저장, 상대 단위 서비스와의 통신 장애 대응을 위한 정책 생성과 저장, 상대 단위 서비스와의 통신 제어, 보안 통신을 위한 정책 생성과 저장, 상기 프록시와의 통신(폴리시의 실시간 동기) 기능 중 적어도 하나를 구현하는 마이크로서비스 시스템.
  7. 제1항에 있어서,
    상기 세큐리티 매니저는 임의의 프록시가 설치되어 비정상적인 동작을 유발하지 못하도록 상기 프록시를 인증하고, 상기 단위 서비스에 각각 설치된 상기 프록시 간에 벌어지는 데이터 통신에 대해서도 암호화된 TLS 보안 접속을 할 수 있도록 암호화 키를 관리하는 마이크로서비스 시스템.
  8. 제1항에 있어서,
    상기 세큐리티 매니저는 제어를 위한 API 접속 인증, 상기 단위 서비스 간 암호화 통신을 위한 인증 키 발급과 저장, 상기 프록시와의 통신 기능 중 적어도 하나를 구현하는 마이크로서비스 시스템.
  9. 제1항에 있어서,
    상기 로그 콜렉터는 수집하는 상기 로그의 양에 따라 성능 지연이 없도록 빠르게 확장 가능한 구조를 가지고, 상기 외부의 저장소의 장애 상황을 고려하여 수집된 상기 로그가 유실되지 않도록 고가용성의 캐시 구조를 갖는 마이크로서비스 시스템.
  10. 삭제
  11. 삭제
  12. 제1항에 있어서,
    상기 로그 애널라이저에 의해 분석 파악된 결과는 트래픽 라우팅(Traffic Routing)의 서비스 정책을 조정하거나 해당 단위 서비스의 기능 변경 또는 성능 개선에 사용되는 마이크로서비스 시스템.
  13. 제1항에 있어서,
    상기 로그 애널라이저는 상기 로그 콜렉터로부터 중계된 상기 로그의 최종 저장, 상기 로그의 분석 자동화 도구 개발(장애·병목·지연, 리소스 과부하의 탐지와 예상), 필수 분석 기능의 대시보드 기능 중 적어도 하나를 구현하는 마이크로서비스 시스템.
  14. 컨테이너 플랫폼 기반에서 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 마이크로서비스 플랫폼에서 프록시가 상기 각 단위 서비스마다 배치되어 상기 단위 서비스 간의 통신 연결을 대행하는 단계;
    상기 마이크로서비스 플랫폼에서 폴리시 매니저가 상기 단위 서비스가 새롭게 배포될 때마다 상기 프록시를 배치하고, 이후 상기 프록시를 지속적으로 관리하는 단계;
    상기 마이크로서비스 플랫폼에서 세큐리티 매니저가 임의의 사용자 또는 시스템에 의해 상기 프록시가 제어되지 않도록 제어 접속 인증을 수행하는 단계;
    상기 마이크로서비스 플랫폼에서 로그 콜렉터가 상기 각 프록시로부터 로그를 수집하고, 수집된 상기 로그를 외부의 저장소에 저장하는 단계;
    상기 마이크로서비스 플랫폼에서 로그 애널라이저가 상기 로그 콜렉터에 의해 상기 외부의 저장소에 저장된 상기 로그를 읽어들여 서비스의 동작을 분석하는 단계;
    상기 프록시가 상기 각 단위 서비스 간의 데이터 송수신 대행, 상기 단위 서비스 간의 보안 연결(TLS), 상기 단위 서비스 간의 L4 부하 분산(L4 수준의 라운드 로빈 방식, 가중치 방식), 상기 단위 서비스 간의 L7 부하 분산(서비스 요청 헤더의 내용 기반), 상대 단위 서비스의 헬스체크, 상대 단위 서비스와의 통신 장애 대응(재전송·타임아웃·서킷브레이커), 상대 단위 서비스와의 통신 제어(동시 접속자 제한, 동시 요청수 제한), 상기 폴리시 매니저와의 통신(폴리시의 실시간 동기), 상기 세큐리티 매니저와의 통신(암호화 키 접근), 상기 단위 서비스들 간의 통신 중 발생하는 오류에 대한 처리 기능 중 적어도 하나를 구현하는 단계;
    상기 프록시가 상기 각 단위 서비스가 복수의 인스턴스로 동작할 때, 상기 각 인스턴스로의 부하 분산 역할도 함께 수행하는 단계;
    상기 폴리시 매니저가 상기 프록시가 수행하는 부하 분산과 통신 오류 대응에 대한 서비스 정책을 정의하고, 상기 각 단위 서비스에게 정의된 정책을 실시간으로 동기화시키는 단계;
    상기 로그 콜렉터가 상기 프록시에 상기 로그 생성과 전송 라이브러리 제공, 상기 프록시로부터 상기 로그 수신과 저장, 상기 로그 애널라이저의 규격에 맞게 로그 포맷 정합, 상기 로그 수신량에 따른 인스턴스 자동 확장 기능 중 적어도 하나를 구현하는 단계; 및
    상기 로그 애널라이저가 상기 각 단위 서비스 구간 중 장애 지점과 그 처리 상태를 파악하고, 상기 각 단위 서비스 구간의 응답 속도를 비교하여 전체 서비스의 병목 지점을 찾아내는 단계를 포함하고,
    상기 부하 분산은 L4 수준의 라운드 로빈 방식, 가중치 방식, 서비스 요청 헤더의 내용을 기반으로 하는 L7 수준의 지능화된 부하 분산 중 적어도 하나를 포함하는 마이크로서비스 방법.
  15. 삭제
  16. 삭제
  17. 제14항에 있어서,
    상기 프록시가 상기 로그 콜렉터가 제공하는 라이브러리를 이용한 로그/트레이스(Log/Trace)의 로컬(Local) 저장, 상기 로그 콜렉터가 제공하는 라이브러리를 이용한 상기 로그 콜렉터로의 전송 기능 중 적어도 하나를 구현하는 단계를 더 포함하는 마이크로서비스 방법.
  18. 삭제
  19. 제14항에 있어서,
    상기 폴리시 매니저가 제어를 위한 API 접속 인증, L4/L7 부하 분산 정책 생성과 저장, 상대 단위 서비스와의 통신 장애 대응을 위한 정책 생성과 저장, 상대 단위 서비스와의 통신 제어, 보안 통신을 위한 정책 생성과 저장, 상기 프록시와의 통신(폴리시의 실시간 동기) 기능 중 적어도 하나를 구현하는 단계를 더 포함하는 마이크로서비스 방법.
  20. 제14항에 있어서,
    상기 세큐리티 매니저가 임의의 프록시가 설치되어 비정상적인 동작을 유발하지 못하도록 상기 프록시를 인증하고, 상기 단위 서비스에 각각 설치된 상기 프록시 간에 벌어지는 데이터 통신에 대해서도 암호화된 TLS 보안 접속을 할 수 있도록 암호화 키를 관리하는 단계를 더 포함하는 마이크로서비스 방법.
  21. 제14항에 있어서,
    상기 세큐리티 매니저가 제어를 위한 API 접속 인증, 상기 단위 서비스 간 암호화 통신을 위한 인증 키 발급과 저장, 상기 프록시와의 통신 기능 중 적어도 하나를 구현하는 단계를 더 포함하는 마이크로서비스 방법.
  22. 제14항에 있어서,
    상기 로그 콜렉터는 수집하는 상기 로그의 양에 따라 성능 지연이 없도록 빠르게 확장 가능한 구조를 가지고, 상기 외부의 저장소의 장애 상황을 고려하여 수집된 상기 로그가 유실되지 않도록 고가용성의 캐시 구조를 갖는 마이크로서비스 방법.
  23. 삭제
  24. 삭제
  25. 제14항에 있어서,
    상기 로그 애널라이저에 의해 분석 파악된 결과는 트래픽 라우팅(Traffic Routing)의 서비스 정책을 조정하거나 해당 단위 서비스의 기능 변경 또는 성능 개선에 사용되는 단계를 더 포함하는 마이크로서비스 방법.
  26. 제14항에 있어서,
    상기 로그 애널라이저가 상기 로그 콜렉터로부터 중계된 상기 로그의 최종 저장, 상기 로그의 분석 자동화 도구 개발(장애·병목·지연, 리소스 과부하의 탐지와 예상), 필수 분석 기능의 대시보드 기능 중 적어도 하나를 구현하는 단계를 더 포함하는 마이크로서비스 방법.
KR1020190014740A 2019-02-08 2019-02-08 마이크로서비스 시스템 및 방법 KR102050188B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190014740A KR102050188B1 (ko) 2019-02-08 2019-02-08 마이크로서비스 시스템 및 방법
PCT/KR2020/001614 WO2020162680A1 (ko) 2019-02-08 2020-02-04 마이크로서비스 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190014740A KR102050188B1 (ko) 2019-02-08 2019-02-08 마이크로서비스 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102050188B1 true KR102050188B1 (ko) 2019-11-28

Family

ID=68730405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190014740A KR102050188B1 (ko) 2019-02-08 2019-02-08 마이크로서비스 시스템 및 방법

Country Status (2)

Country Link
KR (1) KR102050188B1 (ko)
WO (1) WO2020162680A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858248A (zh) * 2020-07-20 2020-10-30 北京百度网讯科技有限公司 应用监控方法、装置、设备以及存储介质
US11233801B1 (en) 2021-05-26 2022-01-25 Netskope, Inc. Session protocol update or upgrade web traffic
WO2022108064A1 (ko) * 2020-11-20 2022-05-27 삼성전자주식회사 전자 장치 및 이의 제어 방법
WO2022221638A1 (en) * 2021-04-15 2022-10-20 Nec Laboratories America, Inc. Dynamic microservice intercommunication configuration
CN115988087A (zh) * 2023-03-17 2023-04-18 北京百度网讯科技有限公司 基于总线的服务调用方法、装置、电子设备和存储介质
WO2024030328A1 (en) * 2022-08-04 2024-02-08 Getac Technology Corporation Interservice communication optimization for microservices

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311679B (zh) * 2020-10-28 2023-07-28 北京水滴科技集团有限公司 状态检测方法、装置、电子设备及可读存储介质
CN112764825B (zh) * 2020-12-30 2023-12-29 望海康信(北京)科技股份公司 服务集成系统及相应设备和存储介质
CN113032355B (zh) * 2021-04-06 2023-06-09 上海英方软件股份有限公司 一种Web应用批量收集日志的方法及装置
CN114020316A (zh) * 2021-10-19 2022-02-08 天元大数据信用管理有限公司 一种部署、运维及监控微服务组件节点的实现方法
CN114401098B (zh) * 2021-12-28 2022-08-12 智昌科技集团股份有限公司 一种快速构建微服务的应用系统及方法
CN115357403A (zh) * 2022-10-20 2022-11-18 智己汽车科技有限公司 一种用于任务调度的微服务系统及任务调度方法
CN117033487B (zh) * 2023-08-11 2024-05-07 北京长河数智科技有限责任公司 一种基于数据共享的接口灵活编排的系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100838811B1 (ko) * 2007-02-15 2008-06-19 한국정보보호진흥원 안전한 VoIP 서비스를 위한 보안 세션 제어 장치
KR20140089967A (ko) * 2013-01-08 2014-07-16 에스케이텔레콤 주식회사 적응적 비실시간 트래픽 제어방법과 이를 위한 단말기 및 장치
KR20150142871A (ko) 2014-06-12 2015-12-23 주홍찬 인터렉티브 푸쉬 클라우드 시스템 장치 및 방법
KR101678612B1 (ko) * 2015-06-17 2016-11-22 (주)넷비젼텔레콤 프록시 선택기와 각 프록시의 설정 제어를 이용한 단말 단위 실시간 정책 적용, 부하분산 및 장애 복구를 제공하는 서비스시스템 및 그 제어방법
KR101871902B1 (ko) * 2016-05-11 2018-06-27 오라클 인터내셔날 코포레이션 멀티-테넌트 아이덴티티 및 데이터 보안 관리 클라우드 서비스

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789339B (zh) * 2017-01-19 2020-08-25 北京仿真中心 一种基于轻量级虚拟化架构的分布式云仿真方法与系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100838811B1 (ko) * 2007-02-15 2008-06-19 한국정보보호진흥원 안전한 VoIP 서비스를 위한 보안 세션 제어 장치
KR20140089967A (ko) * 2013-01-08 2014-07-16 에스케이텔레콤 주식회사 적응적 비실시간 트래픽 제어방법과 이를 위한 단말기 및 장치
KR20150142871A (ko) 2014-06-12 2015-12-23 주홍찬 인터렉티브 푸쉬 클라우드 시스템 장치 및 방법
KR101678612B1 (ko) * 2015-06-17 2016-11-22 (주)넷비젼텔레콤 프록시 선택기와 각 프록시의 설정 제어를 이용한 단말 단위 실시간 정책 적용, 부하분산 및 장애 복구를 제공하는 서비스시스템 및 그 제어방법
KR101871902B1 (ko) * 2016-05-11 2018-06-27 오라클 인터내셔날 코포레이션 멀티-테넌트 아이덴티티 및 데이터 보안 관리 클라우드 서비스

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858248A (zh) * 2020-07-20 2020-10-30 北京百度网讯科技有限公司 应用监控方法、装置、设备以及存储介质
CN111858248B (zh) * 2020-07-20 2024-03-15 北京百度网讯科技有限公司 应用监控方法、装置、设备以及存储介质
WO2022108064A1 (ko) * 2020-11-20 2022-05-27 삼성전자주식회사 전자 장치 및 이의 제어 방법
WO2022221638A1 (en) * 2021-04-15 2022-10-20 Nec Laboratories America, Inc. Dynamic microservice intercommunication configuration
US11233801B1 (en) 2021-05-26 2022-01-25 Netskope, Inc. Session protocol update or upgrade web traffic
WO2024030328A1 (en) * 2022-08-04 2024-02-08 Getac Technology Corporation Interservice communication optimization for microservices
US11985058B2 (en) 2022-08-04 2024-05-14 Getac Technology Corporation Interservice communication optimization for microservices
CN115988087A (zh) * 2023-03-17 2023-04-18 北京百度网讯科技有限公司 基于总线的服务调用方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
WO2020162680A1 (ko) 2020-08-13

Similar Documents

Publication Publication Date Title
KR102050188B1 (ko) 마이크로서비스 시스템 및 방법
US10999407B1 (en) Service group interaction management
Blial et al. An overview on SDN architectures with multiple controllers
US9727440B2 (en) Automatic simulation of virtual machine performance
KR102027749B1 (ko) 마이크로서비스 시스템 및 방법
US20040226010A1 (en) Automated provisioning framework for internet site servers
CN106850549B (zh) 一种分布式加密服务网关及实现方法
US11627034B1 (en) Automated processes and systems for troubleshooting a network of an application
US20220052944A1 (en) Scalable network function virtualization service
CN111949484B (zh) 信息处理方法、装置、电子设备和介质
Grandinetti Pervasive cloud computing technologies: future outlooks and interdisciplinary perspectives: future outlooks and interdisciplinary perspectives
CN110213338A (zh) 一种基于加密运算的集群化加速计算方法及系统
CN111343003A (zh) 基于区块链和sdn边缘计算网络系统的数据分析方法及装置
Venâncio et al. Beyond VNFM: Filling the gaps of the ETSI VNF manager to fully support VNF life cycle operations
Costa et al. Enhancing orchestration and infrastructure programmability in SDN with notoriety
CN111181929A (zh) 基于共享虚拟机文件的异构混合云架构及管理方法
US20230344520A1 (en) Intelligent Monitoring and Repair of Network Services Using Log Feeds Provided Over Li-Fi Networks
Artych et al. Security constraints for placement of latency sensitive 5G MEC applications
Jakovleski ANTICIPATED DEVELOPMENTS IN CLOUD SERVICES WITH A FOCUS ON THE INFRASTRUCTURE-AS-A-SERVICE (IaaS) MODEL
US11516230B2 (en) Selective encryption of data in motion
US11775401B1 (en) Intelligent coordination of log analysis and repair processes in a multi-cloud system
Bakhshi et al. Lightweight Persistent Storage for Industrial Applications
de Freitas Network softwarization for IACS security applications
CN113852479B (zh) 一种安全网络构建方法、装置、设备和计算机存储介质
US10819777B1 (en) Failure isolation in a distributed system

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant