Sep. 7th, 2007
Дочитал книгу, начатую ещё в июле:
Конни У. Смит, Ллойд Дж. Уильямс
Чтобы прочитать её без спешки, понадобилось достаточно много времени: очень монотонное и детальное изложение принципов обеспечения производительности и масштабируемости. Книга содержит мало примеров с большими и распределёнными системами. Что поделать, написана она была давно, ни о MySpace, ни об Orkut и Facebook никто тогда не слышал (ползал ли Амазон тогда в пелёнках? хм, не знаю). С другой стороны, список самых распространённых "проблем" которые были известны авторам на тот момент, процентов на 95 совпадает с тем, что в своё время я узнавал как hard wisdom, либо разруливая уже существующие проблемы с производительностью, либо планируя различные варианты поведения на случай непредвиденного роста нагрузки. Так что практический опыт мой и авторов где-то пересеклись, это приятно :)
Хорошая книга, хоть и медленно читается - рекомендую, если ещё не читали ничего профессионального на эту тему, но уже сталкивались с неожиданными тормозами системы при росте числа пользователей, etc. Для примеров дизайна современных и тем более сетевых систем, думаю что надо ещё читать что-то поновее (книг не видел, lazy web - а вы видели? пока мне встречаются только слайды о дизайне гигантов индустрии).
Да, ещё имеет смысл почитать эту книгу, если интересно как улучшать ПО с точки зрения реактивности и скорости работы. Тоже есть полезные идеи о том, как инструментировать систему для сбора информации о производительности, etc. Первая вещь, с которой надо начинать, это заменять требования вида "система должна работать быстро" конкретными указаниями времени выполнения операций :) что напоминает мне классический вопрос физика на фразу "значение этой переменной мало" -- "по сравнению с чем?".
По ходу, нашёл парочку ссылок про scalability:
Application Response Measurement (ARM) - is an open standard published by the Open Group for monitoring and diagnosing performance bottlenecks within complex enterprise applications that use loosely-coupled designs or service-oriented architectures.
OpenArm - open source implementation of the Open Groups' ARM (Application Response Measurement) 4.0 Java interfaces
Чтобы прочитать её без спешки, понадобилось достаточно много времени: очень монотонное и детальное изложение принципов обеспечения производительности и масштабируемости. Книга содержит мало примеров с большими и распределёнными системами. Что поделать, написана она была давно, ни о MySpace, ни об Orkut и Facebook никто тогда не слышал (ползал ли Амазон тогда в пелёнках? хм, не знаю). С другой стороны, список самых распространённых "проблем" которые были известны авторам на тот момент, процентов на 95 совпадает с тем, что в своё время я узнавал как hard wisdom, либо разруливая уже существующие проблемы с производительностью, либо планируя различные варианты поведения на случай непредвиденного роста нагрузки. Так что практический опыт мой и авторов где-то пересеклись, это приятно :)
Хорошая книга, хоть и медленно читается - рекомендую, если ещё не читали ничего профессионального на эту тему, но уже сталкивались с неожиданными тормозами системы при росте числа пользователей, etc. Для примеров дизайна современных и тем более сетевых систем, думаю что надо ещё читать что-то поновее (книг не видел, lazy web - а вы видели? пока мне встречаются только слайды о дизайне гигантов индустрии).
Да, ещё имеет смысл почитать эту книгу, если интересно как улучшать ПО с точки зрения реактивности и скорости работы. Тоже есть полезные идеи о том, как инструментировать систему для сбора информации о производительности, etc. Первая вещь, с которой надо начинать, это заменять требования вида "система должна работать быстро" конкретными указаниями времени выполнения операций :) что напоминает мне классический вопрос физика на фразу "значение этой переменной мало" -- "по сравнению с чем?".
По ходу, нашёл парочку ссылок про scalability:
Application Response Measurement (ARM) - is an open standard published by the Open Group for monitoring and diagnosing performance bottlenecks within complex enterprise applications that use loosely-coupled designs or service-oriented architectures.
OpenArm - open source implementation of the Open Groups' ARM (Application Response Measurement) 4.0 Java interfaces