Как самостоятельно обслуживать 2500 бухгалтерских баз
Как правильно выбрать основной инструмент для бухгалтера
Если ваша компания занимается бухгалтерским аутсорсингом, прежде всего надо определиться с программой, в которой будет работать бухгалтер. Предложения на рынке разнообразные, мы использовали следующие критерии:
- Решение должно быть масштабируемым. В Кнопке есть ценность «Делать больше меньшими средствами». Это значит, что рост серверной инфраструктуры не должен быть прямо пропорционален росту клиентской базы. Принимать нового системного администратора для новых 100 клиентов, экономически невыгодно.
- Решение должно иметь интуитивно понятный интерфейс и пользоваться популярностью у бухгалтеров.
- Нельзя забывать про интеграцию с различными решениями для бизнеса и приложениями Кнопки. Клиент может вести оперативный учёт в различных конфигурациях фирмы 1С (например «Управление торговлей», «Розница», «Управление небольшой фирмой»), использовать онлайн площадки для торговли, например «Мой склад», или разнообразные решения для заведений общественного питания (Iiko, StoreHouse и проч.), а также открыть свой сайт. В любом случае данные надо оперативно передать в бухгалтерскую систему автоматически, чтобы не делать двойную работу.
- В любой момент должна быть возможность оперативно передать бухгалтерскую базу клиенту, так, чтобы новый бухгалтер мог в ней продолжить вести учёт.
Наш список выбора составили Контур.Эльба, 1С Бухгалтерия предприятия 3.0 и Xero. Приняли решение использовать 1С Бухгалтерию предприятия 3.0, потому что Эльба подходит только для маленьких компаний, Xero удобная и технологичная, но всё-таки английская, настроить бухгалтерский и налоговый учёт по российским стандартам невозможно.
Преимущество продуктов 1С заключается в том, что на данный момент это самый популярный программный бухгалтерский продукт в нашей стране. Трудно найти бухгалтера, который никогда не работал в этой программе. Поскольку Кнопка не специализируется на обслуживании клиентов какой-то конкретной отрасли, важно чтобы программа подходила для ИП и ООО с любой системой налогообложения, и 1С это позволяет.
Со временем мы отказались от использования файловых баз и развернули своё облако по технологии 1С Fresh, но не будем забегать вперёд.
Как уменьшить количество обслуживаемых баз
Первые клиенты пришли в Кнопку в 2013 году, для каждого создавали файловую базу БП 3.0. Когда количество баз приблизилось к сотне, наступил ад для системного администратора. Чтобы добавить нового пользователя во все базы или установить обновление, уходило несколько дней, иногда и ночей. Приходилось придумывать программные решения, изобретать обновляторы и обработки по добавлению пользователей. Всё это было слишком медленно и бесперспективно.
Альтернативой файловым базам было использование механизма разделения данных (Multitenancy) платформы 1С. Его суть заключается в том, что одна информационная база 1С с помощью разделителей дробится на независимые области. Включается режим разделения константой «Разделение включено». По номеру разделителя пользователь подключается в отдельную область. В рамках одной такой информационной базы, данные могут быть неразделёнными, то есть общими для всех областей, например классификатор банков или единиц измерений, и разделёнными, уникальными, существующими в рамках одной области, например контрагенты и документы.
Администрировать одну базу вместо сотни гораздо проще. По такому принципу работает облачный сервис 1cfresh.com, и саму технологию публикаций решений 1С Fresh можно приобрести у партнёров фирмы 1С.
Поставка 1С Fresh включает в себя две специализированные конфигурации для управления информационными базами.
- Менеджер сервиса. Это центр управления областями данных, через него производятся все стандартные админские работы. Можно загрузить данные в новую область (стандартным механизмом из файловой базы формируется dump из файлов в формате xml, который потом загружается в область), дать права списку пользователей, запланировать обновление, проконтролировать синхронизацию данных между приложениями. Есть возможность добавить внешние отчёты и обработки в конкретные области. Также из менеджера сервиса производится обновление так называемых «Поставляемых данных» (курсы валют, ФИАС, классификатор банков).
- Агент сервиса. Служебная конфигурация, предназначенная для выполнения сценариев (как предопределенных, так и добавленных администратором без необходимости правки конфигурации).
Подробнее о составе поставки 1С Fresh мы писали в статье на Инфостарте.
Когда установили сервис приложений и опубликовали первые базы, скорость работы «облачной бухгалтерии» по сравнению с файловой была выше примерно в 10 раз. Впервые за долгое время квартальная отчётность прошла достаточно легко, так как 1С работала без зависаний и перезагрузок.
Как делать не надо, или учитесь на чужих ошибках
Спустя несколько месяцев, наш Fresh начал работать нестабильно. Причина: массовое подключение клиентов. У нас было опубликовано две бухгалтерских базы и две базы ЗУП 3.0, количество областей в каждой из которых перевалило за 300 штук. Положение усугублялось тем, что кластер Fresh не дробился на ноды, все базы крутились на одном сервере баз данных. Наше железо не справлялось с нагрузкой и, как следствие, менеджер сервиса потерял связь с областями. Как говорится, ни курсы валют загрузить, ни базы синхронизировать. Хорошо, что нас поддержали коллеги из 1С, вникли в нашу специфику и нашли ошибки в администрировании, помогли правильно построить логику использования облака.
Всем советуем, перед тем как разворачивать свой сервис, получить систематизированные знания на курсе «Эксплуатация крупных систем» в учебном центре фирмы 1С.
Количество областей в одной базе это компромисс, который обусловлен многими факторами, оно может быть очень разным, мы для себя выбрали 200. Сам кластер должен состоять из менеджера сервиса, агента сервиса и нод (серверы БД, серверы приложений, web-сервис), когда количество областей становится более двухсот, разворачивается следующая нода.
При настройке сервера PostgreSQL, обязательно надо ознакомиться с рекомендациями 1С (информация доступна на kb.1c.ru) и использовать например такой сервис pgtune.leopard.in.ua. И таки да, для PostgreSQL самое вкусное — это память!
Как у нас всё устроено
Сейчас архитектура нашего Fresh-облака включает в себя 7 нод, опубликованы 7 баз 1С БП 3.0, 2 базы 1С УНФ и три базы ЗУП 3.0. Сопровождают сервис пять системных администраторов и два программиста 1С. Такой команды более чем достаточно, таким составом возможно поддерживать базы 2000+ клиентов.
Конфигурации машин у нас разные, и периодически меняются, в ответ на изменяющиеся условия. Сервер приложений как правило имеет 4–6 процессоров (ядер) и 16Гб памяти, в качестве сервера СУБД используем PostgreSQL 9.4.2–1.1C, размещённые на Linux машинах. Ресурсы для этих машин выделяются в зависимости от размера баз, среднего количества соединений и пиковых нагрузок. Если на сервере приложения размещено несколько больших баз, ресурсы могут достигать 6–8 ядер и 30 Гб памяти.
С помощью мониторинга Zabbix, контролируем доступность информационных баз, нагрузку на ноды и серверы 1С. В офисе висит телевизор, и когда всё плохо мы это сразу видим:
Ежедневно в базах активно работают 95 бухгалтеров. Клиенты Кнопки, которые хотят самостоятельно заносить документы в 1С, получают доступ к своей базе через интернет. Есть возможность подключить к web-клиенту торговое оборудование (ККМ, сканер штрих кода). Для тонкого клиента дополнительно доступно подключение сканера документов. Очень удобно сканировать и прикреплять файлы к документам непосредственно из 1С.
Вся отчётность у нас отправляется из 1С, через удостоверяющий центр Калуга Астрал, используем ключи КриптоПро. Активно внедряем электронный документооборот Диадок, эта функциональность также доступна в модели сервиса.
Как обмениваться данными в «облаках»
Возможны несколько вариантов обмена данными:
- между приложениями в сервисе;
- с внешней базой 1С в модели сервиса;
- с сайтом или другой программой для бизнеса.
Опубликованная в web-сервисе информационная база называется приложением. Для нового клиента создаётся область в БП 3.0, ЗУП 3.0 и при необходимости УНФ. В данный момент синхронизация данных между приложениями происходит раз в 10 минут. Синхронизации между приложениями в сервисе можно контролировать с помощью менеджера сервиса, но мы вывели данные на мониторинг. Системный администратор в режиме онлайн видит, в каких областях обмен данными стабильно проходит, в каких не проходит и надо исправить ошибки.
Многие клиенты Кнопки используют решения 1С для оптовой или розничной торговли (1С«Управление торговлей» 10.3 или 11.Х, 1С«Розница»), которые хранят на своих серверах и самостоятельно администрируют. В этом случае также возможно настроить обмен данными с бухгалтерией в нашем облаке. Такая синхронизация называется «Обмен данными в модели сервиса». Настраивается автоматически по расписанию, но часто «ломается» после обновления из-за того, что клиент на своей стороне вовремя не обновляет конфигурацию. Контролируем на мониторинге, если обмен не проходил более двух недель, связываемся с клиентом.
Сейчас большую популярность получают интернет-магазины и различные интернет площадки для торговли. Для обмена данными с 1С используется протокол обмена CommercelML 2. На сайте 1С есть список платформ интернет-магазинов, с которыми возможно настроить автоматическую синхронизацию. Недавно появилась загрузка с сайта в БП 3.0, но более детальная настройка загрузки реализована в 1С УНФ.
Интеграция с внутренними сервисами
Для интеграции с кнопочными сервисами мы не изменяем существующие конфигурации, а используем технологию COM (внешнее соединение) и внешние обработки. Поскольку технология COM-соединения является устаревшей и доступна только на платформе Windows, в планах переделать интеграцию с помощью механизма OData. Подробно про способы интеграции рекомендуем посмотреть тут. Разработчики сделали несколько десятков роботов, которые помогают заносить документы и контролировать ошибки, без изменения конфигурации. Подробнее можно прочитать в нашем блоге. Написаны внешние обработки, с помощью которых можно оперативно обрабатывать большие розничные базы, загружать данные из электронных кошельков, списывать материалы в производство и много других интересных вещей.
Заключение
Итого, мы прошли путь от использования файловых баз 1С, до полноценного облачного сервиса. 1С Fresh дал нам возможность оперативно администрировать порядка 2500 баз, управлять доступами сотрудников и клиентов, интегрироваться с внешними и внутренними сервисами. Возможно, технология 1С Fresh задумывалась разработчиками несколько для другой эксплуатации, чем в Кнопке, но, спустя три года, мы считаем, что это один из самых главных инструментов для нашей компании.
Комментарии (4)
30 марта 2017 в 09:18
0↑
↓
Zabbix красивый, его надо было в КДПВ30 марта 2017 в 10:07
0↑
↓
Решили все-таки корпоративную картинку :)
30 марта 2017 в 09:35
0↑
↓
PostgreSQL используется по соображениям экономии? Делали вы сравнительные тестирования с microsoft sql? Также интересно было бы в двух словах о узнать резервном копировании и планах аварийного восстановления у вас (включая ситуации форс-мажора).30 марта 2017 в 10:00
0↑
↓
Всё так, экономия не последняя из причин выбора этой СУБД, а ещё мы любим open source:)
Сравнительное тестирование мы проводили в ограниченном объёме и поняли, что производительность PostgreSQL при правильной настройке не хуже в наших условиях эксплуатации. Специалисты 1С солидарны с нами.Резервное копирование начиналось с банального pg_dump раз в сутки, а сейчас оно реализуется через непрерывное архивирование WAL.
В случае форс-мажора мы можем откатиться на конкретный момент времени (point-in-time restore).Более подробно о своем опыте использования PostgreSQL, практиках и ошибках мы планируем написать отдельную статью.