Theory
आपके Laptop से World तक
एक project जो सिर्फ़ आपके laptop पर run होता है truly finished नहीं है। Deployment इसे online रखता है, एक platform पर hosted जहाँ real people, आपके evaluators सहित, इसे एक link से access कर सकते हैं। यही वह step है जो आपके code को एक live application में बदलता है।
यह lesson Firebase Hosting, Heroku, और GitHub Pages जैसे platforms पर deploy करना cover करता है। आपने full-stack development में Firebase deployment देखा; यहाँ यह आपके project finish करने का हिस्सा है। एक deployed project एक localhost demo से कहीं ज़्यादा convincing है, तो यह करना well worth है, और test करने के लिए enough early करना।
Follow along
अपना Project Deploy करना (General Flow)
- एक production build prepare कीजिए अपनी app का एक optimised build create कीजिए (जैसे Angular के लिए ng build), development version नहीं।
- Production के लिए configure कीजिए Production settings set कीजिए: environment variables, production database connection, और secrets safe रखिए।
- एक hosting platform choose कीजिए Platform को अपनी app से match कीजिए: Firebase Hosting (web front end), Heroku (full app/backend), GitHub Pages (static site)।
- Deploy कीजिए Platform पर upload/deploy कीजिए (जैसे firebase deploy); यह आपकी app को एक public URL पर serve करता है।
- Live version test कीजिए Check कीजिए deployed app काम करता है, यह आपकी local machine से differently behave कर सकता है।
Theory
कहाँ Host करना है Choose करना
Platform को अपनी app type से match कीजिए। Firebase Hosting web front ends और static content के लिए excellent है, especially अगर आप पहले से auth या data के लिए Firebase इस्तेमाल करते हैं। Heroku (और similar) full applications host करता है, back-end servers सहित। GitHub Pages static websites के लिए ideal है (pure front end कोई server के बिना)।
तो एक static portfolio site GitHub Pages पर जा सकती है, Firebase backend वाली एक Angular app Firebase Hosting पर, और एक database वाली एक Node/Express app एक platform पर जो servers run करता है। बहुत सारे एक student project के लिए suitable free tiers offer करते हैं। हर platform के steps पढ़िए, ये अलग हैं, पर pattern (build, configure, deploy) same है। वह host pick कीजिए जो fit करता है आपने क्या build किया।
Watch out
Early Deploy कीजिए, और Live Version Test कीजिए
दो cautions। पहला, early deploy कीजिए, अपनी presentation की सुबह नहीं। Deployment अक्सर problems reveal करता है जो locally नहीं दिखीं: missing configuration, एक set up नहीं की गई production database, environment differences, secrets जो provide नहीं हुए। इन्हें night before discover करना एक nightmare है; इन्हें एक week early discover करना एक fixable inconvenience है।
दूसरा, deployed version thoroughly test कीजिए, यह आपकी local machine से differently behave कर सकता है। 'यह मेरे laptop पर काम करता है' 'यह live काम करता है' के same नहीं है। और production secrets (keys, passwords) safe रखिए, कभी hard-coded या exposed नहीं। Time के साथ deploy कीजिए spare, और present करने से पहले confirm कीजिए live app really काम करता है।
Quiz
अपनी presentation से ठीक पहले की बजाय अपना project early deploy क्यों करना चाहिए?
- क्योंकि deployment हमेशा instantly और perfectly काम करता है
- क्योंकि deployment अक्सर problems reveal करता है जो locally नहीं दिखीं (missing config, production database, environment differences), तो early deploy करना इन्हें fix करने का time देता है
- क्योंकि project को online होने की ज़रूरत नहीं
- Project को unfinished दिखाने के लिए
Show the answer
क्योंकि deployment अक्सर problems reveal करता है जो locally नहीं दिखीं (missing config, production database, environment differences), तो early deploy करना इन्हें fix करने का time देता है
आपको early deploy करना चाहिए क्योंकि deployment frequently वे problems surface करता है जो locally run करते हुए कभी नहीं दिखीं, missing production configuration, production के लिए set up न हुई एक database, environment differences, provide न हुए secrets, और early deploy करना आपको presentation से पहले इन्हें find और fix करने का time देता है। Option A dangerously wrong है: deployment शायद ही कभी पहली बार perfectly काम करता है, यही exactly वजह है last-minute deployment risky है। Option C wrong है: एक live, deployed project एक localhost demo से कहीं ज़्यादा convincing है और अक्सर expected है। Option D nonsense है। यह lesson 'early integrate कीजिए' को mirror करता है: time के साथ deploy कीजिए spare और live version test कीजिए, क्योंकि 'मेरे laptop पर काम करता है' 'live काम करता है' नहीं है।
Think first
एक Deployed Project अक्सर आपके Laptop वाले से Differently क्यों Behave करता है?
यह आपकी machine पर perfectly run हुआ। Deployed version क्यों break हो सकता है या अलग हो सकता है? फिर tap कीजिए।
Show the answer
क्योंकि आपका laptop और hosting platform DIFFERENT ENVIRONMENTS हैं, अलग configurations के साथ, और code जो quietly आपके local setup पर rely करता है fail हो सकता है जब वह setup production में reproduce नहीं होता। कई तरह की difference यह cause करती हैं। CONFIGURATION: आपकी machine पर आपके पास environment variables, database connections, API keys, और settings हो सकती हैं जो 'बस काम करती हैं' क्योंकि आपने इन्हें बहुत पहले set up किया, पर production environment blank start होता है, तो अगर ये explicitly provide (और production के लिए correctly provide) नहीं होतीं, deployed app fail होती है, यह सबसे common surprises में से एक है। DATABASE: locally आप शायद एक development database इस्तेमाल करते हैं जो पहले से populated और reachable है; production में आपको एक real, correctly configured database सही connection details के साथ चाहिए, और इसे set up करना भूलना (या wrong एक की तरफ़ point करना) live app तोड़ देता है। PATHS और BUILD: production BUILD development version से differently optimised और structured होता है, और file paths, base URLs, या server root के बारे में assumptions जैसी चीज़ें अलग हो सकती हैं, तो जो locally resolve होता है वह deploy होने पर resolve नहीं हो सकता। NETWORK और SECURITY: production real internet पर HTTPS, CORS rules, और stricter security के साथ run होता है, तो cross-origin calls या insecure assumptions जो locally tolerated थे अब block हो सकते हैं। DEPENDENCIES और PLATFORM: hosting platform आपके laptop से अलग operating system, runtime version, या अलग available resources run कर सकता है, hidden assumptions expose करते हुए। यह सब मतलब है 'मेरी machine पर काम करता है' एक notorious phrase है exactly इसलिए क्योंकि machine का particular environment silently यह काम करने का हिस्सा था, और वह environment automatically production में present नहीं है। Remedy exactly वही advice है जो दिया गया: EARLY deploy कीजिए तो ये environment differences तब surface हों जब आपके पास इन्हें fix करने का time है (production config set करना, database provision करना, paths correct करना, security handle करना), और deployed version को thoroughly TEST कीजिए local वाले पर trust करने की बजाय। यह समझना कि deployment एक नए environment में एक move है, सिर्फ़ एक copy नहीं, यही है जो एक scary last-minute failure को एक manageable, anticipated step में बदल देता है। Different environment, different behaviour, तो early deploy कीजिए और live test कीजिए।
Summary
Key takeaways
- Deployment आपके project को online रखता है, hosted तो real people इसे access कर सकें, आपके laptop के code को एक live application में बदलते हुए।
- General flow: एक production build prepare कीजिए, production के लिए configure कीजिए (settings, database, secrets), एक hosting platform choose कीजिए, deploy कीजिए, और live version test कीजिए।
- Platform को अपनी app से match कीजिए: Firebase Hosting (web front end), Heroku (full app/backend), GitHub Pages (static site)।
- बहुत सारे platforms एक student project के लिए suitable free tiers offer करते हैं।
- अपनी presentation से ठीक पहले नहीं, early deploy कीजिए, क्योंकि deployment अक्सर problems reveal करता है (config, production database, environment differences) जिन्हें fix करने के लिए time चाहिए।
- Deployed version thoroughly test कीजिए और production secrets safe रखिए; 'मेरे laptop पर काम करता है' 'live काम करता है' नहीं है।
- Memory hook: build कीजिए, configure कीजिए, deploy कीजिए, live test कीजिए; early deploy कीजिए क्योंकि production आपके laptop से एक different environment है।