Вимоги до Архітектури

Резюме

Демонстраційний застосунок OpenTelemetry призначений для того, щоб бути вітриною для OpenTelemetry API, SDK та інструментів у схожому на виробничий хмарному нативному застосунку. Загальна мета цього застосунку полягає не лише в тому, щоб надати канонічну “демонстрацію” компонентів OpenTelemetry, але й слугувати основою для подальшого налаштування кінцевими користувачами, постачальниками та іншими зацікавленими сторонами.

Вимоги

Цілі застосунку

  • Надати розробникам надійний зразок застосунку, який вони можуть використовувати для вивчення інструментування OpenTelemetry.
  • Надати постачальникам засобів спостереження єдину, добре підтримувану, демонстраційну платформу, яку вони можуть додатково налаштовувати (або просто використовувати з коробки).
  • Надати спільноті OpenTelemetry живий артефакт, який демонструє функції та можливості API, SDK та інструментів OTel.
  • Надати підтримувачам та робочим групам OpenTelemetry платформу для демонстрації нових функцій/концепцій “у дикій природі”.

Нижче наведено загальний опис логічних компонентів демонстраційного застосунку.

Основний застосунок

Основна частина демонстраційного застосунку — це автономний застосунок на основі мікросервісів, який виконує деяку корисну “реальну” роботу, наприклад, сайт електронної комерції. Цей застосунок складається з кількох сервісів, які взаємодіють один з одним через gRPC та HTTP і працюють у Kubernetes (або Docker, локально).

Кожен сервіс повинен бути інструментований OpenTelemetry для трасування, метрик та логів (за наявності/доступності).

Кожен сервіс повинен бути взаємозамінним з сервісом, який виконує ту саму бізнес-логіку, реалізуючи ті самі gRPC точки доступу, але написаний іншою мовою/реалізацією.

Кожен сервіс повинен мати можливість взаємодіяти зі службою прапорців функцій, щоб увімкнути/вимкнути несправності, які можуть бути використані для ілюстрації того, як телеметрія допомагає вирішувати проблеми в розподілених застосунках.

Компонент прапорців функцій

Прапорці функцій є важливою частиною розробки хмарних нативних застосунків. Демонстрація використовує OpenFeature, проєкт в інкубаторі CNCF, для управління прапорцями функцій.

Прапорці функцій можна встановлювати через інтерфейс користувача конфігуратора flagd.

Оркестрування та Розгортання

Усі сервіси працюють в Kubernetes. Колектор OpenTelemetry слід розгортати за допомогою OpenTelemetry Operator і запускати в режимі sidecar + gateway. Телеметрія з кожного podʼа повинна маршрутизуватися від агентів до шлюзу, а шлюз повинен стандартно експортувати телеметрію до відкритого візуалізатора трасування + метрик.

Для локального/не-Kubernetes розгортання колектор слід розгортати за допомогою файлу compose і моніторити не лише трасування/метрики з застосунків, але й docker контейнери за допомогою dockerstatsreceiver.

Метою проєктування цього проєкту є включення CI/CD конвеєра для самостійного розгортання в хмарних середовищах. Це можна пропустити для локальної розробки.


Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (2a3c5648)