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

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

Info

Publication number
WO2020162680A1
WO2020162680A1 PCT/KR2020/001614 KR2020001614W WO2020162680A1 WO 2020162680 A1 WO2020162680 A1 WO 2020162680A1 KR 2020001614 W KR2020001614 W KR 2020001614W WO 2020162680 A1 WO2020162680 A1 WO 2020162680A1
Authority
WO
WIPO (PCT)
Prior art keywords
log
service
communication
proxy
unit
Prior art date
Application number
PCT/KR2020/001614
Other languages
English (en)
French (fr)
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 아콘소프트 주식회사
Publication of WO2020162680A1 publication Critical 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
    • 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
    • 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

Definitions

  • the present invention relates to a microservice system and method, and more particularly, to provide an environment capable of controlling and managing communication between each unit service of a microservice, and provides a number of connections between unit services and
  • the control of the traffic made here is centralized, it enables sophisticated traffic control without depending on a specific language, library, or framework, and the discovery and action of a bottleneck or failure section can be quickly processed through transaction tracking. It relates to a microservice system and method.
  • Microservice is a software design and development methodology in which a service is divided into several partial business areas, and each individual area is connected to completed small units of services.
  • Microservices have emerged as a distributed network system design method for the stability of services in line with the globalization and large-capacity of web-based online services, and service changes and improvements can be continuously deployed in a flexible and fast cycle to meet the rapidly changing business environment. It is in the spotlight as an architecture that can be used and is spreading all over the world.
  • Microservices are structurally divided into many unit services, and each unit service has numerous communication connections. Therefore, in order to build a microservice structure, new development items to be considered are greatly increased, and a lot of effort and investment are required to stably operate a service with a complex structure.
  • the present invention was created to solve the above problems, and provides an environment in which communication between each unit service of a microservice can be controlled and managed, and numerous connections between unit services and Centralized traffic control, enabling sophisticated traffic control without relying on a specific language, library, or framework, and detecting bottlenecks or failures and actions can be quickly processed through transaction tracking. Its purpose is to provide a microservice system and method.
  • the microservice system includes a microservice platform that controls and manages communication connection and traffic between each unit service of a microservice on a container platform basis, and the microservice platform includes the A proxy that is arranged for each unit service and acts as an agent for communication connection between the unit services, a policy manager that deploys the proxy whenever the unit service is newly deployed, and then continuously manages the proxy, or by a user or system A security manager that performs control access authentication so that the proxy is not controlled, a log collector that collects logs from each proxy and stores the collected logs in an external storage, and the logs stored in the external storage by the log collector And a log analyzer that analyzes the operation of the service by reading the data, and the proxy is a data transmission/reception agency between each unit service, a secure connection (TLS) between the unit services, and L4 load balancing between the unit services (L4 level round robin Method, weighting method), L7 load balancing between the unit services (based on the contents of the service request header), health check
  • TLS secure connection
  • the proxy implements at least one of a function of local storage of a log/trace using a library provided by the log collector and a transmission function to the log collector using a library provided by the log collector.
  • the policy manager authenticates API access for control, creates and stores L4/L7 load balancing policies, creates and stores policies to cope with communication failures with counterpart service, controls communication with counterpart service, and creates policies for secure communication. It implements at least one of the functions of overstoring and communication with the proxy (real-time synchronization of policies).
  • the security manager authenticates the proxy so that an arbitrary proxy is installed so as not to cause abnormal operation, and manages the encryption key to enable encrypted TLS secure connection even for data communication between the proxies respectively installed in the unit service. .
  • the security manager implements at least one of API access authentication for control, issuance and storage of an authentication key for encrypted communication between the unit services, and a communication function with the proxy.
  • the log collector has a structure that can be quickly expanded so that there is no performance delay according to the amount of the logs to be collected, and has a cache structure of high availability so that the collected logs are not lost in consideration of a failure situation of the external storage.
  • the results analyzed and found by the log analyzer are used to adjust a service policy of traffic routing, change a function of a corresponding unit service, or improve performance.
  • the log analyzer implements at least one of a final storage of the log relayed from the log collector, development of an analysis automation tool for the log (failure, bottleneck, delay, detection and prediction of resource overload), and a dashboard function of essential analysis functions. do.
  • a proxy is arranged for each unit service in a microservice platform that controls and manages communication connection and traffic between each unit service of a microservice on a container platform basis. Acting for communication connection between the unit services; Deploying the proxy whenever the unit service is newly distributed by a policy manager in the microservice platform, and then continuously managing the proxy; Performing, by a security manager in the microservice platform, control access authentication so that the proxy is not controlled by any user or system; Collecting logs from each proxy by a log collector in the microservice platform and storing the collected logs in an external storage; Analyzing, by a log analyzer in the microservice platform, the log stored in the external storage by the log collector and analyzing the operation of the service; The proxy performs data transmission/reception between the unit services, a secure connection (TLS) between the unit services, L4 load balancing between the unit services (L4 level round robin method, weighting method), and L7 load distribution between the unit services (
  • Step to do And finding, by the log analyzer, a failure point and a processing state of each unit service section, and comparing a response speed of each unit service section to find a bottleneck of the entire service, wherein the load balancing is at an L4 level. It includes at least one of a round robin method, a weight method, and intelligent load balancing at an L7 level based on the contents of the service request header.
  • the proxy implementing at least one of a function of locally storing a log/trace using a library provided by the log collector and a transmission function to the log collector using a library provided by the log collector It includes more.
  • API access authentication for control by the policy manager L4/L7 load balancing policy creation and storage, policy creation and storage for communication failure response with counterpart service, communication control with counterpart service, and policy creation for secure communication And implementing at least one of a function of storing and communicating with the proxy (real-time synchronization of a policy).
  • the security manager authenticates the proxy so that an arbitrary proxy is installed so as not to cause abnormal operation, and manages the encryption key so that an encrypted TLS secure connection can be made even for data communication between the proxies respectively installed in the unit service. It further includes steps.
  • the security manager further includes implementing at least one of an API access authentication for control, issuing and storing an authentication key for encrypted communication between the unit services, and a communication function with the proxy.
  • the log collector has a structure that can be quickly expanded so that there is no performance delay according to the amount of the logs to be collected, and has a cache structure of high availability so that the collected logs are not lost in consideration of a failure situation of the external storage.
  • the result analyzed and found by the log analyzer further includes a step of adjusting a service policy of traffic routing, changing a function of a corresponding unit service, or improving performance.
  • the log analyzer implements at least one of the final storage of the log relayed from the log collector, the development of an analysis automation tool for the log (failure, bottleneck, delay, resource overload detection and prediction), and a dashboard function of essential analysis functions It further includes the step of.
  • the microservice system and method according to the present invention provides an environment for controlling and managing communication occurring between each unit service of a microservice, and controlling a number of connections between unit services and traffic made therein. It is centralized, enables sophisticated traffic control without relying on a specific language, library, or framework, and has the effect that the discovery and action of bottlenecks or failure areas can be quickly processed through transaction tracking.
  • FIG. 1 is a block diagram of a microservice system according to an embodiment of the present invention.
  • FIG. 2 shows a comparison diagram of a library/framework method and a microservice platform method according to the present invention.
  • FIG. 3 is a diagram showing the configuration of a microservice platform according to an embodiment of the present invention.
  • 4 and 5 are flowcharts illustrating a microservice method according to an embodiment of the present invention.
  • Computer program instructions It can also be mounted on a computer or other programmable data processing equipment, so a series of operational steps are performed on a computer or other programmable data processing equipment to create a computer-executable process to perform a computer or other programmable data processing equipment. It is also possible for the instructions to provide steps for performing the functions described in the flowchart block(s).
  • each block may represent a module, segment, or part of code including one or more executable instructions for executing the specified logical function(s). It should also be noted that in some alternative implementations it is possible for the functions mentioned in the blocks to occur out of order. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order depending on the corresponding function.
  • FIG. 1 is a block diagram of a microservice system according to an embodiment of the present invention
  • FIG. 2 is a diagram showing a comparison between a library/framework method and a microservice platform method according to the present invention.
  • a microservice system includes a container platform 100, a microservice platform 120, and a user interface (UI) providing unit 140.
  • UI user interface
  • the container platform 100 is made based on containers and container orchestration, and provides an environment for automating the deployment and operation of the application 160.
  • Container is an OS (Operating System) virtualization technology that creates an independent execution environment for each application 160, and reduces infrastructure-related problems that may occur when the application 160 is deployed, and also in the aspect of efficiency of infrastructure resource utilization. It brings about 3 to 5 times better results than a virtual machine (VM).
  • OS Operating System
  • Container orchestration plays the role of consistently and stably managing numerous containers in order to use containers in a commercial environment.
  • the container platform 100 provides an environment in which each unit service 160 of microservices can be independently developed and distributed, and an environment in which the deployed unit services 160 can be easily connected without complex configurations.
  • the container platform 100 provides an environment in which the deployed unit services 160 can be operated stably with high availability, and at the same time, load balancing, failure recovery, and automatic scaling according to the increase in load are provided to reduce the burden of operation. It provides an automated environment.
  • the container platform 100 includes patent application No. 10-2017-0056478 ("cloud platform system”) and patent application No. 10-2017-0056483 filed by the present applicant ("containing an application in a cloud platform. Method”).
  • the microservice platform 120 controls and manages communication connection and traffic between each unit service 160 of the microservice on the container platform 100, which is a container management environment that automates the deployment and operation of the application 160. In charge.
  • the control management function of the microservice platform 120 includes at least one of routing management, communication failure response, load prevention, secure communication, request/response tracking, log centralization, and resource monitoring functions.
  • a proxy 180 Communication between the unit services 160 is performed through a proxy 180 (see FIG. 2).
  • a proxy 180 When the unit service 160 is started, a dedicated proxy 180 is distributed in pairs for each unit service 160, and communication between each unit service 160 is performed through the proxy 180.
  • the unit service 160 only needs to designate identification information of the unit service 160 to be connected and request communication from the proxy 180. Controls to be considered in the communication process afterwards are processed by the proxy 180 instead.
  • developers can focus only on the business logic development of the unit service 160 in charge without having to worry about communication control.
  • Communication control functions handled by the proxy 180 include communication error processing and intelligent load balancing.
  • Communication error processing is a response function when there is a problem in communication with the counterpart unit service 160.
  • Timeout, retransmission, limiting the number of simultaneous connections, limiting the number of simultaneous requests per connection, periodic health check of service instances, when the threshold is exceeded. Includes at least one of disconnection or error return.
  • Load balancing is provided at the level of the L7 switch. That is, the load can be distributed based on the contents of the service request header, which is an intelligent load balancing at the L7 level, as well as the round robin method, the weighting method, and the random method, which are L4 level load balancing methods. This enables not only simple routing at the L4 level, but also sophisticated traffic control at the L7 level.
  • the proxy 180 distributed in pairs for each service does not individually set and manage routing policies, but centrally manages all routing policies. Since the change of the routing policy is dynamically reflected to each proxy 180, there is no need to restart or modify the corresponding unit service 160. In addition, since logs generated by each proxy 180 are collected centrally, even if a user request is processed through several unit services 160, it is possible to monitor the bottleneck or failure section through the tracking of the same transaction, enabling quick action. .
  • the microservice platform 120 supports multi-cloud, and because it is based on container technology, it can accommodate more applications 160 than existing virtual machine technology, which will solve the customer's demand for multi-cloud and private cloud adoption. I can.
  • FIG. 3 is a diagram showing the configuration of a microservice platform 120 according to an embodiment of the present invention.
  • the microservice platform 120 includes a proxy (L7 Proxy) 180, a policy manager 200, a security manager 220, and a log collector. ) 240, and a Log Analyzer 260.
  • the proxy 180, the policy manager 200, and the security manager 220 are responsible for controlling and managing communication between each unit service in the microservice.
  • the log collector 240 and the log analyzer 260 collect and analyze logs generated by the proxy 180.
  • the proxy (L7 proxy) 180 is arranged one for each unit service to perform communication between unit services. Since each unit service can operate with multiple instances, it also plays a role of load balancing to each instance. Load balancing includes L4 level round robin and weighting, and even intelligent load balancing at the L7 level based on the contents of the service request header. It is also responsible for handling errors that occur during communication between unit services.
  • Each unit service only needs to be transmitted to the proxy 180 by TCP connection while specifying only the connection address of the other unit service. There is no need to change the code of the unit service.
  • the proxy 180 is an agent for communication connection between unit services, an agent for transmitting and receiving data between unit services, a secure connection between unit services (TLS), L4 load balancing between unit services (L4 level round robin method, weight method), and L7 between unit services.
  • Load balancing (based on the contents of the service request header), health check of the counterpart service, response to communication failures with the counterpart service (retransmission, timeout, circuit breaker), communication control with the counterpart service (restriction of simultaneous access, simultaneous request)
  • the number limit communication with the policy manager 200 (real-time synchronization of the policy), and communication with the security manager 220 (encryption key access) are implemented.
  • the proxy 180 stores a log/trace using a library provided by the log collector 240, and transmits the log/trace to the log collector 240 using a library provided by the log collector 240 Implement
  • the policy manager 200 deploys the proxy 180 whenever a unit service is newly distributed, and then continuously manages the proxy 180.
  • a service policy for load balancing and communication error response performed by the proxy 180 is defined, and the policy defined for each unit service is synchronized in real time.
  • the policy manager 200 authenticates API access for control, automatically deploys the proxy 180 for each unit service, continues management of the distributed proxy 180, creates and stores L4/L7 load balancing policies, and communicates with the counterpart service. It implements a function of creating and storing a policy for response to failure, controlling communication with a counterpart service, creating and storing a policy for secure communication, and communicating with the proxy 180 (real-time synchronization of the policy).
  • the security manager 220 performs control access authentication so that the proxy 180 is not controlled by an arbitrary user or system. Conversely, an arbitrary proxy 180 is installed to authenticate the proxy 180 to prevent abnormal operation. An encryption key is managed so that an encrypted TLS secure connection can be made even for data communication between the proxies 180 respectively installed in the unit service.
  • the security manager 220 implements API access authentication for control, authentication of the distributed proxy 180, issuing and storing an authentication key for encrypted communication between unit services, and communication functions with the proxy 180.
  • Each proxy 180 keeps a record of requests and responses processed by itself. This information is transmitted to the log collector 240 in real time or periodically. The delivery process operates separately from the data communication of the proxy 180 and does not affect the service.
  • the log collector 240 relays the log collected from each proxy 180 to an external designated storage rather than the final destination so that the log analyzer 260 can analyze it. It has a structure that can be quickly expanded so that there is no performance delay according to the amount of logs to be collected, and has a highly available cache structure so that collected logs are not lost in consideration of a failure situation of an external storage.
  • the log collector 240 provides a log generation and transmission library to the proxy 180, receives and stores logs from the proxy 180, relays the logs received from the proxy 180 to an external log storage, and meets the specifications of an external log analyzer. It implements an instance automatic expansion function according to log format matching and log reception amount.
  • the log analyzer 260 analyzes the operation of the service by reading the log from an external storage where the log collector 240 stores the log. The failure point and its processing status are identified among each unit service section, and the response speed of each unit service section is compared to find the bottleneck of the entire service.
  • the identified result is used to adjust the service policy of traffic routing, change the function of the unit service, or improve the performance.
  • the log analyzer 260 stores the final log relayed from the log collector 240, develops a log analysis automation tool (error, bottleneck, delay, resource overload detection and prediction), and implements a dashboard function of essential analysis functions. .
  • the process of delivering and analyzing the log operates separately from the data communication of the proxy 180 and does not affect the service.
  • This system does not require any code insertion in order for each unit service to use the functions suggested by the present technology, and the control unit (policy manager 200, security manager 220, log collector 240), and log analyzer ( 260)) and an execution unit (proxy 180, unit service).
  • the microservice system may provide a'enterprise microservice platform 120' for introducing microservices to an internal IT system based on a container-based microservice platform 120 technology, or a public cloud environment.
  • 'Microservice Platform 120 Online Service' is an online method for customers who want to use the same functions as those provided by the enterprise microservice platform 120 in an online manner without burdening separate product introduction and installation costs. You can also provide.
  • the enterprise microservice platform 120 controls and manages the communication connection and traffic between the container-based application 160 management environment that automates the deployment and operation of the application 160 and each unit service 160 of the microservice. Provides integrated functions. It simplifies the technical considerations for developing microservices by providing the environment necessary for companies to introduce microservices at the infrastructure level rather than at the library or framework level. Control and monitoring of communication and traffic of all unit services 160 necessary for the operation of microservices can be controlled by an operator rather than a developer, since the centralized interface can be used. With one product, you can operate multiple clusters in a multi-cloud environment. It can be provided to both companies that prefer their own infrastructure to that of public cloud for reasons of business requirements or security, companies that want to use public cloud infrastructure to reduce operating costs, or companies that use public and private together. have.
  • the online service of the microservice platform 120 is an online service product of the enterprise-type microservice platform 120, and enables a company to directly select and use a public cloud for which the application 160 is to be distributed. Multitenancy for online services, membership registration, and payment functions will be added. It provides online services for service development and operation in public cloud infrastructure. The user charges a usage fee according to the size of the application 160 operated by the user, and unlike other online services, the use of a specific public cloud infrastructure is not enforced, and the user selects the desired public cloud infrastructure and distributes his application 160 Can be operated.
  • the present invention integrates microservice management and container orchestration functions.
  • it integrates the microservice management function on the container orchestration platform, and the enterprise can significantly reduce the effort required to introduce microservices only by introducing this technology.
  • the UI providing unit 140 provides a consistent Web UI (User Interface) so that the container platform 100 and the microservice platform 120 can be integrated and managed.
  • the setting and analysis of the container platform 100 and the microservice platform 120 can be executed through a web UI.
  • the command-based interface provides various user conveniences from the developer's point of view, it is desirable to provide a web UI from the point of view of operation because there is a high possibility of errors due to mistakes.
  • FIGS. 4 and 5 A microservice method of a microservice system having such a configuration will be described with reference to FIGS. 4 and 5 as follows.
  • the container platform 100 provides an environment for automating the distribution and operation of microservices (S100).
  • microservice platform 120 controls and manages communication connection and traffic between each unit service 160 of the microservice based on the container platform 100 (S110).
  • the UI providing unit 140 provides a Web UI (User Interface) that integrates and manages the container platform 100 and the microservice platform 120 (S120).
  • Web UI User Interface
  • a process in which communication between the unit services 160 in the microservice platform 120 is performed will be described in detail with reference to FIG. 5.
  • the policy manager 200 deploys the proxy 180 whenever a unit service is newly distributed, and then continuously manages the proxy 180 (S200).
  • the policy manager 200 defines a service policy for load balancing and communication error response performed by the proxy 180, and synchronizes the policy defined for each unit service in real time.
  • the policy manager 200 authenticates API access for control, creates and stores L4/L7 load balancing policies, creates and stores policies for coping with communication failures with counterpart service, controls communication with counterpart service, and secure communication. Policy creation and storage, and communication with the proxy 180 (real-time synchronization of policies) are implemented.
  • the security manager 220 performs control access authentication so that the proxy 180 is not controlled by any user or system (S210).
  • the unit service 160 requests communication from the proxy 180 by designating identification information of the unit service 160 to be connected (S220).
  • the proxy 180 processes communication control functions including communication error processing and intelligent load balancing (S230).
  • the security manager 220 manages the encryption key so that an encrypted TLS secure connection can be made even for data communication between the proxies 180 respectively installed in the unit service.
  • the proxy 180 is an agent for transmitting and receiving data between each unit service, a secure connection (TLS) between unit services, L4 load balancing between unit services (L4 level round robin method, weight method), and L7 load balancing between unit services (service Based on the content of the request header), health check of the other unit service, response to communication failures with the other unit service (retransmission, timeout, circuit breaker), communication control with the other unit service (restriction of simultaneous access, limit of simultaneous requests), It implements a function to handle errors occurring during communication with the policy manager 200 (real-time synchronization of the policy), communication with the security manager 220 (access to an encryption key), and communication between unit services.
  • TLS secure connection
  • L4 load balancing between unit services L4 level round robin method, weight method
  • L7 load balancing between unit services service Based on the content of the request header
  • health check of the other unit service response to communication failures with the other unit service (retransmission, timeout, circuit breaker), communication control with the
  • the proxy 180 When each unit service operates as a plurality of instances, the proxy 180 also performs a load balancing role to each instance.
  • the load balancing includes at least one of an L4 level round robin method, a weighting method, and an L7 level intelligent load balancing based on the contents of a service request header.
  • the proxy 180 stores a log/trace locally using a library provided by the log collector 240, and transmits it to the log collector 240 using a library provided by the log collector 240. Implement the function.
  • the log collector 240 collects logs generated by each proxy 180, and stores the collected logs in an external storage (S240).
  • the log collector 240 provides a log generation and transmission library to the proxy 180, matches the log format in accordance with the specifications of the log analyzer 260, and implements an instance automatic expansion function according to the amount of log reception.
  • the log analyzer 260 reads the log stored in an external storage by the log collector 240 and analyzes the operation of the service (S250).
  • the log analyzer 260 identifies the failure point of each unit service section and its processing state, and compares the response speed of each unit service section to find the bottleneck of the entire service.
  • the result analyzed and found by the log analyzer 260 is used to adjust a service policy of traffic routing, change a function of a corresponding unit service, or improve performance.
  • the log analyzer 260 stores the final log relayed from the log collector 240, develops a log analysis automation tool (error, bottleneck, delay, resource overload detection and prediction), and implements a dashboard function of essential analysis functions. .
  • the above-described embodiments of the present invention can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.
  • the computer-readable recording medium is a magnetic storage medium (e.g., ROM, floppy disk, hard disk, etc.), optical reading medium (e.g., CD-ROM, DVD, etc.), and carrier wave (e.g., via the Internet). Transfer).
  • an environment capable of controlling and managing communication occurring between each unit service 160 of a microservice is provided, and It centralizes control of numerous connections and traffic made there, enables sophisticated traffic control without relying on a specific language, library, or framework, and quickly detects and measures bottlenecks or failures through transaction tracking. Can be processed.

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

마이크로서비스 시스템 및 방법
본 발명은 마이크로서비스 시스템 및 방법에 관한 것으로서, 보다 상세하게는 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리·프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있는 마이크로서비스 시스템 및 방법에 관한 것이다.
마이크로서비스란 하나의 서비스를 여러 개의 부분 업무 영역으로 나눈 후, 각 개별 영역을 완결된 작은 단위의 서비스들의 연결로 구성하는 소프트웨어 설계와 개발 방법론이다.
마이크로서비스는 웹 기반 온라인 서비스의 글로벌화와 대용량화에 따라 서비스의 안정성을 위해서 분산 구조의 네트워크 시스템 설계 방식으로 등장하였으며, 빠르게 변화하는 비즈니스 환경에 맞춰 서비스의 변경과 개선을 유연하고 빠른 주기로 지속적으로 배포할 수 있는 아키텍처로 각광받으며 전 세계적으로 확산되어 가고 있다.
마이크로서비스는 구조적으로 많은 단위 서비스로 나누어져 있고, 각 단위 서비스마다 수많은 통신연결을 가지게 된다. 따라서 마이크로서비스 구조로 구축하기 위해서는 새롭게 고려할 개발 사항이 크게 증가하고, 복잡한 구조를 가진 서비스를 안정적으로 운영하기 위해 많은 노력과 투자가 필요하다.
이러한 마이크로서비스를 도입하기 위해서는 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경이 필요할 것이다.
이에 본 발명은 이러한 상기 문제점을 해결하기 위해 창출된 것으로, 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리·프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있는 마이크로서비스 시스템 및 방법을 제공하는 데 그 목적이 있다.
그러나 본 발명의 기술적 과제들은 위에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시례에 따른 마이크로서비스 시스템은 컨테이너 플랫폼 기반에서 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 마이크로서비스 플랫폼을 포함하고, 상기 마이크로서비스 플랫폼은 상기 각 단위 서비스마다 배치되어 상기 단위 서비스 간의 통신 연결을 대행하는 프록시, 상기 단위 서비스가 새롭게 배포될 때마다 상기 프록시를 배치하고, 이후 상기 프록시를 지속적으로 관리하는 폴리시 매니저, 임의의 사용자 또는 시스템에 의해 상기 프록시가 제어되지 않도록 제어 접속 인증을 수행하는 세큐리티 매니저, 상기 각 프록시로부터 로그를 수집하고, 수집된 상기 로그를 외부의 저장소에 저장하는 로그 콜렉터, 상기 로그 콜렉터에 의해 상기 외부의 저장소에 저장된 상기 로그를 읽어들여 서비스의 동작을 분석하는 로그 애널라이저를 포함하며, 상기 프록시는 상기 각 단위 서비스 간의 데이터 송수신 대행, 상기 단위 서비스 간의 보안 연결(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)들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리·프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시례들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시례들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (16)

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

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2020162680A1 true WO2020162680A1 (ko) 2020-08-13

Family

ID=68730405

Family Applications (1)

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

Country Status (2)

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

Cited By (7)

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

Families Citing this family (6)

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

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 에스케이텔레콤 주식회사 적응적 비실시간 트래픽 제어방법과 이를 위한 단말기 및 장치
KR101678612B1 (ko) * 2015-06-17 2016-11-22 (주)넷비젼텔레콤 프록시 선택기와 각 프록시의 설정 제어를 이용한 단말 단위 실시간 정책 적용, 부하분산 및 장애 복구를 제공하는 서비스시스템 및 그 제어방법
CN106789339A (zh) * 2017-01-19 2017-05-31 北京仿真中心 一种基于轻量级虚拟化架构的分布式云仿真方法与系统
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
KR20150142871A (ko) 2014-06-12 2015-12-23 주홍찬 인터렉티브 푸쉬 클라우드 시스템 장치 및 방법

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 에스케이텔레콤 주식회사 적응적 비실시간 트래픽 제어방법과 이를 위한 단말기 및 장치
KR101678612B1 (ko) * 2015-06-17 2016-11-22 (주)넷비젼텔레콤 프록시 선택기와 각 프록시의 설정 제어를 이용한 단말 단위 실시간 정책 적용, 부하분산 및 장애 복구를 제공하는 서비스시스템 및 그 제어방법
KR101871902B1 (ko) * 2016-05-11 2018-06-27 오라클 인터내셔날 코포레이션 멀티-테넌트 아이덴티티 및 데이터 보안 관리 클라우드 서비스
CN106789339A (zh) * 2017-01-19 2017-05-31 北京仿真中心 一种基于轻量级虚拟化架构的分布式云仿真方法与系统

Cited By (12)

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

Also Published As

Publication number Publication date
KR102050188B1 (ko) 2019-11-28

Similar Documents

Publication Publication Date Title
WO2020162680A1 (ko) 마이크로서비스 시스템 및 방법
CN109462534B (zh) 区域互联控制器、区域互联控制方法以及计算机存储介质
WO2020162679A1 (ko) 마이크로서비스 시스템 및 방법
CN112202940B (zh) 一种kubernetes对外暴露Pod服务方式
JP3640187B2 (ja) マルチプロセッサシステムの障害処理方法、マルチプロセッサシステム及びノード
CN105264865A (zh) 分布负载平衡器中的多路径路由
JP2003528371A (ja) サーバ用フェデレイテッドオペレーティングシステム
WO2020138605A1 (ko) 사용자 특성을 반영한 클러스터 기반 가상 네트워크 기능의 자원 할당 방법
WO2022066493A1 (en) Combining domain-specific language with general-purpose language for serverless network functions
Lucrezia et al. Introducing network-aware scheduling capabilities in openstack
WO2018135742A1 (ko) 중앙 집중식 제어 구조 서버를 갖는 포그 컴퓨팅 운용을 위한 시스템 및 그의 제어 방법
CN114363170A (zh) 容器服务网络配置方法及相关产品
CN114942826A (zh) 跨网络多集群系统及其访问方法及云计算设备
Jeong et al. Design and Implementation of virtual TAP for SDN-based OpenStack Networking
Ravuri et al. An experimental evaluation of flow setup latency in distributed software defined networks
US20240163179A1 (en) Virtual network function proof of transit
CN117319212B (zh) 云环境下多租户隔离的密码资源自动化调度系统及其方法
WO2019190095A1 (ko) 네트워크 기능 가상화 환경에서 네트워크 자원 관리를 위한 장치 및 방법
Lakshmi et al. Integrating service function chain management into software defined network controller
Kuchii et al. KANVAS: A Network Information Sharing Framework Based on Network Ontology Bonsai
KR102422152B1 (ko) SDN 기반 ITS 네트워크에서 현장 인프라 관리자에 따라 가상 네트워크를 분리하는 vCPE 디바이스와 그 동작 방법
WO2022239954A1 (ko) 멀티 노드 환경에서 컨테이너 관리 운영 방법과 시스템
Hall et al. Counting the cycles: a comparative study of NFS performance over high speed networks
CN118282866B (zh) 基于容器集群的多租户隔离部署方法、系统、设备及介质
WO2021187788A1 (ko) 인라인 네트워크 토폴로지에서 ip 네트워크 투명성을 갖는 프록시 장비를 위한 자동 경로 학습 방법 및 그 시스템

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20752034

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20752034

Country of ref document: EP

Kind code of ref document: A1