Опыт работы «1С:ERP» в ландшафте Linux + PostgreSQL – 7 лет

16.12.22

Бизнес-анализ

В связи с обострением вопросов импортозамещения многие задумываются о переходе на системы, позволяющие заменить зарубежные аналоги, или уже его начали. Мы решили поделиться с вами 7-летним опытом установки и эксплуатации системы Linux + PostgreSQL + «1C» на 300 онлайн-пользователей.

 

Авторы статьи:

Стрижевский Александр – начальник ИТ-отдела АО «123 авиаремонтный завод»* («123 АРЗ»)

Малышев Дмитрий – разработчик в ВЦ «Раздолье», «1С»-эксперт по технологическим вопросам

 

*АО «123 АРЗ» - одно из ведущих предприятий по ремонту и техническому обслуживанию транспортных самолётов военной и гражданской авиации России. Широкий спектр услуг с применением передовых технологий, тесное сотрудничество с разработчиками авиационной техники, адекватность потребительскому спросу и высокое качество ремонта – главные приоритеты предоставляемых услуг. Нам доверяют ремонт авиационной техники не только российские, но и зарубежные авиакомпании, расположенные на трёх континентах. Сайт: http://www.123arz.ru/

 

Александр Стрижевский, руководитель ИТ-подразделения предприятия АО «123 АРЗ»
 

Начнём с опыта установки и эксплуатации системы Linux.

Сегодня использование альтернатив Microsoft не имеет каких-то нерешаемых проблем или серьёзных рисков. Комбинация Linux + PostgreSQL является хорошей платформой для информационной системы на базе программных продуктов «1С», но так было не всегда.

 

Эволюция программного и аппаратного обеспечения

К 2015 году предприятие работало с базами на платформе «1С» 7.7 по складскому учёту. Базы работали на MS SQL 6.5. Покупали тогда бандлом «1С» + SQL под конфигурацию «ЗиК». Затем приобрели программу «1С:Бухгалтерия 8». Поскольку её использовали онлайн всего 10 пользователей, ставить под такую задачу сервер MS SQL было неоправданно дорого. Это послужило тестированием работы «1С:Бухгалтерии 8» на Linux + PostgreSQL. Тесты прошли успешно – всё работало хорошо.

В 2016 году предприятие запустило проект внедрения «1С:ERP», и в этот момент ребром встал вопрос выбора – на каком системном программном обеспечении запускать такую большую и нагруженную систему. Уже тогда наш завод посчитал, что стоимость лицензий SQL и пользовательских лицензий на доступ от Microsoft слишком высока. Учитывая успешный опыт использования PostgreSQL и Linux для работы «1С:Бухгалтерии 8», решили использовать это бесплатное ПО и для запуска «1С:ERP». Как показывает опыт и текущая ситуация, решение было верным, т.к. в настоящий момент благодаря ему нас не заботит решение вопросов импортозамещения в авральном режиме.

С самого начала проекта внедрения «1С:ERP» сразу запускался в комбинации: сервер «1C» + Linux + PostgreSQL. Вначале в системе работало до 40 пользователей и всё было хорошо – время отклика соответствовало ожиданиям. Но когда количество активных пользователей превысило 50, система начала тормозить. Беглый анализ показал, что причиной проблемы стало использование старого «железа» и виртуализации. Тогда было принято решение приобретать новые сервера, которые выбрали по рекомендации интегратора [ВЦ «Раздолье»].

Были приобретены 2 сервера HP со следующими характеристиками: 256 Гб оперативной памяти, диски 2х800 Гб NVME SSD, процессоры 2х12 ядер по 2 потока (48 потоков). Один «железный» сервер выделен под сервер «1С», другой – под PostgreSQL. Серверы соединены каналом в 10 Gb.

На новых серверах решили задействовать не виртуальные машины, а автономные контейнеры в локальной среде (docker'ы). В настоящий момент планируем в дальнейшем использовать системы Kubernetes [открытое программное обеспечение для «оркестровки» контейнеризированных приложений — автоматизации их развёртывания, масштабирования и координации в условиях кластера]. На системе докеров остановились в связи с тем, что она требует меньше дополнительных расходов аппаратных ресурсов и работает быстрее виртуализации. Докеры взаимодействуют друг с другом через индивидуальные ip-адреса и диапазоны портов.

На серверах использовали Centos 7, Postgres Pro, сервера «1С» х64.

 

Сервер под «1С»

«Железный» сервер разделен на 10 doker'ов:

1 докер используется для работы исторических баз: «1С:Бухгалтерия 8», «1С:Общепит», «Метрология».

3 doker'a используются для работы кластера из 3 серверов «1С» с резервированием для рабочей базы «1С:ERP» [сейчас онлайн – 250 пользователей].

1 докер используется для работы тестовой базы «1С:ERP».

2 doker'a используются для работы кластера из 2 серверов «1С» для рабочей базы «1С:Зарплата и управление персоналом 8» [35 пользователей онлайн].

1 докер используется для работы тестовой базы «1С:Зарплата и управление персоналом 8».

1 докер используется для работы базы «Казначейства» на «1С».

1 докер используется как СЛК-сервер для системы «1С:Общепит».

В докерах «1С» обычно используем самые последние платформы с сайта технической поддержки «1С».

 

Сервер под PostgreSQL

Этот сервер также разбит на docker'ы. Под каждый кластер «1С» выделяем отдельный докер на втором сервере.

На сервере стоит версия PostgreSQL с cайта команды Postgres Professional, где есть сборки специалистов для «1С» (не с сайта «1С»). Здесь есть возможность скачать более свежие сборки и релизы «Постгрес».

 

Установка

На старых «железных» серверах продолжили использовать виртуальные машины Linux, на новых – сразу решили использовать doker'ы.

По статистике на разворачивание сервера Linux уходит примерно 1,5 часа.

Разворачивание подсистемы докеров из репозитария на серверах занимает пару минут (см. инструкцию). Сборка образа с использованием docker-файлов занимает 5-10 минут. Мы используем только 2 docker-файла: один – для серверов «1С», второй – для Postgres.

Построенный образ на остальные docker'ы просто копируется. Настроенные docker-файлы с описанием последовательности шагов установки [ставится образ «Линукса», пакеты ПО, пути к дистрибутивам «1С» и Postgres] можно посмотреть в «Приложении».

Если в дальнейшем потребуется разворачивать большое количество докеров, то можно будет использовать Ansible — систему управления конфигурациями, написанную на Python, с использованием декларативного языка разметки для описания конфигураций. Это позволит автоматизировать настройки и развертывание программного обеспечения.

 

Администрирование

Сопровождают 20 образов докер в нашем случае 2 администратора. Работаем с Docker в консоли. Также использовали GUI-/веб-интерфейс. Для помощи администратору в случае необходимости существуют и красивые «мышкадавы», которые сами работают в докере и помогают управлять другими докерами. Но, в основном, они полезны в случаях, если существует «зоопарк» из десятков или сотен разнонаполненных докеров.

В статье на «Хабре» представлен обзор наиболее заметных на сегодняшний день графических интерфейсов для обслуживания Docker:

  • Portainer

  • Kitematic (Docker Toolbox)

  • Shipyard

  • и т.д.

Так как у нас используется всего 2 шаблона докера [один – под «1С», другой – под PostgreSQL] – их администрирование из стандартной консоли из поставки не представляет сложности.

Docker'ы сервера «1С»

 

C:UsersАдминистраторAppDataLocalMicrosoftWindowsTemporary Internet FilesContent.Wordimage_2022_09_05T10_25_22_947Z.PNG

 

Docker'ы сервера PostgreSQL

 

C:UsersАдминистраторAppDataLocalMicrosoftWindowsTemporary Internet FilesContent.Wordimage_2022_09_05T10_25_41_390Z.PNG

 

PGAdmin, кстати, тоже запущен в контейнере docker.

Плюс используются утилиты мониторинга linux.

 

C:UsersАдминистраторAppDataLocalMicrosoftWindowsTemporary Internet FilesContent.Wordimage_2022_09_05T10_36_37_353Z.PNG

 

C:UsersАдминистраторAppDataLocalMicrosoftWindowsTemporary Internet FilesContent.Wordimage_2022_09_05T10_35_57_195Z.PNG

 

Время работы системы 1857 дней.

C:UsersАдминистраторAppDataLocalMicrosoftWindowsTemporary Internet FilesContent.Wordimage_2022_09_05T10_37_06_979Z.PNG

 

Регламентное обслуживание

Обслуживание для докеров с «1С» в основном сводится к перезапуску службы сервера «1С», что занимает 5 секунд. Также используем обрезание журналов регистрации «1С» [Раньше для экономии лицензий использовали отключение спящих сеансов, пока в конфигурации не задействовали настройку отключения спящих сеансов и не сменили её значение с 48 на 10 часов].

Для докеров с PostgreSQL используем обновление статистик, обновление индексов и резервное копирование. Резервное копирование идёт на отдельный «железный» сервер № 3, предназначенный для хранение резервных копий данных.

Ещё выполняется обслуживание Cron'ами (скриптами). Cron-программы [в системах класса UNIX], используются для периодического выполнения заданий в определённое время. Регулярные действия описываются инструкциями, помещёнными в файлы crontab и в специальные каталоги. Выполняются по расписанию.

 

Лицензирование

В нашем случае стоят аппаратные лицензии «1С». Это исторически сложившаяся традиция со времени использования виртуальных машин.

Программные лицензии также могут успешно использоваться в докерах вместо аппаратных.

Сервер лицензирования и СЛК-сервер можно установить в отдельных докерах. И они будут видны в остальных докерах по отдельным IP [используется macvlan сетевой драйвер docker для назначения MAC адрес к виртуальному сетевому интерфейсу каждого контейнера, что делает его похожим на физический сетевой интерфейс, напрямую подключенный к физической сети].

 

Опыт решения проблем

Платформа «1С:Предприятие 8» и конфиугурации «1С:ERP» и «1С:ЗУП» в ходе эксплуатации потребовали оптимизации.

Расскажем о нескольких случаях из практики.

 

Пример 1: Оптимизация закрытия месяца

Сложилась ситуация: закрытие периода в «1С:ERP» в базе на MS SQL проходило за 1 час, при этом в базе на PostgreSQL — за 6 часов.

Проблема оказалась комплексной:

  • алгоритмы закрытия месяца кешировали избыточное количество данных, что вело к сильным замедлениям;

  • настройки PostgreSQL были неоптимальны;

  • была ошибка в самой платформе «1С».

К решению приступали параллельно с поддержкой фирмы «1С».

По итогу от «1С» получили рекомендацию по изменению настроек PostgreSQL:

«Поскольку в ускоренном расчёте себестоимости самый долгий этап – СкорректироватьСтоимостьСписанияНезавершенногоПроизводства, потому анализ начали с него. Большая часть времени этап выполняется на СУБД.

Анализ планов запросов показал следующие проблемы:

- Долгое выполнение ANALYZE для временных таблиц. Длительность ANALYZE не коррелирует с размером таблиц. maintenance_work_mem 2GB. Увеличение длительности происходит из-за default_statistics_target = 1000, согласно документации "Чем больше установленное значение, тем больше времени требуется для выполнения ANALYZE, но тем выше может быть качество оценок планировщика. Значение этого параметра по умолчанию — 100". Рекомендуем вернуть значение по умолчанию (100).

- Нехватка work_mem. Чаще всего проявляется в случаях, когда необходимо выполнить сортировку или агрегацию для большого числа строк. Из-за нехватки work_mem postgres обращается к диску и выполняет действия на нём, что существенно сказывается на времени выполнения запросов. Текущее значение work_mem 256MB, рекомендуем его увеличить до 512MB или 1GB при наличии возможностей».


Своими силами для поиска проблем производительности мы настроили сбор данных технологического журнала «1С» + логирование в PostgreSQL. Далее – выполнили определение проблемных запросов и корректировку кода в программе «1С:ERP». В качестве навигатора действий поиска и отладки использовали статьи и инструменты с «Инфостарта», GitHub и «Тензор»:

  • Пример пошагового решения проблемы производительности на базе PostgreSQL с картинками:;

        //infostart.ru/1c/articles/1611069/;

  • Исправляем проблемы производительности в конфигурации ERP - 7 примеров: //infostart.ru/1c/articles/1611545/;

  • Инструменты лежат на GitHub:

        https://github.com/Polyplastic/1c-parsing-tech-log;

 

Найденные решения заключались в следующем:

  • При закрытии «1С» либо кешировало избыточное количество данных во временные таблицы, либо для них не было подходящих индексов. Исправление заключалось в преобразовании типовых временных таблиц в свои с меньшим объемом данных и создании подходящих индексов;

  • Также была зарегистрирована ошибка в платформе «1С», связанная с отсутствием подходящего индекса для внутриплатформенного метода апдейта данных.

Ошибка 60001790 исправлена и уже опубликован релиз платформы, содержащий исправление.

https://releases.1c.ru/version_files?nick=Platform83&ver=8.3.21.1508

 

В итоге мы достигли ускорения закрытия периода в «1С:ERP» с 6 до 1,5 часов.

 

Пример 2: Ошибка с платформой и обновлением конфы

В 8.3.19 столкнулись с падением фоновых заданий, в 8.3.20 – отладка не работала с фоновыми процессами, в 8.3.21 – падает сама «1С» при работе на старых машинах с ОС Windows XP (ошибка 60003943).

Несколько раз при обновлении падала конфигурация «1С». Не могла завершиться транзакция. Откатили её в таблице config [некоторые решения на форумах для MS SQL также подходят для PostgreSQL].

 

Пример 3: Медленная работа «1С:ЗУП» при использовании RLS

Реализации RLS [ограничение прав доступа в «1С» на уровне записей] под PostgreSQL была недостаточно производительной. Устранили эту проблему так же по рекомендациям фирмы «1С». Суть: выгрузка ролей в файлы и глобальной заменой запросов ограничений, затем загрузка файлов обратно. Делали так при каждом обновлении «1С:ЗУП», начиная с платформы 8.3.16.

В настоящий момент система RLS в платформе и конфигурации «1С:ЗУП» работает под PostgersSQL с нормальной производительностью. В текущих версиях платформы «1С:Предприятие 8» [начиная с 8.3.20] механизм RLS уже оптимизирован и замены в «1С:ЗУП» не требуется. Изменилась трансляция запросов, они стали быстрее обрабатываться в Postgres'е.

 

Feedback от эксплуатации и пожелания

В настоящее время использование свободного ПО для работы «1С:ERP» – штатная ситуация. Платформа и программные продукты «1С» развиваются в сторону адаптации и стабильной работы со связкой Linux и PostgreSQL. Сейчас можно смело рекомендовать использовать это свободное программное обеспечение для работы «1С». Тем не менее есть некоторые направления, по которым от «1С» хотелось бы улучшения контента.

 

Приложения

Приложение 1: Оптимизация закрытия месяца

Ставим последнюю версию платформы «1С»

PG main.conf:

# Memory Settings

shared_buffers = 32GB

work_mem = 512MB

maintenance_work_mem = 2GB

effective_cache_size = 96GB

PG stat.conf:

default_statistics_target = 100

PG log.conf:
auto_explain.log_min_duration = '20s'

 

В конфигурации мониторинга загружаем ТЖ:

 

Находим по временной метке запрос в логе PostgreSQL и через обработку КонверторЗапросовSQL_в_«1С» получаем красивый план:

см. Explain PostgreSQL (tensor.ru)

 

Далее по строке ТЖ получаем:

 

В модуле Общий модуль РасчетСебестоимостиРешениеСЛУ:

Функция ТекстДляРешенияСЛУ_ДополнительныеРасходы(ПараметрыРасчета = Неопределено)

...

ТекстыЗапросов.Добавить(РасчетСебестоимостиКорректировкаСтоимости.ТекстСуммыПрочихРасходов());

... 

Далее ТекстСуммыПрочихРасходов() ищем похожее на:

 

И находим:

...

|ПОМЕСТИТЬ СуммыРасходов

|ИЗ

| (ВЫБРАТЬ

...

|

| ОБЪЕДИНИТЬ ВСЕ

|

| ВЫБРАТЬ

...

| ИЗ

| ВТКэшРасчетныеОборотыПрочиеРасходы КАК ДД

|

| ЛЕВОЕ СОЕДИНЕНИЕ РассчитанныеДокументы КАК РассчитанныеДокументы

| ПО РассчитанныеДокументы.Период = ДД.Период

| И РассчитанныеДокументы.Регистратор = ДД.Регистратор

...

| ЛЕВОЕ СОЕДИНЕНИЕ ВТКэшРасчетныеОборотыСебестоимостьТоваров КАК ДвиженияСебестоимости

| ПО ДвиженияСебестоимости.Период = ДД.Период

| И ДвиженияСебестоимости.Регистратор = ДД.Регистратор

| И ДвиженияСебестоимости.ИдентификаторФинЗаписи = ДД.ИдентификаторФинЗаписи

...

В протоколе закрытия месяца:

35. Партионный учет: ПодготовкаДанныхДляРешенияСЛУ_ДополнительныеРасходы

Начало этапа: 08.09.2022 11:16:17, длительность: 3 мин. 30,391 сек. (11,32%)

Время от начала расчета до начала этапа: 10 мин. 55 сек.

Сформированы временные таблицы (размер / время (% времени этапа) / уточнение / исходные таблицы):

...

- СуммыРасходов:

- 2 409 / 3 мин. 30,148 сек. (99,88%)

...

57. Партионный учет: ПодготовкаДанныхДляРешенияСЛУПостатейныеРасходы

Начало этапа: 08.09.2022 11:23:19, длительность: 3 мин. 43,8 сек. (12,04%)

Время от начала расчета до начала этапа: 17 мин. 57 сек.

Сформированы временные таблицы (размер / время (% времени этапа) / уточнение / исходные таблицы):

- СуммыРасходов:

- 2 409 / 3 мин. 36,445 сек. (96,71%)

Вот ОНО!

Продолжение – в следующей серии...

 

По плану : https://explain.tensor.ru/archive/explain/4f2600615440c6fba8c18d21ff9a6e58:0:2022-09-08#visio

 

Есть рекомендация:

 

Создаём временную таблицу с индексацией по полям, по которым соединяются таблицы:

|ВЫБРАТЬ

| ДД.Период КАК Период,

| ДД.Регистратор КАК Регистратор,

| ДД.ИдентификаторФинЗаписи КАК ИдентификаторФинЗаписи,

| ДД.НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации,

| ДД.ХозяйственнаяОперация КАК ХозяйственнаяОперация,

| ДД.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,

| ДД.РазделУчета КАК РазделУчета,

| ДД.ВидЗапасов КАК ВидЗапасов,

| ДД.Организация КАК Организация,

| ДД.Партия КАК Партия,

| ДД.АналитикаУчетаПартий КАК АналитикаУчетаПартий,

| ДД.АналитикаФинансовогоУчета КАК АналитикаФинансовогоУчета,

| ДД.ВидДеятельностиНДС КАК ВидДеятельностиНДС

|

|ПОМЕСТИТЬ ВТРасчетныеОборотыСебестоимостьТоваров3557

|

| ИЗ

| ВТКэшРасчетныеОборотыСебестоимостьТоваров КАК ДД

|

|ИНДЕКСИРОВАТЬ ПО

| Период,

| Регистратор,

| ИдентификаторФинЗаписи,

| НастройкаХозяйственнойОперации,

| ХозяйственнаяОперация

 

Результат: https://explain.tensor.ru/archive/explain/561584559eccb0d869e186ab5d152b37:0:2022-09-09#visio 

 

Итого: 209 721.150 / 8.420 = 24907,5, ускорение примерно в 25000 раз.

 

Приложение 2. Примеры файлов для запуска docker'а

Dockerfile.21

# vim:set ft=dockerfile:

FROM sav/basicsystem1c-7:build

MAINTAINER sav

ARG SERVER_1C_VERSION

COPY ./distr/setup-full-${SERVER_1C_VERSION}-x86_64.run /tmp/

RUN ./tmp/setup-full-${SERVER_1C_VERSION}-x86_64.run --unattendedmodeui minimalWithDialogs --mode unattended --enable-components server,config_storage_server,ru \

&& rm -rf /tmp/*

VOLUME /home/usr1cv8

VOLUME /tmp/.aksusb

# && echo "SystemLanguage=RU" > /opt/1cv8/conf/conf.cfg \

# && chown -R usr1cv8:grp1cv8 /opt/1cv8 \

#RUN mkdir -p /home/usr1cv8/.1cv8/1C/1cv8/conf/

#COPY logcfg.xml /home/usr1cv8/.1cv8/1C/1cv8/conf/

#RUN chown -R usr1cv8:grp1cv8 /home/usr1cv8

COPY docker-entrypoint.sh.18 /docker-entrypoint.sh

ENTRYPOINT ["/docker-entrypoint.sh"]

EXPOSE 1540-1541 1560-1591

CMD ["ragent"]

Docker-compose.yml

version: '2.2'

networks:

macvlan1:

external:

name: macvlan1

netcont0:

external:

name: netcont0

services:

1C:

build:

context: ../Docker/srv-1C

dockerfile: Dockerfile

args:

- SERVER_1C_VERSION=${VERSION_1C}

image: sav/srv-1c:${VERSION_1C}

container_name: srv-1C-${ContainerName}

hostname: srv-1C-${ContainerName}

networks:

macvlan1:

ipv4_address: $srv1C_IP1

netcont0:

ipv4_address: $srv1C_IP2

dns_opt:

- ndots:1

volumes:

- /etc/localtime:/etc/localtime:ro

- /tmp/.aksusb:/tmp/.aksusb

- /opt/1C/home/${ContainerName}:/home/usr1cv8

- /opt/1C/ХранилищеФайлов/N1:/home/usr1cv8/ХранилищеФайлов

# - /etc/hasplm/nethasp.ini:/etc/nethasp.ini:ro

mem_limit: $MEM_LIMIT

# lscpu | grep node1

cpuset: $CPU_SET

tmpfs: /tmp:rw,exec,strictatime

extra_hosts:

- srv-db1C-${ContainerName}:$srvDB_IP1

restart: always

environment:

- SERVER_1C_VERSION=${VERSION_1C}

- DEBUG=-debug

- TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=${TCMALLOC_THREAD_CACHE}

1С:ERP Linux Postgre Microsoft Импортозамещение PostgreSQL SQL

См. также

Бухгалтер vs ERP

Внедрение изменений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Большинство бухгалтеров привыкли вести учет в конфигурации 1С:Бухгалтерия. Но что бывает, если такого бухгалтера перевести с 1С:Бухгалтерии на ERP? Об основных ошибках бухгалтера после перехода и роли аналитика в том, чтобы помочь бухгалтеру преодолеть трудности и изменить привычные паттерны, пойдет речь в статье.

15.05.2024    1388    0    TanyaRi    21    

20

Как мы оптимизировали процессы внедрения 1С: проектная методология КРОК

Внедрение изменений Бесплатно (free)

Эта статья о том, как за годы практики мы в компании выстроили систему проектных подходов по корпоративным внедрениям 1C, и зачем она вообще нужна. Выделю основные проблемы этого процесса, подскажу решения и раскрою внутреннюю кухню нашего подразделения.

15.05.2024    3177    0    cesar    9    

32

Профессиональное мировоззрение учетного специалиста (ч.3). Бухгалтерская реальность (AR) как научная модель хозяйственной реальности (ER)

Анализ предметной области Бесплатно (free)

В этой части статьи обсуждается идея о том, что бухгалтерская реальность (AR) строится как научная (математическая) модель хозяйственной реальности (ER), а также рассмотрены общие принципы построения научных моделей.

03.05.2024    725    0    Polav62    9    

3

Переход на современные ERP-решения «1С» – дорожная карта, кейсы, рекомендации

Внедрение изменений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Статья об основных зонах внимания и часто допускаемых ошибках при внедрении современных ERP-систем – «1С:ERP Управление предприятием» и «1С:ERP.Управление холдингом».

27.04.2024    1575    0    user893825    0    

16

Радио "Аналитик", 17 выпуск 2 сезона. Про модель Кеневин с Андреем Путиным

Лидерство Личная эффективность Agile Анализ потребностей и поиск решений Бесплатно (free)

В семнадцатом выпуске второго сезона подкаста Радио “Аналитик“ обсудили, что из себя представляет модель Кеневин, чем и в каких ситуациях она может быть полезна тем, кто работает в сфере ИТ и не только.

19.04.2024    452    0    Radio_Analyst    0    

5

Исследование потребностей пользователей в заказной разработке

Анализ потребностей и поиск решений Бесплатно (free)

Расскажем о Customer Development (CustDev) в заказной разработке, методиках исследования и проверке гипотез при создании MVP. Восстановим справедливость в отношении CustDev: рассмотрим, что это такое, и поделимся практикой применения.

18.04.2024    443    0    tachenkov    0    

4

Профессиональное мировоззрение учетного специалиста (ч.2). Хозяйственная и бухгалтерская (виртуальная) реальности

Анализ предметной области Бесплатно (free)

В этой части статьи предложен вариант профессиональной мировоззренческой модели на основе пары взаимосвязанных реальностей – хозяйственной реальности и бухгалтерской (виртуальной) реальности.

09.04.2024    613    0    Polav62    0    

5

Фаза пресейла: насколько глубоко нужно погружаться в бизнес-домен?

Анализ предметной области Анализ потребностей и поиск решений Бесплатно (free)

В статье объясним значение погружения в бизнес-домен, расскажем о возможных проблемах и ограничениях, а также путях поиска информации о бизнес-домене.

25.03.2024    437    0    alenkaiva    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ivanov660 4359 16.12.22 20:17 Сейчас в теме
1. Хорошая статья)
2. Не в первый раз сталкиваюсь с чрезмерными значениями default_statistics_target. Ставьте значения в районе 200-300 и будет вам счастье. Чем больше записей в таблицах тем больше времени будет тратится на сбор статистики. Особенно это можно прочувствовать при размерах таблиц в десятки и сотни миллионов записей.
3. Ну и не забывайте, что просто так безгранично увеличивать work_mem не стоит, если у вас нет огромного запаса по памяти на сервере. Т.к. данный объем будет выделяться для каждого процесса, а если их запустится много (граничное значение в параметре max_connections, обычно 100), то она может резко закончиться.
4. И да, выполнение процедуры закрытия месяца - расчета себестоимости пока довольно плохо сочетается с Postgres. Один из выходов это декомпозиция запросов, разбиение на наборы более простых с индексацией временных таблиц. Что и показано в статье.
cleaner_it; sapervodichka; +2 Ответить
2. sapervodichka 6823 16.12.22 20:23 Сейчас в теме
(1) это тебе риспект! по твоим публикациям делали пошагово.
3. PerlAmutor 129 17.12.22 07:06 Сейчас в теме
Спасибо за статью, очень познавательно. Для себя я сделал следующие выводы:
- исходя из вами описанного опыта - переход на Linux пока все еще связан с рисками для бизнеса.
- требования к уровню знаний администратора - повышаются
- требования к уровню подготовки программиста 1С - повышается
- время настройки и поддержки такой системы - увеличивается
- плюсов от такого перехода для конечного потребителя - практически нет

Единственные позитивные моменты:
- соблюдение законодательства
- развитие экосистемы 1С на базе Linux через поиск ошибок и их регистрации у разработчиков

Фактически бизнес будет принимать участие в бета-тестинге за свой счет, т.к. "из коробки" система на базе PostgreSQL работает хуже. Переходить на Linux без экспертов по технологическим вопросам (Франч + 1С) - рискованно. Потребуются затраты на переобучение существующих специалистов.
user2035775; akR00b; smit1c; Gilev.Vyacheslav; Somebody1; mrChOP93; Brawler; +7 Ответить
4. sapervodichka 6823 17.12.22 12:11 Сейчас в теме
(3) вот приятель, Саша, говорит, что год назад сберлогистика (и весь сбер как я понял) переезжала с ms sql на постгри. он у них вообще нормально взлелел, на больших базах без потерь производительности. правда у них devops-ы крутые
cleaner_it; +1 Ответить
5. sapervodichka 6823 17.12.22 12:27 Сейчас в теме
(3) у меня такое впечатление сложилось, что 1С стал прикладывать реальные усилия по оптимизации связки 1С Платформы с Postgre в этом году, когда тема замещения ходу набрала. Могу предположить что к середине 2023 года типовые конфигурации уже адаптируют код под Postge и также платформа 1С адаптируется. Влад, поэтому подождать немного может быть разумным решением, а так сам Стрижевский Александр рук. Айти освоил технологии, описанные в статьях Владимира Крючкова (ivanov660) и выполнял работы самостоятельно (конечно, исправить внутренний ошибки платформы может только 1С, но они и сами в этом были заинтересованы и быстро отреагировали на наши запросы)
smit1c; AllexSoft; mrChOP93; cleaner_it; +4 Ответить
6. PerlAmutor 129 17.12.22 13:03 Сейчас в теме
(5) Я даже один запрос видел в ERP с комментарием типа "оптимизация под PostgreSQL" )
sapervodichka; +1 Ответить
7. papami 55 17.12.22 21:50 Сейчас в теме
(5) В Бух КОРП Регистр бухгалтерии Хозрасчетный в Автоматическом режиме управления блокировкой до сих пор.
8. starik-2005 3046 17.12.22 22:05 Сейчас в теме
(3)
- исходя из вами описанного опыта - переход на Linux пока все еще связан с рисками для бизнеса.
Риски - это предпосылка к внедрению риск-менеджмента, которого на многих предприятиях нет, а это очень нехорошо.
- требования к уровню знаний администратора - повышаются
Это очень хорошо для администратора, т.к. его скилы внезапно начинают актуализироваться. При этом предприятие получает рост компетенций команды, в то время как в другом случае команда чилит на расслабоне и даже забывает, как администрировать винду. ВОт реально знаю, что большинство админов больших контор вообще не представляют, что одно только изменение схемы питания может сразу же увеличить производительность и отзывчивость системы в разы.
- требования к уровню подготовки программиста 1С - повышается
То же самое. Сидел программист, говнокодил, а теперь говнокод не работает. При том и раньше говнокод работал плохо, просто об этом узнавали очень внезапно. Посмотрите, сколько на ресурсе вопросов типа "все работало, а тут, внезапно, перестало". И никакого постгреса еще нет, а проблема уже есть. Так что слава всем богам за то, что программист может научиться хорошему. Ну и если зряплата его останется, как у джуна, то он свалит. Так что для программиста это реально возможность прокачаться.
- время настройки и поддержки такой системы - увеличивается
Ну хз. Вот работаю на виндовой инфраструктуре в очень крупной конторе, при этом постоянно какие-то проблемы с инфраструктурой безо всякого линуха и постгреса. Был бы линух, были бы и админы более компетентные. Хотя да, линух на тонких клиентах. Вот уж с чем нет проблем, так это с ними )))
- плюсов от такого перехода для конечного потребителя - практически нет
Ну если вот так смотреть, что админы перестали чилить и стали осваивать новое, программисты перестали писать говнокод и стали разбираться в оптимизации запросов, инфраструктура стала более устойчивой и время реакции стало сокращаться, т.к. пошел прогресс, а не как раньше колебание вокруг одной точки. Вот не вижу тут ни одного отрицательного явления - сугубо положительные. Вне кризиса скилы не растут, кризис - точка роста. Переход на другую инфраструктуру - это кризис, он задает новые шаблоны работы, народ встряхивается и его способности растут. Офигенски просто!

Противоположная сторона: все сидят, делают так, как делали сто лет назад их деды. Никто не развивается. База преодолевает точку бифуркации, резко падает производительность, проблему заливают баблом - покупают новый сервер (но т.к. никто нихрена не понимают, берут два сокета и две планки памяти к ним, в итоге система работает в двуканале на одном NUMA и все пипец тормозит) и просто нереальным количеством времени на переезд, при том никто нихрена не понимает и все друг на друга валят вину.
grey.grouse; avbolshakov; ivanov660; lunjio; sapervodichka; +5 Ответить
9. sapervodichka 6823 17.12.22 22:54 Сейчас в теме
(7) Сергей, спасибо за ёмкий коммент.
Он в одну тему с последней статьей Белокаменцева про Лёху из Мака.
Чувствуется по разным комментам, что в умах растёт тема о том, что надо меняться 100%, что "кризис - точка роста".

P.S. от Владимира Семёновича
Кто в 1С не бывал, кто не рисковал —
Тот сам себя не испытал,
Пусть даже внизу он звезды хватал с небес.
В винде не встретишь, как не тянись,
За всю свою счастливую жизнь
Десятой доли таких красот и чудес,
Как в Linux или Postgre'c =*)
11. starik-2005 3046 18.12.22 12:48 Сейчас в теме
(9) Вот поэтому я мелкому купил комп и сказал, что буду помогать только если на нем останется убунта. В итоге мелкий вот во всем разобрался, а в школе (вообще не понимаю, нафиг он туда ходит) на уроках информатики он единственный, кто хоть в чем-то шарит. По крайней мере после питона паскаль кажется полной фигней, особенно в тех задачах, которые они на нем решают в рамках школьной программы, т.е. "ниачом ваще". Про другие предметы вообще молчу - там тьма-тьмущая для людей, которые в этом реально понимают. Учителя сейчас "открытым текстом" на родительских собраниях говорят, что подготовка к ЕГЭ в школе - это 40 баллов, ну может быть если самостоятельно задрачивать учебники до дыр - 60. И типа если хотите больше, то нанимайте репетитора. При том мелкий в школе с 9 до 15. Что они там делают? Я хз.
ЗЫ: В чвсти игрух, то все идет. Майнкрафт вообще на джаве написан, есть ТЛоадер (или как его там), который запускается подо все, что только можно. Стим есть, под стимом все, что на определенных движках, вообще разрабатывается на линухе - все халфовские ответвления, включая контру. Что виндовое, то работает через протон. По крайней мере у меня не было еще игрухи, которая бы на протоне не завелась. Но я мало играю.
ЗЫЗЫ: Про Леху читал на хабре фиг знает сколько времени назад.
10. Brawler 455 18.12.22 09:31 Сейчас в теме
Ощутил дежавю очередное. Тут люди верят в великую силу админов и их способности учиться, однако за десяток лет, я так и не видел чтобы именно админы даже на винде подняли самостоятельно инфраструктуру 1С + мс скуль. А тут о новый материях пошоа речь, линух + скуль, не мс скуль)), а невиданный до селе скуль
AllexSoft; Mos; +2 Ответить
12. starik-2005 3046 18.12.22 13:11 Сейчас в теме
(10)
способности учиться, однако
Ну так за десяток лет им не нужно было учиться. Они научились давным-давно устанавливать венду и менять картриджи, после этого считают, что мир не меняется. Предположу, что в природе существуют админы, которые не смогут установить новые венды с флешки, ибо раньше-то был сидиром, а теперь его, опа, нет...
13. Brawler 455 18.12.22 13:47 Сейчас в теме
(12) сидюк вернее дивидюк у меня и ща есть вот только через него столько пыли прососал камп что далеко не каждый диск уже и читается хотя ресурс лазера еще не изнасилован)) да сейчас все больше usb девайсами обходишься
17. sirbusby 19.12.22 11:24 Сейчас в теме
(13)
За десяток лет не видели ни одного админа, который сможет поднять инфраструктуру 1С + SQL? Плохо верится. На всех проектах это делали программисты 1С? Что-то тут не так. Sergey Andreev, к вам такой же вопрос.

p.s. Сам администратор. "Венду" ставлю через iLO/iDRAC/IPMI. Можете почитать что это такое. Плюсик не забудьте поставить, сейчас просветил, а не через 10 лет узнали. Картриджи не меняю.
18. starik-2005 3046 19.12.22 17:37 Сейчас в теме
(17) да, я такими упражнениями занимался еще в первой половине 00-х. Но сидюк в диск приходилось вставлять, бегая в серверную. Сейчас, предположу, с этим стало лучше и можно замонтировать сетевой исошник. Я этим лет 15 уже не балуюсь, но был тут в институте одном роснефти, так там чел не мог примонтировать удаленно USB-шный ТСД к серваку, бегал туды-сюды с железкой, которая так и не установилась. Да, на железке была венда мобильная, а на компе была 7ка, у которой были какие-то проблемы с синхронизацией с мобилкой. Не работало - и все тут. Ну да, админы бывают разные, про IPMI некоторые из них даже не слышвли ничего.
14. VSvintsov1 19.12.22 06:04 Сейчас в теме
на Postgres был случай - большой запрос в ЕРП работал, но однажды случайно в параметр запроса ушло около тысячи "неопределено" - и через 10 мин прибежали админы - на диске сервера несколько террабайт использовалось и у них сработало оповещение о нехватке дискового пространства
попробуйте как-нибуть в пятницу вечером перед новым годом на рабочей базе :-)
может уже поправили , может нет. Но после этого теста вы Postgres сильно зауважаете (или нет :-) )
на ms sql такой проблемы никогда не существовало

а по большому счету - отказываться от MS SQL - это стратегия 50 на 50 - может будет профит, может нет. Если через пару месяцев "наверху" скомандуют "все взад" - и microsoft опять станет "братской" , то ...

p.s.2
считать, что лицензии ms sql дорого .. - сравните за год коммунальные платежи вашей организации со стоимостью лицензий... очень может быть что лицензии не такая уж большая статья затрат.
Gilev.Vyacheslav; +1 Ответить
15. siamagic 19.12.22 07:26 Сейчас в теме
(14) для киосков или бюджета на сервера без потолка постгри может и можно. Сколько не пинали всегда хуже чем ms sql, по закрытию месяца постгри в ут дольше писало результат чем считало.
16. horsgroup 19.12.22 08:42 Сейчас в теме
Не могли бы поподробнее рассказать о 3-м примере из опыта решения проблем?

Реализации RLS [ограничение прав доступа в «1С» на уровне записей] под PostgresSQL была недостаточно производительной. Устранили эту проблему так же по рекомендациям фирмы «1С». Суть: выгрузка ролей в файлы и глобальной заменой запросов ограничений, затем загрузка файлов обратно.
23. strav 21.12.22 09:04 Сейчас в теме
(16) Выгружаем конфигурацию в файлы. Берём каталог Roles и пробегаем по правам и заменяем часть запроса, на другой который рекомендовала 1С для postgres
19. утюгчеловек 38 19.12.22 18:00 Сейчас в теме
Не очень знаком с деталями, но зачем Postgres в докере?
Если убить контейнер - файлы СУБД останутся? Тогда логичнее кмк иметь инстанс сервера постгре вне контейнера
Если файлы СУБД внутри контейнера, то переподнятие контейнера убивает всё, что вы/мы/разрабы в базе натворили. Какой профит?

Можете более подробно описать в каком виде докеры используются?
21. strav 21.12.22 08:57 Сейчас в теме
(19) Некрасиво отвечать вопросом на вопрос, но я спрошу:
а для чего 1C, postgres устанавливают и запускают в виртуальных машинах?

в данном случае docker используется как легковесная замена ВМ

Если убить контейнер - файлы СУБД останутся? Если файлы СУБД внутри контейнера, то переподнятие контейнера убивает всё, что вы/мы/разрабы в базе натворили. Какой профит?


Нет, убьются - в чём и прелесть контейнера, умер контейнер - умерло всё что внутри

Для того чтобы остались данные, в docker есть понятие volumes - подключаете внешнее к docker хранилище и все данные после смерти docker остаются целыми и пушистыми
sapervodichka; +1 Ответить
25. утюгчеловек 38 21.12.22 13:55 Сейчас в теме
(21) Спасибо! Мысль про виртуализацию думаю понял, но в целостную картинку пока не собралось. Поясните, пожалуйста:

если на проде умрет db-докер казначейства - казначеям же не потребуется перебивать операции за 1857 дней аптайма? За счет чего?
Как непрерывность производства обеспечивается?
27. strav 22.12.22 09:32 Сейчас в теме
(25) Ну вот что за странные вопросы!

А если у вас упадет/убьётся виртуалка или физ.сервер - вы что делать будете с данными которые в них были?

восстанавливать из бэкапа прежде всего, восстанавливать систему, разворачивать новую ВМ и т.д.

Поднять новый/обновленный docker контейнер занимает ровно 5 сек из образа

P.S. Не забываем данные находятся ВНЕ контейнера, на отдельном хранилище (помним про volumes!)
20. Gilev.Vyacheslav 1913 20.12.22 12:39 Сейчас в теме
(0) как диагностируете блокировки постгреса?
22. strav 21.12.22 09:00 Сейчас в теме
(20) Для этого существует ТЖ 1С и логи postgres
24. Gilev.Vyacheslav 1913 21.12.22 12:14 Сейчас в теме
(22) что за событие ТЖ показывает дедлок, как называется?
26. strav 22.12.22 09:21 Сейчас в теме
(24) неожиданно - TDEADLOCK

посмотреть хорошее описание можно тут:

https://infostart.ru/1c/articles/1195695/
28. Gilev.Vyacheslav 1913 22.12.22 15:25 Сейчас в теме
(26) вот и прочтите его сами, это диагностика блокировок на сервере 1С, а не на постгресе
29. strav 22.12.22 16:12 Сейчас в теме
(28) Спасибо, я как раз читал

На сервере 1С блокироваться как раз нечему, он просто транслирует блокировку таблиц СУБД (и не важно postgres или ms sql)
30. Gilev.Vyacheslav 1913 22.12.22 17:16 Сейчас в теме
(29) кластер 1С - менеджер кластера - сервис транзакционных блокировок
управляемые блокировки <> блокировки постгрес
вы накладываете их на объект 1С, а не на таблицу субд

и да, я спрашивал опыт автора статьи, если вы не автор, то пожалуйста не топите мой вопрос
31. strav 22.12.22 21:31 Сейчас в теме
(30) Да, в этом опыта точно нет. Пока не нужен был....
От слова совсем ..
32. sapervodichka 6823 28.12.22 09:49 Сейчас в теме
(30) Вячеслав, привет. Не слукавлю, если скажу, что я твой поклонник. Спасибо за твой сайт и статьи, дай бог тебе здоровья.

и да, я спрашивал опыт автора статьи, если вы не автор, то пожалуйста не топите мой вопрос


Вот strav Александр Владимирович Стрижевский как раз и есть автор статьи. То есть у тебя прямой диалог с автором идёт.
Прикрепленные файлы:
Gilev.Vyacheslav; +1 Ответить
33. Gilev.Vyacheslav 1913 28.12.22 18:27 Сейчас в теме
(32) доброго времени суток!

Хотел убедиться и убедился, что люди просто не замечают ряд проблем, вроде как если про проблему не говорить, то вроде её "как и нет",
и при чем это массовая тенденция вообще не только в 1С замалчивать, но и в министрествах и т.п. :)
тут же люди "семь лет с постгрессом" и "удивительные вещи" рассказывают
кому надо поймут о чём я, кому не надо - не надо )

С наступающим!
sapervodichka; +1 Ответить
34. Chizhik2020 20.01.23 14:39 Сейчас в теме
Ещё бы скорости сравнить MS SQL и Postgress, на одном железе и желание перейти отобьёт.
Оставьте свое сообщение