스카이워킹 풀링크 모니터링 기반 마이크로서비스 시스템 성능 최적화 탐색 및 실습

오픈소스 커뮤니티와 클라우드 컴퓨팅의 급속한 발전으로 새로운 애플리케이션 시스템의 핵심 아키텍처인 클라우드 네이티브 마이크로서비스가 점점 더 널리 사용되고 있습니다. Gartner의 마이크로서비스 정의에 따르면 "마이크로서비스는 범위가 좁고, 단단히 캡슐화되어 있으며, 느슨하게 결합되어 있고, 독립적으로 배포 가능하며 독립적으로 확장 가능한 애플리케이션 구성 요소입니다."

마이크로서비스의 아버지인 마틴 파울러(Martin Fowler)는 마이크로서비스에 대해 다음과 같이 설명했습니다. 현재 마이크로서비스 산업에 대한 통일된 표준 정의는 없습니다.

그러나 일반적으로 마이크로서비스 아키텍처는 아키텍처 패턴 또는 아키텍처 스타일로, 단일 애플리케이션을 작은 서비스 집합으로 나누는 것을 옹호하며, 각 서비스는 자체 독립 프로세스에서 실행되고 서비스 간을 조정하며 서로 협력하여 사용자에게 최고의 가치를 제공합니다. 서비스는 경량 통신 메커니즘(일반적으로 HTTP 기반 RESTful API)을 사용하여 서로 통신합니다.

각 서비스는 특정 비즈니스를 중심으로 구축되며 프로덕션 환경, 프로덕션과 유사한 환경 등에 독립적으로 배포할 수 있습니다. 이 방법은 응용 프로그램 시스템의 응답 속도, 유연성 및 배포 탄력성을 향상할 수 있으며 비즈니스 개발에 보조를 맞출 수 있습니다. 신속한 반복 및 최적화. 현재 업계에서는 점점 더 많은 애플리케이션 서비스 시스템이 마이크로 서비스 아키텍처로 업그레이드되어 기존 애플리케이션 모니터링 시스템에 새로운 과제를 제기하고 있습니다.

마이크로서비스 애플리케이션 모니터링 시스템의 구축 및 개발을 촉진하고 업계에서 마이크로서비스 풀링크 모니터링 기술의 실제 경로를 탐색하기 위해 SkyWalking 오픈소스 관찰 가능 플랫폼을 도입하여 비코드를 통해 마이크로서비스 풀링크 모니터링을 수집했습니다. 정보는 마이크로서비스 시스템의 토폴로지 관계를 시각적으로 표시하고, 트랜잭션 링크를 추적하고, 성능 병목 현상을 정확하게 식별하여 마이크로서비스 풀 링크 애플리케이션 모니터링을 위한 기존 테스트 도구 및 방법의 부족을 보완합니다.

스카이워킹 소개

SkyWalking은 마이크로서비스, 클라우드 네이티브 아키텍처 및 컨테이너 기반(Docker, k8s, Mesos 등) 아키텍처용으로 설계된 애플리케이션 성능 모니터링 도구인 오픈 소스 관찰 가능 플랫폼 APM 시스템으로, 수집, 분석, 집계 및 시각화에 사용됩니다. 서비스 및 클라우드 기반 인프라에 대한 데이터의 데이터입니다.

분산 추적, 서비스 그리드 원격 측정 분석, 지표 집계 및 시각화를 위한 통합 솔루션을 제공합니다. 스카이워킹은 크게 다음 네 부분으로 구성됩니다.

0 1 에이전트 에이전트

프로브는 데이터를 수집하고 SkyWalking 요구 사항에 따라 형식을 다시 지정합니다(다른 프로브는 다른 소스를 지원함).

Agent는 각 서비스 인스턴스에서 실행되며 서비스 인스턴스의 Trace, Metrics 등의 데이터를 수집한 후 gRPC를 통해 SkyWalking 백엔드에 보고하여 OAP 서버에서 분석하는 역할을 합니다. 3 장.

0 2 OAP 서버

스카이워킹의 OAP(Observability Analysis Platform, Observation Analysis Platform)는 링크 샘플링 데이터를 분석하기 위한 분석 컴퓨팅 시스템입니다.

OAP 서비스는 주로 다음 세 가지 유형의 데이터를 계산해야 합니다.

(1) 기록 데이터

Trace, 액세스 로그, 기타 데이터 등 기록된 링크 데이터는 RecordStreamProcessor에 의해 처리됩니다.

(2) 지표 데이터

기록된 지표 데이터, 대부분의 OAL(Observability Analysis Language) 지표는 이러한 데이터를 생성하며 이는 MetricsStreamProcessor에 의해 처리됩니다.

(3) TopN 데이터

느린 SQL의 주기적 수집과 같이 기록된 주기적 샘플링 데이터는 TopNStreamProcessor에 의해 처리됩니다.

Trace, 접속 로그 등의 세부 데이터는 상대적으로 많은 양의 데이터를 가지고 있으나 병합 및 처리할 필요가 없어 OAP 노드 내에서 처리가 가능하며, 이러한 세부 데이터는 캐시, 비동기식 일괄 처리, 스트림 쓰기 등이 있다. .외부 저장소(Storage)에 씁니다.

OAL(Observability Analysis Language)로 정의된 대부분의 지표 데이터는 마이크로서비스에 의해 집계되고 계산되어야 하므로 OAP 클러스터 컴퓨팅 흐름에서 두 단계로 나누어집니다.

1단계: 에이전트가 보낸 데이터를 수신 및 구문 분석하고 OAL 또는 기타 집계 모드를 사용하여 현재 OAP 서비스 노드에서 데이터 집계를 수행합니다.

Aggregation이 필요하지 않은 데이터는 외부 저장소(Storage)에 직접 기록하고, 마이크로서비스로 Aggregation이 필요한 데이터는 특정 라우팅 규칙에 따라 지정된 OAP 서비스 노드로 전송됩니다.

2단계, 1단계에서 처리된 데이터를 받아 파싱한 후 2차 집계 계산을 수행하고, 결과 데이터를 외부 메모리(Storage)에 씁니다.

위의 두 단계에서 OAP 서비스 노드는 Receiver(처리 1단계)와 Aggregator(처리 2단계)의 두 가지 역할로 구분됩니다.

기본적으로 모든 OAP 서비스 노드는 1단계와 2단계의 작업을 수행할 수 있는 혼합 역할입니다. 스카이워킹의 대규모 시스템 구축 시나리오에서는 네트워크 트래픽에 따라 역할 분리의 2단계 구축이 가능하다.

또한 OAP 서버는 SkyWalking UI 인터페이스에서 보낸 쿼리 요청에 응답하고, 이전에 지속된 데이터를 쿼리하고, 올바른 응답 결과를 형성하고 이를 UI 인터페이스에 반환하여 표시합니다.

0 3 스토리지 데이터베이스 스토리지

OAP 서비스를 위한 외부 저장 장치로 데이터 저장을 담당하며 다양한 저장 유형을 지원하며 ElasticSearch, Mysql 등 기존 저장 시스템을 사용하거나 저장 시스템을 맞춤화할 수 있습니다.

SkyWalking 데이터는 ElasticSearch, Mysql, TiDB, InfluxDB, H2의 구현된 지속성 시스템에 저장될 수 있습니다. H2는 인메모리 데이터베이스입니다. 저장된 데이터는 메모리에 있으며 디스크에 떨어지지 않습니다. SkyWalking 서비스를 다시 시작하면 데이터 손실은 기본 저장 방법이며 ElasticSearch 클러스터는 일반적으로 온라인에서 백엔드 저장소로 사용됩니다.

0 4 UI 인터페이스

SkyWalking 데이터의 시각화 및 관리를 담당하고 프런트엔드와 백엔드를 분리합니다. UI 인터페이스는 사용자의 쿼리 작업을 GraphQL 요청으로 캡슐화하고 이를 OAP 백엔드에 제출하여 후속 쿼리 작업을 트리거하는 역할을 합니다. 쿼리 결과를 얻은 후 체인 통화 관계를 표시 및 확인하고 다양한 모니터링 지표, 성과 지표 등을 확인합니다.

위의 소개에서 SkyWalking을 구성하는 하위 시스템에 대해 Agent 에이전트 프로그램은 다양한 링크 샘플링 데이터를 수집하고 이를 GRPC를 통해 OAP에 전달하여 분석하고 데이터베이스에 저장하고 마지막으로 통계 보고서를 분석하기 위한 UI 인터페이스, 서비스 종속성 및 토폴로지 다이어그램이 표시됩니다.

SkyWalking 애플리케이션 확장 및 성능 튜닝

커스텀 플러그인 개발의 예시로, 특정 시스템을 기반으로 커스텀 플러그인을 개발하여 스카이워킹 배포 패키지의 플러그인 디렉터리에 배포합니다.

쿼리 인터페이스가 호출되면 그림 1과 같이 여러 스레드가 SkyWalking에서 메서드의 샘플링 정보를 볼 수 있습니다.

그림

그림 1 쿼리 메소드의 샘플링 정보

그림 2와 같이 자세한 범위 정보를 보려면 그림 1의 쿼리 방법 링크를 클릭하세요.

그림

그림 2 스팬 정보

위 정보에서 우리가 추가한 세 가지 태그가 호출 시작 시간, 호출 종료 시간 및 시스템 간 쿼리 메서드 실행 시간(ms)이라는 것을 분명히 알 수 있습니다.

시스템 재구성, 아키텍처는 다중 마이크로서비스 및 다중 링크 시스템이 특징입니다. 매개변수 구성 검사, Observability 기술, 데이터 마이그레이션, 동시 검증 등 4가지 주제의 결과를 적용할 수 있습니다.

성능 튜닝의 예 SkyWaling Agent가 비즈니스 성능 테스트에 미치는 영향을 최소화하고 비즈니스 시스템의 성능 병목 현상을 실제로 모니터링하기 위해 SkywalkingAgent에 대해 일부 성능 튜닝을 수행했습니다. 샘플링 빈도 및 샘플링 수량과 같은 관련 매개 변수를 조정하여 , 에이전트 배포 후 SkyWalking 추가 성능 손실을 줄일 수 있습니다.

그림 3은 SkyWaling Agent를 배포하지 않고, SkyWaling Agent 표준화를 배포(성능 튜닝 없이)하고, SkyWaling Agent를 성능 튜닝과 함께 배포하여 동일한 트랜잭션에 대해 동일한 동시성에서 성능 테스트 결과를 비교한 것으로, 튜닝 후 성능이 향상되는 것을 확인했습니다. 표준화된 배포 시나리오에 비해 에이전트가 배포되지 않은 상황에 비해 성능 손실이 최소화되었습니다.

그림

마지막으로: 아래의 전체 소프트웨어 테스트 비디오 튜토리얼이 정리되어 업로드되었으며, 필요한 친구는 스스로 얻을 수 있습니다. [100% 무료 보장]

소프트웨어 테스팅 인터뷰 문서

고임금 일자리를 찾으려면 공부해야 합니다. 다음 면접 질문은 Ali, Tencent, Byte 등 1위 인터넷 기업의 최신 면접 자료이며 일부 Byte 상사들이 권위 있는 답변을 제공했습니다. 이 세트를 완료하십시오. 면접 자료 누구나 만족스러운 직업을 찾을 수 있다고 믿습니다.

추천

출처blog.csdn.net/wx17343624830/article/details/132480946