מעבר אלינוHeroku
מעבר מ-Heroku אל Emilion Cloud
אותו Git, אותם config vars, dump ל-Heroku Postgres. כל process ב-Procfile הופך לאפליקציה או לשירות Compose.
מה תלמדו
- איך dyno ו-add-on ממופים למסלול ומסד אצלנו
- איך מעתיקים config vars ו-Procfile
- איך מייצאים Heroku Postgres וחותכים DNS
למה לעבור
חיוב בשקלים
מסלול חודשי עם חשבונית מס. בלי dyno hours דולריים ובלי הפתעת add-on.
WordPress באותו חשבון
אם נשאר אתר שיווקי ב-cPanel, מעבירים אותו באשף. האפליקציה מ-Heroku מגיעה מ-Git.
VPS כשצריך שליטה
Shared לאתר קטן. Developer S/M/L כשצריך יותר CPU, דיסק או בידוד.
אותו ריפו שעובד היום
buildpack של Heroku קרוב ל-nixpacks או Dockerfile. רוב האפליקציות עולות בלי שכתוב.
מיפוי מושגים
חישוב
| Heroku | Emilion Cloud |
|---|---|
| App + dyno | אפליקציה במסלול Hobby / Shared / VPS |
| Procfile web | אפליקציית Git עם פקודת start |
| Procfile worker / clock | אפליקציה שנייה או שירות ב-Compose |
| Heroku Scheduler | משימת cron באפליקציה |
פריסה
| Heroku | Emilion Cloud |
|---|---|
| git push heroku main | push לענף שמחובר בלוח |
| Buildpack | nixpacks או Dockerfile |
| Release phase | סקריפט ב-build או פקודה לפני start |
| heroku.yml | הגדרות בלוח. אין קובץ מקביל |
מסדים
| Heroku | Emilion Cloud |
|---|---|
| Heroku Postgres | משאב PostgreSQL |
| Heroku Redis / Key-Value | משאב Redis |
| ClearDB / JawsDB MySQL | משאב MySQL או MariaDB |
הגדרה
| Heroku | Emilion Cloud |
|---|---|
| Config vars | משתני סביבה במסך Env |
| herokuapp.com domain | כתובת תצוגה של האפליקציה |
| Custom domain | דומיין במסלול Shared או VPS |
הכנה
יוצרים חשבון
Hobby לבדיקה. אתר עם דומיין ו-worker צריך Shared או VPS.
מייצאים מ-Heroku
שמרו את ה-Procfile, את ה-buildpack, ואת רשימת ה-add-ons. ייצאו config vars לקובץ מקומי. אל תעלו את הקובץ לריפו.
heroku config -s -a <APP> > heroku.env
שחזור אצלנו
יוצרים מסדים
Heroku Postgres ו-Redis הופכים למשאבים בלוח. יוצרים אותם לפני הפריסה כדי שה-start הראשון כבר יקבל DATABASE_URL.
web ו-worker בנפרד
process בשם web הוא האפליקציה הראשית. worker או clock: אפליקציית Git שנייה עם אותה פקודה, או שירות ב-Compose. Cron של Scheduler מוגדר במסך cron.
מעתיקים config vars
העתיקו מ-heroku.env למסך Env. החליפו DATABASE_URL ו-REDIS_URL בכתובות החדשות. השאירו PORT בידי הפלטפורמה.
חיתוך
מגבים את Heroku Postgres
צרו גיבוי והורידו אותו לפני העצירה.
heroku pg:backups:capture -a <APP> heroku pg:backups:download -a <APP>מייבאים אלינו
latest.dump הוא הפורמט הרגיל של Heroku. משחזרים לכתובת החיצונית של המסד אצלנו.
pg_restore --verbose --no-acl --no-owner -d <EMILION_POSTGRES_URL> latest.dumpעוצרים dynos ומעדכנים DNS
heroku ps:scale web=0 אחרי שהאתר אצלנו עונה. אחר כך מחברים דומיין במסך הדומיינים ומעדכנים רשומות.
heroku ps:scale web=0 worker=0 -a <APP>
תקלות נפוצות
buildpack לא מזוהה
הוסיפו Dockerfile, או כתבו פקודות build ו-start במפורש.
release phase לא רץ
העבירו migrate לפקודת ה-build או לסקריפט שרץ פעם אחת אחרי הפריסה.
האפליקציה לא עולה
Heroku מזריק PORT. גם כאן חייבים להאזין לו, לא ל-5000 קבוע.
הצעד הבא
בדקו worker ו-cron אחרי החיתוך. אם נשאר אתר וורדפרס אצל ספק ישן, השתמשו באשף המיגרציות.
נתקעתם? כתבו אלינו: support@emilion.co.il