Базы данных
Работа в IT DNS - подписывайся!
Начать рассказ о базах данных мы решили издалека, с разбора общей информации о них. После этого поделимся с тобой секретом, какие технологии работы с БД мы используем в ДНС.
Итак, переходим сразу к определению. :)
Говоря простым языком, база данных (или же БД) — это упорядоченная структура для хранения и обработки информации разного рода.
Однако, обычно БД не существует сама по себе, а управляется специальной программой или комплексом программ — Системой Управления Базами Данных (СУБД).
СУБД организует структуру БД, предоставляет инструменты для управления данными, например для: наполнения баз информацией, редактирования данных, вывода обработанной информации пользователю.
Немаловажно и то, что БД бывают разных типов: Реляционные (SQL), Key-Value (No-SQL), TimeSeries DB, и другие.
Каждая БД заточена под определенный тип задач и, соответственно, по-разному работает с поступающими и хранимыми данными.
А теперь, коротко о главном, какие СУБД в работе используются у нас в компании:
- PostgreSQL для работы сайта
PostreSQL — это свободно-распространяемая SQL-СУБД с открытым исходным кодом и огромным сообществом. СУБД активно развивается и с каждым релизом предоставляет для работы новые и удобные инструменты.
2. MS-SQL для 1с - windows way
MS-SQL — СУБД от Microsoft. Мастодонт на рынке реляционных БД. Прожорливая, дорогая, но отлично справляющаяся со своими задачами система. Сейчас уже больше legacy система в нашем стеке, мы потихоньку переезжаем на PostgreSQL.
3. Clickhouse - колоночная СУБД разрабатываемая компанией Яндекс, отлично подходящая для анализа данных.
Благодаря столбцовой организации данных, мы получаем высокую скорость при обработке большинства запросов в OLAP сценариях. К преимуществом этой СУБД можно отнести механизм нативного сжатия данных и распределенную обработку запроса на всех серверах кластера.
4. Key-Value СУБД Redis для очередей сообщений
Redis — это No-SQL СУБД с открытым кодом. Отличительная особенность — хранение данных в оперативной памяти, что позволяет получить максимальное быстродействие на простых операциях. Отлично подходит для организации кэша или очереди сообщений
5. Tarantool — ещё одна no-SQL in-memory СУБД, которая постепенно вытесняет Redis. Используется для хранения данных во внутренней системе продаж (веб-база).
Tarantool отлично себя показывает при использовании в сервисах аутентификации пользователей и системах уведомления. Открытый код и постоянно добавляющиеся модули и библиотеки, позволяют использовать tarantool при разработке широкого спектра приложений.

6. Поисковой движок на ElasticSearch.
Эта поисковая система написанная на java, хранит документы в так называемых индексах, обеспечивая быстрый поиск данных по всем полям документов.
7. Для мониторинга текущей нагрузки применяем Prometheus TSDB, в который сливается информация о всех показателях подконтрольных систем в формате "метрика": "значение"
Собирая и обрабатывая такую информацию, мы получаем возможность строить информативные графики и анализировать работу приложений, систем и серверов.
Это краткий очерк о тех СУБД, которые мы используем в повседневной работе. Разумеется, про каждую из этих систем можно написать множество отдельных длинных статей, с описанием сценариев использования и различными тестами.
Эту статью написали Маша HR и Ростислав из команды DevOps.
Кстати, в команде DevOps у нас открыта вакансия :)
Наши предыдущие статьи:
Как стать системным аналитиком в 1С
Роль и функции тестировщиков в ДНС