Rate this post

В марте 2013 года Соломан Хайкс объявил о старте откры­того проекта, впоследствии ставшего известным как Docker. В последующие месяцы его активно поддержало сообщество Linux, а осенью 2014 года Microsoft объявила о планах реализации контейнеров в Windows Server 2016. Компания WinDocks, соучредителем которой я являюсь, выпусти­ла независимую версию открытого кода Docker для Windows в нача­ле 2016 года с акцентом на первоклассную поддержку контейнера в SQL Server. Контейнеры быстро становятся центром внимания в отрасли. В этой статье мы рассмотрим контейнеры и их использо­вание разработчиками и администраторами баз данных SQL Servern

Принципы организации контейнеров

Контейнеры определяют новый метод упаковывания приложе­ний, в сочетании с изоляцией пользователей и процессов, для мультиабонентских приложений. Различные реализации контей­неров для Linux и Windows существуют уже много лет, но с выхо­дом Windows Server 2016 мы получили фактический стандарт Docker. Сегодня API-интерфейс и формат контейнера Docker поддерживаются в общедоступных службах AWS, Azure, Google Cloud, всех дистрибутивах Linux и Windows. У элегантной структуры Docker есть важные преимущества:n

  • Переносимость. Контейнеры содер­жат программные зависимости при­ложений и выполняются неизмен­ными на ноутбуке разработчика, общем тестовом сервере и в любой общедоступной службе.
  • Экосистема контейнеров. API-интерфейс Docker является средо­точием отраслевых новинок с реше­ниями для мониторинга, ведения журнала, хранения данных, орке­стровки кластеров и управления.
  • Совместимость с общедоступными службами. Контейнеры спроекти­рованы для архитектуры микро­служб, горизонтального масшта­бирования и временных рабочих нагрузок. Контейнеры проекти­руются таким образом, чтобы их можно было при желании удалить и заменить, а не исправлять или обновлять.
  • Скорость и экономия. Для создания контейнеров требуется несколько секунд; обеспечена эффективная поддержка мультиабонентности. У большинства пользователей коли­чество виртуальных машин сокра­щается в три-пять раз (рисунок 1).

сравнение ВМ и контейнеровnn n

Контейнеры SQL Server

SQL Server поддерживает мультиабонентность с применением име­нованных экземпляров в течение десяти лет, так в чем же ценность контейнеров SQL Server?nnДело в том, что контейнеры SQL Server более практичны благода­ря их быстродействию и автома­тизации. Контейнеры SQL Server представляют собой именован­ные экземпляры, с данными и настройками, подготавливае­мые в течение нескольких секунд. Возможность создавать, удалять и заменять контейнеры SQL Server за считанные секунды позволяет более практично использовать их для разработки, контроля качества и других случаев применения, которые будут рассмотрены ниже. Благодаря быстродействию и авто­матизации контейнеры SQL Server идеальны для организации про­изводственной среды разработки и контроля качества. Каждый член группы работает с изолированными контейнерами в общей виртуальной машине, с трех-пяти-кратным сокращением числа виртуальных машин. В результате мы получаем суще­ственную экономию на обслужива­нии виртуальных машин и стоимости лицензий Microsoft. Контейнеры легко интегрировать в массивы сети хранения данных (SAN) с использо­ванием реплик хранилища и клонов баз данных (рисунок 2).nnконтейнеры SQLnnПодключенная база данных объемом 1 Тбайт формируется в экземпляре контейнера менее чем за одну мину­ту. Это значительное улучшение по сравнению с серверами с выделенными именованными экземплярами или предоставлением виртуальных машин для каждого разра­ботчика. Одна компания использует восьмиядерный сервер для обслужи­вания до 20 контейнеров SQL Server по 400 Гбайт. В прошлом для подготовки каждой виртуальной машины требовалось более часа, а экземпляры контейнеров выдаются за две минуты. Таким образом, удалось в 20 раз сократить число виртуальных машин, уменьшить число ядер процессора в 5 раз и резко сократить расходы на оплату лицензий Microsoft. Кроме того, повысились гибкость и быстрота реагирования в бизнесе.n

Применение контейнеров SQL Server

Контейнеры определяются с помо­щью сценариев Dockerfile, кото­рые предусматривают конкрет­ные шаги построения контейнера. Приведенный на экране 1 файл Dockerfile задает SQL Server 2012 с базами данных, копируемыми в контейнер, и скриптом SQL Server для маскирования выбранных таблиц.nnКаждый контейнер может содер­жать десятки баз данных со вспо­могательными файлами и файлами журнала. Базы данных могут быть скопированы и выполнены в кон­тейнере или подключены с помо­щью команды MOUNTDB. Каждый контейнер содержит част­ную файловую систему, изолиро­ванную от ресурсов хоста. В при­веденном   на  экране 2   примереnnконтейнер sqlnn n

Другие случаи применения

Контейнеры — самое распростра­ненное средство организации среды для разработки и контроля качества, но появляются и другие области применения. Тестирование аварийного восстановления — простой, но многообещающий сценарий использо­вания. Среди прочих— контейнеризация внутренней среды SQL Server для унаследованных приложений, таких как SAP или Microsoft Dynamics. Контейнеризованный внутренний компонент используется для предо­ставления рабочей среды для поддержки и текущего обслуживания. Применяются также оценочные контейнеры для поддержки рабочих сред с постоянными хранилищами данных. В одной из следующих статей я под­робно расскажу о постоянных данных. Компания Win Docks стремится еще более упростить использование кон­тейнеров через веб-интерфейс. Другой проект сосредоточен на переносе контейнеров SQL Server в процессе DevOps или Continuous Integration с конвейерами CI/CD на основе Jenkins или Team City. Сегодня вы можете познакомиться с использова­нием контейнеров на всех редакци­ях Windows 8 и Windows 10, Windows Server 2012 или Windows Server 2016 с поддержкой всех выпусков, начи­ная с SQL Server 2008. с помощью вашей копии WinDocks Community Edition (https://www.windocks.com/community-docker-windows).n

Внедрение и поддержка решений на базе контейнеров, обращайтесь [email protected]