amoCRM — система учета клиентов и сделок, которая помогает бизнесу увеличивать продажи. Все заявки, поступающие из форм на сайте, по электронной почте, телефону, через социальные сети и чаты, фиксируются и добавляются в воронку продаж.
Преимущество системы — в интеграции с огромным количеством каналов связи, что позволяет автоматизировать рутинные операции и снизить среднюю стоимость одного контакта с клиентом. Если же какого-либо функционала не хватает, компания может доработать систему самостоятельно. Система предоставляет большое количество вариантов по кастомизации и доработке.
В начале пути мы работали с bare metal для хранения файлов, но позже избавились от физических серверов. Нам нравилось, что мы можем влиять на железо и не зависеть от виртуализации, но понимали — инфраструктуре не хватает гибкости и мобильности. А хранение файлов на дисках обходилось бы слишком дорого. И мы выбрали облачное решение, разместив клиентские файлы на мощностях Amazon. Параллельно работали с американским провайдером Rackspace — у него до сих пор храним файлы клиентов из США.
В 2018 году решили сотрудничать еще и с российским провайдером, он потребовался по нескольким причинам:
В общем, у нас было две проблемы, которые требовалось срочно решать. Мы рассчитывали, что новый провайдер поможет нам их закрыть, и мы снова будем работать в штатном режиме.
Мы рассматривали решения трех российских провайдеров и в итоге выбрали объектное S3-хранилище Mail.ru Cloud Solutions.
Нам предстояло перевезти 20 терабайт файлов из Амстердама на площадку MCS. Изначально шла речь о том, чтобы передавать файлы из Амстердама в Москву, а затем направлять их на площадку MCS. Но мы рассмотрели и другой вариант: взяли промежуточный сервер нашего провайдера (у него часть оборудования находилась как раз в Амстердаме), который по выделенному внутреннему каналу вначале скачивал файлы из AWS, передавал их на свой сервер в Москву, а уже оттуда – в облако MCS. На первый взгляд, схемы выглядят одинаково, но серия тестов показала — второй вариант быстрее на 5-7%. Используя его, мы бы сэкономили шесть-семь часов.
Еще для передачи такого объема требовалось временно расширишь интернет-канал с 1 Гбит/сек до 10 Гбит/сек — об этом мы заранее договорились с провайдером.
Передача файлов — процесс не мгновенный, потому мы написали несложную программу на Golang. Она позволяла отправлять файлы в несколько потоков и постепенно переключать аккаунты клиентов на новое хранилище. Естественно, мы заранее протестировали решение, рассчитали примерное время, разбили аккаунты на несколько групп и только потом запустили все это в работу. Чтобы исключить ошибки, весь процесс передачи непрерывно контролировали.
В итоге переехали за 6–7 дней и сравнительно небольшие деньги. Еще один рабочий день ушел на проверку целостности файлов — к счастью, битых среди них не оказалось.
Если бы мы перевозили данные на физических носителях (вполне распространенная практика для таких объёмов информации), нам бы понадобилось 45 SSD-накопителей стоимостью 25 000–30 000 рублей каждый — суммарно около 2 млн рублей. Так что на переезде нам удалось неплохо сэкономить.
Сейчас у нас три облачные площадки для хранения клиентских файлов. Mail.ru Cloud Solutions — основной провайдер, AWS используем в качестве резерва, а в Rackspace храним файлы американских клиентов. Благодаря такому решению получили несколько преимуществ:
Онлайн-сервисам можно начинать работать с облаком сразу, как только возникает вопрос о хранении клиентских файлов. Использовать для этого физические носители неудобно и невыгодно: они обходятся дорого, их нужно постоянно докупать. То же самое справедливо и для сервисов, которым нужны вычисления. Лучше переносить их в облачную инфраструктуру, дающую больше мобильности.
Мы не новички в облаках, но заново открыли для себя их преимущества после переезда на платформу MCS. Наш главный приоритет – хранилище S3. Облачную инфраструктуру используем только для внутренних проектов. Мы пропустили подходящий момент для развертывания в облаке всей инфраструктуры. Сейчас в облаках у нас хранятся только клиентские файлы, основная инфраструктура — на железе. Чтобы полностью переехать в облако сейчас, нам нужно перепрограммировать систему и переделать под нее часть хранилищ — это долго и дорого. По этой причине полностью переходить на облака не планируем.
Но планы на будущее есть. Нам нравятся контейнеры: они гибкие, быстро разворачиваются в облаке и сразу готовы к работе. На них мы экспериментировали с нейросетями. Пока это было разовое мероприятие, но есть вероятность, что в будущем мы снова вернемся к самообучающимся системам и тогда потребуются уже полноценные облачные вычисления, в том числе на графических картах.