Серверное ПО
Простыми словами объясним эти подходы к масштабированию систем хранения данных. На понятном примере и без использования сложной терминологии.
Теоремы CAP и PACELC объясняют ограничения, возникающие в распределённых системах, и позволяют проектировать решения, обеспечивающие правильный баланс между доступностью, согласованностью и быстродействием.
СУБД — это очень часто «узкое место» в производительности веб‑приложений. В момент, когда сервер баз данных не может справиться с нагрузками, производится масштабирование. В современных высоконагруженных системах эффективное управление данными невозможно без использования методов масштабирования и обеспечения отказоустойчивости. Репликация, партиционирование и шардирование — ключевые подходы, которые позволяют распределять данные, повышать производительность и гарантировать доступность. Разберем каждый из них подробно.
PostgreSQL — это популярная объектно-реляционная система управления базами данных. PostgreSQL базируется на языке SQL, отличается высокой надёжностью и имеет широкие возможности. В PostgreSQL нет ограничений на максимальный размер базы данных, количество записей и индексов в таблицах. В СУБД встроены мощные и надёжные механизмы транзакций, есть возможности для репликации, шардинга и партиционирования. СУБД отличает лёгкая расширяемость и возможность тонкой настройки.
На серверах для размещения сайтов и веб‑приложений устанавливается программное обеспечение, которое требуется для работы программной логики сайта и других служб домена, для обслуживания и мониторинга, а также для защиты от взлома и устойчивости к нагрузкам.
Технологии по теме
Базы данных служат для хранения и обработки данных. Бывают реляционные (SQL) и нереляционные (NoSQL) системы управления базами данных. Реляционные системы управления базами данными (SQL) хранят данные в таблицах и наиболее часто используются в качестве основного хранилища для веб‑приложений. Они очень стабильны, и их надёжность проверена временем. Нереляционные СУБД (NoSQL) заметно отличаются по структуре хранения данных и работе с ними. Для специфических типов данных и задач они зачастую быстрее и удобнее классических SQL СУБД, но обычно это преимущество достигается за счёт снижения надёжности хранения.
MongoDB — это NoSQL‑хранилище данных, крайне удобное для хранения информации, которая не может быть нормально структурирована в рамках реляционных баз данных. MongoDB — это СУБД с открытым кодом (SSPL), не требующая описания схемы таблиц. Документы в MongoDB хранятся в JSON или BSON, с такой моделью проще кодировать и управлять, а внутренняя группировка релевантных данных обеспечивает дополнительный выигрыш в быстродействии.
SQL‑инъекции — это один из распространённых способов взлома сайтов и веб‑приложений, работающих с реляционными базами данных. SQL‑инъекции основаны на внедрении в выполняемый приложением запрос к базе данных произвольного SQL‑кода, переданного злоумышленником. Последствиями SQL‑инъекций могут стать кража, модификация или удаление данных, а также полный взлом атакуемой системы — например, получение привилегированного доступа.
Apache — это HTTP‑сервер. Основными достоинствами считаются надёжность и гибкость конфигурации.
MariaDB — ответвление реляционной СУБД MySQL, разрабатываемое сообществом под лицензией GPL. MariaDB полностью совместима с приложениями, использующими MySQL, а переход на эту СУБД оправдан тем, что MySQL уже не так активно развивается.
Наши услуги
MySQL — это реляционная система управления базами данных с открытым исходным кодом. В настоящее время эта СУБД одна из наиболее популярных в веб‑приложениях — подавляющее большинство CMS использует именно MySQL (часто только её, без альтернатив), а почти все веб‑фреймворки поддерживают MySQL уже на уровне базовой конфигурации (без дополнительных модулей).
Memcached — это хранилище «ключ => значение», использование которого очень эффективно для ускорения работы сайта или веб‑приложения.
Sphinx и Elasticsearch — это поисковые «движки», которые обеспечивают более быстрый поиск и фильтрацию по сравнению с реляционными базами данных, а также предоставляют возможность использования многих полезных функций поиска: учитывают морфологию языка, осуществляют фасеточный поиск, работают со стоп‑словами, поддерживают выборочную индексацию и позволяют настроить формулу определения релевантности документов.
Redis — сетевое журналируемое хранилище данных типа «ключ — значение», которое обрабатывает данные в оперативной памяти и обладает механизмами снимков и журналирования для обеспечения постоянного хранения. Хранилище поддерживает строки, списки, хеши, обычные и сортируемые множества, потоки (streams) и другие типы данных.
nginx — это простой, быстрый и надёжный сервер. Применение nginx очень эффективно для отдачи статического контента и в качестве прокси‑сервера перед динамическими сайтами.