Для сложного программного продукта стабильность является желанной, но трудно достижимой характеристикой. Ведь чем сложнее продукт, тем менее целостное представление о нем у разработчиков и тем труднее обеспечить полное покрытие тестами. Увеличивая функциональность продукта стоит быть готовым к редко воспроизводимым ошибкам неясной природы. Готовность в первую очередь подразумевает развернутую систему диагностики, способную собрать максимум доступной информации. При этом крайне желательно, чтобы система не влияла на производительность, не создавала неудобств для пользователей и была простой в разработке и сопровождении.
Виртуализационные продукты являются одними из сложнейших с точки зрения отладки. В нашей компании мы прошли долгий путь по разработке своей системы диагностики, достаточной для анализа разнородных ошибок, с которыми мы сталкивались. В рамках этого выступления хотелось бы поделиться накопленным опытом и рассказать о наших находках на этом пути. Мы расскажем о логах и о сторожевых объектах, о трассировке вызовов и событий, о снимках подсистем, об аккумулирующих счетчиках и о многих других технических средствах, которые мы применили. Особое внимание будет уделено рассказу о репорте, случаях их автогенерации и системе анализа.
Анна Воробьева
Ведущий разработчик виртуализационной команды, Parallels; преподаватель МФТИ
Анна участвовала в судьбе продукта со времен Parallels Workstation 2 до популярного Parallels Desktop 7.Среди самых крупных ее проектов — эмулятор процессора, менеджер памяти, движок переключения пространств и другие фичи. В качестве ведущего разработчика виртуальной машины она вместе с командой после кардинального переписывания ядра в течение двух лет доводила продукт до мировых стандартов качества и стабильности.