Локальный облачный стек для Azure похож на LocalStack для AWS?

Существует ли для Azure среда для подражания, аналогичная LocalStack для AWS? Пожалуйста, поймите, что я ищу не макет SDK, а макет стека ресурсов.

Настолько, что я мог бы заменить конфигурации моего локального стека Azure фактическими ресурсами Azure в моем проекте, и функциональность осталась бы прежней. Очень похоже на то, как это работает с Localstack.

Я обнаружил, что Azure Cloud Fabric ближе всего подходит к этому, но он тесно связан с Visual Studio IDE.

2 ответа

Хотя эквивалента LocalStack для Azure нет, Microsoft публикует три эмулятора, которые можно запускать локально, чтобы помочь в тестировании интеграции:

Вышеупомянутые три могут дать вам много возможностей для тестирования интеграции, однако, поскольку функции Azure, AWS Lambda и большинство современных веб-стеков, даже без серверов, перешли на использование сервисов, а не просто использование программных модулей, единственный способ обеспечить полное равенство между интеграцией. Тестовая и производственная среды предназначены для автоматизации создания и демонтажа реальных платных услуг.

Рецепт сквозного / интеграционного тестирования в Azure:

  • Используйте Azure DevOps Piplines для автоматизации всего процесса непрерывной интеграции
  • Добавьте задачи в конвейер для создания и удаления (реальных) ресурсов текстовых фиксторов с постоянным состоянием (базы данных, хранилище файлов и т. Д.) С помощью инструментов командной строки Azure.
  • Предоставьте тестируемому приложению доступ к реальным службам без сохранения состояния (таким как Azure Cognitive Services и т. Д.), Как и в рабочей среде.
  • Используйте группы переменных Azure для хранения имен, строк подключения и т. Д. Для ресурсов тестового набора. Вы можете сохранить другой набор для производства в другой группе, что позволит легко переключаться между ними в YAML на разных этапах. Эти переменные также могут быть шаблонизированы в их собственном файле YAML.
  • Используйте эмулятор основных инструментов Azure Functions для размещения и выполнения функций в агенте CI, а не для развертывания, при этом платформа модульного тестирования отправляет им запросы. Функции будут использовать неэмулированные сервисы, представленные как тестовые инструменты.
  • Или создайте развертывание для этапа тестирования, опубликовав API на практике, затем напишите тесты API, которые делают необработанные HTTP-запросы, или используйте его в качестве бэкэнда для веб-драйвера Selenium, тестирующего UI/ интерфейс.

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

Также стоит поискать слоты Azure.

Теперь https://github.com/azure/azurite предоставляет также докер https://hub.docker.com/_/microsoft-azure-storage-azurite .

Другие вопросы по тегам