Your AI powered learning assistant

Архитектура Web Приложений / от простых до высоконагруженных

Кубики

00:00:00

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

В гостях Девопсы

00:00:25

DevOps может помочь вам лучше разобраться в этих кубах, и мы добавим клавиатуру для работы с ними. Наш офис дружелюбный, поэтому свинья также будет поблизости, чтобы пообщаться с командой DevOps и создать отличную атмосферу.

Начинаем с простого. Все на одном сервере

00:00:50

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

Кэширование

00:02:20

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

Скидка 60% на хостинг

00:03:50

Вы можете получить скидку на хостинг в размере 60%, и если вы в данный момент ищете виртуальный хостинг или сервер, это отличный вариант. Служба поддержки всегда готова быстро ответить на любые вопросы, а также есть возможность бесплатного переноса вашего сайта в течение оплаченного периода с помощью промо-кода "ssv20".

На сколько хватит простого решения

00:04:42

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

Внешнее хранилище файлов

00:05:42

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

Выносим базу данных

00:06:42

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

Выносим кэш

00:07:12

Мы можем отделить наш кэш (kesh) от основного сервера приложений, используя либо Memcache, либо Redis, и рекомендуется сделать это, поскольку эти выделенные серверы кэширования могут иметь больше оперативной памяти, чем серверы приложений. Это позволяет повысить производительность, поскольку приложениям обычно требуется большое количество экземпляров сервера.

Масштабирование и балансировка нагрузки

00:07:42

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

Асинхронные задачи и очереди

00:09:32

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

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

Осторожно Java!

00:14:22

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

Поисковый индекс

00:14:42

Поисковый индекс - это отдельный сервис, который может быть более удобным в одних случаях и менее удобным в других, но у него есть свои собственные цели. В дополнение к поиску доступен полнотекстовый поиск в базах данных с использованием таких поисковых систем, как Apache Solr или Elasticsearch. Sphinx также может быть другим вариантом индексации.

Сервисы. Внешние и внутренние

00:15:32

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

Потоковая обработка данных

00:17:02

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

Хранилище данных

00:19:12

Хранение данных важно для различных действий, регистраций и обработки данных. Иногда вам нужно подготовить более серьезные отчеты, основанные на всех этих данных. Kafka может помочь с хранением и синхронизацией данных различных типов, в то время как Hadoop является популярным примером решения для хранения данных, которое позволяет анализировать большие объемы скопированных данных или данных, основанных на событиях.

Зачем все это? 4 Причины

00:20:56

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

Правила розыгрыша книги

00:22:12

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

Откуда ноги растут

00:23:42

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

Ваш опыт?

00:24:12

Основные идеи С 2018 года статья набрала 78 тысяч лайков.

Автор просит прислать комментарии и предложения по аналогичным системам или альтернативам для обсуждения в будущих видеороликах.

Автор выражает благодарность своим спонсорам, которые поддерживают их работу.