Хизер Пейтон, директор по маркетингу продуктов компании Progress Software, обсуждает на портале eWeek проблемы и преимущества подходов Low-code в рамках практики DevOps с целью поиска наиболее эффективного решения для предприятия.

В современном мире, ориентированном на цифровые технологии, спрос на квалифицированных разработчиков и ИТ-специалистов как никогда высок. Недавнее исследование Korn Ferry показало, что к 2030 г. более 85 млн. рабочих мест могут остаться незаполненными из-за нехватки квалифицированной рабочей силы.

Low-code ставит интересный вопрос: можно ли использовать технологию для замены технических специалистов? Если клавиатура может заменить почерк, то почему бы не использовать платформы на основе графического интерфейса для отмены необходимости изучать код?

Исторически решения типа Low-code использовались в основном в технологических платформах, которые позволяли нетехническим пользователям создавать новые приложения без знания кода. В таком понимании Low-code больше соответствует теории Agile, чем DevOps. Если Agile стремится ускорить доставку бизнес-ценности с помощью приложений, то DevOps фокусируется на доставке приложения и его обслуживании после создания.

Если платформы Low-code используются не ИТ-специалистами для разработки приложений, то как решения Low-code могут использоваться в рамках DevOps ИТ-специалистами?

Для многих радикальных практиков DevOps концепция Low-code является анти-паттерном DevOps. Возможно, DevOps начинался как культурная эволюция того, как команда разработчиков и операционная команда работают вместе, но сегодня он превратился в мир автоматизированных конвейеров и интегрированных цепочек инструментов.

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

Чтобы понять, как решения Low-code могут использоваться командами DevOps, нам нужно взглянуть шире и посмотреть, как принципы Low-code могут быть применены к «основанным на коде» решениям, чтобы сделать их более простыми в изучении, использовании и обслуживании. Для этого можно предложить три типа решений:

  1. платформы Low-code для разработки приложений (LCAP);
  2. платформы для роботизации процессов (RPA);
  3. языки разработки Low-сode.

Давайте рассмотрим каждый из этих трех наиболее распространенных в практике DevOps типов решений Low-code, а также их плюсы и минусы.

LCAP

Эти платформы стали стандартным набором технологий, они характеризуются всеобъемлющим охватом отраслевыми аналитиками. Gartner выпускает свой Magic Quadrant for Enterprise Low-Code Application Platforms и прогнозирует их рост на 23% в 2021 г. Вероятно, одной из самых цитируемых платформ Low-сode на рынке сегодня является Salesforce Lightning Platform Mobile.

LCAP не только помогают решить проблему нехватки навыков профессиональной разработки, но и позволяют профильным специалистам проектировать и создавать системы, которые отвечают именно их потребностям, минуя громоздкий процесс работы с ИТ-отделом для определения требований и приоритетов проекта. В качестве примера можно привести Jumbo, голландскую сеть супермаркетов, которая смогла создать систему внутреннего взаимодействия и управления задачами, приложение для питания клиентов и систему заказов с доставкой в тот же день в течение восьми недель.

Плюсы. В основном они связаны с простотой использования. Неразработчики могут создавать простые приложения, настраивать пользовательский интерфейс и размещать их в App Store всего за несколько кликов. Инструменты Low-code не требуют никакого/минимального обучения и могут позволить компаниям быть более гибкими и быстрее реагировать на рыночные изменения, что делает их более конкурентоспособными.

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

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

RPA

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

О растущей популярности этих решений говорит апрельское IPO компании UiPath, которое стало одним из крупнейших IPО в истории рынка ПО.

Сферы применения программ RPA безграничны — любая повторяющаяся задача, выполняемая с помощью пользовательского интерфейса, является кандидатом. RPA — это область, в которой мы наблюдаем пересечение приложений, разработанных для бизнес-пользователей (UiPath и Blue Prism), с более традиционными инструментами DevOps, особенно в области автоматизации тестирования (Tricentis, Worksoft и Egglplant) и новыми решениями на основе разговорного интерфейса, такими как Krista.

В случае автоматизации тестирования бизнес-пользователю выдается «легкий» диктофон, который может записать бизнес-процесс. Затем запись передается команде автоматизации, которая создает усиленный тестовый кейс, который, в свою очередь, передается в систему CI/CD. Это устраняет проблему получения точной документации для создания тестового кейса и позволяет гарантировать заказчикам, что их наиболее важные бизнес-процессы будут протестированы как часть любого нового изменения.

Решения, подобные Krista, могут использоваться в цепочках инструментов DevOps. «Где там у нас релиз?», — слишком знакомый вопрос. Используя Krista, вы можете отправить свой вопрос в систему, Krista получит информацию с помощью структурированных бесед, чтобы выяснить, где находится релиз, и сообщит об этом.

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

Минусы. Рабочие процессы, построенные с помощью RPA, могут быть «костылем» для долгосрочных изменений и обновлений системы, которые необходимо сделать и которые могут не масштабироваться. Кроме того, может оказаться неясно, кто будет нести ответственность за долгосрочное обслуживание автоматизации наряду с выполнением требований безопасности и нормативно-правового соответствия.

Языки разработки Low-сode: кодированные команды

Инструменты, основанные на языках разработки Low-сode, включают многие из наиболее известных инструментов DevOps, в том числе Ansible, Chef, Hashi, Puppet, Jenkins и многие другие. Языки разработки Low-сode соответствуют фундаментальному убеждению, что «основанный на кодировании подход» не означает, что каждый должен быть «кодером».

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

Например, язык Chef Language включает в себя обширный набор команд, не зависящих от технологии, которые обеспечивают надежную автоматизацию для конфигурирования, тестирования и проверки систем. Независимо от того, с какой технологией вы работаете, команды остаются неизменными. С помощью этих команд пользователи могут выполнять сложные функции на тысячах устройств, не обладая достаточными знаниями кода.

Помимо использования человекочитаемых языков, предварительно заполненных автоматизированных шаблонов для легкого редактирования и надежного набора готовых интеграций с другими инструментами DevOps, поставщики в этой области начали предлагать более наглядные панели инструментов и функциональные возможности, основанные на пользовательском интерфейсе, которые позволяют функциональным руководителям контролировать развертывание и обеспечивать безопасность систем. Хорошим примером является Chef Infra Client 17: в Chef Automate были добавлены новые панели управления инфраструктурой и возможности, управляемые пользовательским интерфейсом.

Этот гибридный подход обеспечивает лучшее из двух миров, предоставляя пользователям простую в освоении платформу на основе кода, которая легко интегрируется с системами CI/CD, а также предоставляя нетехническим пользователям и руководителям видимость и аналитику по всему предприятию.

Плюсы. Языки разработки Low-code обеспечивают максимальную гибкость и масштабируемость. Поскольку они основаны на базовом языке, таком как Ruby, Python или Yaml, их можно легко расширить и настроить для работы даже с самыми сложными сценариями автоматизации. Кроме того, эти инструменты являются частью большой экосистемы и часто управляются сообществом, поэтому существуют тысячи готовых шаблонов контента и интеграционных плагинов, которые упрощают создание автоматизации и интеграцию в CI/CD-конвейеры.

Минусы. Языки разработки Low-code все еще основаны на скриптах и требуют базового понимания практики разработки. Инструменты необходимо обновлять и поддерживать, как и автоматизацию. Поскольку они созданы для решения специфических задач управления ИТ, они не очень хорошо подходят для нетехнических бизнес-пользователей.

Гиперавтоматизация — следующая большая движущая сила применения Low-Code в практике DevOps

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

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