Docker, Testcontainers в интеграционном тестировании
Обзор технологии виртуализации в разрезе аппаратной виртуализации и контейнеризации. Основные команды Docker. Примеры использования Testcontainers и JUnit. Обоснование написания тестовой обвязки и важные моменты при её проектировании.
is hard, time- consuming, and requires resources from another team, then developers will often build everything into the existing application in order to avoid suffering the new deployment penalty.” Виды виртуализации Архитектура Docker Применение Docker Автоматизация тестирования Рекомендации к API тестового фреймворка TestContainers О чем
a virtual (rather than actual) version of something, including virtual computer hardware platforms, storage devices, and computer network resources. / wikipedia 4
реализации, и обеспечивающее при этом логическую изоляцию друг от друга вычислительных процессов, выполняемых на одном физическом ресурсе. / википедия 5
машина = Virtual machine с выделенным (виртуальным) аппаратным обеспечением 1 Как отдельная ОС Для приложения внутри VM всё выглядит как реальная ОС 3 HW отделено ПО в Guest-машине отделено от реального железа Host-машины 5 Hypervisor Guest-машину создает гипервизор – программное обеспечение для эмуляции части команд ОС 2 Host vs. Guest Host-машина (хозяин) содержит и обеспечивает работу Guest- машины (гость) 4 VMware Workstation Player Oracle VirtualBox
и выглядит как отдельная ОС со своими ресурсами ОДНО ЯДРО Созданные виртуальные среды работают с одним ядром операционной системы ФИЧА ТАКАЯ Виртуализация реализована на уровне операционной системы. Это фича ОС
in every case we tested. Our results show that both KVM and Docker introduce negligible overhead for CPU and memory performance (except in extreme cases). For I/O intensive workloads, both forms of virtualization should be used carefully. 23 [1] IBM Research Report “
Docker Ex: TestContainers Разработка Поднимаю настроение сторонние сервисы для dev-стенда. Ex: PostgreSQL Исследование поднимаю продукты в Docker- контейнере чтобы «поиграть». Ex: Jenkins
настройки стендов • Cложность изоляции по данным в одной БД • Рутинное разворачивание новых сборок • Необходимость корректного cleanup после тестирования • «Эффект домино» при фейлах массового прогона 44