Перейти к содержимому

IT-инфраструктура база простыми словами

Операционная система — как Windows, только для серверов.

У вашего ноутбука есть Windows или macOS. А у серверов, на которых крутятся сайты и приложения, чаще всего стоит Linux. Он бесплатный, надёжный и не требует перезагрузки каждую неделю. Почти весь интернет работает на Linux.

Веб-серверы — принимают запросы от пользователей и отдают им сайт.

Когда человек вводит адрес сайта в браузере, запрос летит на сервер. NGINX или Apache — это программы, которые этот запрос принимают и отдают нужную страницу. NGINX более современный и быстрый, Apache — старше и проще в настройке. Оба делают одно и то же.

💡 Аналогия: Это администратор на ресепшене. К нему приходит посетитель, говорит, что ему нужно — и администратор направляет его в нужный кабинет.

Упаковка приложения в «контейнер», чтобы оно работало одинаково везде.

Классическая проблема: у разработчика всё работает, а на сервере — нет. Docker решает это. Он упаковывает приложение вместе со всем, что ему нужно, в изолированный контейнер. Этот контейнер можно запустить на любом компьютере, и он будет работать одинаково.

💡 Аналогия: Контейнер для морских перевозок. Неважно, что внутри — он стандартного размера и подходит к любому кораблю, поезду или грузовику.

Место, где хранится вся информация: пользователи, заказы, товары, логи.

Любое приложение где-то хранит данные. База данных — это организованное хранилище, в котором можно быстро найти, добавить или изменить информацию. Бывают реляционные (таблицы, как в Excel) — PostgreSQL, MySQL. И нереляционные (более гибкие) — MongoDB, Redis.

💡 Аналогия: Картотека в библиотеке. Всё разложено по полочкам, и по запросу можно быстро найти нужную карточку.

Server-nginx-docker.png

Система мониторинга — собирает метрики о том, как работают ваши сервисы.

Prometheus каждые несколько секунд опрашивает ваши серверы и приложения: сколько памяти занято, какая нагрузка на процессор, сколько запросов обрабатывается. Все эти данные он сохраняет у себя. Если что-то пошло не так — может отправить алерт (уведомление).

💡 Аналогия: Датчики в автомобиле. Температура двигателя, уровень масла, обороты — вы видите всё на приборной панели.

Красивые дашборды для визуализации данных из Prometheus (и не только).

Prometheus собирает цифры, а Grafana превращает их в понятные графики и дашборды. Можно увидеть нагрузку на серверы, время ответа сайта, количество ошибок — всё в реальном времени. Часто используется в связке: Prometheus собирает, Grafana показывает.

💡 Аналогия: Если Prometheus — датчики, то Grafana — приборная панель с красивыми стрелками и индикаторами.

Server-nginx-docker.png

Оркестратор контейнеров — управляет сотнями Docker-контейнеров одновременно.

Когда у вас один контейнер — Docker справляется. Но когда их десятки или сотни, нужен кто-то, кто будет следить за всеми: перезапускать упавшие, распределять нагрузку, масштабировать. Это и делает Kubernetes (часто пишут K8s). Сложная штука, но для крупных проектов — незаменимая.

💡 Аналогия: Диспетчер аэропорта. Самолёты (контейнеры) взлетают и садятся, а диспетчер следит, чтобы никто не столкнулся и все полосы были загружены равномерно.

Облачная платформа — аренда серверов и сервисов вместо покупки своего железа.

Вместо того чтобы покупать физические серверы, ставить их в серверную и нанимать людей для обслуживания, можно арендовать мощности у Яндекса. Нужно больше ресурсов — добавили пару кликов. Не нужно — убрали. Платите только за то, что используете. Аналоги в мире: AWS (Amazon), Google Cloud, Azure (Microsoft).

Быстрая «шпаргалка» для системы, чтобы не делать одну и ту же работу дважды.

Представьте: пользователь открывает страницу сайта, и сервер идёт в базу данных, собирает информацию, формирует страницу и отдаёт её. Если через секунду зайдёт другой пользователь с тем же запросом — зачем делать всё заново? Кеш сохраняет готовый результат и отдаёт его мгновенно. Это может быть кеш на сервере (Redis, Memcached), кеш в браузере пользователя или кеш на уровне NGINX.

Кеш ускоряет всё в разы, но есть нюанс: если данные обновились, а кеш ещё старый — пользователь увидит устаревшую информацию. Поэтому кешем нужно управлять: вовремя сбрасывать и обновлять.

💡 Аналогия: Вы спросили коллегу курс доллара, он посмотрел и сказал. Через минуту спросил другой — коллега уже не лезет в интернет, а отвечает по памяти. Быстро, но к вечеру «по памяти» может быть уже неточно.

Посредник между сервисами — принимает задачи и передаёт их дальше, когда получатель готов.

В сложных системах разные сервисы постоянно общаются друг с другом: «оформлен заказ», «отправь письмо», «обнови остатки на складе». Если отправлять всё напрямую, получатель может не справиться с потоком или быть временно недоступен — и данные потеряются. Очередь сообщений решает эту проблему: отправитель кладёт сообщение в очередь, а получатель забирает его, когда готов. Ничего не теряется, никто никого не ждёт.

RabbitMQ — классическая очередь. Хорошо подходит, когда нужно надёжно доставить задачу конкретному получателю (например, «отправь SMS клиенту»).

Kafka — больше про потоки данных. Умеет обрабатывать миллионы сообщений в секунду и хранить историю. Используется, когда нужно передавать огромные объёмы событий (логи, аналитика, действия пользователей).

💡 Аналогия: Стол с лотком для входящих документов в офисе. Коллеги кладут задачи в лоток, а вы разбираете их в своём темпе. Даже если вы вышли на обед — документы не потеряются, а будут ждать вас в лотке.