Евгений Сайты › Peppers Сбер ID
Сайты, SEO и GEO, реклама, чат-боты, ИИ и дизайн | Москва
Рейтинг
9 371
№ 111 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Москва
Опыт работы
11 лет
На сайте с
2016 года
Юридический статус
Самозанятый
Freelance.Boutique
Премиум-сервис для лучших исполнителей

Переезд в облако попроще для маркетплейса хендмейда: с Amazon Web Services, Microsoft Azure и Google Cloud Platform на DigitalOcean и Cloudflare

Используемые навыки Amazon Web Services Cloudflare DigitalOcean Google Cloud Platform Microsoft Azure

Описание

Европейский маркетплейс изделий ручной работы жил сразу в трёх облаках и платил за все три. Разобрать эту конструкцию и перевезти проект взялся Евгений Росляков, то есть я. Занимаюсь разработкой и серверами с 2016 года, работаю самозанятым по договору, после этапов отправляю закрывающие документы. Живу в Москве, а с иностранными клиентами, как здесь, работаю полностью удалённо.

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

Облака появились случайно, каждое под свой повод. Первую версию запустили на Amazon Web Services, потому что дали стартовые кредиты: виртуальные машины, управляемая база, хранилище для фотографий. Через год появился поиск по каталогу с подсказками, и его собрали в Microsoft Azure, там тоже были кредиты. Аналитику продаж для мастеров завели в Google Cloud Platform, потому что разработчик знал эти инструменты.

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

Задача звучала так: сделать инфраструктуру, которую понимает и тянет команда из одного разработчика, и предсказуемый счёт.

Решение

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

Потом выбрал, куда ехать. Проекту не нужны десятки управляемых сервисов: приложение, база, очередь задач, хранилище фотографий, поиск. Всё это есть в DigitalOcean, а интерфейс и счёт там понятны человеку без сертификата облачного архитектора. Минус тоже назвал заранее: меньше готовых сервисов и регионов, часть вещей придётся настраивать руками.

Перед всем поставил Cloudflare. Сначала DNS, потом кэш для фотографий товаров, потом защита от ботов, которые выкачивали каталог. Фотографии весят больше всего, и раздача через кэш сняла с серверов основную нагрузку ещё до переноса.

Переезд базы был самым нервным. Настроил репликацию из управляемой базы в Amazon Web Services в управляемую базу DigitalOcean, неделю сверял данные, затем в ночь с минимумом заказов переключил приложение. Окно простоя заранее объявили мастерам. Старую базу держали включённой ещё неделю на случай отката.

Фотографии переехали в объектное хранилище DigitalOcean фоном, без остановки сайта. Ссылки на старые адреса перенаправляются через Cloudflare, так что картинки в старых письмах и соцсетях не сломались.

Поиск из Microsoft Azure заменил на открытый поисковый движок на отдельной машине. Подсказки и опечатки работают, синонимы для «керамика / посуда ручной работы» завели вручную вместе с поддержкой.

Аналитику в Google Cloud Platform оставили, но урезали до хранилища отчётов: данные туда уходят раз в сутки, а запросы считаются по факту. Здесь переезд стоил бы дороже, чем экономия.

Всё описано в одном документе: что где стоит, как развернуть заново, кого будить ночью.

Результат

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

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

Штатный разработчик спокойно справляется сам. Он участвовал в переезде с первого дня и разворачивал машины по документу, а не по памяти.

Честно о минусах. В DigitalOcean нет некоторых привычных по Amazon Web Services сервисов, и часть задач, например резервные копии поиска, пришлось настроить своими скриптами. Это цена простоты, и команда приняла её осознанно.

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

Если ваш проект разросся по нескольким облакам и вы не понимаете, за что платите, напишите мне через freelance.ru. Начнём с описи, а решение о переезде примем после неё.

Оценили проект:

Другие проекты

Все проекты →
Дизайн и Брендинг Интерфейс для игры: пиксельная мобильная RPG про подземелья и крафт — HUD, инвентарь, крафт, иконки 32×32, рамки и шрифт с кириллицей
Интерфейс для игры: пиксельная мобильная RPG про подземелья и крафт — HUD, инвентарь, крафт, иконки 32×32, рамки и шрифт с кириллицей
29
Веб-разработка и IT Создание сайта интернет-магазина для аквариумистов с клубом: обновление Joomla!, перенос из VirtueMart в JoomShopping, сохранение JomSocial
Создание сайта интернет-магазина для аквариумистов с клубом: обновление Joomla!, перенос из VirtueMart в JoomShopping, сохранение JomSocial
19
Веб-разработка и IT Программа на Qt для ультразвуковых толщиномеров: перенос с C# на C++, график сигнала на OpenGL, общий протокол на C, версии для Windows и Linux
Программа на Qt для ультразвуковых толщиномеров: перенос с C# на C++, график сигнала на OpenGL, общий протокол на C, версии для Windows и Linux
16
Веб-разработка и IT База для учёта проката строительного инструмента: центральный SQL Server, правила на T-SQL, Microsoft Access как интерфейс шести пунктов выдачи
База для учёта проката строительного инструмента: центральный SQL Server, правила на T-SQL, Microsoft Access как интерфейс шести пунктов выдачи
10