Deployment on Hosting Platforms (Firebase, Heroku, GitHub Pages, etc.)

Deployment projectને online મૂકે છે જેથી real users તેનો ઉપયોગ કરી શકે. Production build બનાવીને Firebase Hosting, Heroku અથવા GitHub Pages જેવી platform પર host કરવાથી laptopનું code live application બને છે.

10 min read · 7 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

Laptopથી આખી દુનિયા સુધી

માત્ર laptop પર ચાલતો project સંપૂર્ણ finished નથી. Deployment projectને online મૂકે છે, જ્યાં real users અને evaluators તેને link દ્વારા access કરી શકે છે. આ step તમારા codeને live applicationમાં ફેરવે છે.

આ lesson Firebase Hosting, Heroku અને GitHub Pages જેવી platforms પર deploy કરવાનું સમજાવે છે. Full-stack developmentમાં તમે Firebase deployment જોયું હતું; અહીં તે project complete કરવાની પ્રક્રિયાનો ભાગ છે. Deployed project localhost demo કરતાં ઘણો વધુ convincing હોય છે, તેથી તેને પૂરતો સમય રાખીને deploy કરો અને વહેલું test કરો.

Follow along

Project deploy કરવાનો general flow

  1. Production build તૈયાર કરો Development versionને બદલે appનું optimised production build બનાવો, જેમ કે Angular માટે ng build.
  2. Production માટે configure કરો Environment variables, production database connection અને જરૂરી settings set કરો; secrets safe રાખો.
  3. Hosting platform પસંદ કરો App type પ્રમાણે પસંદ કરો: Firebase Hosting web front end માટે, Heroku full app/backend માટે અને GitHub Pages static site માટે.
  4. Deploy કરો Platform પર upload અથવા deploy કરો, જેમ કે firebase deploy; પછી public URL પરથી app serve થશે.
  5. Live version test કરો Deployed app ખરેખર કામ કરે છે કે નહીં check કરો, કારણ કે local અને production behaviour અલગ હોઈ શકે છે.

Theory

ક્યાં host કરવું તે પસંદ કરવું

Platformને app type સાથે match કરો. Firebase Hosting web front ends અને static content માટે ઉત્તમ છે, ખાસ કરીને તમે auth અથવા data માટે Firebase વાપરતા હો ત્યારે. Heroku જેવી platform full applications, જેમાં back-end servers પણ હોય, host કરી શકે છે. GitHub Pages static websites માટે યોગ્ય છે, એટલે pure front end જ્યાં server જરૂરી નથી.

Static portfolio site GitHub Pages પર જઈ શકે, Firebase backendવાળી Angular app Firebase Hosting પર અને databaseવાળી Node/Express app servers ચલાવતી platform પર જઈ શકે. ઘણી platforms student projects માટે free tiers આપે છે. દરેક platformના exact steps અલગ હોઈ શકે છે, પરંતુ overall pattern same છે: build, configure, deploy. તમે જે બનાવ્યું છે તેના માટે યોગ્ય host પસંદ કરો.

Watch out

વહેલું deploy કરો અને live version test કરો

બે બાબતો યાદ રાખો. પ્રથમ, presentationની સવારે નહીં પરંતુ વહેલું deploy કરો. Deployment localમાં ન દેખાયેલી સમસ્યાઓ બહાર લાવી શકે છે: missing configuration, production database તૈયાર ન હોવું, environment differences અથવા secrets provide ન કરેલા હોવા. એક અઠવાડિયા પહેલાં આ સમસ્યા fix કરી શકાય છે; એક રાત પહેલાં તે nightmare બની શકે છે.

બીજું, deployed versionને thoroughly test કરો. 'મારા laptop પર ચાલે છે' અને 'live કામ કરે છે' એક વાત નથી. Production secrets, જેમ કે keys અને passwords, safe રાખો; તેને hard-code અથવા publicly expose ન કરો. સમય પહેલાં deploy કરીને live app ખરેખર ચાલે છે તેની ખાતરી કરો.

Quiz

Presentationના થોડા સમય પહેલાં જ deploy કરવાને બદલે project વહેલું deploy કેમ કરવું જોઈએ?

  1. કારણ કે deployment હંમેશા instantly અને perfectly કામ કરે છે
  2. કારણ કે deployment localમાં ન દેખાયેલી missing config, production database અને environment differences જેવી problems બતાવી શકે છે, અને વહેલું deploy કરવાથી તેને fix કરવા સમય મળે છે
  3. કારણ કે project online હોવો જરૂરી નથી
  4. Project unfinished દેખાય તે માટે
Show the answer

કારણ કે deployment localમાં ન દેખાયેલી missing config, production database અને environment differences જેવી problems બતાવી શકે છે, અને વહેલું deploy કરવાથી તેને fix કરવા સમય મળે છે

વહેલું deploy કરવું જોઈએ કારણ કે productionમાં missing configuration, production database setup, environment differences અથવા secrets જેવી problems બહાર આવી શકે છે. વહેલું deploy કરવાથી presentation પહેલાં problem શોધવા અને fix કરવા સમય મળે છે. Option A ખોટું છે: first deployment હંમેશા perfect હોય એવું નથી, તેથી last-minute deployment risky છે. Option C ખોટું છે: live deployed project localhost demo કરતાં વધુ convincing હોય છે. Option D nonsense છે. 'Works on my laptop' અને 'works live' અલગ બાબતો છે.

Think first

Deployed project laptop કરતાં અલગ behave કેમ કરી શકે?

તમારા machine પર project perfectly ચાલ્યો. Deployed version break અથવા અલગ કેમ થઈ શકે? પછી tap.

Show the answer

કારણ કે laptop અને hosting platform બે DIFFERENT ENVIRONMENTS છે, જેમાં configurations અલગ હોય છે. Local setup પર silently depend કરતું code productionમાં fail થઈ શકે છે.

Configuration: Laptop પર environment variables, database connections, API keys અને settings પહેલેથી set હોઈ શકે છે. Production environment શરૂઆતમાં blank હોય છે; તેથી તે values explicitly અને correctly set ન કરો તો app fail થઈ શકે છે. Database: Localમાં populated development database ચાલે છે, પરંતુ production માટે real database, સાચી connection details અને proper setup જોઈએ.

Paths અને build: Production build optimised હોય છે અને development buildથી અલગ structure ધરાવે છે. File paths, base URLs અથવા server rootની assumptions localમાં કામ કરે પણ deployed environmentમાં ન કરે. Network અને security: Production real internet, HTTPS, CORS rules અને stricter security સાથે ચાલે છે, તેથી localમાં ચાલતી cross-origin calls અથવા insecure assumptions block થઈ શકે છે.

Dependencies અને platform પણ અલગ હોઈ શકે છે: operating system, runtime version અથવા resources બદલાયેલા હોઈ શકે છે. એટલે 'works on my machine' famous problem છે: machineનું environment પણ successનો ભાગ હતું, પરંતુ productionમાં તે આપમેળે મળતું નથી.

Remedy છે વહેલું deploy કરવું અને live version test કરવું. Production config set કરો, database provision કરો, paths સુધારો અને security issues handle કરો. Deployment માત્ર code copy કરવું નથી; તે નવા environmentમાં જવું છે.

Summary

Key takeaways

  • Deployment projectને online મૂકે છે જેથી real people તેનો ઉપયોગ કરી શકે અને laptopનું code live application બને.
  • General flow: production build બનાવો, production settings/database/secrets configure કરો, hosting platform પસંદ કરો, deploy કરો અને live version test કરો.
  • Platform app type પ્રમાણે પસંદ કરો: Firebase Hosting web front end માટે, Heroku full app/backend માટે અને GitHub Pages static site માટે.
  • ઘણી platforms student projects માટે free tiers આપે છે.
  • Presentation પહેલાં વહેલું deploy કરો, કારણ કે config, production database અને environment differences જેવી problems બહાર આવી શકે છે.
  • Deployed version thoroughly test કરો અને production secrets safe રાખો.
  • Memory hook: build, configure, deploy, test live; production laptopથી અલગ environment છે.

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Documentation and Deployment

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Deployment on Hosting Platforms (Firebase, Heroku, GitHub Pages, etc.) · Project (Major-16) · Gri-Learn