Платформа IBM Bluemix стремительно набирает популярность среди разработчиков приложений, и дело не только в том, что она ориентирована на модные нынче облачные технологии. В отличие от многих других сред разработки она предоставляет чрезвычайно широкий спектр возможностей, способствующих быстрому и экономически эффективному созданию программных продуктов. Тимур Маркунин, технический консультант ПО линейки IBM Cloud, не только раскроет возможности Bluemix, но и расскажет, как их можно применять в проектах создания ПО.

Облачная разработка с IBM Bluemix
Тимур Маркунин, технический консультант ПО линейки IBM Cloud: «Программисты, знакомые с платформой Bluemix, высоко ценят экономическую эффективность разработки, выполненной на ее основе».

В чем секрет популярности Bluemix среди разработчиков?

Bluemix — это огромный оркестр облачных инструментов, способный сочинять и исполнять любую «музыку» для облаков. Платформа поддерживает полный жизненный цикл создания ПО: в ее составе имеются средства (а точнее, службы) непрерывного планирования, совместной разработки и тестирования, непрерывного развертывания, мониторинга и оптимизации в соответствии с принципами бережливой (lean) разработки, Agile и DevOps. С их помощью можно создавать и относительно небольшие инновационные облачные приложения, и крупные программные системы, ориентированные на гибридные облака. При этом клиентские компоненты этих продуктов могут работать как веб-приложения и как мобильные приложения. Радует и то, что все больше известных программных решений IBM становятся доступными в виде облачных сервисов Bluemix.

Насколько разработка в среде Bluemix отличается от создания ПО с помощью привычных программистам инструментов?

Процесс разработки ПО на основе методик DevOps и Agile в Bluemix практически тот же самый, что и в случае применения традиционного инструментария, но, что ценно, менее продолжительный, поскольку срок завершения некоторых трудоемких фаз заметно сокращается. В частности, быстрее осуществляется создание среды (тестовой, предпродуктивной или продуктивной), развертывание приложений, тестирование, освобождение среды и другие процессы. Это достигается в первую очередь за счет того, что Bluemix предоставляет множество готовых «кирпичей»-сервисов, реализующих функции СУБД, ПО промежуточного слоя, «умных» когнитивных приложений, и прочие инструменты.

Кроме того, в Bluemix встроена собственная среда DevOps, в которой реализованы широкие возможности для контроля и управления версиями, гибкого планирования разработки посредством службы Track & Plan, управления исходным кодом при помощи Git, Jazz SCM или GitHub, автоматизированной сборки и развертывания с использованием службы Delivery Pipeline, а также функции Web IDE для редактирования и управления версиями исходного кода через веб-браузер. Наконец, есть сервис Active Deploy для развертывания новых версий приложения без необходимости прерывать обслуживание клиентов, сервис эластичного масштабирования и несколько сервисов мониторинга.

Каковы ключевые рекомендации IBM по переходу на Bluemix и практическому использованию этой платформы разработки?

В «Гараже Bluemix» (Bluemix Garage) вы можете найти множество рекомендаций относительно того, как лучше и эффективнее организовать процесс разработки. Здесь же реализованы сервисы по обучению методологиям Agile и подходам к взаимодействию с заказчиками с целью выявления правильных требований к создаваемому ПО и определения рамок минимально жизнеспособного его варианта (Minimum Viable Product, MVP). Современные разработчики уже убедились, что обсуждать и формулировать требования к MVP очень полезно: это позволяет разумно использовать бюджет проекта, развивая ПО именно в том направлении, которое действительно нужно заказчику. Небольшим командам разработчиков, как правило, бывает достаточно рекомендаций из Bluemix Garage, где практики Scrum по управлению проектами создания ПО и организации командной работы сочетаются с практиками «экстремального» программирования. Работу крупных команд IBM советует выстраивать на основе фреймворка SAFe.

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

Насколько Bluemix отвечает современным требованиям к эффективности разработки?

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

Давайте рассмотрим практический пример: компания-стартап, специализирующаяся на разработках в области финтеха, или ИТ-подразделение банка средней руки создает приложение, использующее технологию блокчейн. Какие инструменты Bluemix вы порекомендуете для данного случая?

В Bluemix имеется собственная реализация блокчейна как сервиса — ее вполне можно использовать для разработки и тестирования приложений, основанных на блокчейне, что весьма высоко ценится. Сейчас сервис предлагается в режиме бета-версии и обладает определенными ограничениями в плане масштабируемости, но его возможностей вполне хватает для разработки и тестирования блокчейн-приложений, а затем с помощью контейнеров IBM для блокчейна обеспечивается нужная масштабируемость.

Для создания графических пользовательских интерфейсов наверняка потребуется среда исполнения (runtime), например, Node.JS, Java, .NET Core или любая другая, позволяющая разработать веб-интерфейс для конечных пользователей — эти средства уже есть в Bluemix. Если, согласно замыслу, продукт должен работать и на мобильных устройствах, потребуются сервисы для создания мобильных приложений — они тоже имеются в Bluemix.

А что можно посоветовать ИТ-специалистам, например, производственного предприятия, которые разрабатывают систему Интернета вещей?

В составе Bluemix уже реализовано несколько сервисов Интернета вещей. В частности, сервис IoT Foundation позволяет подключать устройства, взаимодействовать с ними, получать от них данные, передавать управляющие команды и выполнять другие задачи. Кроме того, имеется инструментарий Node-RED — по сути, это созданный на базе Node.JS визуальный язык программирования, изначально ориентированный на Интернет вещей. Он помогает ускорить выпуск прототипов решений, визуально программируя сценарии поведения компонентов экосистемы Интернета вещей и правила управления ими.

Наверняка понадобится и сервис СУБД — реляционных или нереляционных. Таких сервисов в Bluemix около десятка: DB2, Informix, Cloudant, MongoDB, PostgreSQL, Radis, DushDB, ElephantSQL, MySQL. Есть в Bluemix и сервис оперативной аналитики — эту функцию может выполнить сервис на базе IBM Cognos. Для проведения глубокого анализа данных, поступающих от различных датчиков (например, с целью прогнозирования поведения среды Интернета вещей) пригодится инструментарий на основе IBM SPSS. Есть возможность подключения сторонних источников информации, например, о погодных условиях или дорожном трафике в местности, где размещается среда интернета вещей, — их тоже можно задействовать для более эффективного управления.

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

Как и в случае с финтехом, им понадобятся встроенные в Bluemix среда исполнения для создания клиентских веб-приложений и инструментарий для мобильных приложений. Чтобы обеспечить гибкое управление мобильными приложениями, рекомендую задействовать платформу IBM MobileFirst — она доступна и как сервис Bluemix. С ее помощью можно, например, уточнить географию применения новых функций, сделав их доступными в нескольких пилотных регионах, а затем, если все пройдет удачно, предоставить всем пользователям.

Посредством Node-RED удобно подключаться к популярным социальным сетям и анализировать информацию, которую оставляет клиент на своих страницах. Для работы с собранными неструктурированными данными рекомендуется применять сервис IBM BigInsights, построенный на базе Hadoop. Используя SPSS, можно попытаться спрогнозировать потребности клиента и автоматически готовить для него привлекательные предложения, а некоторым энтузиастам, наверное, захочется поэкспериментировать с когнитивными сервисами IBM Watson — правда, они еще не все работают с русским языком.

И последний по порядку, но не по значению вопрос: как обеспечивается информационная безопасность и защита интеллектуальной собственности разработчиков?

Bluemix позволяет гарантировать безопасность и самой разработки, и создаваемых приложений. Персональные и другие конфиденциальные данные можно хранить локально в гибридном облаке. Помимо этого, можно создать изолированный контур в одном из принадлежащих IBM дата-центров, защищенный доступ к которому будет осуществляться посредством канала VPN. Надежно закрыть коды приложений от посторонних глаз поможет размещение кода в контейнерах.

Узнайте больше об облачных когнитивных технологиях IBM

Подробнее об IBM Bluemix