DevOps дает предприятиям возможность непрерывной и гибкой разработки приложений. Чтобы вписаться в этот стиль, предприятиям нужно покончить с инерцией сдерживающих иерархий и, в частности, упростить программистам доступ к системам хранения, не говоря уже о том, что это должны быть All Flash-системы. Об этом на портале ComputerWeekly пишет основатель немецкого маркетингового агентства Eric Ebert Communications Эрик Эберт.

В первые годы существования программная разработка была относительно легкой. Может ли она быть легкой в принципе? Да, если сравнивать ее с современной — сложной, разветвленной и с миллионами строк кода. Все это привело к рождению новой инженерной дисциплины — DevOps. Если визуализировать диаграмму Венна со схематическими кругами от центра в виде разработчиков ПО на одном и системных инженеров на другом, то DevOps окажется в центре, перекрывая их. Работающие в этой нише инженеры пишут код, который требуется для таких задач, как развертывание и сборка. При этом взаимоотношения DevOps и хранилища данных — довольно серьезная тема.

Прежде чем углубиться в конкретные проблемы хранения, стоит определить, что мы подразумеваем под термином DevOps и какую роль играет эта технология. Дело в том, что DevOps — это относительно новая технология, поэтому у термина существует несколько трактовок, которые малоразличимы, но только на первый взгляд. Термин «DevOps» появился 10 лет назад. В 2009 г. его ввел в употребление ИТ-консультант из Бельгии Патрик Дебуа, имеющий огромное влияние в среде разработчиков. Он также является автором нескольких популярных книг по теории разработки. Этот термин довольно быстро прижился и превратил DevOps в настоящую философию, что, в свою очередь, привело к созданию рынка, объем которого в 2023 г. прогнозируется на уровне 9,41 млрд. долл.

Что делает DevOps настолько сложной для восприятия, что у этого термина существует несколько интерпретаций? Сложность в том, что она не является строго технической дисциплиной. DevOps наделяет культуру разработки и технические процедуры более высоким статусом и сама находится под сильным влиянием философии Lean («бережливое производство») и Agile. Популярность последних начала расти с начала 2000-х и в настоящее время достигла своего пика. Еще большей обтекаемости термину DevOps придает тот факт, что многие DevOps-инженеры считают себя связующим звеном между командами разработчиков и операционными командами, не обязательно причисляя себя к той или другой.

Интеграция автоматизации

Так какова же роль DevOps-инженеров? В основном они занимаются автоматизацией. Современные рабочие процессы разработки включают в себя множество подвижных компонентов, начиная с создания ПО и заканчивая его фактическим развертыванием. Автоматизируя повседневные задачи, разработчики могут работать быстрее, обеспечивая при этом уровень слаженности, которого невозможно достичь при написании кода вручную. Преимущество автоматизации заключается в том, что она значительно сокращает вероятность человеческих ошибок. Добиться этого позволяют различные инструменты, которые применяются DevOps-инженерами. К числу особенно ценимых разработчиками можно отнести систему управления конфигурациями Chef, которая интегрируется с облачными платформами с помощью элементарных скриптов («рецептов»), написанных на языке Ruby; кроссплатформенное клиент-серверное приложение Puppet, предназначенное для ежедневной настройки и обслуживания серверов; Ansible — родственное Puppet приложение, но предназначенное преимущественно для настройки вычислительных систем.

Кроме того, DevOps позволяет достичь уровня гибкости, которого ранее невозможно было достичь. В первую очередь это касается непрерывной доставки пользователям новых сборок ПО, тогда как прежняя модель софтверной разработки предусматривала поставки конечных релизов.

DevOps незаменим в процессах тестирования и обеспечения качества ПО, позволяя схематично и программно анализировать работу приложений на основе данных, что позволяет в ускоренном темпе выявлять и решать возникающие проблемы.

Высокий статус, но и большая ответственность

Нужно заметить, что за несколько лет команды DevOps добились успехов, выделяясь на фоне других команд. Их статус позволяет им работать независимо и влиять на лиц, которые принимают решения о закупках. Рост их влияния связан с самой природой современного ПО: по мере ускорения жизненного цикла приложения ускоряется жизненный цикл базовых инструментов и практик, которые его поддерживают.

Это наглядно демонстрируют такие контейнерные платформы, как Kubernetes, которые настраиваются для автоматического масштабирования вычислительных ресурсов, если того требуют обстоятельства. Подобная тактика применяется и сторонними инструментами. К примеру, разработанный NetApp инструмент Trident также представляет из себя автоматизированное решение для управление томами постоянного хранения в многооблачных средах. Более того, все чаще видна согласованность развития аппаратного обеспечения, особенно это касается СХД, и современных практик DevOps.

Чрезвычайно важна скорость. В конце концов, DevOps появилась в ответ на растущую потребность в эффективности. Чтобы удовлетворить ее, как нельзя кстати появились быстрые хранилища на базе памяти NAND-flash — они в разы ускоряют перемещения Docker-образов или виртуальных машин, объемы которых обычно измеряются в гигабайтах. Поскольку инженеры DevOps работают с разнородными средами, конфигурациями и наборами файлов, они сталкиваются с трудной задачей — как наиболее эффективным способом применять свои ограниченные ресурсы? На помощь им приходит СХД, которая изначально поддерживает технологию управления копированием данных (copy data management, CDM).

Наконец, помимо скорости для мира DevOps жизненно важна автоматизация, поэтому многие платформы хранения, нацеленные на эту нишу, ставят ее в центр внимания, особенно это касается выделения дополнительных или новых ресурсов для приложения.

Фокус на хранение

Чтобы понять, почему хранение так вписывается в мир DevOps, нужно вернуться к тому, что эта дисциплина — квинтэссенция современной быстроразвивающейся практики разработки ПО, для которой выход каждодневных обновлений считается приемлемой практикой, тогда как традиционная модель допускает ежемесячный выход апдейтов. DevOps неизбежно станет разочарованием для многих компаний, которые окажутся неготовыми к реактивным изменениям. Как уже упоминалось выше, движение DevOps является не только техническим феноменом, но и культурным. Последнее подразумевает децентрализацию процесса принятия решений в пользу персонала, который будет находиться на переднем крае, а также серьезные архитектурные изменения.

С точки зрения хранения данных это не значит, что предприятиям нужно закупать новые активы, эти изменения скорее — плод размышлений о том, как наиболее гибко оптимизировать и демократизировать существующую инфраструктуру. Конечно, скоростное хранение данных — большой плюс, но еще более важно найти пути интеграции СХД с другими инструментами, используя скриптовые рабочие процессы и интерфейсы прикладного программирования (API). И как раз в этой нише присутствует богатство выбора поставщиков. Например, Pure Storage позиционирует свой продукт FlashArray//X как наиболее подходящий для современных сред DevOps. Этот NVMe-массив класса All Flash предлагает готовую интеграцию с такими инструментами, как Docker и Kubernetes, которые требуются командам DevOps для базового развертывания ПО.

Среди поставщиков с упором на облачные сервисы есть такие компании, как Wasabi, которая продвигает свою платформу для инженеров DevOps — Hot Cloud Storage. Как и другие платформы хранения, она предлагает API, позволяющий интегрировать Hot Cloud Storage в существующую инфраструктуру и методологии.

Специалистам, занимающихся хранением данных, не стоит опасаться роста применения DevOps, наоборот, ее нужно воспринимать как возможность. Они могут принимать участие в обсуждении, как улучшить ПО при помощи более согласованных и гибких рабочих процессов, которые, в свою очередь, приводят в движение более быстрые циклы выпуска релизов.

Концепция DevOps подчеркивает умение быстро реагировать на изменения. В ее основе технологии, которые это позволяют — непрерывная интеграция и непрерывная доставка приложений (continuous integration/continuous delivery, CI/CD). Крайне важно, чтобы DevOps-инженеры могли принимать решения, связанные с хранением данных, такими, к примеру, как увеличение/уменьшение емкости без необходимости подниматься по корпоративной иерархии. Руководителям важно знать, что сила DevOps-инженеров в их инструментах и API. Они позволяют им создавать сложные автоматизированные системы, которые обеспечивают эффективность и предсказуемость. Чтобы добиться этого, существующую архитектуру хранения необходимо интегрировать с этими инструментами.