5.61M
Категория: ИнформатикаИнформатика

Эксплуатация крупных информационных систем

1.

1С: Эксплуатация
крупных информационных
систем
1

2.

План проведения мероприятия
День 1
Технология 1C:Fresh с точки
точки зрения
зрения эксплуатации
эксплуатации
Крупные информационные системы. Задачи и проблемы
Организация эксплуатации
Организация площадок и вопросы масштабирования
Конфигурирование рабочих серверов 1С
Отказоустойчивый кластер
Работа с лицензиями. Утилита ring
День 2
1C:Fresh, развертывание
Инструменты анализа журналов
День 3
Конфигурирование СУБД MS SQL Server
Конфигурирование СУБД PostgreSQL
Мониторинг информационных систем
Обеспечение технологического качества
качества рабочей
рабочей площадки
площадки
Составляющие технологического качества
качества
Методики локализации проблем
Методики расследования проблем
проблем при
при эксплуатации
эксплуатации крупных
крупных систем
систем
2

3.

Технология 1C:Fresh с точки
зрения эксплуатации
3

4.

Что такое 1С:Fresh?
Прежде всего, это технология, которая позволяет реализовать принцип
«multitenancy» на платформе 1С:Предприятие
Multitenancy – подход, при котором один экземпляр программного
обеспечения обслуживает большое количество арендаторов
Например, в качестве арендаторов могут выступать никак не связанные
между собой юридические лица
Данные должны быть надежно защищены
Часть функциональности работает с тщательно изолированными друг от друга
областями данных
Другая часть – общая для всего приложения. Например:

Адресный классификатор

Классификатор банков

Курсы валют

Регламентированный производственный календарь
Говоря простыми словами, 1С:Fresh – это технология разработки
облачных приложений
Важное ограничение – конфигурация общая для всех арендаторов
4

5.

Что такое 1С:Fresh?
5

6.

Что такое 1С:Fresh?
Поддерживается рядом типовых конфигураций, в числе которых:
Бухгалтерия предприятия 3.0
Управление небольшой фирмой
Зарплата и управление персоналом 3.0
Технология доступна для приобретения всеми желающими
Можно разрабатывать свои конфигурации, поддерживающие работу в
облаке
6

7.

Из чего состоит 1С:Fresh?
Компоненты сервиса
7

8.

Из чего состоит 1С:Fresh?
Информационные базы
Менеджер сервиса
Информация об абонентах и пользователях сервиса
Информация об информационных базах
Информация об областях пользователей
Агент сервиса
Прикладные информационные базы
БП 1

БП 2

Области 1-300
Области 301-600
БП 3

ЗУП 1
ЗУП 2


Шлюз приложений
Сайт + форум
Страница недоступности
ЦКК
8

9.

Из чего состоит 1С:Fresh?
Инфраструктура сервиса
9

10.

Из чего состоит 1С:Fresh?
Устройство механизма публикации
нода
10

11.

NGINX
Почему nginx?
Nginx – один из самых
производительных и
популярных Web-серверов
в мире
Внутренняя архитектура
позволяет nginx не проседать
даже под очень высокими
нагрузками, выдерживая
свыше 10000 одновременных
соединений
Обычно используется либо
как самостоятельный
HTTP-сервер (для статических
сайтов), либо в связке с Apache,
где nginx используется во
фронтэнде как кеширующий
сервер, принимая на себя
основную нагрузку, отдавая
статику из кеша, обрабатывая
и отфильтровывая входящие
запросы от клиентов и отправляя
их дальше к Apache.
https://w3techs.com/technologies/cross/web_server/ranking
11

12.

Из чего состоит 1С:Fresh?
Схема информационных
потоков NGINX
12

13.

Из чего состоит 1С:Fresh?
Сайт (на примере 1cFresh.com)
13

14.

Из чего состоит 1С:Fresh?
Личный кабинет (менеджер сервиса)
14

15.

Что такое 1С:Fresh?
Применительно к вопросам эксплуатации нужно помнить, что это в
первую очередь крупная информационная система
Подходы при эксплуатации такие же, как для крупных корпоративных
внедрений
Более того, корпоративные внедрения также могут выполняться на основе этой
технологии
Сервис разворачивается для предоставления услуг большому количеству
пользователей
Как следствие, требования к качеству исключительно высокие
15

16.

Крупные информационные
системы
Проблемы и задачи
16

17.

Что такое крупная информационная система?
Одновременная работа сотен или тысяч пользователей
Сотни рабочих серверов;
Тысячи пользователей;
Прозрачный процесс управления;
Договоренности об уровне обслуживания.
Uptime более 99%, простой системы не допустим
Быстрые обновления без ухудшения качества;
Мониторинг;
Быстрая или упреждающая реакция на проблемы;
Резервирование;
Обеспечивает решение задач бизнеса клиента
Прозрачный процесс управления;
Договоренности об уровне обслуживания;
Безопасность.
17

18.

Требования
Возможность увеличения числа работающих пользователей;
Быстрое обновление;
Понятная конфигурация площадки;
Быстрая реакция на возможные и реальные проблемы;
Соответствие технологическим требованиям.
18

19.

Как обычно происходит внедрение и начало
эксплуатации
Желание клиента
Закупается оборудование
Делается заранее, до проекта, т.к. клиент говорит, что всё очень долго
Выбирается программный продукт, формируются требования
Разработка
Тестирование
В лучшем случае
Внедрение, приемка-передача
… а дальше уже «не их проблемы»
19

20.

Проблемы
«Токсичное» наследство ( = технический долг ++)
На последних этапах внедрения доделывается значительное множество
«костылей»;
Как правило эксплуатируют другие люди, не те, кто выполнял внедрение
информационной системы;
Часто не понимают, как на самом деле задумывалось;
20

21.

Проблемы
Организационные проблемы
Отсутствие документации, check-листов для проверки корректности
настройки;
Нет выработанного регламента обновления конфигураций;
Нет SLA;
Не понятно, кто именно отвечает за конкретные компоненты в системе.
21

22.

Проблемы
Проблемы передачи информации
Каждый настраивает систему по своему вкусу => много неявных
зависимостей;
Есть компоненты системы, устройство и конфигурацию которых понимает
только один человек (он же «великий Мерлин», он же «хранитель древнего
знания»… );
В случае аварии длительные расследования «как оно вообще работает»,
только потом устранение проблемы.
22

23.

As is
Конфигурация
23

24.

Цель - технологическое качество
Система клиента должна работать с заданным уровнем качества
Непрерывная технологическая оценка качества работы системы;
Соблюдение методик, регламентов, стандартов;
Проверенные инструменты.
отсутствие ошибок
доступность
Качество
производительность
масштабируемость
24

25.

Обзор задач эксплуатации ИС
Планирование задач и внешние связи
Администрирование
Эксплуатация рабочей зоны
Разработка
25

26.

Планирование задач и внешние связи
Основная задача:
Вся команда должна смотреть в одну сторону;
Все участники должны понимать будущее развитие системы;
Все участники должны понимать устройство системы в целом;
Все участники должны понимать
Наиболее важные задачи;
Наиболее срочные задачи;
Репутационные задачи;
Задачи развития системы;
26

27.

Планирование задач и внешние связи
Важные моменты
Участники должны видеть прогресс
Что было сделано вчера;
Что должно быть сделано сегодня;
Участники должны видеть текущее состояние системы. Понятный
интерфейс мониторинга
Мониторы, телевизоры со статусами работы системы;
Аналогично на других крупных проектах
Участники эксплуатации должны понимать, что они не могут встать и уйти
в 18:00 в случае аварии
27

28.

Планирование задач и внешние связи
Взаимодействие
Виды взаимодействия:
Планирование задач по важности и срочности;
Документооборот, Jira, …
Реакция на инциденты или заявки;
Сервис Деск, ЦКК, …
Оперативное взаимодействие по критичным и важным вопросам;
Skype, Evernote, Google Docs …
База знаний по решению существующих задач;
Документооборот, Confluence, …
Еженедельная отчетность
Рассылается по почте;
28

29.

Задачи администрирования
Оборудование и виртуализация
Развертывание, конфигурирование и обслуживание оборудования;
Конфигурирование среды виртуализации;
Конфигурирование сети;
Программные продукты
Конфигурирование кластера серверов 1С;
Конфигурирование СУБД;
Обновление программных продуктов;
Обслуживание
Регулярное создание бэкапов, хранение и развертывание бэкапов;
Обеспечение работы с лицензиями, ключами, сертификатами;
Развертывание новых нод;
Настройка мониторинга;
Автоматизация повторяющихся задач
29

30.

Задачи собственно эксплуатации
Организация первой линии тех поддержки;
Разбор и классификация обращений;
Максимально оперативная реакция на обращения пользователей;
Взаимодействие с пользователями;
Трансфер собранной и структурированной информации о проблеме второй линии тех
поддержки;
Организация второй линии тех поддержки;
Разбор обращений и решение технологических проблем;
Классификация проблем;
Обновление на новые версии решений без ухудшения качества;
Тестирование;
Исправление;
Обновление;
Дежурство и пожарные работы;
Внесение критичных исправлений для восстановления работы;
Аудит дополнительных отчетов и обработок;
Автоматизации повторяющихся задач.
30

31.

Задачи разработки в эксплуатации
Обеспечение качества работы системы
Мониторинг;
Отчетность и аналитические механизмы;
Механизмы приемки новых баз и областей;
Механизмы интеграции системы
Обмены;
Интеграция с внешними системами;
Подготовка решения к встраиванию в систему
Развертывание;
Тестирование;
Развитие системы
Автоматизация;
Конфигурация
31

32.

Организация эксплуатации
32

33.

Основная ценность
Основная ценность - команда, решающая задачи эксплуатации,
администрирования и разработки. Такие задачи невозможно решать в
одиночку.
Очень важно выращивать команду, которая будет понимать, почему
система устроена именно так.
33

34.

Регламенты
Дежурство
Расписание, которое все видят и знают;
В каждый момент времени есть один ответственный за максимальную реакцию на входящие
критичные заявки;
Реакция на мониторинг;
Разбор входящих проблем
Типовые сценарии
Разбор задач по автоматизации и доработкам;
Организация доступов;
Изменения в рабочей зоне;
План обновлений;
Check-lists
По тестированию в тестовой зоне;
По обновлению и проверке результатов обновления в подготовительной зоне;
По обновлению в рабочей зоне;
Журнал всех изменений;
Организация приемки новых баз, областей, дополнительных отчетов и обработок;
SLA
c ЦОД;
с провайдерами;
для группы эксплуатации.
34

35.

Критичные проблемы
Проблемы, которые видят пользователи должны исправляться с
максимальным приоритетом
Доступность
Ошибки в коде
Ошибки параллельной работы
35

36.

Решение проблемы – это процесс
Отдельное средство (например, skype) для критичных проблем
Обсуждаются только критичные пожарные работы
Все критичные изменения дублируются
Описание проблем:
Нода, кластер, сервер, база;
Полный текст ошибки;
Что видит пользователь;
Когда началось;
Когда исправление завершено:
Статус (завершено);
Что сделано, чтобы устранить;
Коротко: причина;
36

37.

Обновления
Задача:
Не допустить ухудшение технологического качества работы системы
Метрики:
Производительность;
Потребление ресурсов;
Ошибки;
Время обновления, включая время выполнения отложенных обработчиков!
37

38.

Обеспечение уровня качества
Способы:
Check-листы;
Шаги прорабатываются и согласуются заранее;
Точное наполнение и контроль правильности по результатам работы на
подготовительном стенде;
Обязательная фиксация времени выполнения;
Существенная часть действий должна быть автоматизирована;
Сценарное тестирование;
Функциональное тестирование;
Специальные обработки;
Нагрузочное тестирование;
Проблемы параллельной работы невозможно выявить в однопользовательском
тесте;
Изменения в потреблении ресурсов невозможно выявить в однопользовательском
тесте;
Выполняется с помощью Тест Центра;
38

39.

Обеспечение уровня качества
Способы:
Проверка (опытно-промышленная эксплуатация) на части пользователей;
Обновление только на части площадки;
Контроль качества работы после обновления

По технологическим журналам;

По данным замеров производительности;

По данным загруженности оборудования;
Проверка на себе.
39

40.

Тест-центр
40

41.

Оценка затрат
Оборудование
Серверы, ЗИП, обслуживание, сеть
ЦОД
Стойки, охлаждение и вентиляция, канал и резервирование канала, питание и резервирование
питания и т.д
Стоимость
лицензий 1С (Клиентские и серверные лицензии)
Рабочая зона, Подготовительная зона, Тестовая зона продукта, Зона разработки продукта
Стоимость ПО 1С
Технология 1cfresh, Корпоративный инструментальный пакет, Прикладные решения, КОРП
Поддержка
Виртуализация
Лицензии
Стоимость ПО (если не СПО: PostgreSQL + Linux)
Стоимость лицензий ОС, MS SQL Server, для терминального сервера, стоимость поддержки
Для задач эксплуатации
Мониторы или дисплеи со статистикой, оплата смс
41

42.

Организация площадок и
вопросы масштабирования
42

43.

Ммм… раз, раз и в продакшн?
43

44.

Расположение зон
Обновление
Как изменения попадают в систему
44

45.

Процесс обновления
Задача - не ухудшение качества с обновлениями
Подготовка поставки программного продукта;
Никаких обновлений на промежуточные версии;
Отсутствие обновлений на предыдущие версии;
Поставка продукта готовится за пределами системы с обязательным
прохождением тестирования;
Обновление в подготовительной зоне;
Контроль ошибок и времени обновления;
Контроль потребления ресурсов;
Прохождение тестирования программного продукта на реальных
данных в подготовительной зоне;
Контроль ошибок, производительности;
Контроль потребления ресурсов;
Обновления небольшой части продукционной зоны;
Обновление оставшихся частей продукционной зоны.
45

46.

Что будет, если этого не делать…
Тестирование на пользователях;
Отсутствие возможности проверки новых версий продукта;
Не понятно, что делать, если с обновлением привнесена критичная
проблема, приводящая к остановке работы системы;
Тем более, если её выявили не сразу, а через полдня;
Новая версия системы впервые собирается в боевой среде
46

47.

Что будет, если этого не делать…
Риск сбоев, как следствие постоянно существует большой
технологический долг
Страх обновления на последние версии;
Риск и массовые недоступности, когда заканчивается поддержка старых
версий продуктов.
47

48.

Разработка продукта
48

49.

Подготовительная зона
Подготовительная зона – копия боевой
Но, есть варианты….
49

50.

Варианты организации
Подготовительная зона – полная копия боевой
Проще организовать;
Значительный перерасход по ресурсам;
Значительный перерасход по лицензиям;
Возможность организации горячего резерва;
Подготовительная зона – частичная копия боевой
Только уникальные рабочие ноды;
Все обслуживающие базы;
Требуется автоматизация для развертывания и поддержки.
50

51.

Этапы организации подготовительного стенда
Анализ
Анализ сети;
Анализ схемы доступа к внутренним серверам продукционной площадки;
Выбор схем резервирования инженерных систем;
Выбор способа синхронизации с рабочей площадкой;
Анализ требований к оборудованию подготовительной площадки;
Оборудование
Организация адресации;
Развертывание оборудования и виртуальных машин;
Получение копий виртуальных машин либо конфигурирование машин из
шаблонов с кастомизацией, конфигурационных файлов, баз данных с
пользовательскими данными;
Запуск
Запуск синхронизации с рабочей площадкой (например, готовность
автоматического развертывания актуальных бэкапов по команде);
Организация внесения изменений на подготовительной и рабочей площадке.
51

52.

Конфигурация продуктива
Продукционные информационные базы
Облачные (разделенные)
Необлачные
Обслуживающие (сервисные) информационные базы
Менеджер Сервиса
Агент Сервиса
Сервис Деск
ЦКК
ЦУП
Резервные серверы
Сконфигурированная нода по типовому шаблону
Специальное оборудование
Сетевое хранилище
Сервер контроллера домена
Сервер обновлений
52

53.

Конфигурация продуктива. Сетевое хранилище
Бэкапы
Технологические журналы
Журналы регистрации за предыдущие периоды
Конфигурации
Расширения конфигурацией
Версии Платформы
Дополнительные отчеты и обработки
Обработки для решения технологических задач
Скрипты администрирования
Выгрузки областей на дату
Образы ВМ
53

54.

Совмещение зон
Вариант 1
Рабочая зона
Подготовительная и тестовая зона
Зона разработки продукта (может вообще не быть, если
продукт типовой)
Вариант 2
Рабочая зона
Подготовительная зона
Зона разработки и тестирования (зависит от масштабов
разработки и финансирования)
54

55.

Совмещение зон.
Что имеет смысл
Разбить продуктив на несколько зон
• Обновлять не сразу всю рабочую зону, а сначала только часть, затем всех
• Повышается надежность, падает скорость обновления
Развертывать подготовительную зону скриптами автоматизации из бэкапов
с рабочей зоны
• Всегда актуальная копия в нужный момент времени
• Уверены, что скрипты и бэкапы работают без сбоев
• Известно время развертывания и создания ноды с нуля
Иметь возможность перевода оборудования из подготовительной зоны в ра
бочую зону
Иметь полный удаленный доступ в рабочую и подготовительную зону
• Но только у ограниченного круга лиц
• Максимально защищен
• В зону разработки и тестирования продукта удаленный доступ должен
отсутствовать
55

56.

Совмещение зон.
Что не следует делать
Совмещать рабочую зону с подготовительной
По сути новая версия системы впервые будет собираться в
продуктиве. Повышение риска сбоев
Совмещать подготовительную зону и зону разработки
Подготовительная зона очень быстро теряет индентичность с
рабочей и перестает решать свою задачу
Появляется риск утечки данных, т.к. доступ к данным пользователей
появляется у разработчиков
Не использовать тестовую и подготовительную зону
По сути тестирование и отладка будут происходить на
пользователях
Страдает бизнес, негатив от пользователей
После каждого обновления, нужного бизнесу, период
нестабильности
56

57.

Минимизация времени обновления версии ИБ
Все время работы обработчиков обновления
версии ИБ – это время недоступности для пользователей ИБ / Области
данных
Следует тщательно оптимизировать обработчики обновления
Например, недопустимо при каждой смене версии перезаполнять
справочник из макета
Это особенно критично для разделенных обработчиков обновления – они
выполняются в каждой области и таким образом время выполнения
обработчика сразу умножается на тысячи
При выполнении приемке новой версии необходимо обращать особое
внимание:
На время работы обработчиков;
На затрачиваемые ресурсы;
На успешное завершение всех обработчиков обновления;
57

58.

Что делать, если переход с одной версии на другую
очень длительный?
Исходные данные:
Значительные изменения версии системы;
Невозможность откатиться назад;
Длительное обновление и недоступность;
Вариант решения:
Поднимает отдельную версию системы в нужном состоянии (версии
платформы и конфигурации, СУБД и т.д.);
Выполняем все необходимые подготовительные операции;
Настраиваем обмены;
Пускаем 10% пользователей, оцениваем корректность работы;
Пускаем всех пользователей в новую систему;
Предыдущую версию уничтожаем.
58

59.

Порядок обновления
Получение собранной и протестированной версии продукта;
Обновление в подготовительной среде;
Синхронизация подготовительной среды;
Получение чек-листа
Обновление в продуктивной среде.
59

60.

Масштабировали, масштабировали….
60

61.

Варианты
Добавить аппаратных ресурсов в рамках имеющихся единиц
Добавить серверов в кластер
Требования назначения функциональности
Горизонтальное масштабирование. «Выселение» на другую ноду
61

62.

Единица масштабирования (концептуально)
62

63.

Пересмотр рабочей зоны
Горизонтальная
масштабируемость
• Ввели шлюзы
• Возможность
горизонтально
наращивать число
нод
63

64.

Пересмотр рабочей зоны
Горизонтальная
масштабируемость
• Ввели одинаковую
структуру для всех нод
• Серверы связаны только
в рамках одной ноды
• Появилась возможность
автоматизации
64

65.

На примере 1cfresh
• Типовая архитектура 1cfresh
• Возможность горизонтально масштабироваться
• Планы по оборудованию напрямую зависят от потребностей
• Типовое устройство нод
• Обязательная автоматизация
• Обязательный мониторинг
65

66.

Конфигурирование
рабочих серверов 1С
66

67.

Сервисы кластера
67

68.

Требования назначения
функциональности
При применении требований назначения функциональности
необходимо обязательно проверять соответствие текущих
требований назначения текущей конфигурации системы.
Можно контролировать по файлу реестра кластера.
68

69.

Назначить фоновые задания на определенный
рабочий сервер
Сервис заданий управляет запуском и отслеживанием времени жизни
фоновых и регламентных заданий
Фоновые задания запускаются на рабочих процессах rphost
69

70.

Кластер серверов
Требования назначения функциональности необходимо обязательно
указывать для сервисов
Журнала регистрации;
Полнотекстового поиска данных;
Сервис внешних источников данных;
70

71.

Сервис журнала регистрации
Может записываться значительный объём данных
Быстро пишем и медленно читаем
Могут быть медленные диски
Не нужно просто так заменять старый журнал регистрации на SQLLite
Требования
Нужно всегда явно указывать требование назначения функциональности
для расположения сервиса на определенном рабочем сервере.
Сервис журнала регистрации одновременно только один!
71

72.

Сервис полнотекстового поиска данных
Нужно явно указывать требование назначения функциональности для
расположения сервиса на определенном рабочем сервере.
Корректная работа сервиса возможна при наличии файлов,
сохраненных на диск на том сервере, на котором расположен сервис
72

73.

Вариант организации
Если в кластере используется несколько рабочих серверов
NFS подключить на всех серверах;
Поместить в NFS данные полнотекстового поиска и журнал регистрации;
Настроить требование назначение на нескольких серверах с различными
приоритетами, но на одну NFS;
В случае аварии время восстановления менее 1 минуты;
Нужно настраивать и тестировать.
73

74.

Настройка условий перезапуска
Для предотвращения зависаний из-за перерасхода памяти должен
быть настроен автоматический перезапуск процессов
Не стоит оставлять = 0:
«Допустимый объем памяти»
«Интервал превышения
допустимого объема памяти»
«Выключенные процессы
останавливать через»
Временные параметры не должны
быть достаточно малыми
Иначе может не успеть сработать
Особенно критично для
виртуальных машин
74
74

75.

Настройка условий перезапуска
Общее правило расчета "Допустимый объем памяти":
Д.О.П. = ОбщийОбъемОП – ОбъемСистемы – ОбъемRPHOST * Коэффициент
, где Коэффициент = 1,2,3…- кол-во рабочих процессов при штатной работе
в случае срабатывания условия превышения показателя будет запущен ещё
один процесс rphost того же объема, как при нормальной работе кластера
серверов в этой информационной системе.
Т.е. в течение периода, указанного в "Выключенные процессы
останавливать через" будет одновременно работать как минимум два
процесса rphost: "старый" и "новый".
75

76.

Настройка ограничений на расход памяти
В версии «КОРП» можно настроить
ограничения на расход памяти в момент
клиент-серверного вызова
Самые важные параметры:
«Максимальный объем памяти
рабочих процессов»
«Безопасный расход памяти за
один вызов»
76
76

77.

Настройка ограничений на расход памяти
Значения по умолчанию:
«Максимальный объем памяти
рабочих процессов»
«0» – 80% объема оперативной
памяти сервера
«-1» - без ограничения
«Безопасный расход памяти за
один вызов»
«0» - 5% от макс. объема памяти
«-1» - вызов считается опасным,
если за время вызова достигнут
максимальный объем памяти
рабочего процесса
77
77

78.

Изменение числа
рабочих процессов
Число процессов rphost вы не можете изменить явно, но можете
регулировать условия их запуска с помощью свойств рабочего сервера
78

79.

Особые случаи
Многопроцессорные сервера с поддержкой NUMA
Должно работать больше одного процесса rphost:
ЧислоСоединенийНаПроцесс = РасчетноеMAXКолвоСоединений/(КолвоNUMAНод
* Коэффициент), где Коэффициент =1,2,3… - вычисляется эмпирически
79

80.

Рекомендации
Не отключайте контроль потребления памяти на вызов!
В повседневном режиме
Параметры рабочих процессов стоит менять индивидуально для
каждого рабочего сервера в зависимости от
Оборудования рабочего сервера,
Требований назначения функциональности,
Настроек кластера,
Числа нагруженных информационных баз.
Не нужно ставить для каждого рабочего сервера флаг «Центральный
сервер»
Избыточные накладные расходы
80

81.

Рекомендации
Не следует указывать слишком маленький объем превышения порога
памяти на вызов;
Не следует указывать слишком маленькое значение числа соединений
на рабочий процесс
Как результат - десятки процессов rphost. Не эффективно работает
кеширование.
Не следует указывать слишком малое значение времени, в течение
которого останавливать выключенные процессы.
Приложения с бОльшей вероятностью будут получать невосстановимые
ошибки, т.к. не будут успевать закончить клиент серверный вызов.
81

82.

Check-list настройки рабочих серверов
82

83.

Check-list
1.
2.
3.
4.
5.
6.
Настроен сбор технологических журналов на всех продукционных серверах с
платформой 1С:
директория ALL (события EXCP, PROC, CONN, SESN, CLSTR, SRVC, ADMIN)
директория CALLSCALL (события CALL, SCALL)
Сбор дампов аварийных завершений процессов кластера
Настроен сбор Performance Monitor на всех продукционных серверах.
Запуск счетчика добавлен в Task Schedule
Настроен Windows Error Reporting Service на процессы ragent, rmngr, rphost
В рабочих нодах есть только продукционные кластеры с продукционными базами.
Исключение – «обслуживающие» базы, например, ЦКК, МС, АС, СД и др. Другие
(не рабочие) базы и кластеры должны отсутствовать.
Выполнены настройки перезапуска процессов по памяти для всех серверов.
Ограничения по безопасному расходу памяти в положение "по умолчанию".
Наличие утилит
Process Explorer https://technet.microsoft.com/ru-ru/sysinternals/bb896653.aspx
RAMMap https://technet.microsoft.com/en-us/library/ff700229.aspx
ProcDump https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx
и скриптов на рабочих столах всех продукционных рабочих серверов 1C
и в директориях C:\Scripts
83

84.

Check-list
Наличие ресурсов
Performance Monitor или logman
logman create counter 1C_counter -f bincirc -c "\Memory\Available Mbytes" -si 1 -v
mmddhhmm
logman start counter 1C_counter
Центр Контроля Качества
Достаточно заполнить список рабочих серверов
И не забыть разрешить регламентные задания в ЦКК
84

85.

Check-list
WER
Платформа не всегда может сформировать дамп
Имеет смысл настроить сбор дампов с помощью Windows Error Reporting

Это механизм сбора дампов, встроенный в Windows

По умолчанию настроен на сбор минидампов с возможностью последующей отправки в
Microsoft

Для сбора дампов платформы требуется создать подраздел в разделе реестра
HKLM\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps
85

86.

Check-list
7.
8.
9.
10.
11.
Настроен контроль подключений для всех продукционных баз в ЦКК.
Тест отправки e-mail или смс из ЦКК (должна без ошибок выполняться отправка
тестового e-mail или смс).
Настроен контроль потребления памяти для всех продукционных баз в ЦКК
Настроен сбор данных по загруженности оборудования для всех серверов
продукционной площадки в ЦКК из Мастера настройки в ЦКК. У пользователя
ОС, от которого запущен rphost, вхождение в группу Windows Performance
Monitor Users
Настроены оповещения в ЦКК
по месту на дисках для всех продукционных серверов: меньше 10% места за 5 минут
по памяти для всех продукционных серверов (кроме СУБД): меньше 200 Мб памяти за 5 минут
по CPU для всех продукционных серверов: более 90% за 5 минут
для СУБД по превышению размера tempdb (SQL Tempdb Log Used Size (MB) [среднее]) более 70 Гб
(нужно убедиться в снятом ограничении по размеру tempdb в настройках СУБД)
12.
На веб серверах настроен сбор access и error логов IIS или apache
13.
Настроены бэкапы
14.
Настроены регламентные процедуры, например, автоматическое создание
бэкапов
86

87.

Check-list
15.
16.
17.
18.
19.
20.
21.
22.
Установлен Windows Performance Toolkit на всех рабочих (1С) Windows серверах
продукционной площадки. Проверяется возможностью запустить Windows Error
Reporting по CPU Usage на несколько секунд.
Наличие файла swpuser.ini с указанием пользователя для рабочих процессов с
соответствующими правами в ОС.
Заполненность файла hosts с адресами до рабочих серверов соответствующей
ноды.
Наличие требований назначения функциональности для всех продукционных
кластеров с двумя и более рабочими серверами
для сервиса лицензирования
для сервиса полнотекстового поиска данных
для сервиса журнала регистрации
Журнал регистрации SQLLite используется при прямой необходимости
Имена пользователей, от которых платформа работает с СУБД в точности
соответствуют именам кластеров или информационных баз
Хотя бы один раз проведено тестовое восстановление из бэкапа с замером
времени восстановления.
Настроен BgInfo
87

88.

Check-list
swpuser.ini
Пользователь, от имени которого работает главный агент кластера
должен иметь административные права
Дополнительно этого пользователя следует обеспечить в локальных
политиках безопасности
Adjust memory quotas for a process
Replace a process level token
Также нужно создать профиль пользователей
Самый простой вариант один раз зайти от пользователей интерактивно
88

89.

Настройка сетевого стека
Windows
Необходимо обеспечить настройку возможности обработки большого числа подключений
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters
MaxFreeTcbs = 100000 \\ Определяет число активных одновременных подключений
TcpTimedWaitDelay = 30 \\ Время, через которое возможно переиспользование закрытого соединения
MaxUserPort = 65535 \\ Определяем максимальный номер порта
HKLM\System\CurrentControlSet\Services\AFD\Parameters
\\ логирование AFD Networking Support Environment
EnableDynamicBacklog = 1
MinimumDynamicBacklog = 20
MaximumDynamicBacklog = 20000
DynamicBacklogGrowthDelta = 10
Устанавливаем диапазон исходящих портов (1025; 65535)
\\ расширение диапазона портов для избежания ошибок вида «An operation on a socket could not
be performed because the system lacked sufficient buffer space or because a queue was full»
netsh int ipv4 set dynamicport tcp start=1025 num=64510
netsh int ipv4 set dynamicport udp start=1025 num=64510
netsh int ipv6 set dynamicport tcp start=1025 num=64510
netsh int ipv6 set dynamicport udp start=1025 num=64510
89

90.

Check-list
Рабочий сервер
Настроить требования назначения функциональности
Обязательно должно быть явно указано расположение
сервиса журнала регистрации
сервиса полнотекстового поиска данных
сервиса работы с внешними источниками данных
Обязательно нужно продумать
расположение клиентских и серверных лицензий и сервисов лицензирования
расположение сеансовых данных
90

91.

Check-list
Настройка сбора дампов
8.2 и 8.3 (до 8.3.5)
<dump create="true" location="C:\DUMPS" type="3" prntscrn="false"/>
С 8.3.5 до 8.4.1+
<dump create="true" location="C:\DUMPS" type="3" prntscrn="false"
externaldump="1"/>
С 8.4.1+ все файлы технологического журнала располагаются в
подкаталоге logs экземпляра компонента.
91

92.

Сеансовые данные…
92

93.

Использование сеансовых данных платформой
все, что введено в поля ввода на форме, при серверных вызовах
сбрасывается в сеансовые данные
при вызове методов:
ПоместитьВоВременноеХранилище
ПоместитьФайл
НачатьПомещениеФайла
при фоновом исполнении отчетов СКД, результат отчета помещается в
сеансовые данные, а затем передается в клиентскую часть
93

94.

Сервис сеансовых данных
Высокопроизводительное key-value хранилище;
Может раздавать клиентские лицензии;
Может быть несколько экземпляров в кластере, но не больше, чем
число рабочих серверов;
Интенсивная нагрузка на чтение/запись небольшими блоками данных
Небольшие блоки данных – параметры сеанса;
Файлы по 64 Мб.
94

95.

Сеансовые данные
В момент, когда размер актуальных данных составляет 25% от общего
размера всех сеансовых данных, платформа запускает «сборку
мусора».
В этот момент на диске с сеансовыми данными должно быть
свободного места, размером 25% от общего объема сеансовых данных.
Если свободного места не хватит, то работа кластера остановится, и он
не сможет продолжить функционировать до того момента, пока не
будут удалены старые сеансовые данные.
Поэтому требуется минимум 125% места на дисках…
В 8.3.8 сборка мусора выполняется асинхронно с вызовами к сервису
сеансовых данных;
95

96.

Сеансовые данные
Размер памяти, указанный в колонке Standby – это неиспользуемая
память. При запросе памяти любым процессом ему будет выделена
память из этой области.
А ещё есть Modified, она не может быть вымещена, пока
модифицированные страницы не будут сброшены на диск.
96

97.

Возможные проблемы
Большой объем сеансовых данных
Место обычно ограничено;
Нужен 25% запас;
Значительная нагрузка на дисковую подсистему
Системные диски;
Медленные диски;
Большой объем передаваемых данных по сети;
Значительный объем занятой ОС оперативной памяти
Отображенные временные файлы в память;
97

98.

Сервис сеансовых данных
Требования
Не системный диск
Можно даже отдельный логический диск на тех же физических дисках
Мы на наших тестах видели практически двукратное ускорение от переноса
данных на отдельный логический диск
Лучше отдельные быстрые диски
Или RAM диски? – Цена!
Сервис сеансовых данных, если позволяет оборудование, должен быть на
всех рабочих серверах!
Можно увидеть по списку сервисов у каждого менеджера на каждом рабочем
сервере.
Не настраивайте execbackup или аналогичные утилиты для создания
резервных копий сеансовых данных
Сеансовые данные не нужно копировать, их можно потерять;
Худшее, что может случится, пользователи получат ошибки вида «Сеанс
отсутствует или удален».
98

99.

Управление кластером
Автоматизация
Запуск, остановка, перезапуск;
Обновление ИБ;
В случае перезапусков или обслуживания
Запрет входа пользователей;
Ждем некоторое время;
Остановка центральных серверов;
Остановка рабочих серверов;
Выполнение обслуживания;
Запуск рабочих серверов;
Запуск центральных серверов;
99

100.

Управление кластером
Несколько кластеров на одном сервере
Продукционные базы должны быть отделены от тестовых баз
Если имеются две и более ответственных базы с особыми требованиями,
лучше разместить в двух различных экземплярах кластера
Проверьте, что диапазоны портов не пересекаются
Запущены от разных пользователей
По диспетчеру задач сразу видно, к какому кластеру относится процесс
Ограничения по использованию памяти на процесс и на вызов должны быть
соответствующие
100

101.

Плохие идеи
Не стоит ТАК делать:
На одном рабочем сервере настраивать несколько кластеров на одних и тех
же портах
Диапазон портов обычно ограничен, может не хватить
Менять порты нужно в свойствах рабочего сервера. В свойствах службы диапазон
портов нужен для того, чтобы создать рабочий сервер по умолчанию.
Указывать малый диапазон портов и малое значение параметра
«Соединений на процесс»
Число запущенных процессов будет значительным;
Число портов ограничено;
Стоит учитывать, что в случае необходимости перезапуска процессов у кластера
должна быть такая возможность;
Указывать малое значение времени перезапуска процессов кластера в
условии перезапуска
Клиентский вызов может не быть завершен к моменту перезапуска, ошибка «На
сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет
закрыто»
При малых значениях «Интервал перезапуска» и «Выключенные процессы
останавливать через»
Указывать порог перезапуска слишком большим, равным либо большим
объему доступной памяти на рабочем сервере
101

102.

Отказоустойчивый кластер
102

103.

Отказоустойчивый кластер
Центральные серверы
Серверы, на которых расположены центральные rmngr;
Уровень отказоустойчивости
Сколько ещё реплик сервисов должно функционировать на рабочих
серверах;
На каких рабочих серверах – определяется требованиями назначения
функциональности;
103

104.

Отказоустойчивый кластер
Центральные менеджер (rmngr) расположен на центральном сервере и
включает в себя (как минимум) следующие сервисы:
Реестр кластера
Сервис блокировок кластера
В списке серверов для подключения указываются все центральные
серверы.
104

105.

Отказоустойчивый кластер
Увеличение уровня отказоустойчивости приводит к появлению
дополнительных реплик сервисов:
Сервис сеансовых данных
Сервис оперативной отметки времени
Сервис блокировок объектов
Сервис лицензирования
Сервис нумерации
Если уровень отказоустойчивости = 0, то сервисы в единственном
экземпляре
Если уровень отказоустойчивости = 1, то сервисы в двух экземплярах
(по 1 реплике).
И т.д.
105

106.

Отказоустойчивый кластер
Увеличение уровня отказоустойчивости НЕ приводит к появлению
дополнительных реплик сервисов:
Сервис полнотекстового поиска данных
Сервис журнала регистрации
Сервис транзакционных блокировок
Сервис внешних источников данных
Сервис провайдера OpenID2
Сервис внешнего управления сеансами
И т.д.
Также не реплицируются сервисы, относящиеся к центральному
серверу:
Реестр кластера
Сервис блокировок кластера
106

107.

Отказоустойчивый кластер
Один центральный сервер, два рабочих сервера.
Возможные уровни отказоустойчивости:
0
1
2
При уровне отказоустойчивости = 1
Например, два сервиса сеансовых данных;
Два полноценных сеанса;
Оба сеанса потребляют лицензию;
Удвоенный комплект клиентских лицензий;
107

108.

Конфигурация и лицензии
Отказоустойчивый кластер
Два центральных сервера, уровень отказоустойчивости 1
Оба сервера должны быть достаточными для эффективной работы всех
пользователей;
Оборудование; => требуется следить за загрузкой;
Лицензии;
На каждом из серверов необходимы серверные лицензии

Ничем не отличается от схемы с одним рабочим сервером
На каждом из серверов необходим ПОЛНЫЙ комплект клиентских лицензий

Полный комплект необходим для работы всех пользователей;
108

109.

Отказоустойчивый кластер
При уровне отказоустойчивости = 1 и выделенных сервисах
лицензирования
Одновременно активен только один сервис лицензирования
И только один сервис раздает лицензии
Если у вас серверные и клиентские лицензии расположены на сервисе
лицензирования
Нужен двойной комплект клиентских лицензий
Нужны серверные лицензии на каждом из серверов, на которых может
оказаться сервис лицензирования
109

110.

Согласованность
Модель консистентности – строгая согласованность
Требуется время на приведение в согласованное состояние всех
реплик
Увеличение числа реплик приводит к увеличению числа участников, с
кем требуется согласование
Увеличение числа участников приводит к увеличению времени и
падению производительности системы.
НЕ следует просто так менять уровень отказоустойчивости кластера.
НЕ следует просто так менять число центральных серверов кластера.
110

111.

Конфигурация и лицензии
Отказоустойчивый кластер
Два центральных сервера, уровень отказоустойчивости 1
+ 2 сервера лицензирования;
Один сервер лицензирования нет смысла выделять, т.к. он становится
единой точкой отказа;
Вы решаете вынести серверные лицензии на серверы лицензирования;
На каждом из серверов необходим ПОЛНЫЙ комплект клиентских лицензий
На каждом сервер необходим ПОЛНЫЙ комплект серверных лицензий
Иначе не откуда брать лицензии в случае, если рабочий сервер с назначенным
сервисом лицензирования не будет доступен;
При отсутствии серверной лицензии часть пользователей может получать ошибки.
111

112.

Работа с лицензиями.
Утилита ring
112

113.

Конфигурация и лицензии
Получение лицензий
Порядок получения клиентских лицензий
1. Локальные лицензии для клиентского приложения;
2. Получение лицензий с сервера
1.
Локальная лицензия для сервера, где расположено хранилище сеансов с
сеансом;
2.
Запрос лицензии у сервера лицензирования;
Получение лицензий в случае наличия программных и аппаратных
лицензий
Берется последняя используемая лицензия;
История получения лицензий можно увидеть в информации о системе.
113

114.

Утилита ring
Утилита ring – это кроссплатформенная консольная (не имеющая
графического интерфейса) утилита для управления локальной
конфигурацией процессов системы «1С:Предприятия» и для
выполнения различных операций, необходимых для поддержки работы
системы
ring <module> <command> [--parameter "parameter value"]
ring-commands.cfg
Расположение файла:
Для ОС Windows: %ALLUSERSPROFILE%\Application Data\1C\1CE (%ALLUSERSPROFILE%\1C\1CE для
ОС Windows Vista и выше).
Для ОС Linux: /etc/1C/1CE
Системные требования:
Java 8 и выше (http://www.java.com/ru/download/)
JCE для Java 8 (http://www.oracle.com/technetwork/java/javase/downloads/jce8download-2133166.html)
114

115.

Модуль license
Модуль license предназначен для выполнения следующих задач:
первичное получение лицензии;
повторное получение и обновление лицензии;
проверка соответствия файла лицензии текущему компьютеру;
вывод списка лицензий;
получение информации о лицензии;
удаление лицензии.
При установке «1С:Предприятия» дистрибутив модуля размещается в:
Для ОС Windows: каталоге ExtDst конкретной версии;
Для ОС Linux: каталоге ExtDst корневого каталога установки.
115

116.

Модуль license
Команды
activate - активация лицензии с использованием веб-сервиса центра лицензирования
prepare-request - выполняет подготовку файла для передачи в центр лицензирования
acquire - предназначена для формирования файла ответа по ранее сформированному
файлу запроса, с использованием веб-сервиса центра лицензирования
generate - предназначена для формирования файла лицензии по данным запроса к центру
лицензирования и его (центра) ответа
list - предназначена для отображения списка лицензий в хранилище лицензий
info - выводит информацию об указанной лицензии
validate - проверяет соответствие оборудования на компьютере оборудованию, которое
было зафиксировано в момент активации лицензии
put - помещает выбранный файл с активированной лицензией в указанное хранилище
лицензий
get - получает файл с указанной активированной лицензией в указанном хранилище
лицензий и записывает в файл
remove - удаляет указанную лицензию из указанного хранилища лицензий
116
English     Русский Правила