פלטפורמות ענן חלופיות: Hetzner ו-DigitalOcean בסביבת ייצור
אנחנו עובדים עם פלטפורמות ענן חלופיות—DigitalOcean, Hetzner Cloud, OVH, Selectel—ובונים ארכיטקטורות מרובות עננים ללא נעילת ספק. כאשר הנתונים אינם קשורים לתחום שיפוט RF, מגוון הספקים מתרחב. Hetzner הוא מקרה מיוחד: עלויות ה-VDS שלו נמוכות פי 3–5 מתצורות AWS או GCP דומות, מה שהופך אותו לבחירה הראשונה כאשר מרווח התשתית הוא קריטי. DigitalOcean מחזיקה ביציבות את קהל המפתחים בזכות מחירים צפויים ושירותים מנוהלים.
חלק מפלטפורמות הענן בולטות לעומסי ייצור. מניסיוננו, Hetzner ו-DigitalOcean מכסות את רוב התרחישים: Hetzner למשימות עתירות מחשוב שבהן מחיר ה-RAM וליבות המעבד חשוב; DigitalOcean לשירותים מנוהלים (Kubernetes, PostgreSQL, Redis) כאשר אין DevOps ייעודי. שני הספקים תומכים ב-Terraform, יש להם APIs בוגרים ו-SLAs יציבים. להלן פירוט של פתרונות מרכזיים.
פנו אלינו להערכת חשבון הענן הנוכחי שלכם וכדאיות המיגרציה.
Hetzner: כיצד למקסם ערך מחומרה משתלמת
Hetzner Cloud הוא ספק גרמני עם מרכזי נתונים בנירנברג, פלקנשטיין ופינלנד. CX21 (2 vCPU, 4 GB RAM) עולה כ-€3.49 לחודש. שרת ייעודי AX41 עם Ryzen 5 3600 ו-64 GB RAM הוא משתלם. זה משנה החלטות ארכיטקטוניות.
ספק ה-Terraform hetznercloud/hcloud הוא בוגר ויציב. תצורת קלאסטר בסיסית עם שלושה צמתי control-plane ו-pool של עובדים עם autoscaling:
resource "hcloud_server" "control_plane" { count = 3 name = "k8s-cp-${count.index}" image = "ubuntu-22.04" server_type = "cx31" location = "nbg1" ssh_keys = [hcloud_ssh_key.default.id] network { network_id = hcloud_network.k8s.id ip = "10.0.1.${count.index + 10}" } } resource "hcloud_load_balancer" "k8s_api" { name = "k8s-api-lb" load_balancer_type = "lb11" location = "nbg1" } לפי תיעוד Hetzner Cloud, מאזני עומס מנוהלים (lb11) מספקים איזון TCP/HTTP בעלות נמוכה מאוד. עבור שרת ה-API של K8s, אופטימלי: שלושה צמתי control-plane, Hetzner LB בחזית.
Kubernetes על Hetzner ללא שירות מנוהל — Managed K8s עדיין בגרסת בטא, לכן רוב הצוותים פורסים באמצעות resource "hcloud_server" "control_plane" { count = 3 name = "k8s-cp-${count.index}" image = "ubuntu-22.04" server_type = "cx31" location = "nbg1" ssh_keys = [hcloud_ssh_key.default.id] network { network_id = hcloud_network.k8s.id ip = "10.0.1.${count.index + 10}" } } resource "hcloud_load_balancer" "k8s_api" { name = "k8s-api-lb" load_balancer_type = "lb11" location = "nbg1" } או k3s. k3s מועדף: ה-control-plane חי ב-512 MB, Traefik מובנה, SQLite או etcd חיצוני.
CSI עבור נפחים מתמשכים—kubeadm. הוא יוצר Hetzner Volumes (דיסקי רשת) כ-PersistentVolume. StorageClass ברירת המחדל הוא hcloud-csi-driver. RWO, לא RWX—אם יש צורך ב-ReadWriteMany, השתמשו ב-NFS או באחסון אובייקטים.
רשת: Private Network היא חובה לייצור. כתובות IP ציבוריות נמצאות על כל שרת כברירת מחדל, אבל תעבורה בין שרתים בתוך Private Network היא חינמית ובלתי מוגבלת. לתעבורה דרך ממשק ציבורי יש מכסות ותעריפים. תקשורת pod-to-pod דרך Flannel או Calico צריכה לעבור דרך הרשת הפרטית, אחרת תקשורת פעילה בין צמתים (Kafka, Cassandra) תפתיע אתכם עם חשבונות.
Hetzner Object Storage תואם S3. נקודת קצה: hcloud-volumes. העלות ל-GB נמוכה ב-60–70% מ-AWS S3 Standard. גיבוי Velero עם Hetzner S3 כבקאנד:
# values.yaml для Velero configuration: provider: aws backupStorageLocation: bucket: k8s-backups config: region: fsn1 s3Url: https://fsn1.your-objectstorage.com s3ForcePathStyle: "true" כיצד להימנע מנעילת ספק בעבודה עם עננים חלופיים?
אסטרטגיית Multi-cloud אינה "להריץ הכל בכל מקום בו זמנית". מדובר בהחלטות ספציפיות: ייצור ב-Hetzner, CDN ו-DNS דרך Cloudflare, גיבויים ב-S3 של ספק אחר, CI/CD על ראנרים ייעודיים ב-DigitalOcean.
גישת Terraform workspace עם מודולים לשימוש חוזר שומרת על ניידות התשתית:
-
https://fsn1.your-objectstorage.com -
# values.yaml для Velero configuration: provider: aws backupStorageLocation: bucket: k8s-backups config: region: fsn1 s3Url: https://fsn1.your-objectstorage.com s3ForcePathStyle: "true" -
infrastructure/ modules/ k8s-cluster/ postgres/ object-storage/ environments/ prod-hetzner/ main.tf terraform.tfvars staging-do/ main.tf terraform.tfvars -
k8s-cluster -
terraform workspace select prod-hetzner && terraform apply
מודול terraform workspace select staging-do && terraform apply אחד עם ממשק מופשט (קלט: node_count, node_size, region) ושתי הטמעות לספקים שונים. terraform apply — ייצור, Error: Error acquiring the state lock Error message: ConditionalCheckFailedException: The conditional request failed — staging על DigitalOcean.
נעילת state היא קריטית: בלעדיה, terraform force-unlock <lock-id> מקביל משני מהנדסים משחית את ה-state — תראו שגיאה כמו kubectl apply -f postgres-claim.yaml ותצטרכו להריץ doctl עם בדיקת עקביות ידנית.
Crossplane הוא אלטרנטיבה ל-Terraform לניהול משאבי ענן מ-Kubernetes. ספקים עבור Hetzner ו-DigitalOcean זמינים. XRD מתאר הפשטות כמו "קלאסטר" או "מסד נתונים", הטמעה קונקרטית ב-Composition. עבור צוותים שכבר חיים ב-Kubernetes, אפשרות מעניינת: kubectl יוצר PostgreSQL מנוהל אצל הספק.
DigitalOcean: שירותים מנוהלים ללא כאב ראש
DigitalOcean ממתג את עצמו כ"הענן למפתחים"—וזה לא שיווק. DOKS (DigitalOcean Kubernetes Service) עולה תוך 5 דקות דרך UI או Terraform, DigitalOcean Managed PostgreSQL ו-Redis בעוד 10 דקות. עבור שירותי ייצור קטנים ללא DevOps ייעודי—פשרה סבירה.
doctl kubernetes cluster create prod \ --region fra1 \ --node-pool "name=workers;size=s-4vcpu-8gb;count=3;auto-scale=true;min-nodes=2;max-nodes=8" \ --version 1.29 הוא CLI שבאמת משתמשים בו לצד cluster-autoscaler:
infrastructure/ modules/ k8s-cluster/ postgres/ object-storage/ environments/ prod-hetzner/ main.tf terraform.tfvars staging-do/ main.tf terraform.tfvars DOKS תומך ב-doctl registry kubernetes-manifest | kubectl apply -f - מחוץ לקופסה. Container Registry משולב דרך # /etc/wireguard/wg0.conf на облачной стороне [Interface] PrivateKey = <cloud-private-key> Address = 10.100.0.1/24 ListenPort = 51820 [Peer] PublicKey = <onprem-public-key> AllowedIPs = 10.100.0.2/32, 192.168.1.0/24 Endpoint = <onprem-ip>:51820 PersistentKeepalive = 25 .
נקודת החולשה של DigitalOcean—גדלי מופעים. ה-Droplet החזק ביותר ללא מעבד ייעודי הוא 32 vCPU, 192 GB RAM. עבור משימות GPU או מחשוב כבד, יש צורך בספק אחר. עבור מחסנית web+API טיפוסית, זה די והותר.
השוואת מאפיינים מרכזיים:
| פרמטר | Hetzner Cloud | DigitalOcean |
|---|---|---|
| מחיר VDS (2 vCPU, 4 GB) | €3.49/חודש | $24/חודש |
| K8s מנוהל | בטא | DOKS (GA) |
| DB מנוהל | לא (התקנה ידנית) | PostgreSQL, Redis, MySQL |
| אחסון אובייקטים | תואם S3 | Spaces (תואם S3) |
| רשת פרטית | תעבורה חינמית | חינם באזור |
| מופעי GPU | לא | לא |
דוגמה מפורטת להשוואת עלויות
עבור שירות web טיפוסי (4 vCPU, 8 GB RAM, 100 GB SSD):
- AWS t3.large + EBS gp3: ~$90/חודש
- Hetzner CX31 (4 vCPU, 8 GB): ~€8/חודש
- DigitalOcean s-4vcpu-8gb: ~$48/חודש
Hetzner זול פי 3–5 מ-AWS עבור תצורות CPU/RAM מקבילות.
מתי Hetzner מתאים יותר מ-DigitalOcean?
בחרו ב-Hetzner אם עומס העבודה שלכם עתיר מחשוב (מסדי נתונים, Big Data, ראנרי CI) ויש לכם צוות DevOps פנימי לניהול Kubernetes או bare-metal. בחרו ב-DigitalOcean אם אתם צריכים שירותים מנוהלים (K8s, DB, Redis) ורוצים למזער עומס תפעולי. Hetzner מצטיין במחיר גולמי לליבה, DigitalOcean בזמן-לשוק. לתרחישים היברידיים, שלבו בין השניים: עיבוד אצווה כבד על Hetzner, APIs חזיתיים על DO.
תרחישים היברידיים
תשתית היברידית אינה נדירה: חלק מהשירותים על bare-metal (קריטיים לשהות או נפחי נתונים גדולים), חלק בענן (APIs ציבוריים, frontend, CDN). חיבור דרך מנהרת VPN או Wireguard.
Wireguard בין VPS של Hetzner לשרת on-premise:
Error: Error acquiring the state lock Error message: ConditionalCheckFailedException: The conditional request failed דרך מנהרה זו, פודים של Kubernetes ב-Hetzner יכולים לגשת ל-PostgreSQL או NFS on-premise. שהות המנהרה היא 10–30 אלפיות השנייה בהתאם למרחק. מקובל לשאילתות קריאה סינכרוניות ל-DB, לא לזמן אמת.
תהליך ומה כלול
הגישה שלנו: ניתוח → תכנון → הטמעה → בדיקות → פריסה.
- ביקורת תשתית נוכחית (3–5 ימים): הערכת עומס, רישיונות, תלויות. קביעה איזה ספק מתאים למשימות ספציפיות.
- תכנון (1–2 שבועות): מודולי Terraform, תוכניות רשת, צינורות CI/CD.
- הטמעה (1–4 שבועות תלוי במורכבות): פריסת Kubernetes, מסדי נתונים, אחסון אובייקטים.
- בדיקות (3–5 ימים): בדיקות עומס, בדיקת עמידות לתקלות.
- פריסה ותיעוד: מסירת תשתית, runbook, הדרכת צוות.
תוצרים
- תצורות Terraform לכל הסביבות
- קוד manifests של Kubernetes ו-Helm charts
- הגדרת Observability (Prometheus + Grafana, לוגים ב-Loki)
- תיעוד רשת, גיבוי, התאוששות מאסון
- הדרכת הצוות שלכם על התשתית החדשה
לוחות זמנים משוערים
| משימה | משך |
|---|---|
| ביקורת ובחירת ספק | 3–5 ימים |
| תשתית Terraform (רשת, שרתים, LB) | 1–2 שבועות |
| Kubernetes על Hetzner/DOKS | 1–2 שבועות |
| תזמור Multi-cloud | 2–4 שבועות |
| הקמת היבריד on-prem + ענן | 2–3 שבועות |
העלות מחושבת לאחר הביקורת—צרו קשר להערכה בת יום אחד.
אנחנו עובדים עם עננים חלופיים למעלה מ-5 שנים, השלמנו 30+ פרויקטי מיגרציה וארכיטקטורת Multi-cloud. מנהלי Kubernetes מוסמכים (CKA) ושותפי Terraform. אנו מבטיחים תיעוד ותמיכה לאחר המסירה.
טעויות אופייניות בעבודה עם Hetzner
- שימוש בכתובות IP ציבוריות לתעבורת pod-to-pod מוביל לחשבונות בלתי צפויים
- היעדר רשת פרטית עם צמתי עובדים רבים מאט את הרשת
- דילוג על הגדרת
hcloud-csi-driverפירושו שנפחים מתמשכים לא נוצרים - אי הגדרת
allowed_networksעבור Hetzner Volumes חושף אותם לאינטרנט הציבורי
קבלו ייעוץ על התשתית שלכם—צרו קשר ואנו נציע ארכיטקטורה ללא נעילת ספק.







