Отправить статью

Как вырасти от сервера на кухне до облачного сервиса

Бизнесу свойственно развиваться и масштабироваться со временем. О том, как проработать на рынке 15 лет и вырасти от сервера на кухне с одним приложением до большого торгово-учетного облачного интернет-сервиса рассказывает Андрей Иванов, основатель «Манускрипт-Солюшн».

Как вырасти от сервера на кухне до облачного сервиса
Андрей Иванов

Как все начиналось

В конце девяностых я начал работать программистом в нескольких фармацевтических компаниях. Они продавали медикаменты как оптом, так и в розницу и им нужно было решать проблемы в области автоматизации учета и создавать приложения для работы с аптеками. Проработав таким образом около 7 лет, к 2004 году я понял, что хочу основать собственное дело. На тот момент я решил, что раз имею опыт в автоматизации одной области, то смогу автоматизировать любые процессы. Попробовав сделать это в продажах одежды, я быстро понял, что различная товарная номенклатура, требования регуляторов и другие особенности делают универсальные решения для автоматизации мало применимыми на практике. Тогда ко мне пришло решение, которое определило будущее продукта: нужно не распыляться, а делать одно дело, но хорошо.

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

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

Автоматизируй это

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

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

С ростом объемов работы потребовалось увеличить вычислительные мощности, так как мы обрабатывали все больше данных и у нас были новые планы по разработке. Никогда не стоит экономить на инфраструктуре — нам было ясно, что самостоятельная покупка и поддержка железа — занятие непрофильное, а значит лучшим решением было отдать обслуживание инфраструктуры на аутсорс. В то время мы работали по подписке — аптеки платили 500 рублей в месяц, это позволило нам перебраться в ЦОД. Найти подходящего хостера удалось далеко не сразу. Первый провайдер выставил нас с сервера за превышение квот, второй из-за DDoS-атаки конкурентов на выделенные сервера. Следующий не смог оперативно заменить сгоревшее оборудование. Несмотря на все сложности, мы, имея на руках резервные копии, продолжали пробовать новые варианты инфраструктуры. В итоге мы остановились на конфигурации из нескольких машин с самым ходовым железом, которое легко менять при возникновении проблем. В это время такая конфигурация была самым гибким из возможных вариантов.

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

Меняем подход

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

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

В процессе разработки мы столкнулись с проблемой — возможности Django ограничены и фреймворк стал скорее мешать, чем помогать в разработке. Мы приняли решение создать собственный фреймворк. На нем в 2015 году была создана первая версия торгово-учетной системы «Склад71». Для того, чтобы вести масштабную разработку комплексного продукта, всегда нужны новые кадры. Постепенно наша команда разрослась до 19 человек, мы привлекли к работе не только программистов, но и организовали отдельное подразделение профессиональных фармацевтов, чтобы помогать клиентам формировать матрицу ассортимента.

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

После этого мы начали переносить инфраструктуру, и до сих пор продолжаем это делать, уделяя особое внимание легаси-коду. Переход на другую физическую инфраструктуру, как и всегда, потребовал серьезных изменений в архитектуре. Поэтому с ноября 2019 года мы начали переход на микросервисную архитектуру, которая позволит нам использовать облачную платформу по максимуму. Логически мы разделили наш продукт на независимые edge-сервисы, принимающие внешние запросы и взаимодействующие с gateway-сервисами, которые маршрутизируют запросы к сервисам бизнес-процессов, которые, в свою очередь, общаются с сервисами данных. Наши сервисы обмениваются данными с помощью NATS, открытой кроссплатформенной системы обмена сообщениями.

Как устроена комплексная система?

Любая комплексная система обязана обслуживать бизнес-процессы клиента, а не только предоставлять отдельные полезные сервисы. Систему «Склад71» можно разделить на три взаимосвязанных компонента: «Склад», «Розницу» и «Заказ».

Совместно они полностью обеспечивают работу сотрудника аптеки. «Склад» позволяет производить всю работу с накладными и поступлением товаров. В сервисе «Склад» мы реализовали интеграцию с системой маркировки «Честный знак», так как маркировка лекарственных препаратов обязательна с 2020 года.

С помощью программы «Заказ» пользователь может автоматически или вручную заказывать товары у различных поставщиков. Опция автоматического заказа позволяет снизить объем неликвидов до 30%, а наши фармацевты могут помочь составить актуальную матрицу ассортимента.

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

Мы считаем основным преимуществом любой системы автоматизации в конкретной области именно комплексный подход. Поэтому мы уже более 10 лет продаем не «коробку с программой», а полное внедрение и поддержку нашего продукта.

Деловой мир в
и
Деловой мир в
и
0 комментариев
Отправить
Чтобы оставить комментарий, авторизируйтесь или зарегистрируйтесь
Сообщить об опечатке
Текст, который будет отправлен в редакцию: