Здравствуй, Хабр.

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

Зачем мы здесь?

В первую очередь затем, чтобы рассказать о нашей платформе и ее возможностях. Предложить вам попробовать перенести на нее свои разработки. Оценить ее достоинства и недостатки и поделиться ими с нами и уважаемым сообществом Хабра. Сразу оговорюсь, мы не собираемся здесь перепечатывать пресс-релизы или руководства по использованию тех или иных функций платформы. Для этого есть другие места и, при необходимости, мы будем на них ссылаться. Мы собираемся публиковать здесь то, что действительно может быть интересным и полезным для большинства из вас. Уделять основное внимание технологическим новинкам и “вкусностям”. Находить нестандартные применения стандартным технологиям. Благо, Bluemix предоставляет практически неограниченные возможности для творчества.

Что это такое?



Если вы уже сталкивались с упоминанием IBM Bluemix, то вы знаете, что это такая облачная платформа для разработки софта. Проницательный читатель сразу же спросит – какого именно софта? Софт бывает разный. Бывают десктопные и мобильные клиентские приложения, бывают “тяжелые системы”, работающие в банках, телеком-операторах, госучреждениях и прочих серьезных организациях. Бывают интернет-сервисы. Все они разрабатываются по-разному с использованием различных технологий, инструментов и процессов. Так для разработки какого же софта предназначен Bluemix?

Давайте вспомним популярную фразу “Данные – это нефть 21-го века” и нарисуем соответствующую картинку.

image

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

Bluemix – это платформа для разработки интернет-сервисов, которые и будут тем самым перерабатывающим заводом, который позволит нам с вами пользоваться всем тем богатством, которое хранится в недрах “тяжелых систем”. Продолжая аналогию, Bluemix содержит все необходимые узлы и агрегаты для построения завода любой сложности и любого назначения.

Как это устроено?

Bluemix, как и любая уважающая себя система, состоит из трех основных частей:

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

Сервисы – как раз те самые узлы и агрегаты. Более 100 развернутых и готовых к использованию программных компонентов и систем от различных серверов баз данных до систем видеотрансляции и модулей когнитивных вычислений Watson. Вы выбираете нужные вам сервисы и они становятся доступны вашему коду, исполняемому в рантайме.

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

Интересно? Тогда идем на bluemix.net. Там еще интереснее.

Зачем он мне нужен?

Здесь я хочу привести пример. Предположим, вы стартап и ваш продукт – это новый уникальный мессенджер. У вас есть бизнес модель, которая позволит «вынести» с рынка всех конкурентов, есть мобильное приложение с таким дизайном, что его не хочется выпускать из рук, есть команда из трех разработчиков. Дело за малым – заставить все это вместе работать. И вот здесь начинаются нюансы. Нужно делать сразу хорошо, поскольку на переделки скорее всего не будет ни времени ни ресурсов. Нужно сразу разработать и развернуть правильную архитектуру, а затем масштабировать ее в соответствии с ростом числа пользователей и других нагрузок.

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

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

Вопрос в том, кто будет заниматься всей этой инфраструктурой? У вас есть разработчики, которые любят, умеют и должны писать код. И не любят, скорее всего не умеют и, точно, не должны заниматься развертыванием и администрированием серверов баз. Мало того, все затраты на поддержку инфраструктуры – это дополнительный cost, который вам, как стартапу, абсолютно не нужен.

Ответ – этим будет заниматься облачная платформа Bluemix. А вы будете заниматься тем, что приносит или принесет вам успех – разрабатывать ваш продукт.

Что будет дальше?

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

С Уважением,
Команда IBM Bluemix

Комментарии (16)


  1. balamut108
    10.11.2015 14:12

    Выглядит конечно заманчиво, но как на счёт ответов 4-5 секунд и крайне недружественного интерфейса больше похожего на щавелевый суп?


    1. millstone
      10.11.2015 16:52

      Не совсем понял, что значит «ответов 4-5 секунд»?


      1. balamut108
        10.11.2015 17:20

        ответы по 4-5 секунд!


  1. Indemsys
    10.11.2015 14:44

    Что то не лады с документацией и продвижением у IBM Bluemix.

    Сделал подписку на триальный период 30 дней. Получил Dashboard с кучей шаблонов.
    И вот захожу на страницу рецептов, например конкретно эту — developer.ibm.com/recipes/tutorials/rapid-node-js-app-generation-for-storing-device-data-in-cloudant
    И хочу создать по ссылке на ней нечто называющееся Internet of Things Workbench.
    А мне пишет:
    No spaces in organization.

    BXNUI0116E: The <мой eмайл> organization has no spaces for which you are a developer. Try to select another organization or create a space.

    Что это?

    Или где рекламируемый у IBM в рецетах шаблон «Internet of Things Foundation Starter»?
    У меня есть только «Internet of Things Foundation» и это явно не то.

    А время идет, подписка кончается.
    Уже думаю не проще ли у Microsoft Azure.
    У них хоть Visual Studio 2015 без проблем все примеры запускает.


    1. millstone
      10.11.2015 22:49

      По-порядку:

      1. Сервис Internet of Things Workbench помечен как экспериментальный. Это даже не бета. Так что обращаться с осторожностью.

      2. No spaces in organisation. Это проблема не конкретного сервиса, а настройки вашего аккаунта. Причины могут быть разные. Посмотрите здесь www.ng.bluemix.net/docs/acctmgmt/index.html. Если не поможет — напишите, например, в личку. Разберемся.

      3. Internet of Things Foundation Starter находится здесь console.ng.bluemix.net/catalog/internet-of-things-foundation-starter. Internet of Things Foundation — это отдельная облачная платформа, представляющая собой MQTT брокер и интегрированная с Bluemix посредством различных сервисов и API. Например, Node-RED, что и показано в Internet of Things Foundation Starter

      4. Уже думаю не проще ли у Microsoft Azure. Ну это вы сами решите.


  1. Indemsys
    10.11.2015 15:18

    Появилось подозрение, что IBM дискриминирует юзеров по региону.


    1. IBM_Bluemix
      10.11.2015 15:55

      Добрый день! Нет такого :)


      1. Indemsys
        10.11.2015 17:18

        Чего нет?

        Точно было сообщение, что в US регионе какого-то сервиса нет и надо переходить на UK регион.
        И вообще что за странные там регионы?

        Но и в UK регионе Internet of Things Workbench не работает, пишет что все платно.


        1. millstone
          10.11.2015 22:54

          А что странного в регионах? Из три: US South, UK и Sydney. Для обучения и освоения лучше использовать US South — он самый большой по числу доступных сервисов и других возможностей. Про Internet of Things Workbench — см. мой комментарий выше.


  1. tehnolog
    10.11.2015 17:20

    Пару дней назад попытался использовать Bluemix для мобильного приложения. Dashboard выдал мне ошибку — чего-то он там не смог сделать. Для себя решил, что не стоит пока его использовать. Сырой сервис.


    1. millstone
      10.11.2015 22:21

      Если чего-то он там не смог сделать — тогда конечно, не стоит использовать


  1. baka_cirno
    10.11.2015 21:12

    Можно узнать, а что вы подразумеваете под юзерами в расценках? Количество уникальных адресов в месяц, с которых захотили на инстанс?


    1. millstone
      10.11.2015 23:05

      Уточните, пожалуйста, о каком сервисе идет речь?

      Вообще, о принципах ценообразования можно прочитать здесь www.ng.bluemix.net/docs/acctmgmt/bill_usage.html#bil_usage


  1. Caravus
    11.11.2015 00:05

    Попытался загрузить готовое PHP-приложение (Yii2/Postgres) в… эм… Cloud Foundry Apps. Загрузить то загрузил, но дальше не понятно что делать, собственно.
    Просит composer в корне проекта. У меня в корне папка Yii и папка www с публичными файлами. Как объяснить где искать настройки composer? Что публичные файлы в htdocs/www?
    Ладно думаю, тестировать так тестировать. Сделал как просит — свалил все файлы в кучу:

    PHP message: PHP Warning: require(/home/vcap/app/htdocs/vendor/autoload.php): failed to open stream: No such file or directory in /home/vcap/app/htdocs/index.php on line 13
    Несмотря на нормальную загрузку composer — папки vendor в htdocs найти не удалось. Зато нашлась она в app/lib. Поправил — отхватил уже красивую ошибку от Yii. Забил, пошёл спать, завтра разберусь.

    P.S.: Да я понимаю что сейчас окажется что я где-то был невнимателен, что на самом деле надо было «поставить вот ту маленькую галочку», или прочитать инструкцию ссылку на которую я не заметил. Но давайте опустим эти все «ну ты нуб, не справился с веб-интерфейсом», и засчитаем это как багрепорт на плохой UI?
    По хорошему — статеек бы как развернуть готовое веб-приложение на сервере. Какой-нибудь фреймворк с композером на php (не все любят Yii), руби/рельсы или что-то ещё похожее. Тема интересная, но сильно уж инновационная, для нас, простых смертных:
    … разработчики, которые любят, умеют и должны писать код. И не любят, скорее всего не умеют и, точно, не должны заниматься развертыванием и администрированием серверов ...


  1. millstone
    11.11.2015 00:20

    1. Пошаговая инструкция по Yii на Bluemiх. developer.ibm.com/bluemix/2015/04/06/from-workshop-to-production-in-under-a-day-migrating-a-php-app-to-bluemix.

    2. re. PS. Мы уже осознаем необходимость написания «Краткой инструкции по эксплуатации». Скоро будет. Впрочем, основные шаги описаны в опусе про котов. Там, правда, python, но суть та же


    1. Caravus
      11.11.2015 01:06

      Спасибо за участие, но беглый осмотр показал что:
      1) На странице не встречается слово composer. Вообще. Браузер не нашёл.
      2) Проблема ровно та же самая, решённая точно так же:

      At the web-root folder level, I had 3 folders required for my application to run – tallyho, Yii/PHP application framework and D3.js graphics micro-framework.
      [...]
      I bundled them together before pushing them
      и второй комментарий:
      but I am still searching a way out to configure the public url
      Статья по сути описывает то что проделал я во время написания предыдущего комментария. Это не вариант, нужно делать нормально.