О чем эта история
Бухта — сервис, который помогает предпринимателям вести бухгалтерский учет, работать с контрагентами и отчитываться перед налоговой инспекцией. Клиентам Бухты нет необходимости вникать в тонкости ведения бухучета — сервис всё сделает сам.
Бухта помогает предпринимателям вести бизнес онлайн
Бухта — сервис, который помогает малому и среднему бизнесу вести бухгалтерский учет и упрощает работу с партнерами.
Сервис создавался как инструмент для тех, кому не нужна сложная бухгалтерия: фрилансеров, начинающих предпринимателей, людей творческих профессий. Бухта помогала им без глубокого погружения в бухучет выставлять счета, формировать закрывающие документы, отчитываться перед налоговой и разбираться со сложными вопросами.
Сервис развивался и постепенно превратился в такую площадку, на которой предприниматели не просто ведут учет, но и работают с партнерами. Среди крупных партнеров Бухты — Яндекс.Такси, Uber, Glovo и другие.
Большую часть услуг Бухты составляют цифровые сервисы, поэтому для компании важна IT-инфраструктура и использование современных технологий, которые позволяют развивать сервис в соответствии с требованиями клиентов.
Облако позволяет расти, не задумываясь об инфраструктуре
Изначально архитектура Бухты размещалась на простом VPS-хостинге. Но когда сервис начал активно развиваться, компания принялась менять legacy-инфраструктуру, чтобы быть более гибкой и иметь больше возможностей для развития. Микросервисная контейнерная архитектура позволила упростить процессы обновления кода, внедрения новых функций и расширения сервиса. Как следствие, повысилась отказоустойчивость сервиса, ведь выход из строя одного микросервиса не приведет к неработоспособности всей платформы. А чтобы контейнерами было удобно управлять, выбрали оркестратор Kubernetes.
Компания перенесла инфраструктуру в Google Cloud Platform (GCP) с управляемым Kubernetes. Но удаленность ЦОД платформы от Казахстана вызывала значительную задержку при выполнении сетевых операций. Даже простые операции вроде установки соединения занимали около 200 мс.
Специалисты компании начали искать альтернативу GCP. Параллельно с этим Бухта продолжала развивать свои сервисы и начала плотную интегрирацию с государственными системами и банками Казахстана. Для этого требовалось пройти сертификацию, в том числе локализовать свое присутствие в республике, поэтому Бухта перенесла производственную среду на собственную инфраструктуру.
Поскольку в средах разработки и тестирования не хранятся персональные данные, переносить их на локальную инфраструктуру не было необходимости. Эти среды помогают быстро проверять новые идеи и гипотезы и их удобно разворачивать в облаке, чтобы не тратить много времени и сил на создание новой инфраструктуры. Облачные технологии позволяют быстро развернуть новую площадку, разработать и проверить решение, а затем так же быстро свернуть инстансы.
Компания пробовала работать с несколькими местными провайдерами, но во многих случаях ее не устраивал либо уровень управляемых сервисов (многое приходилось делать руками), либо стабильность. Как только платформа Yandex Cloud запустилась в Казахстане, команда Бухты сразу решила перенести на нее свои тестовые среды. Вот основные причины переноса:
- Развитая платформа со всеми необходимыми сервисами: виртуальными машинами, управляемым Kubernetes, Docker Registry и др.
- Стабильность и надежность, которая гарантируется высоким SLA.
- Низкие сетевые задержки — максимум 60 мс.
- Представительство в Казахстане. Компания платит в тенге и ей не нужно проходить валютный контроль.
Перенос инфраструктуры в облако за несколько недель
Если архитектура сред разработки и тестирования будет аналогична архитектуре производственной среды, то внедрение доработок станет заметно проще. Вот почему Бухте было важно создать такие среды на площадке Yandex Cloud.
Основной используемый сервис Managed Service for Kubernetes®. На нем работают сайт и сама платформа, а также бэкенд и интеграции с банками и госорганами. Вся инфраструктура построена на микросервисах, которые разворачиваются из Docker-образов. Для хранения образов команда использует Yandex Container Registry. Тестовые данные хранятся в базах данных, которые разворачиваются внутри виртуальных машин.
Команда Бухты стремится поддерживать подход Infrastructure as Code, поэтому всю инфраструктуру организует с помощью программных средств управления облачной платформой. Это позволяет разворачивать тестовые площадки с помощью одного скрипта, который создает виртуальные машины, разворачивает кластер Kubernetes и подключает к нему Container Registry, настраивает CDN и DNS.
На перенос тестовых сред в Yandex Cloud ушла всего пара недель: первая — на знакомство с платформой, вторая — на создание скриптов.
В миграции помогал архитектор Yandex Cloud, который анализировал архитектуру решения, и команда по работе с клиентами, которая консультировала в части возможностей платформы.
Результат превзошел ожидания в десятки раз
Бухта решила главную задачу — перенесла среды разработки и тестирования в надежное и быстрое облако. Время отклика до сервисов уменьшилось в три раза: с 200 до 60 мс.
Изначально в Yandex Cloud компания хотела поэкспериментировать с разными сервисами. Но когда команда поняла, что это удобная и развитая платформа, то перенесла сюда тестовые среды и начала использовать другие сервисы.
Например, Бухта использует Yandex Managed service for Elasticsearch для сбора и агрегации логов. Раньше компания пользовались облачным сервисом от разработчиков Elasticsearch, но, как и в случае с GCP, время отклика было очень большим. Поскольку Yandex Cloud — официальный вендор Elasticsearch, на платформе развернули точно такую же Platinum-редакцию лицензии. В плюс сыграл и тот факт, что Elasticsearch объединен с другими сервисами на одной платформе, в результате значительно упростилась интеграция и использование сервиса.
По сравнению с GCP облачные затраты компании сократились на 40%. А еще Бухте теперь не нужно проходить валютный контроль, потому что она платит местному представительству в тенге.
Компания Elastic ограничила доступ к сервису Elasticsearch для пользователей Yandex Cloud с апреля 2024 года. В связи с этим Yandex Managed service for Elasticsearch стал недоступен на платформе. Мы рекомендуем использовать Yandex Managed service for OpenSearch, который сопоставим по функциональности с Elasticsearch. Чтобы легко перенести данные в сервис Yandex Managed Service for OpenSearch, воспользуйтесь нашей инструкцией.
Мнение
Мигрировать в Yandex Cloud просто. Чтобы перенести простую архитектуру, построенную на нескольких виртуальных машинах, хватит 2-3 дней. А если нужно развернуть сложную отказоустойчивую архитектуру, то даже в этом случае можно уложиться в несколько недель, потому что все необходимые инструменты под рукой.