<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Terraform on DevOps-инженер &amp; CloudAdmin</title><link>https://ruadmin.root.sx/ru/tags/terraform/</link><description>Recent content in Terraform on DevOps-инженер &amp; CloudAdmin</description><generator>Hugo -- gohugo.io</generator><language>ru-RU</language><atom:link href="https://ruadmin.root.sx/ru/tags/terraform/index.xml" rel="self" type="application/rss+xml"/><item><title>Геораспределённый кластер блокчейн-нод в Kubernetes</title><link>https://ruadmin.root.sx/ru/posts/clouds/blockchain-k8s-cluster/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ruadmin.root.sx/ru/posts/clouds/blockchain-k8s-cluster/</guid><description>&lt;h2 id="геораспределённый-кластер-блокчейн-нод-в-kubernetes"&gt;Геораспределённый кластер блокчейн-нод в Kubernetes&lt;/h2&gt;
&lt;hr&gt;
&lt;h4 id="клиент"&gt;Клиент&lt;/h4&gt;
&lt;p&gt;Криптовалютная платформа (Web3 / DeFi)&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="задача"&gt;Задача&lt;/h4&gt;
&lt;p&gt;Клиенту требовалась отказоустойчивая инфраструктура для запуска ETH и BSC full-нод в четырёх регионах (EU, US, AP, LatAm) с минимальной задержкой для конечных пользователей, защитой от DDoS и спама на RPC, безопасным HSM-подписанием транзакций и централизованным мониторингом. Синхронизация нод с нуля занимает 2–3 недели — требовалось решение для быстрого старта.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="решение"&gt;Решение&lt;/h4&gt;
&lt;h6 id="1-инфраструктура-и-iac-terraform--eks"&gt;1. Инфраструктура и IaC (Terraform + EKS)&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Terraform-модули: VPC, subnets, security groups для 4 регионов (Frankfurt, Virginia, Singapore, São Paulo)&lt;/li&gt;
&lt;li&gt;Managed Kubernetes (EKS 1.29+) per region с выделенными node pools: full nodes, archive nodes, signing service&lt;/li&gt;
&lt;li&gt;NVMe StorageClass (gp3) через CSI-драйвер для высокопроизводительного хранения chaindata&lt;/li&gt;
&lt;li&gt;Helm chart для geth / bsc-node с кастомными values per region&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="2-gitops-flux-cd-multi-cluster"&gt;2. GitOps: Flux CD multi-cluster&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Flux CD v2 с &lt;code&gt;Kustomization&lt;/code&gt; per region — единый источник истины для всех кластеров&lt;/li&gt;
&lt;li&gt;Secrets management: HashiCorp Vault + External Secrets Operator (ESO)&lt;/li&gt;
&lt;li&gt;Изменения в инфраструктуре применяются через git push без прямого доступа к кластерам&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="3-балансировка-и-anti-spam"&gt;3. Балансировка и Anti-Spam&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;HAProxy 2.8: sticky sessions, health checks по &lt;code&gt;eth_syncing&lt;/code&gt; — трафик только к синхронизированным нодам&lt;/li&gt;
&lt;li&gt;Nginx Ingress: rate limiting, IP reputation filtering (Lua-скрипты в стиле fail2ban)&lt;/li&gt;
&lt;li&gt;Cloudflare Workers: geo-routing + защита от DDoS L7&lt;/li&gt;
&lt;li&gt;Custom sidecar (Go): health endpoint, который возвращает ready только при полной синхронизации ноды&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="4-hsm-интеграция-для-подписания-транзакций"&gt;4. HSM-интеграция для подписания транзакций&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;AWS CloudHSM (prod) / YubiHSM2 (staging) для хранения приватных ключей&lt;/li&gt;
&lt;li&gt;Go-микросервис с PKCS#11 абстракцией — смена HSM-вендора без переписывания кода&lt;/li&gt;
&lt;li&gt;Изолированный K8s namespace + NetworkPolicy: нет egress кроме HSM endpoint&lt;/li&gt;
&lt;li&gt;gRPC API для backend: sign tx, get pubkey&lt;/li&gt;
&lt;li&gt;Аудит-лог всех операций подписания → Loki&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="5-мониторинг-и-алертинг"&gt;5. Мониторинг и алертинг&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Custom Prometheus exporter (Go): &lt;code&gt;eth_blockNumber&lt;/code&gt;, &lt;code&gt;eth_syncing&lt;/code&gt;, peer count per node&lt;/li&gt;
&lt;li&gt;Grafana dashboards: sync lag, block height per region, RPC latency, SLO 99.9%&lt;/li&gt;
&lt;li&gt;Alertmanager → PagerDuty: алерты на block lag &amp;gt; N блоков, node down, peer count &amp;lt; threshold&lt;/li&gt;
&lt;li&gt;Loki + Promtail: структурированные логи всех нод с корреляцией по region/pod&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="6-операционка-и-disaster-recovery"&gt;6. Операционка и Disaster Recovery&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Snapshot bootstrap: chaindata из S3 через rclone — нода готова за часы вместо недель&lt;/li&gt;
&lt;li&gt;DR playbook: пошаговые runbook&amp;rsquo;и для восстановления региона&lt;/li&gt;
&lt;li&gt;Chaos Engineering (Chaos Mesh): тесты на node kill, network partition, pod failure&lt;/li&gt;
&lt;li&gt;Architecture Decision Records (ADR) для всех ключевых решений&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="технологии"&gt;Технологии&lt;/h4&gt;
&lt;div class="row"&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/kubernetes-plain.svg" alt="Kubernetes"&gt;&lt;div&gt;Kubernetes&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/terraform-original.svg" alt="Terraform"&gt;&lt;div&gt;Terraform&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/helm-original.svg" alt="Helm"&gt;&lt;div&gt;Helm&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/flux-cd.svg" alt="Flux CD"&gt;&lt;div&gt;Flux CD&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/prometheus-original.svg" alt="Prometheus"&gt;&lt;div&gt;Prometheus&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/grafana-original.svg" alt="Grafana"&gt;&lt;div&gt;Grafana&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h4 id="результаты"&gt;Результаты&lt;/h4&gt;
&lt;p&gt;✅ &lt;strong&gt;Geo-routing:&lt;/strong&gt; задержка снижена за счёт маршрутизации к ближайшему региону&lt;br&gt;
✅ &lt;strong&gt;Быстрый старт:&lt;/strong&gt; нода готова за часы через snapshot из S3 вместо 2–3 недель синхронизации&lt;br&gt;
✅ &lt;strong&gt;Anti-spam:&lt;/strong&gt; rate limiting + IP reputation — публичный RPC выдерживает нагрузку ботов&lt;br&gt;
✅ &lt;strong&gt;HSM:&lt;/strong&gt; приватные ключи никогда не покидают аппаратный модуль&lt;br&gt;
✅ &lt;strong&gt;GitOps:&lt;/strong&gt; любое изменение инфраструктуры — через git, полный audit trail&lt;br&gt;
✅ &lt;strong&gt;SLO 99.9%:&lt;/strong&gt; отслеживается в Grafana, алерты в PagerDuty при деградации&lt;/p&gt;</description></item><item><title>Миграция и DevOps для маркетплейса на CS-Cart</title><link>https://ruadmin.root.sx/ru/posts/clouds/cscart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ruadmin.root.sx/ru/posts/clouds/cscart/</guid><description>&lt;h2 id="инфраструктура-и-развёртывание-мультивендорного-маркетплейса-на-cs-cart"&gt;Инфраструктура и развёртывание мультивендорного маркетплейса на CS-Cart&lt;/h2&gt;
&lt;hr&gt;
&lt;h4 id="клиент"&gt;Клиент&lt;/h4&gt;
&lt;p&gt;Мультивендорный маркетплейс&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="задача"&gt;Задача&lt;/h4&gt;
&lt;p&gt;Реанимировать старый проект маркетплейса, перенести его с обычного хостинга в современное облако. Обеспечить отказоустойчивость, развернуть CI/CD инфраструктуру, настроить тестовые стенды, интегрировать внешние сервисы доставки и автоматизировать рутину с помощью нейросетей. По завершению проекта — подготовить on-premise сервер (NAS) на стороне клиента для &amp;ldquo;холодного&amp;rdquo; хранения репозиториев.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="решение"&gt;Решение&lt;/h4&gt;
&lt;h6 id="1-инфраструктура-в-yandex-cloud-terraform"&gt;1. Инфраструктура в Yandex Cloud (Terraform)&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Написана IaC-конфигурация (Terraform) для создания Yandex Cloud инфраструктуры (виртуальные сети, ВМ).&lt;/li&gt;
&lt;li&gt;Настроены отдельные виртуальные машины для production и development контуров.&lt;/li&gt;
&lt;li&gt;Подключены и размечены дополнительные диски, развернута система автоматического бэкапирования баз данных и файлов в Yandex Object Storage (S3).&lt;/li&gt;
&lt;li&gt;Использован Yandex Cloud Postbox для гарантированной доставки электронной почты сервиса (настроен домен, SPF, DKIM).&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="2-контейнеризация-и-микросервисы"&gt;2. Контейнеризация и микросервисы&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Маркетплейс перенесен с классического хостинга в Docker среду на VPS.&lt;/li&gt;
&lt;li&gt;Написан кастомный &lt;code&gt;Dockerfile&lt;/code&gt; для CS-Cart, а также &lt;code&gt;docker-compose&lt;/code&gt; с микросервисной архитектурой стека веб-сервера.&lt;/li&gt;
&lt;li&gt;Организованы полноценные dev и prod окружения.&lt;/li&gt;
&lt;li&gt;Настроены пайплайны развертывания через локальный Git-сервер (Forgejo).&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="3-платформа-маркетплейса-cs-cart"&gt;3. Платформа маркетплейса (CS-Cart)&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Обновление ядра CS-Cart, оптимизация и очистка БД от старых неиспользуемых плагинов.&lt;/li&gt;
&lt;li&gt;Развернута чистая инсталляция платформы с новой коммерческой темой.&lt;/li&gt;
&lt;li&gt;Настройка логики многовендорности: разделение прав, кабинеты продавцов.&lt;/li&gt;
&lt;li&gt;Интеграция и конфигурация модулей: динамическая подгрузка товаров, ИИ-возможности, умный живой поиск, модуль SEO.&lt;/li&gt;
&lt;li&gt;Интеграция систем доставки (СДЭК) и оплаты. Запуск автоматических обменов с системами учета 1С.&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="4-автоматизация-и-n8n"&gt;4. Автоматизация и n8n&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Развернута система оркестрации процессов n8n.&lt;/li&gt;
&lt;li&gt;Подключено API ChatGPT для автоматизации рутинных задач, вроде генерации и нормализации контента.&lt;/li&gt;
&lt;li&gt;Настроены воркеры и триггеры для бизнес-логики магазина.&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="5-безопасность-и-cloudflare"&gt;5. Безопасность и Cloudflare&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Настроен Cloudflare Proxy-DNS.&lt;/li&gt;
&lt;li&gt;Внедрен Cloudflare Turnstile (капча) для борьбы со спамом при реєстрации и заказах.&lt;/li&gt;
&lt;li&gt;Защита от ботов: закрытие прямых регистраций, настройка strict-кэширования, обрезка мусорного трафика.&lt;/li&gt;
&lt;li&gt;Установлены SSL сертификаты и настроены правильные редиректы.&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="6-on-premise-инфраструктура-и-документация"&gt;6. On-Premise инфраструктура и документация&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Настроен выделенный поддомен с Wiki-движком для технической и пользовательской документации.&lt;/li&gt;
&lt;li&gt;Реализована локальная инфраструктура на базе NAS Synology в офисе заказчика: установлен Docker, S3-бакеты, резервное копирование.&lt;/li&gt;
&lt;li&gt;Развернут локальный Git-сервер (Forgejo) с CI/CD runner для версионирования кода и &amp;ldquo;консервации&amp;rdquo; накопленных наработок.&lt;/li&gt;
&lt;li&gt;Стянут полный бэкап всех Terraform-стейтов, паролей, кодовых баз и конфигураций.&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="7-консервация-и-репозитории"&gt;7. Консервация и репозитории&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Перенос боевого сайта на резервный хостинг под консервацию, отключение синхронизаций&lt;/li&gt;
&lt;li&gt;Закупка и настройка NAS Synology в офис: внешний доступ, Docker, S3-бакеты&lt;/li&gt;
&lt;li&gt;Развёрнут Forgejo с раннером под доменом &lt;code&gt;git.*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Репозитории: исходники сайта, тема и аддоны, документация, n8n-воркфлоу, Telegram-боты, БД-бэкапы, terraform-yandex, terraform-cloudflare, хранилище паролей&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="технологии"&gt;Технологии&lt;/h4&gt;
&lt;div class="row"&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/docker-original.svg" alt="Docker"&gt;&lt;div&gt;Docker&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/terraform-original.svg" alt="Terraform"&gt;&lt;div&gt;Terraform&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/yandex.svg" alt="Yandex Cloud"&gt;&lt;div&gt;Yandex Cloud&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/nginx.svg" alt="Nginx"&gt;&lt;div&gt;Nginx&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/forgejo-original.svg" alt="Forgejo"&gt;&lt;div&gt;Forgejo&lt;/div&gt;&lt;/div&gt;
&lt;div class="col-4 col-lg-2 pt-2" style="text-align: center;"&gt;&lt;img src="https://ruadmin.root.sx/icons/linux-original.svg" alt="Linux"&gt;&lt;div&gt;Linux&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h4 id="результаты"&gt;Результаты&lt;/h4&gt;
&lt;p&gt;✅ &lt;strong&gt;Инфраструктура:&lt;/strong&gt; шаред-хостинг → VPS в Yandex Cloud через Terraform, всё в Docker&lt;br&gt;
✅ &lt;strong&gt;Платформа:&lt;/strong&gt; чистая установка CS-Cart Multi-Vendor вместо правленого ядра&lt;br&gt;
✅ &lt;strong&gt;Тема и модули:&lt;/strong&gt; покупная тема, живой поиск, UX/UI, SMS-авторизация, AJAX-каталог&lt;br&gt;
✅ &lt;strong&gt;Интеграции:&lt;/strong&gt; СДЭК, Боксбери, Почта России, СБП, обмен с 1С по двум контурам&lt;br&gt;
✅ &lt;strong&gt;Документация:&lt;/strong&gt; вики на поддомене &lt;code&gt;docs.*&lt;/code&gt; с наполненной структурой&lt;br&gt;
✅ &lt;strong&gt;Автоматизация:&lt;/strong&gt; n8n + ChatGPT API для рутинных задач&lt;br&gt;
✅ &lt;strong&gt;Бэкапы:&lt;/strong&gt; Yandex Object Storage + дубль на офисный NAS Synology&lt;br&gt;
✅ &lt;strong&gt;Git:&lt;/strong&gt; self-hosted Forgejo на NAS с раннером и репозиториями всего проекта&lt;br&gt;
✅ &lt;strong&gt;Консервация:&lt;/strong&gt; проект полностью передан клиенту на локальный on-premise NAS Synology, запущен собственный Git-сервер (Forgejo).&lt;/p&gt;</description></item></channel></rss>