מעבר אלינו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. רוב האפליקציות עולות בלי שכתוב.

מיפוי מושגים

חישוב
HerokuEmilion Cloud
App + dynoאפליקציה במסלול Hobby / Shared / VPS
Procfile webאפליקציית Git עם פקודת start
Procfile worker / clockאפליקציה שנייה או שירות ב-Compose
Heroku Schedulerמשימת cron באפליקציה
פריסה
HerokuEmilion Cloud
git push heroku mainpush לענף שמחובר בלוח
Buildpacknixpacks או Dockerfile
Release phaseסקריפט ב-build או פקודה לפני start
heroku.ymlהגדרות בלוח. אין קובץ מקביל
מסדים
HerokuEmilion Cloud
Heroku Postgresמשאב PostgreSQL
Heroku Redis / Key-Valueמשאב Redis
ClearDB / JawsDB MySQLמשאב MySQL או MariaDB
הגדרה
HerokuEmilion Cloud
Config varsמשתני סביבה במסך Env
herokuapp.com domainכתובת תצוגה של האפליקציה
Custom domainדומיין במסלול Shared או VPS

הכנה

  1. יוצרים חשבון

    Hobby לבדיקה. אתר עם דומיין ו-worker צריך Shared או VPS.

  2. מייצאים מ-Heroku

    שמרו את ה-Procfile, את ה-buildpack, ואת רשימת ה-add-ons. ייצאו config vars לקובץ מקומי. אל תעלו את הקובץ לריפו.

    heroku config -s -a <APP> > heroku.env

שחזור אצלנו

  1. יוצרים מסדים

    Heroku Postgres ו-Redis הופכים למשאבים בלוח. יוצרים אותם לפני הפריסה כדי שה-start הראשון כבר יקבל DATABASE_URL.

  2. web ו-worker בנפרד

    process בשם web הוא האפליקציה הראשית. worker או clock: אפליקציית Git שנייה עם אותה פקודה, או שירות ב-Compose. Cron של Scheduler מוגדר במסך cron.

  3. מעתיקים config vars

    העתיקו מ-heroku.env למסך Env. החליפו DATABASE_URL ו-REDIS_URL בכתובות החדשות. השאירו PORT בידי הפלטפורמה.

חיתוך

  1. מגבים את Heroku Postgres

    צרו גיבוי והורידו אותו לפני העצירה.

    heroku pg:backups:capture -a <APP>
    heroku pg:backups:download -a <APP>
  2. מייבאים אלינו

    latest.dump הוא הפורמט הרגיל של Heroku. משחזרים לכתובת החיצונית של המסד אצלנו.

    pg_restore --verbose --no-acl --no-owner -d <EMILION_POSTGRES_URL> latest.dump
  3. עוצרים dynos ומעדכנים DNS

    heroku ps:scale web=0 אחרי שהאתר אצלנו עונה. אחר כך מחברים דומיין במסך הדומיינים ומעדכנים רשומות.

    heroku ps:scale web=0 worker=0 -a <APP>

תקלות נפוצות

  1. buildpack לא מזוהה

    הוסיפו Dockerfile, או כתבו פקודות build ו-start במפורש.

  2. release phase לא רץ

    העבירו migrate לפקודת ה-build או לסקריפט שרץ פעם אחת אחרי הפריסה.

  3. האפליקציה לא עולה

    Heroku מזריק PORT. גם כאן חייבים להאזין לו, לא ל-5000 קבוע.

הצעד הבא

בדקו worker ו-cron אחרי החיתוך. אם נשאר אתר וורדפרס אצל ספק ישן, השתמשו באשף המיגרציות.

נתקעתם? כתבו אלינו: support@emilion.co.il