Очень короткое вступление
Здравствуй, Хабр.
Итак, мы запускаем блог, посвященный платформе IBM Bluemix. Подобное действо всегда вызывает много вопросов и целью этого поста является попытка заранее ответить на основные из них, чтобы потом зря не отвлекаться.
Зачем мы здесь?
В первую очередь затем, чтобы рассказать о нашей платформе и ее возможностях. Предложить вам попробовать перенести на нее свои разработки. Оценить ее достоинства и недостатки и поделиться ими с нами и уважаемым сообществом Хабра. Сразу оговорюсь, мы не собираемся здесь перепечатывать пресс-релизы или руководства по использованию тех или иных функций платформы. Для этого есть другие места и, при необходимости, мы будем на них ссылаться. Мы собираемся публиковать здесь то, что действительно может быть интересным и полезным для большинства из вас. Уделять основное внимание технологическим новинкам и “вкусностям”. Находить нестандартные применения стандартным технологиям. Благо, Bluemix предоставляет практически неограниченные возможности для творчества.
Что это такое?
Если вы уже сталкивались с упоминанием IBM Bluemix, то вы знаете, что это такая облачная платформа для разработки софта. Проницательный читатель сразу же спросит – какого именно софта? Софт бывает разный. Бывают десктопные и мобильные клиентские приложения, бывают “тяжелые системы”, работающие в банках, телеком-операторах, госучреждениях и прочих серьезных организациях. Бывают интернет-сервисы. Все они разрабатываются по-разному с использованием различных технологий, инструментов и процессов. Так для разработки какого же софта предназначен Bluemix?
Давайте вспомним популярную фразу “Данные – это нефть 21-го века” и нарисуем соответствующую картинку.
Собственно нефть – это сырые данные, хранящиеся в “тяжелых системах” – информация о погоде, авиарейсах, курсах валют и многое другое, что нам нужно в нашей повседневной жизни и работе. На другом конце трубы у бензоколонки находимся мы с вами с нашими клиентскими приложениями. И мы хотим воспользоваться этими данными, представленными нам в удобном и красивом виде. Однако, так же как нельзя заправить автомобиль сырой нефтью, несмотря на то, что все необходимое в ней содержится, так и, чаще всего, мы не сможем сразу воспользоваться сырыми данными. Нужна очистка и переработка. Нужен перерабатывающий завод, который сделает из нефти бензин, а из сырых данных, хранящихся в системах, разработанных много лет назад, нечто пригодное для отображения на экране смартфона.
Bluemix – это платформа для разработки интернет-сервисов, которые и будут тем самым перерабатывающим заводом, который позволит нам с вами пользоваться всем тем богатством, которое хранится в недрах “тяжелых систем”. Продолжая аналогию, Bluemix содержит все необходимые узлы и агрегаты для построения завода любой сложности и любого назначения.
Как это устроено?
Bluemix, как и любая уважающая себя система, состоит из трех основных частей:
Рантаймы – все что необходимо для исполнения вашего кода. По вашему требованию разворачивается виртуальная Linux-машина с уже установленной языковой средой и стандартными библиотеками, а с помощью конфигурационных файлов вы можете доставить все недостающее.
Сервисы – как раз те самые узлы и агрегаты. Более 100 развернутых и готовых к использованию программных компонентов и систем от различных серверов баз данных до систем видеотрансляции и модулей когнитивных вычислений Watson. Вы выбираете нужные вам сервисы и они становятся доступны вашему коду, исполняемому в рантайме.
DevOps – средства управления циклом разработки. Собственный, основанный на git репозиторий, управление билдами, возможность запуска автоматических тестов, он-лайн редактор кода. Плюс набор средств нагрузочного тестирования. Плюс среда для развертывания системы управления проектом и коллективной работы, с помощью которой вы можете построить полноценный SCRUM.
Интересно? Тогда идем на bluemix.net. Там еще интереснее.
Зачем он мне нужен?
Здесь я хочу привести пример. Предположим, вы стартап и ваш продукт – это новый уникальный мессенджер. У вас есть бизнес модель, которая позволит «вынести» с рынка всех конкурентов, есть мобильное приложение с таким дизайном, что его не хочется выпускать из рук, есть команда из трех разработчиков. Дело за малым – заставить все это вместе работать. И вот здесь начинаются нюансы. Нужно делать сразу хорошо, поскольку на переделки скорее всего не будет ни времени ни ресурсов. Нужно сразу разработать и развернуть правильную архитектуру, а затем масштабировать ее в соответствии с ростом числа пользователей и других нагрузок.
Раз уж мы заговорили о мессенджере, нам понадобится мощная система управления очередями, обеспечивающая возможность публикаций сообщений и подписки на них, плюс базы данных, кэши и множество другого инфраструктурного софта, с которым будут работать мобильные приложения пользователей. Все это богатство должно быть установлено, настроено и, не забываем, обеспечено надлежащим администрированием, мониторингом, бекапами и т.д.
Кроме того, вам нужно обеспечить поддержку жизненного цикла всего разрабатываемого софта и, поскольку на дворе 2015 год, это, очевидно, должен быть continuous integration. Плюс нагрузочное тестирование. Плюс контроль уязвимостей. Плюс, наверняка, многое другое, о чем вы забыли или даже не подозревали на этапе старта проекта.
Вопрос в том, кто будет заниматься всей этой инфраструктурой? У вас есть разработчики, которые любят, умеют и должны писать код. И не любят, скорее всего не умеют и, точно, не должны заниматься развертыванием и администрированием серверов баз. Мало того, все затраты на поддержку инфраструктуры – это дополнительный cost, который вам, как стартапу, абсолютно не нужен.
Ответ – этим будет заниматься облачная платформа Bluemix. А вы будете заниматься тем, что приносит или принесет вам успех – разрабатывать ваш продукт.
Что будет дальше?
Дальше будут посты, посвященные различным решениям и находкам как нашей команды так и наших партнеров. В ближайшее время мы расскажем о том, как использовать контейнеры в среде Bluemix, как организовать сервис видеотрансляции не выпуская из рук чашку чая, как построить свой маленький Snapchat с помощью нашей платформы для интернета вещей. И так далее в таком духе. Есть идеи, предложения? Пишите, ждем с нетерпением.
С Уважением,
Команда IBM Bluemix