Your AI powered learning assistant

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

Кубики

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

В гостях у Девопси

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

Начнем с основ: все на одном сервере

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

Кеширование

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

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

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

Простое решение и спонсорство

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

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

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

Виносим базу данных в облаке

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

Виносим кеш

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

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

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

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

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

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

Осторожно, Ява!

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

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

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

Обслуживание

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

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

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

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

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

Причины такой структуры

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

Правила раздачи книг

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

Когда ноги растут

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

Основные идеи

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

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

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