Поделюсь великой радостью: через примерно полгода после первых робких экспериментов я могу с уверенностью сказать, что онлайн победил.
Я несколько раз за последние лет 5 пытался делать онлайновые базы в онлайне, но каждый раз сталкивался с техническими проблемами из-за молодости технологий.
На сегодняшний момент у меня получилось, наконец, порешать все задачи таким образом, которые доставляют мне эстетическое удовольствие. Как в продолжение известной фразы: «Некрасивый самолет не полетит» — «Красивый продукт изнутри и снаружи полетел» :)
В общем, десктоп, по моему мнению, еще будет жить из-за legacy-приложений. Но, в целом, онлайн-интерфейсы и серверные технологии уже достигли того уровня, когда разница между онлайном и десктопом практически не ощутима ни по красоте, ни по функционалу, ни по скорости.
Если же брать по гибкости интерфейсов и по удобству использования для новичков, онлайн уже опережает десктоп на голову из-за отсутствия необходимости что-то скачивать, устанавливать и настраивать.
С точки зрения поддержки онлайн тоже оказался гораздо приятнее, чем я ожидал: за счет реал-таймового мониторинга и немедленной правки багов любое, даже самое глобальное изменение в структуре приложения выходит на уровень «не больше одной новой ошибки в сутки» примерно за 4-5 дней. В десктопе, к сожалению, такой уровень достигался примерно за год из-за зоопарка платформ и временных лагов из-за невозможности моментально «выкатывать» исправленные версии.
В общем, если планируете что-то новое, я бы рекомендовал уже чисто онлайн. По поводу нативных приложений на андроид и айпад у меня пока мнение не сложилось: я просто подстроил интерфейс так, чтобы можно было более-менее удобно пользоваться и на мобильных браузерах. Мне лично достаточно, клиенты тоже пока не жаловались.
Ваш кэп-слоупок :)
Есть замечательная книга на эту тему:
Николас Дж. Карр «Великий переход. Революция облачных технологий»
Спасибо, почитаю.
Но вот именно к облачным технологиям у меня достаточно скептичное отношение: я несколько раз пробовал использовать «облака», но в итоге получалось менее удобно и гораздо более дорого, чем свои сервера, особенно покупные, а не арендованные. В итоге из «облачных» технологий у меня прижился только Amazon S3, и то в качестве бекапов.
Если не секрет какими технологиями пользовался для создания онлайн — версии?
Исключительно Owin + своя реализация MVC и рендеринга.
Существующие MVC-реализации меня не устроили своей малой гибкостью: они больше ориентированы на «плоские» сайты. Под реальный веб-сервис роутинг все-таки чуть сложнее.
С рендерингом тоже оказалось проще сделать свой: я реализовал HTML-верстку в виде своих объектов, в итоге я вообще практически не касаюсь HTML-кода, а генерация идет, по сути, прекомпилированным кодом, что реально быстро. С точки зрения редактирования и рефакторинга тоже все чудесно: в приложении вообще в принципе нет строк, только объекты. Поэтому любые изменения рефакторятся и проверяются на уровне компилятора.
На хабр статейку нет желания написать о своем подходе?
Там не хватает именно практиков, от теоретиков изжога.
Я в свое время писал на Хабр, даже 5-м по рейтингу был некоторое время. Потом как-то подостыл — там не совсем подходящая мне по духу целевая аудитория. Народ там больше технические вещи любит, от психологии их в сон клонит, а бизнес и маркетинг вообще вызывают отторжение.
А по поводу Хабра Вы правы — в отличие от того же StackOverflow на хабре слишком много перепечаток/переводов/копипасты. Маловато тех самых практиков. Зато, когда они бывают — добавляю себе в закладки и мотаю на ус :)
Тоже есть небольшое .NET приложения, которое хочется перенести онлайн как SaaS, оно конечно не такое ресурсоемкой как ваше, как я понял вы переносили приложения как self-hosted Owin(katana?) приложения без IIS?
Просто я еще ни разу не видел real-world продакш версию продукта, которая использовалась как self-host, все обычно делают Owin по IIS, интересно было почитать про нюансы — как то настройка сервера, проблемы безопасности при таком подходе.
Да, self-hosted Owin, даже без Katana. Я реализовал свой MVC, чуть подробнее описал выше.
Настройки сервера как таковой нет, это все крутится в простейшем WinForms-приложении. С безопасностью тоже особо не заморачивался — бесплатных клиентов у меня там нет, а платные вряд ли будут рисковать аккаунтом, «пробивая» сервис. Как-то так :)
Здравствуйте, Макс! присоедините меня к своему клубу, пожалуйста) о вас ничего по сути не знаю, только что нашла в интернете ваш клуб, очень заинтересовал ваш опыт, понравились искренние отзывы людей, и конечно книги, курсы, мысли. Искренность и простота вызывают чувство будто клад отрыла)
Отправьте запрос на включение в клуб на max@pastukhov.com
Обалка или «свои облака» это реально кайф. Но вот как пользователю облаков всегда неудобно два момента (там бывают аварии на которые ты не можешь повлиять — повышаются цены постепенно) -)))
Вопрос. А при текущих пользователях сколько траифика на пике получается утилизировать? И главное где все это размеешь? Западная Европа? Или там пока только беты и клиентов онлайн еще не много.
В офисе все размещено — не вижу смысла платить помесячно за то, что можно один раз купить :) «Бытового» канала вполне хватает для работы тех пользователей, которые сейчас работают, а в перспективе все равно дешевле расширять канал «домашнего» провайдера, нежели платить хостеру. Разве что оптику в офис протянул, чтобы меньше зависеть от загрузки роутеров. Был еще вариант с оптикой напрямую к провайдеру, но получается значительно дороже — смысла нет.
У меня 4 года назад тоже была подобная задача: знакомый напарсил 60 гигабайт ключей в обычную базу MySQL и обычная выборка шла по несколько минут. Он попросил помощи чтобы это все хоть как то ускорить. После разных опытов остановился на связке PHP + MySQL + Sphinx (http://sphinxsearch.com/). В итоге после экспериментов выборка по многомиллионной базе шла не более секунды, это включая работу поискового движка и выборки из базы данных.
Единственной проблемой было то, что индекс поискового движка очень сильно разросся в плане занимаемого места и занимал пару сотен гигабайт + размер самой базы.