Интересуют примеры успешной реализации сложных высоконагруженных тиражируемых систем на связке .NET + MSSQL. Интересует опыт создания и эволюционного развития таких систем (на протяжении нескольких лет), а также опыт создания нескольких сложных взаимосвязанных (интегрируемых) систем на "едином ядре". Если у кого-то есть подобный опыт, прошу поделиться.
Для удобства предлагаю собирать информацию по следующей схеме:
Характеристика проекта
1.1. Краткое описание назначения системы
1.2. Срок разработки (этапы, продолжительность, размер команды)
1.3. Время от начала разработки до первого внедрения в промышленную эксплуатацию
1.4. Время от первого внедрения до массового внедрения
Характеристика среднего объекта внедрения
2.1. Количество пользователей системы (общее и количество одновременно активных)
2.2. Количество транзакций в пиковые часы
2.3. Объем базы данных, процент активных данных (объем), ежедневный прирост (можно за месяц или год)
Детали архитектуры, особенности реализации на .NET
3.1. Модель управления транзакциями
3.2. Модель управления блокировками
3.3. Возможность масштабирования (кластер)
3.4. Проблемы тестирования, автоматизации тестирования, связанные с платформой
3.5. Другие особенности реализации, связанные с платформой
Проблемы, с которыми столкнулись, как решали и с каким успехом
4.1. Производительность?
4.2. Дидлоки?
4.3. Распределение нагрузки в кластере?
4.4. Отчетность (в том числе OLAP)?
4.5. Проблемы внедрения, сопровождения, обновления версий, совместимость нескольких продуктов на одном ядре и т.п.
4.6. Проблемы, связанные с работой мощных серверов под управлением OS Windows.
В общем интересует любой опыт, как успешный так и не очень, в создании, внедрении, развитии систем на этой платформе (относительно именно особенностей платформы, а не конкретного опыта конкретных людей или компаний). Хочется понять, какие есть особенности или проблемы в использовании .NET в качестве инструмента/технологии/идеологии в серьезных проектах. Будут также интересны сравнения с другими технологиями (J2EE, например), если таковой опыт имеется. Это поможет лучше понять проблемные места дотнета.
Re: Релизация сложных высоконагруженных проектов на .NET
Здравствуйте, _Ursus_, Вы писали:
_U_>5.1 Проблемы и опыт применения губозакаточной машинки
А вопрос был не к лузерам, а к специалистам, имеющим опыт. Там что прошу по существу. Если сказать нечего, то не надо тут флудить.
Я, как специалист, никогда не гнушаюсь поделиться опытом с людьми. А деньги тут уже не главное, если человек опытный, то он заработает и без "консультаций".
Если трудно изложить тему, давайте пивка попьем. Я только за, всегда приятно пообщаться с опытными людьми.
P.S. А что, здесь принято задавать вопросы типа, как сделать селект из таблицы? Или форум все-таки про архитектуру? Или я должен был спросить, как мне реализовать связь многие ко многим в программе? Серьезные люди здесь есть?
PPS
прошу ногами не пинать и не прошу особо детально излагать, вопросы просто как пример привел. Как я бы рассказывал о своем опыте.
Re[3]: Релизация сложных высоконагруженных проектов на .NET
Здравствуйте, Romanzek, Вы писали:
R>Здравствуйте, akarinsky, Вы писали:
A>>Здравствуйте, Romanzek, Вы писали:
A>>Фигасе. Кандидатская?
R>Нет, просто серьезный проект. И уже не первый, но предыдущий был на других технологиях и опыт большой, а вот с дотнетом не сложилось пока.
Так,если опыт большой в других технологиях, то почему их нельзя использовать ?
Здравствуйте, WaSh, Вы писали:
WS>Так,если опыт большой в других технологиях, то почему их нельзя использовать ?
Там все писалось с нуля. А тут предполагается использовать компоненты готовые, да и вообще компонентный подход. К тому же есть сомнения по поводу мощности MSSQL (использовал до этого только Oracle в такого рода системах). В общем, немного новая для меня технология и подход. Вопрос то возник не просто так. Есть вакансия. И вопрос стоит, менять ли технологию, подход и т.п. Если есть успешные проекты, то можно попытаться тянуть то, что уже есть, или по крайней мере зацепиться за что-то, начать с проблемных мест, чтобы сразу понять, где будет облом или сложности. Проблемы я решать и сам умею, интересует именно принципиальная возможность реализации и трудности не столько в решении проблем, а больше в организации самого процесса реализации/тестирования/внедрения. Слышал, что есть проблемы в работе нескольких версий дотнета на одном компе (да и сам сталкивался), сомнения есть в эффективности работы сложных систем, построенных на основе компонент или ORM (сложность управления внутренними процессами) и т.д. Понятно, что решение и выводы за меня никто не сделает, но любая информация будет ценна.
Особо и не ожидаю от Вас каких-то живых примеров, понимаю, что проектов такого уровня в России не так уж и много. Но все-таки они есть, лично знаю несколько примеров, правда все не на дотнете.
Re: Релизация сложных высоконагруженных проектов на .NET
Здравствуйте, Romanzek, Вы писали:
R>Добрый день
R>Интересуют примеры успешной реализации сложных высоконагруженных тиражируемых систем на связке .NET + MSSQL.
Высоконагруженные приложения не похожи одно на другое. Да вообще единого определения высоконагруженных систем не существует. Это может быть приложение для взлома RSA или распределенного брутфорса, может быть веб-приложение, которое должно отдавать контент куче пользователей одновременно, может быть ICQ\Jabber сервер, выдерживающий миллионы активных пользователей итд.
Подробнее опишите какая система будет создаваться и какие характеристики от нее будут требоваться, десятки общих вопросов не приблизят вас к цели.
Re[5]: Релизация сложных высоконагруженных проектов на .NET
Здравствуйте, Romanzek, Вы писали:
R>Особо и не ожидаю от Вас каких-то живых примеров, понимаю, что проектов такого уровня в России не так уж и много. Но все-таки они есть, лично знаю несколько примеров, правда все не на дотнете.
Э-э-э... поубавили бы пунктов. Разбили бы лучше на десяток-другой отдельных постов.
А то развернутый ответ потребует кучу времени и сойдет-таки в качестве кандидатской.
На опушке за околицей мужики строили коровник.
Работали споро и весело. Получалось х**во.
Re[2]: Релизация сложных высоконагруженных проектов на .NET
Здравствуйте, gandjustas, Вы писали:
G>Высоконагруженные приложения не похожи одно на другое. Да вообще единого определения высоконагруженных систем не существует. Это может быть приложение для взлома RSA или распределенного брутфорса, может быть веб-приложение, которое должно отдавать контент куче пользователей одновременно, может быть ICQ\Jabber сервер, выдерживающий миллионы активных пользователей итд.
Согласен. Именно поэтому я попытался вопросы сформулировать так, чтобы понять, насколько близко описываемое Вами решение близко к моему.
Если кратко описывать мой проект, то это один из самых сложных случаев. Создаваемая система находится между OLTP и DWH системами, то есть нагрузка очень разноплановая. У меня есть опыт создания таких систем и разделения нагрузки, поэтому интересны примеры этих двух типов систем, чтобы понять, что можно выжать из технологии и какие есть проблемы. К тому же, как я уже писал выше, интересует и производственная составляющая. Насколько проблемна технология дотнет для создания систем, эволюционирующих несколько лет? А здесь есть свои нюансы: регулярное обновление системы у заказчика, расширение и углубление функционала, смена разработчиков вследствие текучки, зависимость от разработчиков компонент, зависимость от майкрософта (решит он завтра, что дотнет больше не нужен, и что?) и т.п. Это все очень важно. На любой технологии можно создать хорошее приложение, главный вопрос, сколько это отнимет времени и денег? И успешные проекты — первый и основной показатель зрелости технологии. Поэтому хотелось бы для начала выяснить, что удалось уже сделать и успешно внедрить на дотнете. Пока что все примеры, которые мне известны, либо слишком мелки, либо в процессе развития (еще не внедрены). Слышал правда про проект по автоматизации биллинга, но подробностей не знаю (знаю только, что используется MSSQL).
В общем, хотелось бы услышать ответ вида "Да, мы успешно создали и внедрили ... приложение, затратили на него год разработки 5 разработчиков. Сейчас система внедрена на 500 объектах заказчика, все довольны и счастливы". Ну и если возможно — детали по тем вопросам, которые в топике.
Re[3]: Релизация сложных высоконагруженных проектов на .NET
Здравствуйте, Romanzek, Вы писали:
R>Здравствуйте, gandjustas, Вы писали:
G>>Высоконагруженные приложения не похожи одно на другое. Да вообще единого определения высоконагруженных систем не существует. Это может быть приложение для взлома RSA или распределенного брутфорса, может быть веб-приложение, которое должно отдавать контент куче пользователей одновременно, может быть ICQ\Jabber сервер, выдерживающий миллионы активных пользователей итд.
R>Согласен. Именно поэтому я попытался вопросы сформулировать так, чтобы понять, насколько близко описываемое Вами решение близко к моему.
R>Если кратко описывать мой проект, то это один из самых сложных случаев. Создаваемая система находится между OLTP и DWH системами, то есть нагрузка очень разноплановая. У меня есть опыт создания таких систем и разделения нагрузки, поэтому интересны примеры этих двух типов систем, чтобы понять, что можно выжать из технологии и какие есть проблемы.
Посмотрите виде здесь http://channel9.msdn.com/pdc2008/BB07/. Частично ответит на ваши вопросы.
R>К тому же, как я уже писал выше, интересует и производственная составляющая. Насколько проблемна технология дотнет для создания систем, эволюционирующих несколько лет? А здесь есть свои нюансы: регулярное обновление системы у заказчика, расширение и углубление функционала, смена разработчиков вследствие текучки, зависимость от разработчиков компонент, зависимость от майкрософта (решит он завтра, что дотнет больше не нужен, и что?) и т.п. Это все очень важно.
Производственные вопросы мало зависят от языка и платформы.
MS тончо завтра не решит что .NET больше не нужен. Еще лет 5 об этом можно даже не думать.
Re[4]: Релизация сложных высоконагруженных проектов на .NET
Здравствуйте, gandjustas, Вы писали:
G>Посмотрите виде здесь http://channel9.msdn.com/pdc2008/BB07/. Частично ответит на ваши вопросы.
спасибо
R>>К тому же, как я уже писал выше, интересует и производственная составляющая. Насколько проблемна технология дотнет для создания систем, эволюционирующих несколько лет? А здесь есть свои нюансы: регулярное обновление системы у заказчика, расширение и углубление функционала, смена разработчиков вследствие текучки, зависимость от разработчиков компонент, зависимость от майкрософта (решит он завтра, что дотнет больше не нужен, и что?) и т.п. Это все очень важно. G>Производственные вопросы мало зависят от языка и платформы.
зависят, причем иногда очень сильно. обжигался
G>MS тончо завтра не решит что .NET больше не нужен. Еще лет 5 об этом можно даже не думать.
проблема в том, что тут нам остается только надеяться. Дотнет зависим очень сильно от настроений и планов мелкомягкого. В отличие от мира опенсорса.
Re[5]: Релизация сложных высоконагруженных проектов на .NET
R>Там все писалось с нуля. А тут предполагается использовать компоненты готовые, да и вообще компонентный подход. К тому же есть сомнения по поводу мощности MSSQL (использовал до этого только Oracle в такого рода системах).
Так вас .NET интересует или .NET с MSSQL?
Связка .NET + Oracle работает очень даже неплохо.
Re[6]: Релизация сложных высоконагруженных проектов на .NET
Здравствуйте, Igor Trofimov, Вы писали:
R>>Там все писалось с нуля. А тут предполагается использовать компоненты готовые, да и вообще компонентный подход. К тому же есть сомнения по поводу мощности MSSQL (использовал до этого только Oracle в такого рода системах).
iT>Так вас .NET интересует или .NET с MSSQL? iT>Связка .NET + Oracle работает очень даже неплохо.
Приятно слышать. Хотя были и другие мнения. Типа не совсем совместимо, но я что-то не очень им доверяю
Re[7]: Релизация сложных высоконагруженных проектов на .NET
Эть...
Я бы больше беспокоился не о проблемах с выбором платформы, а о недостатке опыта работы с конкретной платформой. В принципе, конеш можно изображать оракл на сиквеле, и оно таки даже будет работать...
Граблей с производительностью может не быть, если а) учитывать архитектуру; б) не требовать от системы того, для чего она не предназначена; в) правильно её готовить.
Вы уже делали примитивные программки/тесты? смотрели как оно работает? читали про архитектуру платформ? Выбирали конкретные технологии/фреймворки?
На абстрактные вопросы вам никто не ответит. Максимум: да, у нас работает и мы щасливы. Но это у нас и мы угробили на "работает" кучу времени и сами не понимаем, почему оно работает. Поэтому, чтобы не сглазить, ничего больше не расскажем.
От себя: не старайтесь изобретать лишних велосипедов типа своей авторизации/протоколов/транзакций и т.п. Не имея достаточно опыта — огребёте кучу проблем. Если проект уже дорос до такой необходимости — могу только посочуствовать.
Поддерживать долгосрочную работу систем с аппсерверами (особенно целиком самописными) или интегрировать их — тот ещё геморрой. С СУБД оно как-то проще
Успеха вашим начинаниям.
Re[3]: Релизация сложных высоконагруженных проектов на .NET
Здравствуйте, Romanzek, Вы писали:
R>В общем, хотелось бы услышать ответ вида "Да, мы успешно создали и внедрили ... приложение, затратили на него год разработки 5 разработчиков. Сейчас система внедрена на 500 объектах заказчика, все довольны и счастливы". Ну и если возможно — детали по тем вопросам, которые в топике.
Хм, а откуда на 500 объектах заказчика есть спрос на высоконагруженные системы? Вообще, наличие в рф спроса на высоконагруженные системы вызывает у меня изрядный скепсис. Я, правда, больше специализируюсь на веб-системах, но и тут — на весь рунет и десятка не наберется. А в корпоративные высоконагруженные системы как-то не верю (за очень редким исключением).
Re[3]: Релизация сложных высоконагруженных проектов на .NET