Виртуализация сервисов - Википедия - Service virtualization

Разработка программного обеспечения
Активность ядер
Парадигмы и модели
Методологии и рамки
Вспомогательные дисциплины
Практики
Инструменты
Стандарты и свод знаний
Глоссарии
Контуры

В программная инженерия, виртуализация услуг или же виртуализация услуг - это метод имитации поведения конкретных компонентов в гетерогенных приложениях на основе компонентов, таких как API -приводимые приложения, облако -основанные приложения и сервис-ориентированные архитектуры. Он используется для предоставления разработка программного обеспечения и QA / тестирование доступ групп к зависимым системным компонентам, которые необходимы для тестирования тестируемого приложения (AUT), но недоступны или труднодоступны для целей разработки и тестирования. Если поведение зависимых компонентов «виртуализировано», тестирование и разработка могут продолжаться без доступа к реальным живым компонентам. Виртуализация услуг признается поставщиками, отраслевыми аналитиками и отраслевыми публикациями как нечто иное, чем имитация.[1][2] См. Здесь Сравнение инструментов моделирования API.

Обзор

Виртуализация сервисов имитирует поведение программных компонентов для устранения ограничений зависимости от групп разработки и тестирования. Такие ограничения возникают в сложных, взаимозависимых средах, когда компонент, подключенный к тестируемому приложению:

  • Еще не завершено
  • Все еще развивается
  • Контролируется третьей стороной или партнером
  • Доступен для тестирования только в ограниченном объеме или в неудобное время
  • Сложно подготовить или настроить в тестовой среде
  • Требуется для одновременного доступа разных групп с различными настройками тестовых данных и другими требованиями
  • Ограничено или дорого использовать для нагрузочного тестирования и тестирования производительности [3]

Хотя термин «виртуализация услуг» отражает первоначальную ориентацию метода на виртуализацию веб-сервисы виртуализация сервисов распространяется на все аспекты составных приложений: сервисы, базы данных, мэйнфреймы, ESB и другие компоненты, которые обмениваются данными с использованием общих протоколов обмена сообщениями.[4][5][6] Другие подобные инструменты называются API симуляторы, инструменты имитации API, по сети тестовые двойники.

Виртуализация сервисов имитирует только поведение определенных зависимых компонентов, которые разработчикам или тестировщикам необходимо использовать для выполнения своих сквозных транзакций. Вместо того, чтобы виртуализировать целые системы, он виртуализирует только определенные части зависимого поведения, критически важные для выполнения задач разработки и тестирования. Это обеспечивает достаточную логику приложения, чтобы разработчики или тестировщики получали то, что им нужно, не дожидаясь, пока фактическая служба будет завершена и станет доступной. Например, вместо виртуализации всей базы данных (и выполнения всего связанного управления тестовыми данными, а также настройки базы данных для каждого тестового сеанса) вы отслеживаете, как приложение взаимодействует с базой данных, а затем имитируете соответствующее поведение базы данных ( SQL запросы, которые передаются в базу данных, соответствующие наборы результатов, которые возвращаются, и так далее).[7][8]

Заявление

Виртуализация услуг включает в себя создание и развертывание «виртуального актива», который имитирует поведение реального компонента, который требуется для работы тестируемого приложения, но к которому трудно или невозможно получить доступ для целей разработки и тестирования.

Виртуальный актив заменяет зависимый компонент, прослушивая запросы и возвращая соответствующий ответ - с соответствующей производительностью. Для базы данных это может включать прослушивание оператора SQL с последующим возвратом строк источника данных. Для веб-службы это может включать прослушивание XML сообщение закончено HTTP, JMS, или же MQ, затем возвращает другое сообщение XML. Функциональность и производительность виртуального актива могут отражать фактическую функциональность / производительность зависимого компонента, или он может моделировать исключительные условия (такие как экстремальные нагрузки или состояния ошибки), чтобы определить, как тестируемое приложение реагирует в этих обстоятельствах.

Виртуальные активы обычно создаются:

  • Запись живого общения между компонентами во время работы системы из тестируемого приложения (AUT)
  • Предоставление журналов, отражающих историческую связь между компонентами
  • Анализ спецификаций сервисного интерфейса (например, WSDL )
  • Определение поведения вручную с помощью различных элементов управления интерфейсом и значений источников данных

Затем они дополнительно настраиваются для представления конкретных данных, функций и времени ответа.

Виртуальные активы развертываются локально или в облаке (общедоступном или частном). В средах разработки / тестирования, настроенных на использование виртуальных ресурсов вместо зависимых компонентов, разработчики или тестировщики могут затем протестировать приложение, над которым они работают, без необходимости ждать, пока зависимые компоненты будут завершены или станут доступными.[4][5][8]

Отраслевые аналитики сообщают, что виртуализация сервисов лучше всего подходит для «ИТ-магазинов, имеющих значительный опыт« пропуска »интеграционного тестирования из-за« зависимого программного обеспечения »и с достаточно сложной системой тестирования.[9]

Отношение к заглушке и издевательству

Альтернативный подход к обходу ограничений доступа к тестовой среде, описанный во введении к этой статье, заключается в том, чтобы члены группы могли разработать заглушки методов или же имитировать объекты которые заменяют зависимые ресурсы. Недостатки этого подхода стали очевидны в начале 2000-х годов с ростом популярности Сервис-Ориентированная Архитектура.[10] Распространение Составные приложения которые полагаются на многочисленные зависимые службы, плюс рост Гибкая разработка программного обеспечения После публикации Agile Manifesto в 2001 году разработчикам или тестировщикам стало все труднее вручную определять количество, объем и сложность заглушек или имитаций, необходимых для выполнения задач разработки и тестирования для разработки современных корпоративных приложений.[11]

Первым шагом в эволюции от заглушек к виртуализации сервисов стала технология, реализованная в инструментах тестирования SOA с 2002 года.[12] Самые ранние реализации виртуализации сервисов были разработаны для автоматизации процесса разработки простых эмуляций, подобных заглушкам, чтобы можно было более эффективно тестировать составные приложения.[13] По мере того, как корпоративные системы продолжали становиться все более сложными и распределенными, поставщики программных инструментов сместили акцент с заглушек на виртуализацию услуг, в большей степени ориентированную на среду.[3] В то время как создание заглушек все еще можно выполнить с помощью разработки вручную и управления заглушками, то, что стало известно как «виртуализация услуг», выполняется с помощью одного из доступных коммерческая готовая реклама (COTS) технологии виртуализации сервисов как платформа для разработки и развертывания их «активов виртуализации сервисов».[11]

Agile и DevOps

Растущая популярность[14] из Гибкая разработка программного обеспечения и DevOps создал спрос на новый набор инструментов для предоставления виртуализации услуг сообществам, которые работают таким образом.[15] Такие практики, как Непрерывная доставка и уходя от мэйнфрейм и монолит развитие к более распределенным микросервис архитектуры на основе хорошо сочетаются с возможностями виртуализации услуг. Команды Agile и DevOps предпочитают работать с легковесными инструментами, которые имеют меньше накапливаемых раздуваний и не имеют громоздких лицензионных ограничений.[16]

Смотрите также

Рекомендации

  1. ^ Виртуализация сервисов как альтернатива имитации, Джонатан Аллен, eBizQ 22 апреля 2013 г.
  2. ^ Виртуализация сервисов возникает, чтобы встретить препятствия при тестировании сервисов Джордж Лоутон, SearchSOA, 15 мая 2012 г.
  3. ^ а б Виртуализация сервисов для современных приложений Автор: Гауриш Хаттангади, Virtual Strategy Magazine, 28 ноября 2010 г.
  4. ^ а б Управление тестовой средой Лиз Макмиллан, Cloud Computing Journal, декабрь 2011 г.
  5. ^ а б Виртуализация поведения приложений Элизабет Уайт, Cloud Computing Journal, декабрь 2011 г.
  6. ^ Виртуализация базы данных для разработки и тестирования Уэйн Ариола, журнал ST & QA, март 2012 г.
  7. ^ Введение в SOA и виртуализацию В архиве 2011-11-22 на Wayback Machine Автор: Джон Мичелсен, WebServices.org, август 2007 г.
  8. ^ а б Новое поколение управления тестовой средой Уэйн Ариола, Virtualization Journal, 12 июля 2011 г.
  9. ^ Тестирование Parasoft и «виртуализации сервисов»: хорошая идея Автор: Уэйн Керночан, Мысли ИТ-аналитика по программному обеспечению, 22 февраля 2013 г.
  10. ^ Тестирование в сервис-ориентированной среде Эд Моррис и др., Институт программной инженерии, март 2010 г.
  11. ^ а б Виртуализация сервисов помогает организациям осознать ценность бизнеса от тестирования Чандраншу Сингх, яйцеклетка, 31 марта 2014 г.
  12. ^ Инструмент тестирования веб-сервисов Parasoft должен способствовать развитию Тереза ​​Лановиц Gartner, 1 мая 2002 г.
  13. ^ Виртуализация SOA становится реальностью Рич Сили, SearchSOA, 28 ноября 2007 г.
  14. ^ Agile и DevOps Google Trends
  15. ^ Форум по виртуализации сервисов нового поколения, 13 сентября 2017 г.
  16. ^ Thought Works Technology Radar: решения для крупных предприятий