Еще в свое время, когда я работал в одной из предыдущих компаний — я столкнулся с необходимостью настройки репликации данных. На тот момент мы были быстрорастущим стартапом и, как и большинство стартапов, допустили немало ошибок на этапе активного роста. Имея микросервисную архитектуру, у нас не было достаточно времени, чтобы хорошо их спроектировать. Это привело нас к ситуации, когда у нас была микросервисная архитектура, которая больше напоминала монолитную. 95% коммуникаций осуществлялось посредством прямых HTTP-вызовов. Это было именно то, что нас подвело.

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

Большинство проблем было вызвано сервисами, которые содержали важные данные, на которые нам приходилось полагаться в других сервисах. Таким образом, при каждом вызове клиента нам приходилось делать более двух базовых вызовов, чтобы вернуть эти данные. (Кэширование не было возможным, поскольку данные не могли быть старыми из-за требований)

Вскоре эти службы стали называться SPOF (единая точка отказа), и нам нужно что-то делать. Мы придумали внедрение CDC (также известного как репликация данных), на внедрение которого потратили бесчисленные часы, находя подходящие сервисы, инструменты и т. д. Но в конце концов это помогло. Нам удалось построить действительно великолепную архитектуру, которая без проблем выдерживает часы пик.

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

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

Видите ли, проблема здесь в том, что большинство служб репликации/ETL сосредоточены на нескольких вещах:

  • База данных на склад для выполнения аналитики
  • Полная репликация базы данных в базу данных без преобразований

В частности, когда вы начнете гуглить реализацию CDC, вы найдете массу ссылок на такие проекты, как Confluent.io и Debezium.
Не поймите меня неправильно, это проекты, которые продвигают вперед индустрию CDC, но они чрезвычайно сложны, когда вы видите их впервые в жизни. И вы, как технический директор/технический руководитель стартапа, обычно не можете позволить себе тратить столько времени на эти вещи, не зная, сработают они или нет.

Встречайте DataBrew

DataBrew — это SaaS-проект, который обеспечивает простой способ интеграции CDC (Change-Data-Capture) в вашу архитектуру. По сути, путем создания сетки данных, в которой вы определяете данные, которые предоставляют ваши службы, и любая служба может их использовать.

Мы постарались собрать все знания, полученные в ходе экспериментов и сопровождения CDC, и создать продукт, который поможет разработчикам.

DataBrew был создан с учетом нескольких целей:

  1. Мы хотим дать разработчикам больше времени для работы над бизнес-логикой и написанием кода, а не тратить бесчисленные часы на отладку Kafka.
  2. Мы хотим дать разработчикам самое главное — представление реальных потоков данных. Таким образом, они могут видеть все потоки данных, поступающие в сервис, и наоборот.
  3. Мы хотим иметь строгие контракты на передачу данных. Даже если ваш сервис имеет 45 таблиц, вы все равно можете определить, что он экспортирует только 2 из них. Чтобы люди не слепо создавали DataFlows, не задумываясь о стабильности системы.
  4. Мы хотим сделать его надежным. Внедрение #CDC может показаться немного рискованным решением, но при правильном оповещении и мониторинге беспокоиться не о чем.

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

Смело подавайте заявку на ранний доступ — мы свяжемся с вами как можно скорее, чтобы обсудить все детали.

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

Спасибо за прочтение статьи! Мы надеемся, что смогли пробудить в вас интерес и дать шанс DataBrew.

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

Полезные ссылки

  1. Сайт проекта: https://databrew.tech
  2. Документация DataBrew — https://docs.databrew.tech/
  3. Твиттер: https://twitter.com/@usedatabrew
  4. Электронная почта: [email protected]