feat(): Add 8.2 practies
This commit is contained in:
1 parent
2c2f8d0d59
commit
0302da1fd7
4 files changed
+100
No files matched your search
@@ -142,4 +142,6 @@ VKC_LR_04_cicd_gitops_app-config_РемизовКЛ_20260619.png,EVIDENCE,LR_04,
|
||||
VKC_LR_04_cicd_gitops_log_РемизовКЛ_20260619.log,EVIDENCE,LR_04,main,Лог выполнения команд (установка ArgoCD),02_evidence/VKC_LR_04_cicd_gitops_log_РемизовКЛ_20260619.log,VKC_LR_04_cicd_gitops_REPORT_РемизовКЛ_20260619.md,final,
|
||||
VKC_CASE_03_migration_РемизовКЛ_20260619.md,CASE,M08,CASE_03,Анализ и выбор стратегии миграции LAMP-приложения,01_reports/VKC_CASE_03_migration_РемизовКЛ_20260619.md,,final,
|
||||
VKC_CASE_03_migration_IvanovII_20260619.drawio.png,DIAGRAM,M08,CASE_03,Схема целевой архитектуры интернет-магазина в VK Cloud,04_diagrams/VKC_CASE_03_migration_IvanovII_20260619.drawio.png,,final,
|
||||
VKC_ARCH_M08_highload_store_REPORT_РемизовКЛ_20260619.md,CASE,M08,8.2,Проектирование высоконагруженной архитектуры интернет-магазина,01_reports/VKC_ARCH_M08_highload_store_REPORT_РемизовКЛ_20260619.md,,final,
|
||||
VKC_ARCH_M08_highload_store_diogram_РемизовКЛ_20260619.drawio.png,DIAGRAM,M08,8.2,Схема архитектуры высоконагруженного интернет-магазина,04_diagrams/VKC_ARCH_M08_highload_store_diogram_РемизовКЛ_20260619.drawio.png,VKC_ARCH_M08_highload_store_REPORT_РемизовКЛ_20260619.md,final,
|
||||
00_manifest.csv,MANIFEST,all,all,Финальный манифест сдачи,00_manifest.csv,,final,
|
||||
|
@@ -0,0 +1,98 @@
|
||||
---
|
||||
course_code: VKCLOUD-80
|
||||
artifact_type: CASE
|
||||
case_code: ARCH_HIGHLOAD_STORE
|
||||
case_title: Проектирование высоконагруженной архитектуры интернет-магазина
|
||||
student_fio: Ремизов К.Л.
|
||||
date: 2026-06-19
|
||||
source_docs: [3-Конспект лекций - VK 1.md,2- Тематический план - VK -1.md, 7-Шпаргалка студента -VK-1.md]
|
||||
attached_files: [VKC_ARCH_M08_highload_store_diogram_РемизовКЛ_20260619.drawio.png]
|
||||
status: final
|
||||
---
|
||||
|
||||
# Разбор практического кейса
|
||||
|
||||
## 1. Суть кейса
|
||||
|
||||
Разработать облачную архитектуру для высоконагруженного интернет-магазина, который должен выдерживать пиковые нагрузки в периоды распродаж (например, «чёрная пятница»), обеспечивать высокую доступность (отказоустойчивость) и горизонтальное масштабирование. Требуется выбрать и обосновать набор сервисов VK Cloud, спроектировать схему взаимодействия компонентов и описать меры по обеспечению надёжности.
|
||||
|
||||
## 2. Ограничения и исходные условия
|
||||
|
||||
- **Платформа** – VK Cloud (все сервисы должны быть доступны в этом облаке).
|
||||
- **Бюджет** – не фиксирован, но желательна оптимизация затрат (FinOps).
|
||||
- **Временные ограничения** – проект должен быть реализован в рамках курса (модуль 8).
|
||||
- **Технические требования**:
|
||||
- Поддержка > 10 000 RPS в пик.
|
||||
- Время отклика страницы < 200 мс (95-й перцентиль).
|
||||
- Доступность 99.99% (4 девятки).
|
||||
- Безопасность: защита от DDoS и веб-атак.
|
||||
- Асинхронная обработка заказов (не блокировать пользователя).
|
||||
- Кэширование часто запрашиваемых данных.
|
||||
- Мониторинг и алертинг.
|
||||
|
||||
## 3. Варианты решения
|
||||
|
||||
| Вариант | Плюсы | Минусы | Когда применять |
|
||||
|---------|-------|--------|-----------------|
|
||||
| **A. Монолит на ВМ с ручным масштабированием** | Простота разработки, низкие начальные затраты | Единая точка отказа, сложность горизонтального масштабирования, ручное управление, отсутствие гибкости | Для небольших проектов с низкой нагрузкой и статичным трафиком |
|
||||
| **B. Микросервисы в Kubernetes с управляемыми сервисами (предлагаемый)** | Горизонтальное масштабирование, отказоустойчивость, автоматическое восстановление, гибкость обновлений | Более высокая сложность и стоимость, требует DevOps-культуры | Для высоконагруженных и динамичных проектов, требующих быстрой эволюции |
|
||||
| **C. Серверлес (VK Cloud Functions)** | Минимальное администрирование, оплата за вызовы | Ограничения по времени выполнения, языкам, холодный старт, сложность управления состоянием | Для эпизодических и простых задач (не для основного магазина) |
|
||||
|
||||
**Выбран вариант B** как наиболее соответствующий всем требованиям по нагрузке, доступности и гибкости.
|
||||
|
||||
## 4. Выбранное решение и обоснование
|
||||
|
||||
### 4.1. Состав компонентов (все из VK Cloud)
|
||||
|
||||
| Компонент | Сервис VK Cloud | Обоснование |
|
||||
|-----------|-----------------|-------------|
|
||||
| **CDN** | VK Cloud CDN | Географически распределённая доставка статики (изображения, CSS, JS) – снижает нагрузку на бэкенд и ускоряет загрузку для пользователей по всему миру. |
|
||||
| **Балансировщик L7** | VK Cloud Load Balancer (Application LB) | Распределение HTTP/HTTPS трафика, поддержка health checks и маршрутизации по URL (например, `/api/*` → K8s, `/static/*` → CDN). |
|
||||
| **WAF + AntiDDoS** | VK Cloud WAF и AntiDDoS | Защита от SQL-инъекций, XSS и DDoS-атак – критично для публичного интернет-магазина. |
|
||||
| **Веб-серверы (frontend)** | Auto Scaling Group (ВМ с nginx) | Обработка статики и проксирование на K8s; горизонтальное масштабирование по CPU/RPS; дешёвый и управляемый слой. |
|
||||
| **Микросервисы (backend)** | Managed Kubernetes | Контейнерная оркестрация: автоматическое масштабирование (HPA), самовосстановление, канареечные обновления. Поддерживает 55 000 подов на кластер. |
|
||||
| **Кэш** | Managed Redis Cluster (шардированный) | Хранение сессий, кэш каталога, цен. Микросекундная задержка, кластерная отказоустойчивость. |
|
||||
| **Основная БД** | Managed PostgreSQL (шардирование) | Реляционная БД для товаров, заказов, пользователей. Шардирование позволяет горизонтально масштабироваться (ключ – `user_id`). |
|
||||
| **Реплики для чтения** | PostgreSQL replicas | Тяжёлые аналитические запросы и отчёты идут на реплики, не нагружая мастер. |
|
||||
| **Очередь сообщений** | Cloud Kafka / RabbitMQ | Асинхронная обработка заказов (списание товаров, email, SMS, бонусы). Разгружает критический путь запроса. |
|
||||
| **Мониторинг** | Prometheus + Grafana (развёрнутые в K8s) | Сбор метрик, дашборды, алертинг – основа наблюдаемости. |
|
||||
|
||||
### 4.2. Почему именно эти сервисы?
|
||||
|
||||
- **Kubernetes** выбран вместо чистых ВМ, потому что он обеспечивает декларативное управление, автоматическое масштабирование и восстановление, что критично для высокой нагрузки.
|
||||
- **Redis** – лучшее решение для кэширования благодаря скорости и поддержке кластеров.
|
||||
- **PostgreSQL** – зрелая СУБД с поддержкой сложных запросов и транзакций; шардирование решает проблему роста данных.
|
||||
- **Kafka** гарантирует надёжную доставку сообщений и позволяет масштабировать воркеры независимо.
|
||||
|
||||
## 5. Риски и меры снижения
|
||||
|
||||
| Риск | Вероятность | Влияние | Мера снижения |
|
||||
|------|-------------|---------|---------------|
|
||||
| Отказ master-узла PostgreSQL | Средняя | Высокое (заказы не создаются) | Автоматический failover на реплику; регулярные бэкапы в S3. |
|
||||
| Перегрузка Redis (кэш не попадает) | Низкая | Среднее (рост нагрузки на БД) | Мониторинг использования памяти; автоскейлинг кластера; настройка TTL. |
|
||||
| DDoS-атака | Высокая | Критическое | Встроенный AntiDDoS VK Cloud + WAF; ограничение частоты запросов. |
|
||||
| Ошибка в микросервисе (краш) | Средняя | Среднее | Kubernetes автоматически пересоздаёт под; канареечные обновления; откат через GitOps. |
|
||||
| Человеческий фактор (неправильная конфигурация) | Средняя | Высокое | Всё описывается как код (IaC) – Terraform и Helm; код-ревью; CI/CD проверяет конфигурации. |
|
||||
| Превышение бюджета | Средняя | Среднее | FinOps: тегирование ресурсов, бюджетные алерты, использование Spot-инстансов для тестовых сред. |
|
||||
|
||||
## 6. Артефакты
|
||||
|
||||
| Файл | Назначение |
|
||||
|------|------------|
|
||||
| `VKC_ARCH_M08_highload_store_diogram_РемизовКЛ_20260619.drawio.png` | Схема архитектуры (экспорт из draw.io) в формате PNG |
|
||||
| `VKC_ARCH_M08_highload_store_REPORT_РемизовКЛ_20260619.md` | Данный отчёт (заполненный шаблон) |
|
||||
|
||||
**Схема архитектуры** представлена на изображении ниже:
|
||||
|
||||

|
||||
|
||||
## 7. Вывод
|
||||
|
||||
Предложенная архитектура на базе управляемых сервисов VK Cloud обеспечивает:
|
||||
- **Отказоустойчивость** – каждый компонент имеет резервирование, распределение по зонам доступности, автоматический failover.
|
||||
- **Горизонтальное масштабирование** – все слои (веб-серверы, микросервисы, кэш, БД, очередь) могут расширяться при росте нагрузки.
|
||||
- **Высокую производительность** – CDN, Redis и реплики БД для чтения гарантируют низкие задержки.
|
||||
- **Безопасность** – WAF и AntiDDoS защищают от внешних угроз.
|
||||
- **Управляемость** – IaC, CI/CD и GitOps упрощают эксплуатацию и обновления.
|
||||
|
||||
Реализация данной архитектуры в VK Cloud полностью покрывает требования высоконагруженного интернет-магазина и соответствует лучшим практикам облачного проектирования.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 259 KiB |
Binary file not shown.
Reference in new issue
Block a user