Роман Юферев VIAcode
Manageability-евангелист VIAcode Manageability и мониторинг
Кто наши разработчики? Кто наши пользователи? Куда тратятся наши деньги?
Кто мы? О чем мы думаем?
Функциональность Производительность Надежность Масштабируемость Совместимость Безопасность Тестируемость Сопровождаемость...
Знаем ли мы это? Что мы делаем для того, что бы это узнать?
Системы становятся сложнее Больше пользователей Новые области Развитие мобильных платформ …
Системы мониторинга ITSM (ITIL, MOF) Configuration Management …
выявление самого факта отказа локализация точки отказа ошибка или отказ? определение причины отказа поиск решения для устранения причины отказа применение и контроль решения
Отказ... Отказ... Отказ... BI DB Backup WorkflowReporting WWW
«Критическое заполнение базы данных MyDB» Симптом (через DMV): P(database) < 20% Рецепт: «...выделение дополнительного объема на диске,...включение AutoGrow,…и т.д.»
Сервис MSSQL DBEngine остановлен Отсутствие места в базе данных Критическое количество подключений к сервису Критическое заполнение внутренней очереди запросов Переполнение внутренней очереди запросов Предельный объем использованной оперативной памяти (или процессора)...
Сервис оплаты не может подключиться к OLTP-сервису AlfaBank – отказ в доступе Симптомы:... Рецепт:...
Пост-фактум (сейчас) Проектирование статической диаграммы модели здоровья Идентификация сущностей модели Определение возможных сценариев отказа Анализ доступной инструментации Связь доступной инструментации и сценариев отказа Реализация модели здоровья на платформе мониторинга
Discovery – поиск и дентификация Мониторы – диагностика отказов Recovery and Diagnostic Данные статистики Отчеты Operations Manager
Симптомы: Достаточные Однозначные Ориентированные на проблему
… SqlConnection conn = null; //open DB connection and get some data …
SqlConnection conn = null; try{ //open DB connection and get some data … } catch (SqlException sEx) { //log exception EventLog.WriteEvent(… 42,…);... } catch (InvalidOperationException ioex) { …
Реальное событие В чем проблема?
База данных... недоступна EventID= Отказ в доступе...к базе...при выполнении... EventID= … SqlConnection conn = null; try{ //open DB connection and get some data … } catch (SqlException sEx) { //login failure EventLog.WriteEvent(…10068,…); //connection timeout EventLog.WriteEvent(…10069,…); //t-sql error EventLog.WriteEvent(…10078,…); } catch (InvalidOperationException ioex) { …
try { call_middle_Tier(params) } catch (exception e) { WriteEventLogEvent(102, E_ExceptionWeb)... } try { call_middle_Tier(params) } catch (exception e) { WriteEventLogEvent(102, E_ExceptionWeb)... } try { call_DAL(params) } catch (exception e) { WriteEventLogEvent(101, E_ExceptionDB) throw; } try { call_DAL(params) } catch (exception e) { WriteEventLogEvent(101, E_ExceptionDB) throw; }
Симптомы для перехода в рабочее состояние Необходимость непрерывного контроля лога Данные для вычисления состояния
Текстовые/xml логи Не те протоколы HTTP (WCF) CLU Локальные механизмы Security
EventLog (Crimson!) Registry AD WMI Powershell Database SNMP Performance Counters
Модель здоровья с SQL Server 2000 Качественная инструментация: Registry Event Log Performance Counters PowerShell API DMV On-line рецепты
Microsoft Database Consolidation Appliance IaaS Private Cloud Оптимизированное для MS SQL Server Масштабируемое Manageability Inside! SCOM + Модель Здоровья! SCVMM SCCM SCSM
Зачем заниматься manageability?
Manageability – новый тренд! Необходимо делать приложения manageable Мы знаем о популярных ошибках Мы познакомились с теорией и конкретными практиками
a-jail.blogspot.com x-ability.blogspot.com Роман Юферев VIAcode