Задать вопрос
  • Как выбрать вычислительные ресурсы для узлов кластера с горизонтальным масштабированием?

    @evgeniykhist Автор вопроса
    Java Solution Architect
    Ответ связан с такими метриками производительности, как latency и throughput.
    Latency - временной интервал между отправкой запроса и получением ответа.
    Throughput - скорость обработки запросов (requests per second).
    Latency влияет на throughput. Больше latency - меньше throughput.
    Если бизнес транзакция состоит из последовательных вызовов нескольких сервисов, которые не могут быть распараллеленны, тогда вычислительные ресурсы для узлов кластера должны вибираться таким образом, чтобы достичь требуемого latency, так как добавление дополнительных экземпляров сервисов (горизонтальное масштабирование) не будет иметь влияния на latency.
    Добавление дополнительных экземпляров сервиса увеличивает throughput (при условии отсутствия bottleneck-ов).
    То есть, выбирайте CPU и RAM таким образом, чтобы время ответа сервиса было оптимальным, а для обработки большего количества запросов одновременно, добавляйте новые экземпляры сервиса.
    Ответ написан
    Комментировать
  • Как в микросервисах ограничивать доступ на уровне сущностей?

    @evgeniykhist Автор вопроса
    Java Solution Architect
    Я пришел к следующему решению.

    1. Использовать ACL модель безопасности. Каждый объект в системе имеет связанный с ним набор разрешений (permissions). Разрешения определяют, кто и какие действия могут выполнять над объектом.
    2. Микросервисы отвечают за авторизацию на уровне сущности и фильтрацию объектов в ответах на основе разрешений этих объектов.
    3. Служба централизованного контроля доступа (Access Control Service) отвечает за создание, обновление и удаление разрешений для всех объектов в системе. База данных Access Control Service является основным хранилищем разрешений объектов.
    4. Разрешения, хранящиеся в базах данных микросервисов, которые синхронизируются с базой данных Access Control Service с использованием event-carried state transfer. Каждый раз, когда изменяются разрешения, событие отправляется брокеру сообщений (message broker). Микросервисы могут подписываться на эти события для синхронизации разрешений.
    5. API Gateway может использоваться как дополнительный уровень защиты. API Gateway может напрямую обращаться к Access Control Service (RPC) для проверки разрешений объектов ответа или загрузки недавно отозванных разрешений.
    5a461ac4b5fd0699968243.png

    Данный подход имеет следующие особенности:

    1. Требуется возможность уникальной идентификации каждого объекта в системе (например, UUID).
    2. Синхронизация разрешений в микросервисах eventual consistent. В случае разделения сети (partition) между брокером сообщений и микросервисом, разрешения не будут синхронизироваться. Это может быть проблемой в случае с отзывом разрешений. Решение этой проблемы - отдельная тема.
    Ответ написан
    Комментировать
  • Как включить цвет в консоли asterisk-a?

    13Arhangel
    @13Arhangel Автор вопроса
    тыжпрограммист :)
    епсель мопсель. ответ лежал прямо перед носом. Пока не понимаю как это повлияло, но помогло.
    В общем: остановил астериск core stop now, потом запустил asterisk -cf, и вуаля, "лошадка с радужным хвостом" вернулась :) . Еще раз остановил, запустил asterisk, зашел asterisk -rvvv - все ок :)
    Ответ написан
    Комментировать
  • ASP.NET multitenant framework?

    BoSKiv
    @BoSKiv Автор вопроса
    ДевОпс
    Не совсем правильно выразился наверное, мне нужно решение которое само управляет созданием тенантов в БД, миграциями, и роутингом на уровене под-доменов.

    Пример https://github.com/influitive/apartment
    Только в ASP.NET MVC
    Ответ написан
    1 комментарий
  • Как выжить джуну единственным разработчиком на проекте?

    shindakioku
    @shindakioku
    Не сайтоклепатор
    Не читал, но девочку не кидайте :)
    Ответ написан
    Комментировать