פריסת אתר ב-Selectel: Terraform, Kubernetes, CI/CD

נמאס לכם מפריסות שגרתיות ב-Selectel עם השבתות ושחזורים איטיים? אנחנו הופכים את תהליך השחרור לאוטומטי עם Terraform, Kubernetes ו-CI/CD, כך שהתשתית שלכם רצה ביציבות ועומדת בדרישות 152-FZ. אנחנו מספקים פרויקטים סוהר—מביקורת ועד תמיכה שוטפת—ומבטיחים אמינות וסקלביליות לשירות שלכם.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
פריסת אתר ב-Selectel: Terraform, Kubernetes, CI/CD
בינוני
מ- 1 יום עד 3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1307
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

השקת אתר ב-Selectel: Terraform, Kubernetes, CI/CD

השקתם אתר ב-Selectel, אבל שבוע לאחר מכן הוא נופל בגלל הגדרות קבוצת אבטחה שגויות? או שהפריסה אורכת שעה, והחזרה לגרסה קודמת היא פעולה מלאה? אנחנו פותרים בעיות אלו עם פריסה אוטומטית באמצעות Terraform, Kubernetes ו-GitHub Actions. הפריסות אורכות דקות, התשתית אמינה, והיא עומדת בדרישות 152-FZ. פעם פרויקט נפל בגלל הגדרות שגויות של Object Storage — התמונות לא נטענו, LCP עלה ל-5 שניות. כתבנו מחדש את הפריסה עם Terraform, הגדרנו CDN, ו-LCP ירד ל-0.8 שניות. זו רק דוגמה אחת לאיך אוטומציה חוסכת לעסק.

לצוות שלנו יש ניסיון של 5+ שנים עם תשתית Selectel, והקמנו פריסה ל-30+ פרויקטים, החל מדפי נחיתה ועד פלטפורמות SaaS בעלות עומס גבוה. הנה איך אנחנו עושים את זה.

בעיות שאנחנו פותרים

בעת פריסה ב-Selectel, אנחנו נתקלים לעיתים קרובות בשגיאות טיפוסיות:

  • שאילתות N+1 בעבודה עם Object Storage — הגדרות CDN שגויות מובילות לעיכובים. אנחנו מתקנים זאת באמצעות טעינה מוקדמת של תוכן והגדרות Cache-Control נכונות.
  • חוסר התאמה ב-Hydration ב-React/Next.js בעת שימוש ב-SSR — בגלל זמני תגובה שונים בין השרת ללקוח. אנחנו פותרים זאת על ידי הגדרת סנכרון דרך Edge Functions.
  • דליפות מידע בגלל הגדרות קבוצת אבטחה שגויות. אנחנו תמיד משתמשים בהרשאות מינימליות: רק 80/443 ו-SSH מכתובות IP מורשות.

כל בעיה מלווה בפתרון קונקרטי שחידדנו על עשרות פרויקטים.

איך לארגן פריסה לעמידה בדרישות 152-FZ

Selectel מספקת תשתית מאושרת. אנחנו מגדירים:

  • הצפנה במנוחה באמצעות OpenStack Barbican.
  • רישום גישה ל-Object Storage באמצעות S3 Access Logs.
  • גיבויים קבועים של מסדי נתונים לפרויקט נפרד.

זה מבטיח עמידה בדרישות ללא עלויות נוספות.

למה Selectel משתלמת יותר מעננים זרים

Selectel זולה פי 2–3 מ-AWS/Azure עבור פרויקטים רוסיים, בהתחשב בזמן השהייה ועמידה בדרישות. לדוגמה, שימוש ב-Managed Kubernetes ב-Selectel מפחית עלויות ניהול ב-40% בהשוואה לפריסה ידנית. בנוסף, הנתונים נשארים ברוסיה, מה שחיוני עבור 152-FZ.

איך להקים פריסה ב-Selectel מאפס

אנחנו משתמשים בטכנולוגיות מוכחות: Terraform 1.7 לתיאור תשתית, Ansible להגדרות, ו-GitHub Actions ל-CI/CD. פרויקט אחד — חנות מקוונת על Laravel 11: הקמנו את הפרויקט עם Terraform, הגדרנו Object Storage לקבצי מדיה, ו-Managed Kubernetes לפרונטאנד. הפריסה אורכת 3 דקות, והחזרה לגרסה קודמת היא פקודה אחת.

# Создание сервера через CLI
pip install python-openstackclient
export OS_AUTH_URL=https://cloud.api.selcloud.ru/identity/v3
export OS_PROJECT_ID=your_project_id
export OS_USERNAME=your_username
export OS_PASSWORD=your_password
export OS_REGION_NAME=ru-1
openstack server create \
  --flavor 1014 \
  --image "Ubuntu 22.04 LTS 64-bit" \
  --key-name my-key \
  --security-group web-sg \
  myapp-prod
# Terraform для Selectel
terraform {
  required_providers {
    selectel = {
      source = "selectel/selectel"
      version = "~> 5.0"
    }
    openstack = {
      source = "terraform-provider-openstack/openstack"
      version = "~> 1.53"
    }
  }
}

provider "selectel" {
  token = var.selectel_token
}

resource "selectel_vpc_project_v2" "myapp" {
  name = "myapp-project"
  theme = {
    color = "#4CAF50"
  }
}

resource "openstack_compute_instance_v2" "app" {
  name = "myapp-prod"
  flavor_name = "1014"
  image_name = "Ubuntu 22.04 LTS 64-bit"
  key_pair = openstack_compute_keypair_v2.mykey.name
  security_groups = ["web-sg", "ssh-sg"]
  region = "ru-1"
  network {
    name = "public"
  }
  user_data = file("cloud-init.yaml")
}
# Selectel Object Storage (Swift/S3)
aws configure
aws --endpoint-url https://s3.selcdn.ru s3 mb s3://myapp-assets
aws --endpoint-url https://s3.selcdn.ru \
    s3 sync ./dist/assets s3://myapp-assets \
    --acl public-read \
    --cache-control "public, max-age=31536000, immutable"
# Managed Kubernetes (MKS)
selectel mks kubeconfig --cluster-id CLUSTER_ID > kubeconfig.yaml
export KUBECONFIG=./kubeconfig.yaml
kubectl apply -f k8s/
kubectl get pods -n myapp
---
# GitHub Actions для Selectel VPS

jobs:
  deploy:
    steps:
      - name: Deploy
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.SELECTEL_SERVER_IP }}
          username: deploy
          key: ${{ secrets.SSH_KEY }}
          script: |
            cd /var/www/myapp
            git pull origin main
            composer install --no-dev --optimize-autoloader
            npm ci && npm run build
            php artisan migrate --force
            php artisan optimize
            sudo systemctl reload php8.3-fpm nginx
---

שגיאות פריסה טיפוסיות וכיצד למנוע אותן

  • התעלמות מקבוצות אבטחה — השארת SSH פתוח לכל כתובות ה-IP. אנחנו משתמשים רק ברשימות מורשות.
  • הגדרות CORS שגויות עבור S3 — קבצים סטטיים לא נטענים בפרונטאנד. אנחנו מציינים במפורש מקורות מורשים.
  • חוסר ניטור — גילוי על השבתה מלקוחות. אנחנו מגדירים התראות דרך SendGrid או Telegram.

קל להימנע משגיאות אלו אם עוקבים אחרי הפרקטיקות שלנו.

תהליך

  1. ניתוח — קביעת דרישות לעומס, תקציב ועמידה בדרישות.
  2. עיצוב — בניית ארכיטקטורה: VPS מול Kubernetes, S3 מול DB, CDN.
  3. תשתית — פריסת פרויקט, רשתות וקבוצות אבטחה עם קוד Terraform.
  4. יישום — הגדרת אפליקציה, CI/CD וניטור (Prometheus + Grafana).
  5. בדיקות — בדיקות עומס, בדיקת Core Web Vitals.
  6. פריסה — פריסה הדרגתית (canary) עם חזרה אוטומטית לגרסה קודמת במקרה של שגיאות.

מה כלול בהקמת פריסה

  • עיצוב ארכיטקטורה למשימות שלכם.
  • כתיבת הגדרות Terraform לכל התשתית.
  • הקמת CI/CD (GitHub Actions או GitLab CI) עם פריסה וחזרה אוטומטית לגרסה קודמת.
  • הגדרת Object Storage ו-CDN לקבצים סטטיים.
  • שילוב ניטור (Prometheus + Grafana) עם התראות.
  • תיעוד על פריסה והדרכה לצוות שלכם.
  • תמיכה טכנית לאחר ההשקה.

השוואה: VPS מול Managed Kubernetes

פרמטר VPS Managed Kubernetes (MKS)
זמן פריסה 1–2 ימים 3–4 ימים
קנה מידה ידני (אנכי) אוטומטי (אופקי)
עלות נמוכה בינונית, עם חיסכון בניהול
מתאים ל פרויקטים קטנים עומס גבוה ומיקרוסרוויסים

לוחות זמנים לרכיבי פריסה

רכיב פריסה לוח זמנים
VPS + Nginx + פריסה 1–2 ימים
Object Storage + CDN יום אחד
Managed Kubernetes 3–4 ימים
CI/CD (GitHub Actions) 1–2 ימים

העלות מחושבת בנפרד לכל פרויקט. בקשו הערכת עלות פריסה מותאמת — נבחר את הארכיטקטורה האופטימלית. קבלו ייעוץ — נעריך את הפרויקט שלכם ביום עסקים אחד. צרו קשר כדי להקים פריסה שלא תאכזב אתכם.