Вимоги до Архітектури
Резюме
Демонстраційний застосунок 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 конвеєра для самостійного розгортання в хмарних середовищах. Це можна пропустити для локальної розробки.
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!