Как мы автоматизировали работу более 900 аптек

Андрей Иванов работает в сфере фармацевтики более 20 лет и хорошо знает «боли» рынка. Все началось с того, что он помогал аптекам сравнивать прайс-листы и формировать цены с помощью приложения, которое развернул на сервере у себя на кухне.

Сейчас Андрей руководит торгово-учетным интернет-сервисом в облаке, который обслуживает сотни аптек. Еще одна уникальная история участника программы Yandex Cloud Boost.

Источник: Unsplash  National Cancer Institute

Автоматизация: начало

С 1997 года я работал программистом в нескольких фармацевтических компаниях, занимавшихся продажей медикаментов оптом и в розницу. Я писал приложения для внутреннего учёта и работы с аптечными организациями. В 2004 году я решил уйти в свободное плаванье. Сначала пробовал автоматизировать разные области, но практика показала, что в каждом бизнесе есть свои подводные камни, такие как требования регуляторов и особенности товарной номенклатуры. Я решил перестать распыляться и сосредоточился на уже хорошо известной мне отрасли – фармацевтике. Тогда и родилась идея разработки программы, помогающей аптекам в поиске оптимальных цен.

Я назвал приложение «Прайс-лист Эксперт» и развернул его на собственном сервере, который поставил на кухне, за холодильником. Серверная часть обрабатывала прайс-листы, поступающие от поставщиков и формировала заказы в необходимых форматах. Клиентская – помогала подобрать оптимальные цены на медикаменты и сформировать списки заказа у разных поставщиков.

Андрей Иванов, основатель «Манускрипт-Солюшн»

Хождение по мукам (хостингам)

Интерес аптек к приложению объяснялся достаточно просто. На тот момент фармацевт работал с десятком приложений, каждое из которых предоставляло прайс и возможность заказа только у конкретного поставщика. Сотруднику аптеки приходилось самому сравнивать цены по тысячам позиций в нескольких программах, а потом отдельно заказывать товары у каждого из поставщиков. «Прайс-лист Эксперт» решал эту проблему.

Клиентская база росла достаточно быстро, разрабатывались новые скрипты для обработки прайсов и к 2008 году потребовалось новое железо. Я зарегистрировал компанию «Манускрипт-Солюшн», и получил возможность организовать схему продаж по подписке. Каждая из более 100 аптек, с которыми мы работали, платила 500 рублей в месяц за наши услуги и мы уже могли позволить себе мигрировать с сервера на кухне в ЦОД.

Я арендовал хостинг и стал активно обрабатывать прайсы и заказы, но в один момент мы превысили квоты хостера, а возможности их увеличить не было, поэтому он просто выставил нас с сервера. В это время набрал популярность один немецкий провайдер, и я решил взять там два выделенных сервера. Параллельно я не только разрабатывал программу заказов, но и активно продвигал среди клиентов торгово-учетную систему. Она автоматизировала в том числе и розничные продажи, что привело к росту числа клиентов.

Мы закрепились на рынке как комплексное решение по автоматизации аптечного бизнеса, это было нашим главным преимуществом – у основных конкурентов были только отдельные приложения для сравнения прайсов. Удалось добиться и стабильной работы программы на хорошей аппаратной базе. Но конкуренты не остались в долгу и в 2013 году организовали DDoS-атаку, в результате которой провайдер остановил работу наших сервисов, хорошо, что мы смогли хотя бы получить бэкапы.

Я принял решение искать другого провайдера, уже в России, и арендовать один, но производительный сервер. К сожалению, новая конфигурация подвела примерно через месяц работы - сгорел аппаратный RAID, замена была очень медленной, пришлось мигрировать к другому хостеру. Стало понятно, что лучше брать несколько машин с самыми ходовыми конфигурациями железа, чтобы при возникновении проблем его можно было легко заменить. Сразу же встал вопрос как размещать наши приложения одновременно на нескольких хостах.

Работа с сервисом «Склад71»

Второе дыхание

В это же время началось создание новой версии «Прайс-лист Эксперт». Теперь пользователи работали с программой напрямую через интернет, доступ к которому в то время был уже у всех наших клиентов. Веб-версия имела одно важное преимущество – можно было не ждать загрузки прайсов, а сразу же искать необходимый товар в веб-интерфейсе и добавлять его в заказ.

В конце 2014 года мы задумались о разработке и складской, и розничной программ как веб-сервисов. Оказалось, что мы переросли возможности Django, и нам пришлось заниматься созданием собственного фреймворка, на базе которого в 2015 году была создана торгово-учетная система «Склад71», получившая своё название благодаря коду нашего родного города – Тулы.

Для постоянного совершенствования возможностей продукта, реализации новых функций мы постепенно наняли в компанию еще несколько человек. Мы даже собрали собственную команду профессиональных фармацевтов, которые помогают нашим клиентам формировать матрицу ассортимента. На данный момент наша компания состоит из 19 человек, 6 из которых – программисты, с большинством сотрудников мы работаем вместе уже очень давно и все мы дорожим отношениями в команде и нашим продуктом.

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

Поэтому мы приняли решение мигрировать на облачную платформу. С конца ноября 2019 года по февраль 2020 мы изучали возможности Облака, воспользовавшись программой Yandex Cloud Boost. Параллельно мы занимались переводом на микросервисную архитектуру, чтобы полноценно использовать функциональность платформы.

Мы убедились, что Yandex.Cloud – надежное и гибкое решение, полностью подходящее под наш продукт. Сейчас мы активно занимаемся миграцией системы в Облако: используем 15 виртуальных хостов для размещения наших приложений, три облачных кластера PostgreSQL для сердца нашей учетной системы, и другие сервисы, но пока перенесли инфраструктуру только наполовину. Мы продолжаем тестировать возможности платформы и сейчас первоочередная задача это миграция оставшейся инфраструктуры в Облако: около 10 серверов и 15 виртуальных хостов, на части из них работает легаси-код, который тяжелее всего переносить.

Как наш сервис помогает аптекам сейчас

Последняя «реинкарнация» нашего продукта состоит из трех крупных частей: «Склад», где производится обработка накладных, «Розница» – работает непосредственно в аптеке с кассой, и программа «Заказ», где можно формировать заказы как вручную, так и автоматически.

Функция автозаказа помогает сформировать актуальную матрицу ассортимента и заказывать только подходящие конкретной аптеке позиции. В результате сокращается период оборачиваемости товаров, а доля неликвидов по статистике уменьшается на 30%.

В нашем сервисе реализованы различные интеграции. Одна из них – с системой маркировки и отслеживания товаров «Честный знак», которую аптеки обязаны использовать с 1 июля этого года. Наш продукт позволяет провизору удобно работать с маркировками при поступлении товара и его продаже без использования сторонних приложений. Также у нас есть интеграции с различными системами лояльности клиентов и бонусными программами мотивации сотрудников.

Сейчас системой «Склад71» пользуются более 900 аптек в Туле и Тульской области, Рязани, Твери, Вологде, Костроме, Иванове, Архангельске, Ярославле, Москве и южной части Московской области, Калужской области, Кировской области. Мы обладаем хорошей репутацией и аптечные сети обращаются к нам за комплексной автоматизацией своей работы напрямую, узнав о нас от своих коллег, поэтому в планах есть автоматизация организаций и в других регионах, и даже в соседней стране.

Подписывайтесь на блог Yandex.Cloud, чтобы узнавать еще больше новостей и историй об IT и бизнесе.

Другие истории наших партнеров и клиентов, которые активно читают наши подписчики:

0
27 комментариев
Написать комментарий...
Василий Степанов

Прайс-лист Эксперт
Склад71
Манускрипт-Солюшн
если эти названия вам не придумала нейросеть, то я бы держался от вас подальше.

Ответить
Развернуть ветку
Андрей Иванов

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

Ответить
Развернуть ветку
Ol Ka
Мы убедились, что Yandex.Cloud – надежное и гибкое решение

Ой.

Ответить
Развернуть ветку
Андрей Иванов

Мне было известно про этот инцидент и свое мнение формировал с ноября 2019 года по февраль 2020. Результат:  мне Яндекс Облако подходит.

Ответить
Развернуть ветку
Ol Ka

Испытываю радость и гордость за тебя 🙂

Но акцент в иронии первого сообщения, вообще-то, был на компании, которая хронически не умеет обращаться с чужими данными — и которая умудряется ставить себе это в заслуги, судя по беззаботной и игривой тональности сообщений от её официальных аккаунтов 😉

Ответить
Развернуть ветку
Ol Ka

Защитники Яндекса с криками «Не удаляет чужие данные тот, кто ничего не делает!» прибегут меня минусовать через 3...
2...
1...

Ответить
Развернуть ветку
Ol Ka

Яндекс нынче даже минусовать нормально не умеет. Вот тебе и айти-компания 😒

Ответить
Развернуть ветку
Yandex Cloud
Автор

А чего вас минусовать? За перепост в 2020 году  ссылки на события 2019, про которые мы сами все уже рассказали и меры приняли?  Вот еще)))

Ответить
Развернуть ветку
Ol Ka
мы сами все уже рассказали и меры приняли

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

Ответить
Развернуть ветку
Anetta

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

Ответить
Развернуть ветку
Ol Ka

Люди делятся на тех, кто убивает чужие данные, и тех, кто это язвительно комментирует 😉

Ответить
Развернуть ветку
Anetta

Напоминаю, что раз в 10 лет и в ДЦ Гугла молния попадает:)

Ответить
Развернуть ветку
Ol Ka

Так в этом-то и разница: у других — непредсказуемое природное явление, у Яндекса — стабильный человеческий фактор 🤭

Ответить
Развернуть ветку
Anetta

А лежание гуглового auth'а на прошлой неделе, например, это тоже "непредсказуемое природное явление"? :)  Будучи админом я видела в Hetzner, DO, Reg.ru, Godaddy и прочих столько всего крайне непрофессионального, что знаю, что косячат, к сожалению, все, в том числе и теряют данные. Частоту подобных явлений правда не считала никогда..

Ответить
Развернуть ветку
Ol Ka

Хороший ход — кивнуть в сторону и отвлечь внимание на чужой фейл. Это всегда как минимум мило 🤗

Вот только в результате указанного инцидента никто не заявил о необратимой потере данных. Или есть пострадавшие, потерявшие свои данные? 🤨

Ответить
Развернуть ветку
Ol Ka

И с тех пор Анетту никто не видел 🤭

Ответить
Развернуть ветку
Killer

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

Ответить
Развернуть ветку
Андрей Иванов

Успехов в поддержании собственных мощностей. Для меня этот этап закончился в 2006 году, когда свой сервер на кухне сменил на мощности хостиг-провайдера.

Ответить
Развернуть ветку
Killer

Ну не плачьте тогда, когда у вас данные пропадут из-за ошибок в датацентре.

Ответить
Развернуть ветку
Андрей Иванов

Правильно понимаю, что когда данные пропадают на собственном сервере, то это исключительно приятно? Неважно, где у вас данные, бекары никто не отменял. В статье есть этому пример.

Ответить
Развернуть ветку
Killer

А backup не судьба сделать, особенно критические, ежедневные?
В статье в основном рассуждения ламера о производительности.

Ответить
Развернуть ветку
Андрей Иванов

О, как! Полез гуру наружу. Похоже ты предвзят, а предвзятость - хуже незнания.

Ответить
Развернуть ветку
Killer

Шо, кисо обиделось?  Бввает. Я не гуру, просто говорю элементарные вещи, которые знает любой админ который работает с высоконагруженными приложениями.

Ответить
Развернуть ветку
Дмитрий Шепелёв

Башня Сарумана 71

Ответить
Развернуть ветку
Killer

Стена Шалтая-Болтая 69

Ответить
Развернуть ветку
Александр Прилипко

Акцент всегда cloud

Ответить
Развернуть ветку
Killer

Блядцкий цирк на облаках.

Ответить
Развернуть ветку
24 комментария
Раскрывать всегда