.net разработка управлять центром событий azure

15 000 руб. за проект
10 июня 2022, 07:30 • 3 отклика • 36 просмотров
Приложение сканирует и пишет отчет по утилизации eventhub namespaces в облаке Azure. Если масштабирование слишком высоко, приложение уменьшает единиц пропускной способности.

○ Вам будет предоставлена возможность входа в мою Azure среду:
Доступ участников к 2 учетным записям хранения (storage account), 2 пространствам имен eventhub (eventhub namespace).
Доступ участника к группе ресурсов с веб-приложением (.Net webapp), имеющим доступ к вышеперечисленному, и VM, которая может инициировать события в пространстве имен eventhub, чтобы обеспечить их масштабирование.
Я отвечаю за настройку инфраструктуры
Могу предоставить дополнительные среды для тестирования
Максимальное время для этапа 1 составляет 2 недели и 1 неделя для этапа 2, 1 неделя для этапа 3
Я доступен с 14:00 до 01:00 по московскому времени, чтобы ответить на любые вопросы
Если по технологических причинах нужно что-то поменять или упростить, я готов это обсудить

○ Вот общая логика требуемого приложения
  • Аутентификация
    • Приложение будет использовать управляемый идентификатор службы от Microsoft https://docs.microsoft.com/ru-ru/azure/azure-app-c...
    • Будет иметь доступ для чтения и записи к учетной записи хранения логов.
    • Будет иметь доступ к пространствам имен eventhub в подписке.
  • Конфигурация приложения
    • Идентификатор учетной где будет контейнере configuration.json (эксемпляр phase1configuration.json).
    • Приложение будет иметь доступ к учетной записи хранения с файлом json, который будет настраивать приложение.
      • Контейнер и файл JSON должны быть созданы, если их нет в учетной записи хранения.
      • Файл JSON содержит список идентификаторов пространств имен eventhub.

  • Другая логика
    • Приложение должно повторить команды API, если команда не удалась.
  • Оформление журнала (logging)
    • 2 уровня ведения журнала
    • Уровень ведения журнала отладки. Каждая команда API Azure должна регистрироваться вместе с ее выходными данными.
    • Уровень регистрации ошибок: регистрируются только ошибки и повторные попытки.
    • Идентификатор учетной записи хранения журналов указан в настройках веб-приложения.
    • Loglevel настроен в файле configuration.json как logging_level.
    • Контейнер и файл журнала должны быть созданы, если они отсутствуют в учетной записи хранения.
    • Файл журнала в контейнере следует менять каждые 10 МБ, максимальное количество файлов журнала — 20.
    • Если запись в учетную запись хранения невозможна, журнал следует записывать локально, максимальный размер — 10 МБ.
    • Используйте формат журнала json https://docs.microsoft.com/ru-ru/dotnet/core/exten..

○ Этап 1 - 10,000 Р
  • приложение способно сканировать доступные пространства имен, определять, не слишком много выделено единицах пропускной способности (Throughput Units) на каждом eventhub namespace, и каков правильный уровень
  • Можно сделать либо с помощью метрик, либо другим методом
  • Поиск пространства имен концентраторов событий можно выполнить с помощью SDK Azure Resource Manager.
  • Запросить их статистику можно с помощью API метрик.
  • Запишите отчет в учетную запись хранения со следующими
    • имя пространства имен eventhub, время сканирования, текущий TU, среднее количество событий в секунду за X часов, среднее значение МБ/с за X часов, пиковое количество событий в секунду за X часов, пиковое количество МБ/с за X часов, TU можно уменьшить до , идентификатор пространства имен eventhub (X настроен как analysis_interval в файле configuration.json)
      • эксемпляр report20220609.json
    • Логика оценки единицах пропускной способности (Throughput Units), до которой она может быть снижена, следующая:
      • Масштабирование пространства имен azure eventhub происходит со скоростью 1 МБ/с или 1000 событий в секунду (в зависимости от того, что наступит раньше).
      • Если eventhub namespace на уровне 5TU и за X часов не достиг пропускной способности 5TU (5 МБ/с или 5000 событий/с), рассчитайте TU, на которое он может быть установлен, используя пиковые значения.
      • Например: Если достигнуто только 3500 событий в секунду и 2,5 МБ/с, тогда target_TU равно 4 (поскольку для 3500 событий в секунду требуется 4 TU)
  • Сканирование должно происходить каждые X минут (X можно настроить как параметр scan_interval json конфигурации)
  • Отчет должен быть написан в формате JSON https://docs.microsoft.com/ru-ru/dotnet/core/exten...
  • Приложение должно иметь возможность перенастроиться, остановив приложение, отредактировав конфигурацию JSON и снова запустив приложение.
    • Затем следует продолжить регистрацию и запись в тот же файл отчета.


  • ○ Этап 2 – 3,000 Р
    • Улучшить приложение и добавить возможность изменять eventhub namespace TU.
    • Если за X последующий анализ того, что TU пространства имен eventhub может быть пониженно, то понизьте TU (X можно настроить в configuration.json как параметыр consecutive_scans)
    • Запишите в файл журнала дату, имя пространства имен eventhub, которое было изменено, TU до, TU после, идентификатор пространства имен eventhub.
  • ○ Этап 3 - 2,000 Р
    • Измените приложение так, чтобы оно могло найти eventhub namespaces, если в файле конфигурации указан список подписок или ресурсгруппы. Нужно чтобы оно находило eventhub namespaces в подписке и в ресурсгруппах
    • Образец файла конфигурации предоставляется (phase3configuration.json)
Файлы