Перед установкой важно понять архитектуру YugabyteDB. Кластер состоит из трех типов серверных процессов (не обязательно на разных физических машинах):
- **YB-Master** — управляет метаданными кластера, информацию о таблицах, таблетах (tablets — шарды данных) и отвечает за системные операции. Для отказоустойчивости требуется нечетное количество мастер-узлов (минимум 3).
- **YB-TServer** (Tablet Server) — хранит собственно данные в виде таблетов и обрабатывает запросы SQL. Именно эти узлы масштабируются для увеличения производительности и объема.
- **YB-TServer с включенным PostgreSQL API** — это тот же TServer, но с запущенным процессом, который эмулирует протокол PostgreSQL, обеспечивая полную совместимость с драйверами и инструментами экосистемы Postgres (например, psql, pgAdmin).
Теперь перейдем к практическому развертыванию. Мы рассмотрим создание локального кластера на одной машине для разработки и тестирования — самый простой способ начать. Предполагается, что у вас установлены `wget` или `curl` и `tar`.
Шаг 1: Скачивание и распаковка. Перейдите на официальный сайт YugabyteDB и скачайте последнюю стабильную версию для вашей ОС (Linux/macOS). Например, для Linux:
```
wget https://downloads.yugabyte.com/releases/latest/yugabyte-latest-linux-x86_64.tar.gz
tar -xzvf yugabyte-latest-linux-x86_64.tar.gz
cd yugabyte-/
```
Шаг 2: Запуск локального кластера. YugabyteDB предоставляет удобный скрипт для быстрого старта:
```
./bin/yugabyted start
```
Эта команда запустит однонодовый кластер с одним мастером и одним TServer (с включенным PostgreSQL API) на стандартных портах. `yugabyted` — это демон управления, который упрощает развертывание.
Шаг 3: Проверка статуса. Вы можете проверить состояние кластера:
```
./bin/yugabyted status
```
Или открыть административный UI в браузере: `http://localhost:7000` для Master UI и `http://localhost:9000` для TServer UI. Здесь вы увидите информацию о нодах, таблетах и производительности.
Шаг 4: Подключение и создание базы данных. По умолчанию YugabyteDB эмулирует PostgreSQL на порту 5433. Подключитесь с помощью `psql`:
```
./bin/ysqlsh -h localhost -p 5433 -U yugabyte
```
Пароль по умолчанию — `yugabyte`. Вы окажетесь в консоли YSQL (Yugabyte SQL, совместимый с PostgreSQL). Создайте тестовую базу и таблицу:
```
CREATE DATABASE testdb;
\c testdb;
CREATE TABLE users (id SERIAL PRIMARY KEY, name TEXT, email TEXT);
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
SELECT * FROM users;
```
Вы успешно выполнили операции в распределенной SQL-базе!
Для production-развертывания процесс сложнее и включает:
- **Развертывание на нескольких узлах.** На каждой физической или виртуальной машине нужно установить YugabyteDB и запустить процессы мастеров и TServer'ов с указанием адресов друг друга. Рекомендуется использовать orchestration-инструменты like Ansible, Kubernetes (через Helm-чарт YugabyteDB) или Terraform.
- **Настройка репликации (RF).** Фактор репликации определяет, сколько копий данных хранится. RF=3 обеспечивает отказоустойчивость к потере двух узлов в одной зоне доступности (при правильном распределении).
- **Распределение по зонам.** Для истинной географической отказоустойчивости узлы можно размещать в разных дата-центрах или облачных регионах, настраивая политику размещения таблетов.
- **Безопасность.** Включение TLS для шифрования трафика между узлами и клиентами, аутентификация и авторизация через стандартные механизмы PostgreSQL.
Развертывание YugabyteDB открывает путь к созданию современных, глобально распределенных приложений без головной боли с шардированием и потерей возможностей SQL. Начиная с локального кластера, вы можете постепенно осваивать архитектурные принципы и переходить к более сложным, отказоустойчивым конфигурациям в облаке или on-premise.
Комментарии (7)