Назад | Перейти на главную страницу

Инструмент тестирования инфраструктуры на основе Docker

В настоящее время я пытаюсь перенести инфраструктуру на основе виртуальной машины на инфраструктуру на основе Docker и воспользоваться возможностью добавить тестирование поведения в эту инфраструктуру. Поэтому я стремлюсь, чтобы все изменения, которые я вношу в базовую конфигурацию системы, были в коде (например, в файле Docker), с поддержкой версий git и (в идеальном мире) каждое изменение должно иметь проверяемый эффект.

Примеры тестов, которые я хочу сделать:

Вещи, которые я действительно не хочу тестировать (хотя бы не повредило, если бы смог):

Мне было интересно, каков хороший / распространенный подход к тестированию инфраструктуры, подобному описанному выше, и я был бы рад получить любой совет или услышать лучшие практики. (Я обнаружил serverpec, но мне показалось, что это скорее поддерживает второй вид тестов; во всех примерах, которые я читал, он скорее проверяет состояние системы, чем ее поведение.)

В одном «тестировании поведения» вы смешиваете разные идеи. Тестирование безопасности (доступ ...), мониторинг приложений (время отклика ...), соответствие инфраструктуры (файл / служба должны присутствовать ...).

Поскольку вы переходите на инфраструктуру с использованием версионного кода, вам следует сначала протестировать его, как и любой другой код, и serverpec - хороший инструмент для этого. Я лично предпочитаю testinfra, эквивалентную платформу на основе Python. Есть и другие, такие как goss, robotframework, inspec ... Там вы можете протестировать множество вещей: прослушивание порта 80, выполнение службы, наличие файла конфигурации. И более того, поскольку вы можете подключить любой фрагмент кода, вы можете прочитать файл конфигурации и проверить, имеет ли пользователь X доступ к базе данных Y, но не к базе данных Z.

Что касается времени отклика, это тема мониторинга, если речь идет о живой среде, или нагрузочном тестировании, если речь идет о тестировании перед запуском. Есть масса возможностей для мониторинга, таких как nagios, zabbix ... Для нагрузочного тестирования я использую locust.