Яндекс.Метрика
    Поиск по тегу

    облако


    Найдено: 3 записи

    Реклама

    Новый облачный форумный движок с мгновенной скоростью работы

    Я хочу рассказать о новом созданнoм мной форумном движке NeoBB. Согласно Википедии, на данный момент существует около 50 форумных движков. Так зачем же было создавать ещё один? По сравнению с конкурентами, у NeoBB есть ряд преимуществ:
    • Он невероятно быстр и масштабируем
    • Прост и интуитивен
    • Позволяет неплохо сэкономить
    • Легко интегрируется

    Идея


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

    Постепенно движок развивался. По просьбам пользователей добавлялся новый функционал. Мне нравилось заниматься им в свободное время. Наконец, когда многие стали спрашивать, что это за движок, и могут ли они установить его себе на сайт, я начал задумываться о более серьёзных перспективах. Было придумано имя NeoBB (neo — новый, bb — bulletin board) и зарегистрирован домен neobb.com. На будущее.

    Реализация


    Осенью 2011 года я решил взяться за проект серьёзно. Я понимал, что самое сложное — сделать конкурентоспособное решение. Поэтому я решил уделить больше всего внимания на имплементацию функционала, которому уделено меньше всего внимания у конкурентов, а именно на те 4 преимущества, перечисленные выше. Рассмотрим все эти преимущества по порядку.


    Быстрота

    Да, большинство движков работают быстро в плане загрузки страниц. Поэтому я решил вынести NeoBB на новый уровень. После прочтения этой статьи на Хабре, я твёрдо решил, что отображение сообщений надо делать в стиле RIA 2.0. Сообщения в теме передаются браузеру в .json, в результате перелистывание страниц мгновенное. Вы можете посмотреть, как это работает в тестовой теме, которyю я создал 31 октября специально для показа данного функционала:

    community.neobb.com/Topic/Instant-Page-Navigation-Demo/4eaf12ae87967f0f24b69306

    Для смены страниц используется небольшая панель, и, как видите, переходить на следующую/предыдущую страницу можно с помощью комбинации клавиш Ctrl + влево и Ctrl + вправо (спасибо Хабру за эту идею).

    image

    Другой пример реализации RIA 2.0 — отслеживание новых сообщений в теме. Если в теме находится несколько человек, то вам больше не надо обновлять страницу для того, чтобы проверить, нет ли чего-нибудь нового. Все новые сообщения отображаются мгновенно, как в чате. Это же касается и личных сообщений (conversations), в которых, кстати, могут участвовать несколько человек.



    Производительность и масштабирование

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

    Как и большинство моих творений, NeoBB написан на C#/ASP.NET MVC 3 с использованием NoSQL б/д mongoDB. Данная связка даёт невероятную производительность. C# — статический компилируемый язык, ASP.NET MVC — легковесный framework, a mongoDB — невероятно производительная и нетребовательная к ресурсам база данных. Когда я впервые попробовал mongoDB пару лет назад, я понял, что назад к Sql Server/Postgresql я не вернусь. По всем моим тестам, применимым к NeoBB, mongoDB в разы быстрее, поедая при этом в десятки раз меньше CPU.

    В результате сайт, написанный с помощью данных технологий, выдерживает тысячи пользователей online на одном сервере, что позволяет сэкономить на железе и предоставить более выгодные условия для пользователей (об этом — ниже).

    На данный момент NeoBB хостится на дешёвом американском сервере за $70 в месяц (1GB RAM, Celeron). После того, как NeoBB наберёт популярность, и доcтигнет отметки в несколько тысяч пользователей online, я перейду на более мощный сервер с 8 GB RAM и Intel Core i3.

    Простота и интуитивность использования

    Я сторонник простоты, интуитивности и минимализма без ущерба функционалу. На мой взгляд, хорошим примером, подходящим под данные парадигмы, является ВКонтакте. Каждый имеет своё мнениe по поводу данной соц. cети да и соц. сетей вообще, но я думаю, многие согласятся со мной, что в техническом плане ВКонтакте прост, интуитивен и функционален. Чего не скажешь, например, о том монстре, каким стал facebook.

    Так получилось, что большинство движков разрабатываются очень давно и тянут за собой наследие старины (глотком свежего воздуха определённо стал XenForo, написанный Киром и командой в 2010 году с нуля). Очень часто при пользовании форумами я теряюсь в обилии ссылок, кнопок и надписей. В чём разница между страницами User Panel и Member? Где можно посмотреть список моих сообщений? И так далее. Конечно, со временем, люди разбираются, так же как разбираются, как получить список всех своих друзей в facebook.

    NeoBB прост, интуитивен и функционален. Сначала кажется, что у NeoBB функционал значительно меньше, чем у конкурентов, так как в админке всего 9 ссылок, а в профиле пользователя и того меньше: 4. Но потом приходит понимание, что вот он, функционал, совсем рядом. Драгоценное место отделяется непосредственно контенту, а не морю ссылок и кнопок.

    В качестве примера ещё хочу привести то, как реализована сортировка форумов и их категорий. Во всех без исключения форумах приходится выставлять параметр order number. При добавлении новой категории/форума order number может совпаcть, и тогда надо проходить по каждому форуму и исправлять его.

    В NeoBB сортировка реализована с помощью drag&drop:



    image
    Облако

    Другой аспект простоты и функциональности NeoBB заключается в его «облачности». Я понимаю, что данный аргумент спорен для многих, более того, в конце статьи я подведу итог: для кого подходит NeoBB, а для кого нет, и это будет играть ключевую роль. Так почему же облако?

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

    1. Выбрать движок
    2. Заплатить за него (не требуется в случае использования бесплатного ПО)
    3. Скачать архив с исходным кодом
    4. Выбрать хостинг
    5. Заплатить за хостинг
    6. Загрузить скрипт с помощью FTP
    7. Настроить форум

    В случае NeoBB, список такой:
    1. Выбрать план (бесплатный, стандартный, премиум, custom)
    2. Настроить форум

    Да, существуют сайты, предоставляющие похожие услуги на других движках. Более того, IPB официально продаёт Hosted Communities.

    Почему же не предоставлять выбор: кто хочет — пусть пользуется облаком, а кто хочет — пусть загружает движок на свой сервер. Согласен, выбор — это хорошо. Однако в данном случае есть ещё несколько причин в пользу только облачного варианта.

    NeoBB написан на C#/ASP.NET MVC 3 и использует mongoDB. 99.9% shared хостингов сразу отметается. На Linux/Mono он не взлетит, так как Xamarin так до конца и не допилили поддержку MVC 3. Остаются только пользователи Windows VPS/VDS. А таких очень мало.

    И, наконец, при такой централизованной системе у каждого пользователя NeoBB всегда будет последняя версия. Никаких больше обновлений, и плат за эти обновления. А главное — никакой дефрагментации. Исправлен баг/уязвимость? Можно быть уверенным, что ни на одном NeoBB форуме её не будет.

    Последнее время облачые сервисы всё больше входят в нашу жизнь: Dropbox, Google Docs, Evernote, iCloud. На мой взгляд, самый близкий к NeoBB облачный сервис — Disqus. Он добился невероятной популярности и доказал, что комментарии не обязательно хранить у себя на сервере. Правда, Disqus не без изъянов, и у ребят ещё много работы над стабильностью сервиса.

    Доступность

    Одно из главных преимуществ NeoBB — доступность. Вот сравнение с двумя популярными облачными форумными хостингами:



    Как видите, NeoBB в разы дешевле, в то же время предоставляется некоторый функционал, отсутствующий у конкурентов. За счёт чего получаются такие низкие цены? Во-первых, как я уже говорил, высокая производительность и оптимизация движка позволяет сэкономить на серверах. Во-вторых, я (пока) единственный разработчик. Да и вообще, я считаю, что более доступные цены в данной отрасли выгоднее как для покупателя, так и для продавца.

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



    Теперь давайте сравним стоимость NeoBB со стоимостью хостингa на своём сервере. Будем исходить из ~75 пользователей online. Для того, чтобы выдержать 75 пользователей online на форуме vBulletin, SMF, phpBB, IPB и т.д., придётся платить минимум $150 в год за хостинг. Добавим к этой сумме стоимость лицензии, если форум платный: $195 для vBulletin. Цены на другие проприетарные форумы находятся примерно в той же категории. Получается от $150 до $350 в год. С NeoBB это обойдётся ровно в $100 в год.

    Интеграция

    Не смотря на то, что ваш NeoBB форум находится на другом сервере и использует совершенно другие технологии, легко создаётся ощущение полной интеграции с вашим сайтом.

    NeoBB легко «ставится» на ваш собственный домен/поддомен, так что можно воспользоваться устоявшейся системой «главный сайт на site.com, форум на forum.site.com». Как это делать, описано в документации. Более того, вы можете интегрировать NeoBB с вашей текущей базой пользователей, чтобы пользователям сайта не надо было регистрироваться и даже авторизовываться на форуме.

    Например, если ваш сайт написан на C#/ASP.NET, вы должны загрузить библиотеку NeobbIntegration.dll и подключить её к проекту. Библиотека очень простая:

    // Инициализация
    var neobb = new NeobbIntegration("forumdomain.com");

    // Регистрация нового пользователя на форуме
    if (neobb.RegisterNewUser(email, password, username)) Log("NeoBB user registered successfully");

    // Авторизация пользователя (работает, если NeoBB форум находится на поддомене)
    neobb.AuthenticateUser(Response);


    Кастомизация

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

    Сначала я создал страничку с текстбоксами «Цвет текста», «Цвет ссылок» и т.д. Но потом я понял, что это ужасно ограничивает дизайнера и решил ввести поддержку полной настройки CSS. Вот что получилось:



    Функциональнее и понятнее. В ближайшем будущем будут добавлены стандартные темы.

    Теперь о самом интересном: шаблоны. По понятным причинам простое редактирование кода а-ля SMF или phpBB не сработает. Поэтому я решил пойти по пути шаблонов, как в XenForo. На данный момент они всё ещё в разработке. Но будет выглядеть это примерно так:

    <neobb:if IsLoggedIn="true">
    <neobb:SayThankYouButton />
    </neobb:if>


    Да, на данный момент шаблоны пока не реализованы. Но это не означает, что нельзя сделать что-то уникальное. Например, вот мой сайт medvednikov.com, недавно переведённый с блоггера на NeoBB:



    Mini CMS

    В определённый момент жизни я решил, что пора создать сайт-визитку. Сначала я быстренько написал сайт на голом html и загрузил его на бесплатный хостинг. После того, как этот бесплатный хостинг упал на несколько дней, я начал искать альтернативу. Выбор пал на Blogger. Надёжный и бесплатный сервис от Google с привязкой к домену первого уровня. После нескольких часов редактирования громоздкого шаблона я получил то, что хотел. Функционал блога мне был не нужен. Только странички-визитки.

    И тогда мне пришла в голову идея: почему бы не добавить в NeoBB функционал по созданию небольших сайтов-визиток? Результат вы видите на скриншоте выше.

    Это определённо не замена полноценным CMS вроде WordPress, но наверняка многим пригодится. Конечно, развитие функционала форума имеет наивысший приоритет. Mini CMS, а возможно и Mini Blog, будут развиваться менее резкими темпами.

    Функционал


    В NeoBB имеется практически всё, что требуется от форума. Перечислять это было бы слишком долго. Лучше напишу о том, что пока не готово:

    • Шаблоны
    • File attachements
    • Подфорумы, подподфорумы и т.д.
    • Голосования
    • Закрытые форумы
    • Отдельные разрешения для модераторов
    • Вход через facebook


    С файлами я пока не решил. Но я почти уверен, что будет интеграция с каким-нибудь облачным сервисом, типа SkyDrive. Зачем тратить bandwidth и занимать место на диске, когда есть специализированные для этого сервисы? Сейчас вообще идёт тенденция к отказу от attachment'ов и замена их на cloud storage (мне очень понравилось видео на эту тему от создателей почтового клиента Sparrow: sparrowmailapp.com)

    Подфорумы конечно будут реализованы asap, это очень нужный и простой в плане программирования функционал. То же самое и с голосованиями, разрешениями и закрытыми форумами. Замечу, что форумы, закрытые только для модераторов и администраторов, уже реализованы. Закрытые форумы — форумы, где нужна регистрация для просмотра контента.

    Я большой поклонник OpenID, поэтому, конечно, реализовал авторизацию через OpenID. Пока это Google (как самый популярный провайдер) и Yahoo. Скоро будут добавлены и другие. К моему большому разочарованию, невероятно популярный facebook вместо использования OpenID продвигает свой facebook Connect. Руки до него пока не дошли, но ввести его нужно будет обязательно.

    Хочется написать о функционале, которого нет и, скорее всего, не будет. По крайней мере, в ближайшие 6 месяцев точно. Аддоны. Реализовать их в NeoBB чрезвычайно сложно, поскольку нет доступа к исходному коду и базе данных. На данный момент есть более важные вещи, которые надо сделать (те же шаблоны). Однако не всё так плохо. Во-первых, большинство функций топовых аддонов уже есть в NeoBB из коробки (например, «спасибо» за сообщения, день рождения, чат, интеграция с Google AdSense, SEO заголовки, флаг страны пользователя, редактированиe заголовка темы и т.д.). Во-вторых, если пользователю будет очень не хватать какого-то функционала, он/она всегда может написать об этом в раздел Suggestions, и, скорее всего, данный функционал будет доступен по дефолту.

    Планы на будущее


    Я подавал заявки в два бизнес-инкубатора: Spanish Village и SeedCamp. В первом мне отказали, видимо, из-за возраста, во втором сказали, что нет клиентской базы, и невозможно понять, будет ли проект приносить доход. Поэтому я решил продвигать NeoBB самостоятельно.

    Мне кажется, что у NeoBB есть все шансы взять определённый процент рынка, не смотря на уже устоявшихся больших игроков. После реализации перечисленного выше функционала я планирую начать агрессивную рекламную кампанию. Существует также партнёрская программа, так что пользователи, которым понравился движок, могут привлекать своих знакомых и зарабатывать на этом 25% от дохода.

    NeoBB расчитан как на новых пользователей форумов, так на и тех, кто уже имеет форум и готов мигрировать. На данный момент поддерживается миграция с phpBB и SMF, скоро будет готова миграция с vBulletin и IPB. Кстати, буду благодарен тем, кто попробует перенести свой phpBB/SMF форум на NeoBB, так как у меня своих крупных форумов нет. Как я уже говорил, для тестирования можно использовать бесплатный план.

    Заключение


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

    NeoBB скорее всего не подходит вам, если вы:
    • Любите копаться в исходниках и настраивать продукт под себя
    • Из принципа предпочитаете хранить все данные у себя на сервере
    • Уже используете форумное решение с большим количеством аддонов (возможно, самописанными), альтернатив которым нет у NeoBB

    NeoBB подходит вам, если вы:
    • Хотите быстро и выгодно создать новый форум
    • Хотите получить быстрый и удобный форум, который just works
    • Хотите получить плотную интеграцию с вашей текущей пользовательской базой
    • Не боитесь пробовать что-то новое

    Язолъ

    Selectel: осторожно, выходные!

    Хочу поделиться неприятной историей, которая случилась со мной сегодня. Заодно, полезная информация для всех клиентов Selectel, и для менеджмента самой компании (возможно через Хабр до них информация дойдет быстрее, чем через собственный саппорт).

    Реклама

    eTraxis — SaaS трекер с хостингом в облаке

    Добрейшего.

    Доогое время слежу за развитием open source проекта eTraxis, это система управления запросами на изменения. Большинству такие систенмы известны под именем «багтрекеры». Мне довелось написать для неё немного кода и поучаствовать в её внедрении для нужд большой команды (несколько десятков человек). Отличительная особенность его — большая гибкость в настройке шаблонов workflow, их полей, групп пользователей и прав доступа — вплоть до отдельного поля в произвольном состоянии.

    В общем, проект мне интересен, слежу за его развитием. Ну а не так давно создатель системы решил выйти на новый уровень — и именно, создать онлайн-сервис (то, что сейчас принято называть SaaS). Сказано — сделано, был запущен https://www.etraxis.com/.