Открыть сервисСервис

Инстанс — понятие в информатике и виртуализации

Инстанс (от англ. instance — экземпляр, образец) — термин информатики, обозначающий конкретный, работающий экземпляр программного объекта, службы или вычислительного ресурса. В зависимости от контекста инстансом называют отдельный запущенный процесс программы, экземпляр объекта в объектно-ориентированном программировании, виртуальную машину в облачной инфраструктуре или копию базы данных. Общее смысловое ядро понятия — противопоставление абстрактного определения (класс, шаблон, образ) конкретной реализации, существующей в определённый момент времени.

Происхождение термина

Слово instance пришло в русский технический язык из английского в конце 1990-х — начале 2000-х годов вместе с распространением объектно-ориентированного программирования и клиент-серверных технологий. В англоязычной литературе по программированию термин закрепился раньше: в работах по объектно-ориентированному проектированию 1980-х годов «instance» обозначал экземпляр класса. Русскоязычные переводы технической документации закрепили кальку «инстанс», которая постепенно вытеснила более ранние кальки «экземпляр» и «образец» в профессиональном жаргоне разработчиков и системных администраторов.

Основные значения

В объектно-ориентированном программировании

В объектно-ориентированном программировании инстанс — это конкретный объект, созданный на основе класса. Класс задаёт структуру (поля) и поведение (методы), а инстанс хранит собственные значения полей. Например, класс Пользователь может иметь поля имя и email; каждый созданный объект с конкретными значениями этих полей является отдельным инстансом. Создание инстанса выполняется конструктором класса. Терминология используется в языках Java, C#, Python, C++, JavaScript и многих других.

В серверном программировании

В контексте серверных приложений инстанс — это отдельный запущенный экземпляр службы или приложения. Один и тот же программный продукт может работать в виде нескольких инстансов одновременно: на разных серверах, на разных портах, с разными конфигурациями. Например, в документации Microsoft SQL Server термин «инстанс» обозначает отдельную копию сервера СУБД, работающую на одной машине параллельно с другими копиями. В веб-сервере Apache или Nginx инстансом называют отдельный запущенный процесс с собственным набором настроек.

В облачных вычислениях и виртуализации

В облачной инфраструктуре инстанс — это виртуальная машина или контейнер, созданный из образа (image). Образ содержит операционную систему, установленное ПО и конфигурацию; инстанс — работающий экземпляр, созданный на его основе, с собственными ресурсами (процессор, память, диск) и собственной сетевой идентичностью. Пользователь облачного сервиса оплачивает не образ, а запущенные инстансы. Термин широко используется в документации Amazon Web Services (сервис EC2), Яндекс Облако, Selectel, Timeweb Cloud и других провайдеров.

В базах данных

В СУБД инстансом называют работающий экземпляр сервера базы данных — совокупность процессов и структур памяти, обслуживающих доступ к данным. Понятие «инстанс» отделяется от понятия «база данных»: инстанс — это программа в состоянии исполнения, база данных — это данные, которые он хранит. Один инстанс может обслуживать несколько баз данных. Термин активно используется в документации Oracle Database, PostgreSQL, Microsoft SQL Server.

В сетевых технологиях

В сетевом оборудовании и протоколах маршрутизации инстансом называют логический экземпляр таблицы маршрутизации или виртуальной сети. В MPLS и VPN-решениях инстансы VRF (Virtual Routing and Forwarding) позволяют одному физическому маршрутизатору обслуживать несколько независимых маршрутизационных таблиц. В протоколах типа BGP инстанс — отдельный запущенный экземпляр демона с собственной конфигурацией.

Типичные операции с инстансами

Основные действия, описываемые в документации облачных и серверных платформ:

  • создание (create / launch) — развёртывание нового инстанса из образа или шаблона;
  • остановка (stop) — приостановка работы с сохранением состояния и дисков;
  • запуск (start) — возобновление работы остановленного инстанса;
  • перезапуск (reboot) — перезагрузка без изменения состояния дисков;
  • удаление (terminate / delete) — полное уничтожение инстанса вместе с ресурсами;
  • масштабирование (scale) — изменение выделенных ресурсов или создание дополнительных инстансов.

Инстанс и образ

Ключевое различие, подчёркиваемое в технической документации: образ (image, шаблон, template) — пассивный набор данных, описывающий, каким должен быть инстанс; инстанс — активная сущность, работающая в определённый момент времени. Из одного образа может быть развёрнуто сколько угодно инстансов, и после создания они развиваются независимо: обновления, конфигурация и данные одного инстанса не затрагивают другие.

Смежные термины

С понятием инстанса тесно связаны понятия «кластер» (группа инстансов, работающих совместно), «реплика» (копия данных, обслуживаемая отдельным инстансом), «окружение» (environment — набор инстансов, составляющих единый рабочий контур, например production, staging, development) и «мультитенантность» (обслуживание нескольких клиентов одним инстансом).

Источники

  • Герберт Шилдт. «Java. Полное руководство»
  • Документация Amazon Web Services (AWS EC2)
  • Документация Microsoft SQL Server
  • Документация PostgreSQL
  • Книги серии «О’Райли» по виртуализации и облачным вычислениям
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru