Module 10: Deployment & Next Steps 🚀


1. Deployment: ලෝකයට විවෘත කිරීම

Deployment යනු අපේ local machine එකේ (localhost) නිර්මාණය කළ application එක, අන්තර්ජාලය හරහා ඕනෑම කෙනෙකුට පිවිසිය හැකි live server එකක ස්ථාපනය කිරීමේ ක්‍රියාවලියයි. මේ දක්වා අප නිර්මාණය කළ Notes API එක ක්‍රියාත්මක වූයේ අපේ පරිගණකයේ පමණි. Deployment කිරීමෙන් පසු, frontend application එකකට හෝ mobile app එකකට ලෝකයේ ඕනෑම තැනක සිට අපේ API එක සමඟ සන්නිවේදනය කිරීමට හැකි වේ.

Deployment සඳහා සූදානම් වීම

Deploy කිරීමට පෙර, කරුණු කිහිපයක් පිළිබඳව සැලකිලිමත් විය යුතුය.


2. Deployment Options: යෙදුම ස්ථාපනය කළ හැකි තැන්

Node.js application එකක් deploy කිරීමට ප්‍රධාන ක්‍රම කිහිපයක් ඇත.

Render සමඟ Deploy කිරීම (Step-by-Step)

Render යනු නොමිලේම web applications deploy කිරීමට ඉඩ සලසන ඉතා ජනප්‍රිය PaaS එකකි. අපේ Notes API එක Render මත deploy කරමු.

  1. GitHub Repository එකක් සාදන්න: ඔබේ Notes API project එක GitHub repository එකකට push කරන්න. (.gitignore file එකේ node_modules සහ .env ඇතුළත් කිරීමට අමතක නොකරන්න).
  2. Render Account එකක් සාදන්න: render.com වෙත ගොස්, ඔබේ GitHub account එක සමඟ ලියාපදිංචි වන්න.
  3. New Web Service: Render dashboard එකේ, "New +" බොත්තම ඔබා "Web Service" තෝරන්න.
  4. Connect Repository: ඔබේ GitHub account එක connect කර, deploy කිරීමට අවශ්‍ය Notes API repository එක තෝරන්න.
  5. Settings:
    • Name: ඔබේ application එකට කැමති නමක් දෙන්න (e.g., `sinhala-notes-api`).
    • Region: ඔබට ආසන්නම region එක තෝරන්න (e.g., Singapore).
    • Branch: `main` (හෝ `master`).
    • Root Directory: (හිස්ව තබන්න).
    • Runtime: `Node`.
    • Build Command: npm install.
    • Start Command: node server.js.
  6. Add Environment Variables: "Advanced" settings වල, "Environment Variables" යටතේ, ඔබේ .env file එකේ තිබූ variables (`MONGO_URI`, `JWT_SECRET`) එකින් එක Add කරන්න.
  7. Create Web Service: "Create Web Service" බොත්තම ඔබන්න. Render විසින් ඔබේ code එක pull කර, dependencies install කර, application එක deploy කිරීමට පටන් ගනී.
  8. Done! මිනිත්තු කිහිපයකට පසු, deployment එක සාර්ථක වූ විට, Render විසින් ඔබට live URL එකක් ලබා දෙනු ඇත. දැන් ඔබට එම URL එක හරහා ඔබේ API එකට පිවිසිය හැක.

3. Scaling with PM2 & Nginx (Advanced)

PM2: Process Manager

Production server එකකදී, අපි node server.js ලෙස application එක run කරන්නේ නැහැ. යම් error එකක් නිසා application එක crash වුවහොත්, එය නැවත auto-restart වන්නේ නැහැ. PM2 යනු මෙම ගැටලුවට විසඳුමයි. එය Node.js සඳහා වූ production process manager එකකි.

VPS එකකදී, PM2 install කර, pm2 start server.js ලෙස application එක run කිරීම සම්මත ක්‍රමයයි.

Nginx: Reverse Proxy

Nginx යනු අධි-ක්‍රියාකාරී web server එකකි. Node.js applications ඉදිරියේ මෙය **reverse proxy** එකක් ලෙස බහුලව භාවිතා වේ. Client ගෙන් එන requests (port 80/443) මුලින්ම භාරගන්නේ Nginx විසිනි. පසුව Nginx එම requests, අපේ Node.js app එක run වන port එකට (e.g., port 5000) යොමු කරයි. මෙමගින් SSL/TLS termination, load balancing, serving static files වැනි කාර්යයන් වඩාත් කාර්යක්ෂමව සිදු කළ හැක.


4. Future Learning Paths: මීළඟට කුමක්ද?

සුභ පැතුම්! ඔබ Node.js සහ Express backend development හි මූලික කරුණු සාර්ථකව ඉගෙනගෙන අවසන්.

දැන් ඔබට ඔබේ දැනුම තවත් පුළුල් කරගත හැකි මාර්ග කිහිපයක් මෙන්න:

නිරන්තරයෙන් අලුත් දේ ඉගෙන ගැනීම සහ ප්‍රායෝගිකව projects නිර්මාණය කිරීම, දක්ෂ developer කෙනෙක් වීමේ යතුරයි. ඔබට ජය!


Go Back to Module 9 Back to Course Home