Apache ShardingSphere — это простой в использовании и стабильный продукт, делающий систему управления складом (WMS) Dangdang еще более мощной. ShardingSphere, интегрированная с WMS, играет жизненно важную роль в реформировании системы цепочки поставок.

– Ли Йонг, руководитель отдела технологий WMS, Dangdang

Вслед за выпуском Apache ShardingSphere 5.0.0 GA в ноябре 2021 года в прошлом месяце была выпущена версия 5.1.0. Пройдя более двух лет полировки, экосистема ShardingSphere, ориентированная на плагины, начинает обретать форму, и проект переходит от простого промежуточного программного обеспечения для сегментирования данных к зрелой экосистеме распределенных баз данных, основанной на концепции Database Plus.

Dangdang, созданная в конце 1999 года, стала ведущей платформой электронной коммерции по продаже книг любого рода, интегрировав новые интернет-технологии с традиционной книжной индустрией. Компания Dangdang была основана во время бурного развития интернет-индустрии Китая в начале 2000-х годов.

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

В ответ Dangdang не только скорректировала свои бизнес-стратегии и подходы к управлению, но и обновила свою технологическую архитектуру. В то время в Дангданге не было системы управления складом и транспортировки. Однако с ростом объема бизнеса и технологических возможностей компании Dangdang потребовалось перестроить свою систему управления складом и систему управления транспортировкой (TMS), чтобы лучше удовлетворять потребности своего бизнеса. Например, с точки зрения аппаратного обеспечения мини-компьютер был заменен на x86, а старая централизованная система была преобразована в распределённую систему с большей гибкостью.

Одной из самых больших проблем было хранение массивных складских данных. Инженеры хотели внедрить технологию разделения данных, которую часто выбирали другие крупные интернет-компании. К сожалению, им не удалось найти на рынке зрелое и универсальное промежуточное программное обеспечение базы данных с открытым исходным кодом, и поэтому они начали разрабатывать новый продукт для сегментирования данных. Таково происхождение Sharding-JDBC. Продукт был создан, чтобы предоставить больше возможностей службам передачи данных.

Dangdang выпустила новую WMS пять лет назад, что означало завершение трансформации интеллектуальных складских помещений. С тех пор с помощью Apache ShardingSphere WMS позволила Dangdang ежегодно проводить крупные мероприятия по онлайн-покупкам, такие как апрельский фестиваль чтения Dangdang, фестиваль онлайн-покупок Double-Eleven (также известный как День холостяков) и фестиваль покупок в середине года, а также управлять более десяток смарт-складов.

Бизнес-задачи

Когда Dangdang внедрил стороннюю WMS, использовалась база данных Oracle на базе миникомпьютеров IBM.

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

  • Ограниченные вычислительные возможности и возможности хранения

Централизованная архитектура менее масштабируема, из-за чего узким местом становятся возможности вычислений и хранения баз данных.

  • Дорогие затраты на разработку и обслуживание

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

  • Эксклюзивность

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

Решение

Исходя из описанной выше ситуации, техническая команда Dangdang предложила решение системы управления складом: в аппаратном плане миникомпьютер IBM будет заменен на универсальный x86, а MySQL заменит Oracle.

Однако в то время не существовало универсального и достаточно зрелого промежуточного программного обеспечения для баз данных с открытым исходным кодом, которое соответствовало бы ожиданиям Дангданга, поэтому они создали его и назвали Sharding-JDBC.

ShardingSphere-JDBC позиционируется как облегченный Java-фреймворк, предоставляющий дополнительные сервисы на уровне Java Database Connectivity (JDBC). Он легкий, эффективный, простой в использовании и совместимый.

Благодаря ShardingSphere, предоставляющему услуги в виде пакета .jar файлов, пользователи могут напрямую подключать клиент к базе данных без дополнительного развертывания и зависимостей. Его можно рассматривать как усовершенствованный драйвер JDBC, полностью совместимый с JDBC и всеми платформами ORM.

  • Совместимость с JDBC и любой инфраструктурой ORM на основе JDBC, такой как JPA, Hibernate, Mybatis, Spring JDBC Template.
  • Поддерживает все сторонние пулы соединений с базами данных, такие как DBCP, C3P0, BoneCP, HikariCP и т. д.
  • Поддерживает все базы данных, реализующие стандарты JDBC. В настоящее время ShardingSphere-JDBC поддерживает MySQL, PostgreSQL, Oracle, SQL Server и любую базу данных, к которой можно получить доступ через JDBC.

В настоящее время Apache ShardingSphere состоит из трех продуктов: JDBC, Proxy и Sidecar (TODO). ShardingSphere-JDBC и ShardingSphere-Proxy можно развертывать независимо или вместе.

Именно ShardingSphere-JDBC используется в системе управления складом Dangdang.

Как именно используется ShardingSphere-JDBC?

В системе управления складом каждый склад, расположенный в физическом городе, называется единицей с соответствующей бизнес-системой и базами данных. Каждое хранилище имеет три набора первично-вторичных кластеров MySQL для загрузки складских данных назначенного города. На данный момент Dangdang имеет более десяти складов собственного производства по всему Китаю, в основном в городах, где клиенты размещают большое количество заказов. Эта самостоятельная модель склада является гибкой для управления складом и помогает снизить затраты на хранение в долгосрочной перспективе.

Что касается архитектуры, WMS использует ShardingSphere-JDBC для разделения баз данных в соответствии с их бизнес-типами, и каждый кластер хранит определенные бизнес-данные. Три кластера MySQL одного хранилища делятся на три типа следующим образом:

  • Basic: хранит данные пользователя, области и меню.
  • Бизнес: хранит данные о заказах и пакетах.
  • Inventory: хранит запасы и рабочие данные.

Перед выпуском система была инициализирована на основе основных данных склада, таких как места хранения.

Затем, развернув промежуточное программное обеспечение распределенной базы данных, Dangdang успешно решила ряд проблем, таких как ограниченные возможности хранения и вычислений, высокая стоимость и отсутствие гибкости.

Преимущества для пользователей

Apache ShardingSphere сыграл важную роль в помощи Dangdang в разработке WMS. Пять основных преимуществ:

  • Исключительная производительность

Облегченная платформа ShardingSphere-JDBC приближает по производительности собственный JDBC. Помимо великолепных возможностей сегментирования базы данных, он помогает максимально повысить производительность базы данных, что позволяет WMS работать на полную мощность.

  • Поддерживайте стабильность системы

WMS хорошо работает с момента его выпуска в 2016 году.

  • Низкий риск и нулевое вторжение

Базовая система Dangdang развивалась с 2000 года. Благодаря принципу нулевого вторжения Apache ShardingSphere может быть совместима с другими с небольшими изменениями для удовлетворения бизнес-требований Dangdang.

  • Позвольте разработчикам сосредоточиться на бизнес-стороне

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

  • Экономично и эффективно

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

Скорость обработки складских заказов увеличивается на 30% и, соответственно, сокращаются десятки миллионов трудозатрат за счет умных складов и технологии автоматического сопоставления местонахождения складов.

Дорожная карта Apache ShardingSphere

Некоторые говорили, что ShardingSphere — это продукт, созданный Dangdang. Если быть точным, ShardingSphere была получена от компании, и она также передала ShardingSphere в дар Apache Software Foundation (ASF) 10 ноября 2018 года.

После 17 месяцев работы в инкубаторе ASF 15 апреля 2020 года Apache ShardingSphere успешно завершила обучение как проект Apache верхнего уровня.

Недавно, чтобы отпраздновать третью годовщину вступления ShardingSphere в Apache Software Foundation (ASF), сообщество выпустило ShardingSphere 5.0.0. Ниже приведен краткий обзор Apache ShardingSphere.

  • В 2014 году Dangdang представила централизованную среду разработки, ориентированную на свою платформу электронной коммерции, под названием dd-frame. Он был создан для унификации среды разработки, стандартизации ее технических компонентов и обеспечения эффективного взаимодействия между командами путем отделения бизнес-кода от технического кода. Таким образом, инженеры могут посвятить все свои усилия деловой стороне. Модуль реляционной базы данных с именем dd-rdb в этой структуре был разработан для обработки доступа к данным и реализации функции разделения данных. Это был предшественник Sharding-JDBC, а также большая часть dd-frame 2.x.
  • В 2015 году компания Dangdang решила восстановить свои WMS и TMS. Поскольку нужен был план разделения данных, команда запустила проект в сентябре. В декабре 2015 года был выпущен Sharding-JDBC 1.0.0, который использовался в Dangdang.
  • В начале 2016 года Sharding-JDBC был отделен от dd-rdb и стал открытым исходным кодом. Продукт представляет собой усовершенствованный драйвер JDBC, предоставляющий услуги в .jar файлах.
  • В конце 2017 года была выпущена версия 2.0.0 с новой функцией управления данными.
  • В 2018 году ShardingSphere была зарегистрирована в инкубаторе Apache. Выпуск версии 3.0.0 стал заметным поворотом: Sharding-Proxy был выпущен как независимая служба. Он поддерживал разнородные языки, и проект был переименован из Sharding-JDBC в ShardingSphere. В 2018 году сообщество решило создать критерии и экосистему над базами данных.
  • В 2019 году была выпущена версия 4.0.0, способная поддерживать больше продуктов баз данных.
  • В 2020 году ShardingSphere получил статус проекта высшего уровня ASF.
  • 10 ноября 2021 г. была выпущена версия 5.0.0 GA в честь празднования третьей годовщины со всем сообществом Apache ShardingSphere и индустрией распределенных баз данных.

Начиная с версии 5.0.0, Apache ShardingSphere встал на новый путь: благодаря архитектуре, ориентированной на плагины, он превратился из приложения для сегментирования данных в комплексный и усовершенствованный инструмент управления данными, применимый к различным сложным сценариям приложений. В то же время Apache ShardingSphere также имеет больше функций и решений для работы с большими данными.

Заключение

Цифровизация побудила Dangdang добиться качественного развития и выполнить свою миссию. ShardingSphere рада поддержать Dangdang WMS своими передовыми службами данных.

После двухлетней разработки был выпущен Apache ShardingSphere 5.0.0 GA. Подключаемая экосистема знаменует собой эволюцию от инструмента промежуточного программного обеспечения для сегментирования данных до пионера в отрасли, следуя концепции «Database Plus».

Ссылки на проекты с открытым исходным кодом Apache ShardingSphere:

ШардингСфера Гитхаб

ШардингСфера Твиттер

Slack-канал ShardingSphere

Руководство автора