Статья и видео на тему структуры сервисов большого распределенного проекта (блогплатформы или соцсети)
В материале кратко показана техническая схема построения структуры сервисов, которая обеспечивает высокую надёжность проекта с точки зрения предотвращения любых потерь данных, файлов, связей.
🔧 1. Проблемы больших проектов.
Когда Вы заходите в приложение надёжного банка, крупной соцсети или сайта гос.органов, вы обычно видите хорошую работоспособность системы, всегда можете видеть свои данные, не теряете ничего важного - от письма до транзакции. И в это же время целые соцсети типа Parler, блокчейны типа Solana, некоторые банковские системы - могут ломаться, переставать работать, терять данные и так далее.
⚠ Почему так:
а) оборудование, программы, обслуживающий персонал - могут совершать ошибки, плохо работать из-за любых причин. Недремлющие хакеры могут ломать довольно сложные системы безопасности.
б) базы данных могут копить ошибки, блокировать соединение с собой из-за разных причин, разбухать от лишних записей, входить в конфликт с программным обеспечением сервера.
в) файлы медиа могут сгорать вместе с жесткими дисками, а резервное копирование, да еще и дублируемое, обойдется в такие огромные средства, что далеко не все могут себе такое счастье позволить.
г) создание мощной распределенной системы часто требует множества сильных программистов в команде, а также большого времени.
Поддержка таких систем также обойдется в целое состояние.
Поэтому гигантские корпорации или государства могут создавать очень надёжные системы (во всех смыслах), а все остальные часто не могут.
✏2. Как нам можно достичь того же эффекта гораздо меньшими силами?
Высокая надежность распределённой платформы (кратко эта тема раскрыта в видеоролике) состоит из нескольких краеугольных сущностей:
а) Надёжность баз данных. Создается несколько копий приложений-сервисов, работающих параллельно. Каждое изменение баз данных влечёт за собой такие же изменения всех таких же баз данных на сервисах-копиях. Причем динамически, чтобы не пропало ничего.
б) Надёжность статических серверов. Каждый новый файл копируется сразу же на копии статических серверов.
в) Балансирование нагрузки на сервисы. Создаются двухуровневые синхронизационные сервисы:
- всего проекта. Это работа с дублируемыми объектами сервисов.
- специальные для каждого сервиса.
К примеру, сервис сообщений должен иметь такие подсервисы:
- API сервиса - дублируемый балансировщик нагрузки. Именно он решает, какой копии приложений придёт запрос фронтенда. Если первая копия занята/сломалась, запрос перейдёт второй копии.
- сам сервис приложений (копия), работает так, как у прочих, только у нас он взаимозаменяемый.
- статический сервис, состоящий из нескольких серверов-копий.
♻Такая организация проекта позволяет гарантировать высокую надёжность, безопасность и сохранность данных - на уровне систем-гигантов.
Видео и статья подготовлены разработчиком блогплатформы "Думайте".
_________
Напоминаем, что запуск блогплатформы «Думайте» запланирован на май 2024 года. Если у вас есть идеи, что и как можно улучшить в разрабатываемой системе, обязательно пишите в комментариях или присылайте их участникам проекта! Обратной связи всегда рады.
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев