2015-12-24 1 views
4

Я ищу наилучшую практику, когда речь идет о планах обслуживания Azure в архитектуре микросервиса. У нас есть серия микросервисов, каждая из которых полностью независима друг от друга как с точки зрения емкости, ресурсов, разработчиков, так и общей архитектуры. Само собой разумеется, что если один сервис испытывает проблемы, другие не должны затрагиваться, если не взаимодействуют с проблемным сервисом. Эти услуги размещены в AzureAzure Service Планы и непроизводственные слоты

Мой вопрос касается сервисных планов и того, как они должны относиться к среде разработки/установки. До сих пор мы создали план обслуживания нашего микросервиса, назовите его PersonService. Таким образом, мы создадим план обслуживания PersonService, а затем слотом по умолчанию будет производство (персональный сервис), а затем у нас будет еще один промежуточный сегмент (персональный сервис) для удовлетворения потребностей в постановке/тестировании. Все они будут обслуживаться по одному и тому же тарифному плану.

Сегодня ужасная мысль о том, что, если разработчик развертывает какую-то ужасную ошибку в стадии разработки, которая поглощает весь процессор и/или память, тогда производственный слот будет голодать от этих ресурсов, и, по существу, промежуточная среда будет влиять на ответ времени производства.

Могу ли я подумать, что это будет так? Как вы, ребята, рекомендуете установить это, чтобы избежать этой проблемы? Спасибо

ответ

1

Да, вы правы, если процесс обслуживания персоналом начинает потреблять значительную часть ресурсов базового сервера, это скажется на персональном обслуживании.

Избежание этого очень зависит от вашей текущей настройки и ваших приоритетов. Добавление плана обслуживания dev/test/staging - это самый простой способ. Это оставляет план производственного обслуживания исключительно для готового кода производства. С слотами для развертывания там просто разрешено простое переключение между версиями (и быстрый откат, если вы понимаете, что что-то в производстве сломано)

Альтернатива этому - это план обслуживания, который предназначен исключительно для организации, которую вы развертываете как часть ваш тестовый трубопровод. Скорость, с которой Azure может поддерживать план обслуживания, означает, что вы можете создавать и уничтожать их на лету. Это дает вам возможность провести тест производительности на промежуточном сервере, когда он работает по идентичному плану с вашим производственным кодом.

Одним из основных преимуществ облачных вычислений является возможность разбивать одноразовые серверы. Требуется продуманная мысль перейти от старой философии «это наш промежуточный сервер» Даже в сценарии CI - если вы не развертываете код каждые 30 минут! - может быть гораздо чище бросать некоторые новые серверы для тестирования. Даже если у вас нет автоматизированного тестового конвейера, это всего лишь пара скриптов Azure Automation, подключенных к кнопке на веб-странице (хотя удивительно, как быстро эти несколько скриптов размножаются! Во что-то гораздо более элегантное/сложный)

+0

Спасибо. Но как же вы воспользуетесь коммутацией слотов для переключения вашего этапа на Prod? Или ты просто не беспокоишься? – Yannis

+0

@Yannis Если ваш производственный план имеет два слота, вы должны развернуть его в слот «производственной стадии», чтобы убедиться, что он развернулся правильно (на этом этапе вы можете выполнять чисто функциональные тесты - вы знаете, что он работает нормально), и когда вы довольны этим, переключите слоты с живым. Если, как только вы живете, вы поймете, что что-то не работает, у вас есть быстрое решение откат (переключение слотов) –

Смежные вопросы