Два с половиной года назад появилась необходимость в системе управляющей работой предприятия, в данном случае небольшой сети магазинов. Начали они с какой-то минимальной коробочной программой, но это не была всем известная стандартная двухбуквенная система. Предложил приложить свои усилия, стало интересно написать полностью свою собственную ERP. В общем я приблизительно понимал во что это мне обойдется, работаю на контрактах с 95го года в основном в телекомах, банках, страховых компаниях, но иногда в производстве. Видел достаточно проектов чтобы осознавать масштаб задуманного, но решил что свинья не сьест, подавится, короче принялся за это мероприятие.
Первым делом нужно было поставить нормальное оборудование вместо того что там было, firewall приобрел в Монреале, два сервера заказал в Калифорнии. Заехал за ними из Онтарио (сам переезжаешь границу, налоги на свой риск), в общем L.A., Торонто, Франкфурт, Питер. Железо подбиралось по нескольким параметрам: база данных с возможностью добавления второго процессора, памяти до 96ГБ и до 16 3.5" дисков. 1U программный сервер уже с двумя процессорами и 32ГБ. На программном сервере два жестких диска на RAID1. На БД два жестких диска под RAID1 и два SSD тоже на своем RAID1, все в коробке 2U. Главная база находится на SSD, на жестких дисках стоит OS и туда же идет резервное копирование. Firewall имеет 6 портов в коробке 1/2U, внутри жесткий диск и по желанию Flash карта, сериальный порт, VGA, и наружный электронный монитор здоровья. Потом установка Red Hat, конфигурация серверов, OpenBSD на firewall. Там была веселая история с носками в железных коробках и всей начинкой в ручной клади, но не в этом суть.
Для начала нужно было все это собрать и установить, что и было проделано с помощью неких 'специалистов по металлу' (еще одна веселая история). После этого была экскурсия по магазинам, где и началась собственно разработка. Первым делом нужно было собрать данные из уже существующих систем в одно целое. Для этого была написана система передающая данные через SSL (OpenBSD очень удобно для этого, кроме того мне импонирует Тео). Данные собирались по заданному расписанию, к счастью много думать о том что именно передавалось не было необходимости, все что шло из касс в сервер магазина и все что шло из сервера в кассы ловилось, записывалось в местную простую файловую 'базу' и ожидало времени для следующей передачи. Система делала попытку запустить модем и после этого передавала. Все данные скапливались у виртуального пользователя OS. Каждый магазин получил инструкцию, чтобы не выключали программу (запустить программу как сервис в не профессиональной версии MS Windows не вышло).