webpack
-
OTEL, Jaeger, 및 Prometheus로 서비스 제어하기
중요한 질문에 대해 논의해 봅시다: 문제가 발생했을 때 서비스를 어떻게 모니터링할까요? 한편으로는 경보 기능이 있는 Prometheus와 대시보드 및 다른 유용한 기능을 제공하는 Kibana을 사용할 수 있습니다. 또한 우리는 로그를 수집하는 방법을 알고 있습니다 — ELK 스택이 우리의 해결책이 됩니다. 그러나 간단한 로깅만으로 충분하지 않을 수 있습니다: 이는 요청이 전체 구성 요소 생태계를 횡단하는 과정에 대한 종합적인 보기를 제공하지 않기 때문입니다. ELK에 대한 자세한 정보는 여기에서 찾을 수 있습니다. 그러나 요청을 시각화하고 시스템 간에 이동하는 요청을 연관시켜야 하는 경우는 어떨까요? 이는…
-
OpenTelemetry와 Jaeger를 사용하여 추적하기
추적(Tracing)은 중요한 コンポーネント로, 複雑なシステム을 거쳐 リクエストのトラッキングを行います。この視覚性により、瓶颈とエラーを揭示し、より速く解決することができます。私たちのGoウェブサービスシリーズの前回の記事では、可視性(observability)の重要性を探りました。今日は、追跡に焦点を当てます。Jaegerは、分散型システムのトラックを集め、保存し、視覚化します。これは、サービス間のリクエスト流を crucial insights を提供します。開発者は、JaegerをOpenTelemetryと統合することで、トラッキング手法を统一させ、一貫性と完全な視覚性を保証します。この統合は、パフォーマンス問題の診断を簡略化し、システムの信頼性を向上させます。この記事では、Jaegerを設定し、アプリケーションでOpenTelemetryと統合し、より深い洞察を得るためにトラックの視覚化を探ります。 动机 私たちが向かうのは、以下のようなJaegerダッシュボードです。 アプリのいろいろな部分(Onehubフロントエンド)に行くと、各リクエストのトラックが(grpc-gatewayに触れると)集められ、それぞれの概要を提供します。また、一つのトラックに钻頭込みにより詳細なビューを取得することもできます。POSTリクエストの最初のもの(トピックにメッセージを作成/送信する)を見てください。 ここで、Createリクエストが触れるすべてのコンポーネントと、それぞれの进入/退出時間やメソッド内での時間を表示しています。とても強力です。 始める TL;DR: これを実際に動かし、ブログの残りを検証するには: 이 소스는 PART11_TRACING 브랜치에 있습니다. 필요한 모든 것을 빌드하십시오(브랜치를 체크아웃 한 후): make build 우리는 docker-compose를 두 部分로 분할했습니다(이에 대한 자세한 설명은 나중에 하겠습니다), 따라서 두 개의 창을 실행하는 것을 확인하십시오. terminal 1: make updb dblogs terminal 2: make up logs localhost:7080으로 이동하여 시작하십시오. 高层次 概览 현재 我们的系统는 다음과 같습니다: OpenTelemetry를 이용한 인스펙션으로 我们的系统는 다음과 같이 발전하게 될 것입니다: 지금까지 앞서 말했듯이, 각 서비스가…
-
OPA와 Istio 결합을 위한 5단계
인증(Authentication)과 권限(Authorization)은 雲기술 architecture 및 DevOps engineerings에 의해 해결되어야 하는 보안 퍼즐 중 큰 部分입니다. 이 블로그 내에서는 특정으로 인증 entity가 Istio 서비스 네트워크 안에서 어떤 행동을 할 수 있는지 권한/접근 제어를 달성하는 방법에 대해 보며, 恶意的 행위를 방지하여 인프라스트럭쳐를 보호하는 것입니다. 서비스 네트워크에서 권한 정의는 OPA 정책을 사용하여 行えます. OPA는 DevOps가 Kubernetes 工作中的 권한 정책을 정의하고 적용하는 도구입니다. 이 글에서는 다음과 같이 보여드릴 것입니다: OPA가 무엇인가? Istio 서비스 네트워크와 OPA를 통합하는 이유 Istio와 OPA가 요청을 인증하는 방법 OPA를 Istio와…
-
gRPC와 REST: API 제작을 위한 접근 방식 비교
오늘날의 텍스트에서는 gRPC와 REST를 자세히 살펴보고자 합니다. 아마도 현재 API를 만들기 위해 가장 일반적으로 사용되는 두 가지 접근 방식일 것입니다. I will start with a short characteristic of both tools — what they are and what they can offer. Then I will compare them according to seven categories, in my opinion, most crucial for modern-day systems. 분류는 다음과 같습니다: 기본 HTTP 프로토콜 지원되는 데이터 포맷 데이터 크기 처리량 정의 채택의 용이성 도구 지원 왜 그런가 사람들이 “API”라고 들으면 아마도 바로 REST API를…
-
gRPC를 사용하여 .Net Core에서 간단한 채팅 서버 구축하기
이 글에서는 간단한 동시성 gRPC 채팅 서버 애플리케이션을 만들어 보겠습니다. 이 채팅 서버 애플리케이션을 구축하기 위해 모듈식 프레임워크인 .NET Core를 사용하겠습니다. 다음 주제들을 다룰 것입니다. A brief introduction to gRPC gRPC 환경 설정 및 서비스 계약 정의 채팅 서비스 구현 및 클라이언트 요청 처리 비동기 프로그래밍을 사용하여 여러 클라이언트 동시 처리 동일한 방에 연결된 모든 클라이언트에 채팅 메시지 방송 이 튜토리얼이 끝나면 gRPC를 사용하여 채팅 서버를 구축하는 방법을 이해하게 될 것입니다. gRPC란? gRPC는 Google Remote Procedure Calls의 약자입니다. 초기에는 Google에서…
-
클라이언트 측의 gRPC
대부분의 시스템 간 통신 구성 요소는 REST를 사용하며 그 페이로드를 JSON으로 직렬화합니다. 현재로서는 JSON은 널리 사용되는 스키마 유효성 검사 표준이 부족합니다: JSON 스키마가 널리 보급되지 않았습니다. 표준 스키마 유효성 검사를 통해 유효성 검사를 제3자 라이브러리에 위임하고 완료할 수 있습니다. 이러한 표준이 없으면 코드 내에서 수동으로 유효성을 검사해야 하며, 더 나쁜 경우 유효성 검사 코드를 스키마와 동기화시켜야 합니다. XML은 기본적으로 스키마 유효성 검사를 제공합니다: XML 문서는 준수해야 하는 문법을 선언할 수 있습니다. SOAP는 XML을 기반으로 하므로 이를 활용합니다. 다른 직렬화 대안들도…
-
gRPC 개념, 사용 사례 및 모범 사례 이해하기
애플리케이션 개발을 진행하면서 다양한 것들 중에 우리가 덜 걱정하는 가장 주요한 것이 있습니다. 바로 컴퓨팅 파워입니다. 클라우드 서비스 제공업체의 등장으로 데이터 센터를 관리하는 데 덜 걱정할 수 있습니다. 모든 것이 즉시 주문 가능합니다. 이로 인해 데이터 크기도 증가합니다. 빅 데이터는 단일 요청에서 다양한 매체를 사용하여 생성되고 전송됩니다. 데이터 크기가 증가함에 따라 직렬화, 역직렬화 및 전송 비용과 같은 활동이 추가됩니다. 컴퓨팅 자원에 대해 걱정하지 않더라도 대기 시간이 오버헤드가 됩니다. 전송을 줄여야 합니다. 과거에는 이를 해결하기 위해 많은 메시징 프로토콜이 개발되었습니다. SOAP는…
-
웹 프로젝트에서 REST, gRPC, GraphQL의 심층 탐구
웹 개발의 다이나믹한 환경에서 API 기술의 선택은 프로젝트의 성공과 효율을 결정하는 핵심적인 역할을 합니다. 이 기사에서는 REST, gRPC, GraphQL 이라는 세 가지 주요 경쟁자를 철저하게 탐구해 보겠습니다. 이들 각각의 기술은 서로 다른 사용 사례와 개발 시나리오를 위해 자신만의 강점과 능력을 제공합니다. REST란? REST API 또는 표현적 상태 전달 응용 프로그램 프로그래밍 인터페이스는 웹 서비스를 구축하기 위한 일련의 아키텍처 원칙 및 규칙입니다. 이는 인터넷을 통해 다양한 소프트웨어 애플리케이션이 서로 통신할 수 있는 표준화된 방법을 제공합니다. REST는 웹 개발 환경에서 웹 브라우저나…
-
gRPC와 REST: 차이점, 유사점 및 사용 이유
인기 있는 클라이언트-서버 아키텍처는 통신을 두 부분으로 나눕니다: 모든 무거운 작업을 처리하고 서비스를 제공하는 부분인 서버와, 그 서비스를 享하는 부분인 클라이언트. 일반적인 클라이언트-서버 통신에서 클라이언트는 단순히 리소스나 서비스를 요청하는 요청을 서버에 보내고, 서버는 그 요청에 응답합니다. 클라이언트-서버 통신을 위해서는 클라이언트와 서버가 그들이 통신하는 프로토콜을 이해할 수 있는 라이브러리가 필요합니다. 프로토콜은 인터넷 통신 규칙의 언어나 세트입니다. 이들은 인터넷을 통해 데이터를 전송하기 위한 몇 가지 지침을 따르는 전송 메커니즘입니다. 클라이언트 통신의 두 번째로 중요한 측면은 클라이언트와 서버가 동의할 수 있는 메시지 형식입니다.…