Теория и практика разработки управляемых приложений и...
DESCRIPTION
DEV305. Manageability -евангелист. VIA code. Теория и практика разработки управляемых приложений и снижения затрат на эксплуатацию. Роман Юферев. Кто я?. PM и Manageability -евангелист VIAcode Manageability и мониторинг Microsoft partner and vendor - PowerPoint PPT PresentationTRANSCRIPT
DEV305
Теория и практика разработки управляемых приложений и снижения затрат на эксплуатациюРоман ЮферевManageability-евангелистVIAcode
Кто я?
PM и Manageability-евангелистVIAcodeManageability и мониторингMicrosoft partner and vendor2010 – Microsoft acquisition (AVIcode)SQL teamSystem Center team
Вопросы...вопросы...
Кто наши программисты?Кто наши пользователи?Куда тратятся наши деньги? ?
Программисты
Кто мы?
О чем мы думаем?
О чем мы думаем?
ФункциональностьПроизводительностьНадежностьМасштабируемостьСовместимостьТестируемость...
Кто наши пользователи?
Знаем ли мы это?Что мы делаем для того, что бы это узнать?
Куда тратятся НАШИ деньги
TCO
Косвенные затраты
1.Развертывание2.Конфигурирование3.Обновление4.Масштабирование5.Исправление ошибок ПО6.Сбои ПО и «железа»7....
И это можетДОРОГО НАМ СТОИТЬ!
Суровая правда
'96 '97 '98 '99 '00 '01 '02 '03 '04 '05 '06 '07 '08 '09 '10 '11 '12 '130
50
100
150
200
250
300Электроэнергия о охлаждение
Администрирование - виртуальные платформы
Администрирование - физические платформы
"Железо"
Затраты потребителей
Почему дорожает эксплуатация?
Системы становятся сложнееБольше пользователейНовые областиРазвитие мобильных
платформ…
Как мы пытаемся снижать эти расходы ?
Системы мониторингаITSM (ITIL, MOF)Configuration Management…
Этого не достаточно!
'96 '97 '98 '99 '00 '01 '02 '03 '04 '05 '06 '07 '08 '09 '10 '11 '12 '130
50
100
150
200
250
300Электроэнергия о охлаждение Администрирование
"Железо"
$150 000 000 0002011 год от Р.Х.
Давайте еще раз...
15 летРешаем проблему TCO
Системы Мониторинга Configuration ManagementITSM (ITIL)…
…Затраты на администрирование выросли в 6 раз...
Что мы делаем не так?
Как писать управляемые приложения?
Мониторинг!
Пример №1 – «Обновление магазина»
Как это будет...
выявление самого факта отказалокализация точки отказа ошибка или отказ?определение причины отказапоиск решения для устранения причины отказаприменение и контроль решения
Время решения - От часов до дней!
Мониторинг с научной точки зрения
Отказ...
...
...
Отказ...
......
Модель здоровья
Отказ...
......
BI
DB
Backup
WorkflowReporting
WWW
Сценарий отказа – Failure Mode
Отказ
Симптомы
РецептСущность
Модель здоровья приложения
Пример отказа
«Критическое заполнение базы данных MyDB»Симптом (через DMV): P(database) < 20%Рецепт: «...выделение дополнительного объема на диске,...включение AutoGrow,…и т.д.»
Примеры отказов
Сервис MSSQL DBEngine остановленОтсутствие места в базе данныхКритическое количество подключений к сервисуКритическое заполнение внутренней очереди запросовПереполнение внутренней очереди запросовПредельный объем использованной оперативной памяти (или процессора)...
Пример – «Интернет-магазин»
Сервис оплаты не может подключиться к OLTP-сервису AlfaBank – отказ в доступе
Симптомы:...
Рецепт:...
Разработка модели здоровья
Пост-фактум (сейчас)Проектирование статической диаграммы модели здоровьяИдентификация сущностей моделиОпределение возможных сценариев отказаАнализ доступной инструментацииСвязь доступной инструментации и сценариев отказаРеализация модели здоровья на платформе мониторинга
Например – Microsoft SCOM
Discovery – поиск и дентификацияМониторы – диагностика отказовRecovery and DiagnosticДанные статистикиОтчеты
Operations Manager
Только одна проблема...
...и еще одна вещьСимптомы:
Достаточные
Однозначные
Ориентированные на проблему
Популярные ошибкипри разработке manageable приложений
Пример кода
…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){… Симптомы:
• Достаточные• Однозначные
Ошибка №1 – неточные симптомы
Реальное событие В чем проблема?
C:\ is FULL!!!
База данных ... недоступна
EventID=10069
...
...
Отказ в доступе...к базе...при
выполнении...
EventID=10068
...
...
А как правильно?
…SqlConnection conn = null;try{
//open DB connection and get some data…
} catch (SqlException sEx){
//login failureEventLog.WriteEvent(…10068,…);//connection timeoutEventLog.WriteEvent(…10069,…);//t-sql errorEventLog.WriteEvent(…10078,…);
} catch (InvalidOperationException ioex){
…
Ошибка №2 – множественные симптомы
UI
try { call_middle_Tier(params) } catch (exception e) { WriteEventLogEvent(102, E_ExceptionWeb)
... }}
Бизнес-логика
try { call_DAL(params) } catch (exception e) { WriteEventLogEvent(101, E_ExceptionDB) throw; }}
DAL
Ошибка №3 - Событие vs Состояние
Симптомы для перехода в рабочее состояниеНеобходимость непрерывного контроля логаДанные для вычисления состояния
Ошибка №4 - Экзотическая Инструментация
Текстовые/xml логиНе те протоколы
HTTP (WCF)CLU
Локальные механизмыSecurity
Диагностическая Инструментация
EventLog (Crimson!)RegistryADWMIPowershellDatabaseSNMPPerformance Counters
Windows Management Framework 3.0
Управляемые приложения
Реальные примеры
Пример Manageable Приложения
Модель здоровья с SQL Server 2000Качественная инструментация:
RegistryEvent LogPerformance CountersPowerShell APIDMV
On-line рецепты
Manageable решения – не только soft!
Microsoft Database Consolidation Appliance
IaaS Private CloudОптимизированное для MS SQL ServerМасштабируемое
Manageability Inside!SCOM + Модель Здоровья!SCVMM SCCMSCSM
Microsoft Database Consolidation Appliance
Разработка Manageable приложений - итоги
Зачем заниматься manageability?
Разработка Manageable приложений - итоги Manageability – новый тренд!Необходимо делать приложения manageableМы знаем о популярных ошибкахМы познакомились с теорией и
конкретными практикамиMicrosoft – поддерживает
manageability!
Все в Manageability!
Спасибо!
Спасибо!
Обратная связь
Уважаемые участники!Ваше мнение очень важно для нас!В блокноте, который находится в инфопаке участника, вы найдете анкету для оценки докладовПожалуйста, оцените доклад и сдайте анкету при выходе из зала модераторуДля участия в конкурсе заполненных анкет, отметьте в анкете номер, который указан на вашем бейдже
Спасибо!
Вопросы
DEV305Роман Юферев
VIAcode Manageability-евангелистryuferev@viacode.coma-jail.blogspot.comx-ability.blogspot.comwww.viacode.com
Вы сможете задать вопросы докладчику в зоне Microsoft в зале №17 в течение часа после завершения этой сессии