காஃபி குடிப்பதற்கு முன்பு ஒரு பேக்கெண்டை உருவாக்க நான் முயற்சித்த நாள்
திங்கட்கிழமை காலையில் ஒரு பேக்கெண்டை நிறுவி, உங்களுடைய API கேட்வே 403 ஃபோர்பிட்டனில் விடுமுறையில் உள்ளது என்றும் உங்கள் டேட்டாபேஸுக்கு உறுதிப்பாடு சிக்கல்கள் உள்ளன என்றும் உணர்ந்திருக்கிறீர்களா? அது ஒரு காலத்தில் நான் தான். எனக்கு ஒரு சிறிய எண்ட்பாயிண்ட் தேவைப்பட்டது—சற்று கனிவான /hello—ஏதோ ஒரு வகையில் ஹாக்வார்ட்ஸ் வீட்டைத் தேர்ந்தெடுப்பது போல் VPCகள் பற்றி விவாதித்துக்கொண்டிருந்தேன்.
நல்ல செய்தி என்னவென்றால்: லவபிள் கிளவுட் ("பேக்கெண்டை உருவாக்குதல்" பகுதியைச் செய்ய முயற்சிக்கிறது…சரி…விரும்பத்தக்கது. அல்லது குறைந்தபட்சம் கோபத்தை உண்டாக்கும் அளவுக்கு குறைவாக இருக்க வேண்டும். உங்களிடம் 30 நிமிடங்கள், Wi‑Fi இணைப்பு இருந்தால், சில உருவகங்களுக்குச் சகிப்புத்தன்மை இருந்தால், லவபிள் கிளவுட் மூலம் ஒரு பேக்கெண்டை உருவாக்குவது எப்படி என்பதை படிப்படியாக உங்களுக்குக் காண்பிப்பேன், எதைக் கவனிக்க வேண்டும், மேலும் அதை எண்ட்பாயிண்ட்களின் ஸ்பாகெட்டி கிண்ணமாக மாறாமல் எப்படி வைத்திருப்பது என்பதையும் விளக்குகிறேன்.
முக்கியமான விஷயம்: இது ஒரு நடைமுறை, நேரடியான வழிகாட்டி. விற்பனையாளர் கவிதை குறைவாகவும், "இங்கே கிளிக் செய்யவும், இதை தட்டச்சு செய்யவும், அதைச் செய்ய வேண்டாம்" என்பது அதிகமாகவும் இருக்கும். ஆமாம், நாங்கள் உண்மையான ஒன்றை அனுப்பப் போகிறோம்: அங்கீகாரம், டேட்டாபேஸ், சுற்றுச்சூழல் ரகசியங்கள், வரிசைப்படுத்தல், கண்காணிப்பு மற்றும் அளவிடுவதற்கு விரைவான பாதை கொண்ட ஒரு வேலை செய்யும் API. சிற்றுண்டி எடுத்துக்கொள்ளுங்கள். நாங்கள் அனுப்பிக் கொண்டிருக்கிறோம்.
லவபிள் கிளவுட் என்றால் என்ன, உங்கள் பேக்கெண்ட் ஏன் அக்கறை கொள்ள வேண்டும்?
லவபிள் கிளவுட்டை நவீன பேக்கெண்ட் ஸ்விஸ் இராணுவ கத்தி என்று நினைத்துப் பாருங்கள்: சர்வர்லெஸ் செயல்பாடுகள், API ரூட்டிங், டேட்டாபேஸ் இணைப்புகள், சுற்றுச்சூழல் ரகசியங்கள் மற்றும் CI/CD—அனைத்தும் YAML கோப்புகளின் தூசி நிறைந்த மிருகக்காட்சிசாலையை பராமரிப்பதில் இருந்து உங்களைக் காப்பாற்றுவதற்காக உருவாக்கப்பட்டவை.
- நீங்கள் குறியீட்டை எழுதுகிறீர்கள் (Node/TypeScript, Python—இப்போது என்ன டிரெண்டில் உள்ளது என்பதை ஆவணங்களில் பார்க்கவும்).
- நீங்கள் வழிகளை வரையறுக்கிறீர்கள் (REST). நீங்கள் ஆடம்பரமாக இருந்தால், நீங்கள் GraphQL ஐ அடுக்கலாம் அல்லது JSON உடன் ஒட்டிக்கொள்ளலாம்.
- நீங்கள் நிர்வகிக்கப்படும் டேட்டாபேஸை இணைக்கிறீர்கள் (PostgreSQL இங்கே வழக்கமான உயர்நிலைப் பள்ளி காதலி).
- நீங்கள் வரிசைப்படுத்துகிறீர்கள். அது விரிவடைகிறது. அதிக சேவையகங்களைச் சேர்க்க அதிகாலை 3 மணிக்கு எழுந்திருப்பதைப் பற்றி கவலைப்படுவதை நிறுத்துகிறீர்கள்.
உங்கள் மன மாதிரியான "பேக்கெண்ட்" என்பது: எண்ட்பாயிண்ட்கள் + அங்கீகாரம் + டேட்டா + வரிசைப்படுத்துதல் + பதிவுகள் என்றால், லவபிள் கிளவுட் குறைவான பீப் சத்தங்கள் மற்றும் அதிகமான ரசீதுகளுடன் கூடிய விரைவு பாதையாக இருக்க முயற்சிக்கிறது.
லவபிள் கிளவுட் மூலம் பேக்கெண்டை உருவாக்குவதற்கான விளையாட்டுத் திட்டம்
- லவபிள் கிளவுட் திட்டம் மற்றும் ரெப்போவை உருவாக்கவும்.
- ஒரு பொது மற்றும் ஒரு பாதுகாக்கப்பட்ட பாதையுடன் API ஐ ஸ்காஃபோல்ட் செய்யவும்.
- PostgreSQL டேட்டாபேஸைச் சேர்த்து இடமாற்றத்தை இயக்கவும்.
- சுற்றுச்சூழல் மாறிகள் மற்றும் ஒரு எளிய ORM ஐ வயரிங் செய்யவும்.
- அங்கீகாரத்தைச் சேர்க்கவும் (JWT, செஷன் டோக்கன்கள் அல்லது OAuth—உங்கள் விருப்பம்).
- ஒரு ஸ்டேஜிங் சூழலுக்கு வரிசைப்படுத்தவும்.
- கண்காணிப்பு/பதிவு செய்தல் மற்றும் ஒரு தானியங்கி சோதனை ஆகியவற்றைச் சேர்க்கவும்.
- உங்கள் எதிர்காலத்தின் இதயத்தை உடைக்காமல் உற்பத்தியை மேம்படுத்தவும்.
ஆமாம், இது நிறைய இருப்பதாகத் தெரிகிறது. இல்லை, இது வாரம் முழுவதும் எடுக்காது.
படி 1: உங்கள் லவபிள் கிளவுட் திட்டத்தை சுழற்றுங்கள் (A.K.A. புதிய திட்டத்தின் வாசனை)
- ஒரு கணக்கை உருவாக்கி புதிய திட்டத்தைத் தொடங்கவும். நீங்கள் பின்னர் அடையாளம் காணக்கூடிய ஏதாவது ஒரு பெயரை இடவும்—"not_final_backend_v7" ஒரு பொறி.
- உங்கள் ரன்டைமைத் தேர்வு செய்யவும் (Node/TypeScript ஆகியவை APIகளுக்கான வழக்கமான கூட்டத்தை மகிழ்விப்பவை).
- கிடைத்தால் டெம்ப்ளேட்டைத் தேர்ந்தெடுக்கவும்: வெற்றுப் பக்க பயத்தை விட “REST API” அல்லது “சர்வர்லெஸ் செயல்பாடுகள்” உங்களை வேகமாக முன்னேற்றும்.
உங்களுக்கு ஒரு Git ரெப்போ (உங்களுடையது அல்லது அவர்களுடையது) மற்றும் டெவ் சூழல் கிடைக்கும். நீங்கள் உடனடியாக கிளையமைத்தால் போனஸ் புள்ளிகள் (“feature/hello-api”) எனவே உங்கள் பிரதான கிளை தவறுகளின் வாழும் அருங்காட்சியகமாக மாறாது.
படி 2: உங்கள் முதல் எண்ட்பாயிண்டை ஸ்காஃபோல்ட் செய்யவும் (ஏனெனில் ஹலோ வேர்ல்ட் இன்னும் அசத்துகிறது)
அடிப்படை பாதையை உருவாக்கவும்: /api/hello. அதை முட்டாள்தனமாகவும் மகிழ்ச்சியாகவும் வைத்திருங்கள்.
- பாதை கோப்பு:
routes/hello.ts
- செயல்பாடு:
{ message: "Hello, world" } போன்ற JSON ஐ வழங்குகிறது
- உள்ளூரில் சோதிக்கவும்: cURL அல்லது உங்களுக்குப் பிடித்த HTTP கிளையன்ட். உங்களுக்கு 200 கிடைக்கவில்லை என்றால், உங்கள் படிகளைத் திருப்பிப் பார்த்து பதிவுகளைச் சரிபார்க்கவும்.
புரோ உதவிக்குறிப்பு: உங்கள் பாதை கையாளுபவர்களை மெல்லியதாக வைத்திருங்கள்—எண்ட்பாயிண்ட்டுக்குள் வணிக தர்க்கம் இல்லை. தர்க்கத்தை சேவைகளில் வைக்கவும். உங்கள் எதிர்கால மறுசீரமைப்புகள் உங்களுக்கு நன்றி தெரிவிக்கும்.
படி 3: பழங்கால DevOps ஆவிகளை அழைக்காமல் டேட்டாபேஸைச் சேர்க்கவும்
PostgreSQL ஐத் தேர்ந்தெடுக்கவும். இது நம்பகமானது, தொடர்புடையது மற்றும் இணைப்புகளுக்கு ஒவ்வாமை இல்லை.
- லவபிள் கிளவுட்டில், நிர்வகிக்கப்படும் போஸ்ட்கிரேஸ் நிகழ்வை உருவாக்கவும்.
DATABASE_URL, DB_USER, DB_PASS, DB_HOST, DB_NAME என நற்சான்றிதழ்களைச் சுற்றுச்சூழல் மாறிகளாகச் சேமிக்கவும்.
- ORM அல்லது வினவல் உருவாக்குபவரைத் தேர்ந்தெடுக்கவும் (Prisma, Drizzle, Knex). வேகம் மற்றும் ஸ்கீமா தெளிவுக்காக நான் Prisma மீது பாரபட்சமாக இருக்கிறேன்.
இது வேலை செய்கிறது என்பதை நிரூபிக்க ஒரு சிறிய users அட்டவணையை உருவாக்கவும்:
- ஸ்கீமா:
id (uuid), email (unique), created_at (timestamp).
- உங்கள் டெவ் சூழலில் இருந்து இடமாற்றத்தை இயக்கவும்.
- பட்டியலை வழங்கும்
GET /api/users எண்ட்பாயிண்டை எழுதவும். புதிய ஒன்றைச் செருக POST /api/users ஐச் சேர்க்கவும். அங்கீகாரத்துடன் அதைப் பாதுகாக்கவும் (அடுத்த படி), ஆனால் இப்போதைக்கு, ஒரு சோதனை செருகலுடன் சரிபார்க்கவும்.
காலக்கெடு அல்லது இணைப்பு மீட்டமைப்புகளை நீங்கள் பார்த்தால், சரிபார்க்கவும்: சரியான போர்ட், SSL முறை மற்றும் உங்கள் டெவ் சூழல் DB உடன் பேச அனுமதிக்கப்படுகிறதா (VPC விதிகள் மற்றும் IP அனுமதிப் பட்டியல்கள் நாடகத்தை விரும்புகின்றன).
படி 4: பயனர்களை அழ வைக்காத அங்கீகாரத்தைச் சேர்க்கவும்
உங்களிடம் விருப்பங்கள் உள்ளன:
- நிலையான APIகளுக்கான JWT அடிப்படையிலான அங்கீகாரம்
- பாதுகாப்பான குக்கீகள் கொண்ட அமர்வு டோக்கன்கள் (வலை பயன்பாடுகளுக்கு சிறந்தது)
- Google, GitHub போன்றவற்றுடன் OAuth (கடவுச்சொல் சுத்திகரிப்பைத் தவிர்க்க சிறந்தது)
விரைவான வெற்றிக்கு, JWT உடன் தொடங்கவும்:
- உள்நுழைவில் டோக்கன்களை உருவாக்கவும் (
POST /api/auth/login).
- லவபிள் கிளவுட்டின் ரகசியங்கள் மேலாளரில் கையொப்பமிட ரகசியத்தைச் சேமிக்கவும்.
Authorization: Bearer <token> ஹெட்டரைப் படிக்கும் இடைநிலைப் பொருளை உருவாக்கவும்.
POST /api/users போன்ற பாதைகளையும் தரவை மாற்றும் எதையும் பாதுகாக்கவும்.
நினைவில் கொள்ளுங்கள்: குறுகிய டோக்கன் ஆயுட்காலம் + டோக்கன்களைப் புதுப்பித்தல் = சாதனங்கள் தொலைந்து போகும்போது அல்லது டெவலப்பர்கள் YouTube கருத்தில் ஒரு டோக்கனை விட்டுவிட்டதை மறந்துவிட்டால் குறைவான தலைவலி (கேட்க வேண்டாம்).
படி 5: சுற்றுச்சூழல் மாறிகள்: ரகசியங்கள், நினைவுப் பொருட்கள் அல்ல
லவபிள் கிளவுட்டின் சுற்றுச்சூழல் மேலாளரைப் பயன்படுத்தி ரகசியங்களை மையப்படுத்தவும்:
- மூன்றாம் தரப்பு API விசைகள் (மின்னஞ்சல் வழங்குநர், கட்டணங்கள்)
அவற்றை ஒவ்வொரு சூழலுக்கும் அமைக்கவும் (டெவ், ஸ்டேஜிங், உற்பத்தி). எதையும் கடினமாக்க வேண்டாம். கூடாது. "இப்போதைக்கு" கூட. திகில் கதைகள் அப்படித்தான் தொடங்குகின்றன.
படி 6: உங்கள் எதிர்கால சிகிச்சையாளரிடம் விளக்காமல் ஸ்டேஜிங்கில் வரிசைப்படுத்தவும்
வரிசைப்படுத்து என்பதைக் கிளிக் செய்யவும். பதிவுகளைப் பார்க்கவும். சுவாசிக்கவும்.
- சுகாதார சோதனைகளைச் சரிபார்க்கவும்: உங்கள் ரூட் அல்லது
/api/health ok ஐ வழங்குமா?
- புகை சோதனையை இயக்கவும்:
GET /api/hello, GET /api/users.
- ஒரு சோதனை டோக்கனுடன் ஒரு பாதுகாக்கப்பட்ட பாதையை முயற்சிக்கவும்—அதன் இல்லாமல் 401 ஐ உறுதிப்படுத்தவும், அதனுடன் 200 ஐ உறுதிப்படுத்தவும்.
குளிர் தொடக்கங்கள் மந்தமாக இருந்தால், சிறிய செயல்பாடுகளை ஒரே சேவையாக தொகுக்கவும், அது அர்த்தமுள்ளதாக இருக்கும் இடத்தில். சர்வர்லெஸ் சிறந்தது, ஆனால் 400 சிறிய செயல்பாடுகள் நடத்துனர் இல்லாத இசைக்குழுவாக இருக்கலாம்.
படி 7: கண்காணிப்பைச் சேர்க்கவும், எனவே நீங்கள் அதிகாலை 2 மணிக்கு யூகிக்க வேண்டாம்
- கோரிக்கை பதிவை இயக்கவும் (கட்டமைக்கப்பட்ட பதிவுகள், தயவுசெய்து).
- பிழை பிடிப்பை அமைக்கவும் (கோரிக்கை ஐடியுடன் ஸ்டேக் ட்ரேஸ்கள்).
- லேடென்சி டாஷ்போர்டுகளைச் சேர்க்கவும். p50 ஐ மட்டும் பார்க்காமல் p95 ஐப் பார்க்கவும். உங்கள் பயனர்கள் சராசரியை அனுபவிப்பதில்லை.
- 5xx ஸ்பைக்குகள் மற்றும் DB இணைப்பு கலக்கலுக்கு விழிப்பூட்டல்களை உருவாக்கவும்.
ஒவ்வொரு லேயரிலும் கோரிக்கை ஐடியுடன் கூடிய ஒரு பதிவு வரிசை “இதைக் காண்பது யாராவது இருக்கிறார்களா?” என்று தொடங்கும் 10,000 ஸ்லாக் செய்திகளுக்கு மதிப்புள்ளது.
படி 8: ஒரு சோதனையை எழுதுங்கள். பின்னர் இரண்டு. பின்னர் தானியக்கமாக்குங்கள்.
சிறியதாகத் தொடங்கவும்:
- யூனிட் டெஸ்ட்: மின்னஞ்சல்களைச் சரிபார்க்கும் அல்லது மொத்தங்களை மதிப்பிடும் ஒரு சேவை செயல்பாடு.
- ஒருங்கிணைப்பு சோதனை: சோதனை DB உடன்
/api/users ஐ அழைக்கவும்.
இழுத்தல் கோரிக்கைகளில் சோதனைகளை இயக்க CI ஐ வயரிங் செய்யவும். சிவப்பு சோதனைகளுடன் எந்த PR களும் ஒன்றிணைக்கப்படவில்லை. இன்று உங்களுக்கு ஆயிரம் சோதனைகள் தேவையில்லை—முக்கியமான பாதைகள் மட்டும் போதும். சீட் பெல்ட்கள் போன்றவை.
படி 9: உற்பத்தியை மேம்படுத்தவும் (ஆமாம், கவனமாக)
- ஒரு மணி நேரம் பிரதானத்தை முடக்குங்கள். முதலில் ஸ்டேஜிங்கில் சரிசெய்தல்களைக் கொண்டு வாருங்கள்.
- கட்டமைப்பை மேம்படுத்தவும். வரிசைப்படுத்தலுக்கு பிந்தைய புகை சோதனையை இயக்கவும்.
- பொது எண்ட்பாயிண்ட்களில் விகித வரம்பை இயக்கவும்.
- நீங்கள் தற்காலிக சேமித்தால், சரியான TTL களை அமைக்கவும். நீங்கள் தற்காலிக சேமிக்கவில்லை என்றால், உங்கள் DB களைத்த கண்களால் உங்களைப் பார்க்கத் தயாராகுங்கள்.
ஒரு ரோல்பேக் திட்டத்தைச் சேர்க்கவும்: ஒன்றை வைத்திருப்பதன் மூலம் நீங்கள் அதை ஜின்க்ஸ் செய்யவில்லை. நீங்கள் ஒரு பெரியவராக இருக்கிறீர்கள்.
மதியம் நீங்கள் அனுப்பக்கூடிய ஒரு எளிய, உண்மையான பேக்கெண்ட்
ஒரு சிறிய—ஆனால் உண்மையான—அம்சத் தொகுப்பை வயரிங் செய்வோம்:
- பொது
GET /api/hello (சுகாதாரம் மற்றும் தெளிவு).
- பாதுகாக்கப்பட்ட
POST /api/users (பயனரை உருவாக்கவும்) மற்றும் GET /api/me (அங்கீகரிக்கப்பட்ட பயனரை வழங்குகிறது).
GET /api/users/:id நேரடி தேடல்களுக்கு.
- மென்மையான நீக்கம்:
DELETE /api/users/:id deleted_at ஐ டாக்கிள் செய்கிறது.
/api/auth/login இல் விகித வரம்பைச் சேர்க்கவும், எனவே போட்கள் உங்கள் பேக்கெண்டை கார்டியோவாகப் பயன்படுத்த வேண்டாம்.
பின்னர் உங்கள் மின்னஞ்சல் வழங்குநர் மூலம் வரவேற்கத்தக்க மின்னஞ்சலை தெளிக்கவும். செய்தியை பரிவர்த்தனை மற்றும் நட்புரீதியாக வைத்திருங்கள்—உண்மையான சந்தைப்படுத்தல் பாதைகளுக்கு மார்க்கெட்டிங்கைச் சேமிக்கவும்.
லவபிள் கிளவுட் மூலம் பேக்கெண்டை உருவாக்கும்போது பொதுவான பொறிகள்
- சர்வர்லெஸில் பகிரப்பட்ட நிலை: அழைப்புகளுக்கு இடையில் நினைவகத்தில் உள்ள தற்காலிக சேமிப்புகளை நம்ப வேண்டாம். Redis (நிர்வகிக்கப்படுகிறது) அல்லது உங்கள் DB ஐப் பயன்படுத்தவும்.
- CORS அமைப்பு இல்லை: அனுமதிக்கப்பட்ட தோற்றங்களை அமைக்கவும். உங்கள் பயன்பாட்டின் டொமைனுக்கு(களுக்கு) கட்டுப்படுத்தவும். உற்பத்தியில் முழு வைல்ட்கார்டுக்கு செல்ல வேண்டாம்.
- நீண்ட குளிர் தொடக்கங்கள்: சார்புகளை புத்திசாலித்தனமாக தொகுக்கவும், ஒரு செயல்பாட்டுக்கு வீக்கத்தைக் குறைக்கவும் அல்லது சூடான பாதைகளை ஒருங்கிணைக்கவும்.
- குறியிடப்படாத வினவல்கள்: உங்கள்
GET /api/users தவழ்ந்தால், email மற்றும் created_at இல் ஒரு அட்டவணைப் பெயரைச் சேர்க்கவும். உங்கள் எதிர்காலம் நன்றி தெரிவிக்கிறது.
- அமைதியான தோல்விகள்: எப்போதும் சூழலுடன் பிழைகளைப் பதிவு செய்யவும். “ஏதோ உடைந்துவிட்டது” என்பது DevOps கவிதை அல்ல.
பின்னர் நீங்கள் அழாதபடி குறியீட்டை எப்படி கட்டமைப்பது
routes/ எண்ட்பாயிண்ட்களுக்கு
services/ வணிக தர்க்கத்திற்கு
repositories/ அல்லது db/ தரவு அணுகலுக்கு
middlewares/ அங்கீகாரம், விகித வரம்பு, உள்ளீட்டு சரிபார்ப்புக்காக
lib/ உதவியாளர்களுக்கு (மின்னஞ்சல், கிரிப்டோ, மூன்றாம் தரப்பு APIகள்)
முடிந்தவரை செயல்பாடுகளை சுத்தமாக வைத்திருங்கள். பக்க விளைவுகளை ஓரங்களில் வைக்கவும். இது சோதனையை எளிதாக்குகிறது மற்றும் பிழைதிருத்தம் ஒரு குற்றக் காட்சி போல் குறைவாக இருக்கும்.
உண்மையில் முக்கியமான செயல்திறன் மாற்றங்கள்
- எந்த பட்டியல் எண்ட்பாயிண்டிலும் பக்கங்களை பிரித்து காண்பிக்கும் வசதியை பயன்படுத்தவும். உங்களிடம் பெரிய தரவுத்தொகுப்புகள் இருந்தால் கர்சர் அடிப்படையிலான வசதியைப் பயன்படுத்தவும்.
- ஒவ்வொரு கோரிக்கையிலும் உலகத்தை மீண்டும் அனுப்புவதைத் தவிர்க்க ETags அல்லது கடைசியாக மாற்றியமைக்கப்பட்ட ஹெடர்களைச் சேர்க்கவும்.
- விலையுயர்ந்த வினவல்களுக்கு கணக்கிடப்பட்ட பதில்களை தற்காலிகமாக சேமிக்கவும்.
- முடியும் போது எழுதுதல்களைத் தொகுக்கவும். N+1 வினவல்கள் பேக்கெண்ட் பிழைகளின் பளபளப்பாகும்—அவை எல்லா இடங்களிலும் கிடைக்கும்.
நீங்கள் புறக்கணிக்க முடியாத பாதுகாப்பு அடிப்படைகள் (நீங்கள் விரும்பினாலும்)
- ஒவ்வொரு பாதையிலும் உள்ளீட்டைச் சரிபார்க்கவும். JSON ஸ்கீமா அல்லது சரிபார்ப்பு லைப் எதிர்பாராத தாக்குதல்களைத் தடுக்கிறது.
- Argon2 அல்லது bcrypt உடன் கடவுச்சொற்களை ஹாஷ் செய்யவும். உங்கள் சொந்த கிரிப்டோவை உருட்டாதீர்கள். எப்போதுமே. தயவுசெய்து.
- ஒரு அட்டவணையில் விசைகள் மற்றும் ரகசியங்களை சுழற்றுங்கள். காலண்டர் நினைவூட்டல்கள் மீறல்களை விட மலிவானவை.
- குறைந்த சலுகை டேட்டாபேஸ் பாத்திரங்களைப் பயன்படுத்தவும். உங்கள் APIக்கு சூப்பர் யூசர் சக்திகள் தேவையில்லை—யாருக்கும் தேவையில்லை.
விலை நிர்ணயம் உண்மை சோதனை: ஹார்ட் பர்ன் அல்ல, வளர்ச்சிக்கான திட்டம்
சர்வர்லெஸ் இலவசமாகத் தெரிகிறது…அதுவரை இல்லை. கண்காணிக்கவும்:
- போக்குவரத்து கூர்மையாக இருக்கும்போது குளிர் தொடக்க அபராதங்கள்.
- பேசும் APIகளுக்கான வெளியேறும் செலவுகள்.
- பின்னணி வேலைகளாக இருக்க வேண்டிய நீண்டகால செயல்பாடுகள்.
பட்ஜெட்டுகள் மற்றும் விழிப்பூட்டல்களை அமைக்கவும். உங்கள் CFO ஒரு தீ ஈமோஜியை உங்களுக்கு அனுப்பினால், அது ஏற்கனவே மிகவும் தாமதமாகிவிட்டது.
உங்களுக்கு ஆவணங்கள், எடுத்துக்காட்டுகள் மற்றும் ஒரு தெளிவுத்தன்மை சரிபார்ப்பு தேவைப்படும்போது
நான் இரண்டு உண்மைகளால் வாழ்கிறேன்: நீங்கள் ஒன்றை எவ்வாறு கட்டமைத்தீர்கள் என்பதை மறந்துவிடுவீர்கள், நீங்கள் அதை இரவு 11 மணிக்கு மீண்டும் அமைக்க வேண்டும். உங்கள் ரெப்போவில் ஒரு README ஐ வைத்திருங்கள்:
- சுற்றுச்சூழல் அமைப்பு படிகள்
- பொதுவான கட்டளைகள் (இடமாற்றங்கள், சோதனைகள், வரிசைப்படுத்து)
- உதாரண கோரிக்கைகளுடன் கூடிய எண்ட்பாயிண்ட் பட்டியல்
மூன்று மாதங்களில் புதிய உங்களுக்காக—அல்லது அடுத்த வாரம் உண்மையான புதிய குழு உறுப்பினருக்காக அதை நட்புரீதியாக ஆக்குங்கள்.
குறிப்பிடத்தக்கது: ஆராய்ச்சி மற்றும் குறியீடு மதிப்புரைகளுக்கான குறுக்குவழி
குறிப்பிடத்தக்கது: நீங்கள் கட்டிடக்கலை தேர்வுகள் பற்றிய இரண்டாவது கருத்தை விரும்பினால் அல்லது சிறந்த நடைமுறைகளை விரைவாக ஒப்பிட விரும்பினால், Sider.AI உங்கள் திட்டத்தை மதிப்பாய்வு செய்யும், வினோதமான விளிம்பு நிகழ்வுகளைச் சுட்டிக்காட்டும் மற்றும் நீங்கள் அனுப்புவதற்கு முன்பு ஒரு சரிபார்ப்புப் பட்டியலை உங்களுக்கு வழங்கும் அந்தக் கடுமையான குழு உறுப்பினரைப் போல செயல்பட முடியும். அது உங்களுக்காக வரிசைப்படுத்து என்பதைக் கிளிக் செய்யாது—ஆனால் அது “ஐயோ” ஸ்லாக் த்ரெட்டைத் தவிர்க்க உதவும். விரைவான குறிப்பு: உங்கள் லவபிள் கிளவுட் பேக்கெண்ட் சரிபார்ப்புப் பட்டியல்
- திட்டம் உருவாக்கப்பட்டது, Git அமைக்கப்பட்டது, கிளை உத்தி
- JSON ஐ வழங்கும் ஹலோ எண்ட்பாயிண்ட்
- டேட்டாபேஸ் வழங்கப்பட்டது, இடமாற்றம் இயக்கப்பட்டது, ORM இணைக்கப்பட்டது
- அங்கீகாரம் இடத்தில் உள்ளது, env மேலாளரில் ரகசியங்கள்
- ஸ்டேஜிங் வரிசைப்படுத்தப்பட்டது, பதிவுகள் சுத்தமாக உள்ளன, பாதுகாக்கப்பட்ட பாதைகள் வேலை செய்கின்றன
- கண்காணிப்பு, விழிப்பூட்டல்கள், அடிப்படை டாஷ்போர்டுகள்
- CI உடன் சோதனைகள் வயரிங் செய்யப்பட்டன, சிவப்பு PRகள் இல்லை
- விகித வரம்பு மற்றும் ரோல்பேக் திட்டத்துடன் உற்பத்தி வெளியீடு
இதை உங்கள் மானிட்டரில் ஒட்டுங்கள். அல்லது பச்சை குத்திக்கொள்ளுங்கள். (தயவுசெய்து பச்சை குத்திக்கொள்ள வேண்டாம்.)
முடிவுரை: அதை சலிப்பாக மாற்றுவதன் மூலம் அதை விரும்பத்தக்கதாக ஆக்குங்கள் (ஒரு நல்ல வழியில்)
ஒரு விரும்பத்தக்க பேக்கெண்ட் என்பது நீங்கள் தூங்கும்போது அமைதியாக அதன் வேலையைச் செய்வது. சலிப்பான, நிரூபிக்கப்பட்ட பகுதிகளைக் கொண்டு உருவாக்குங்கள்: HTTP எண்ட்பாயிண்ட்கள், சுத்தமான அங்கீகாரம், ஒரு உறுதியான டேட்டாபேஸ் மற்றும் நியாயமான வரிசைப்படுத்தல். லவபிள் கிளவுட் ஸ்காஃபோல்டிங் நாடகத்தை அகற்றுவதன் மூலம் உதவுகிறது, எனவே நீங்கள் முக்கியமான பகுதிகளில் கவனம் செலுத்தலாம்—உங்கள் தயாரிப்பு, உங்கள் பயனர்கள் மற்றும் நீங்கள் தவிர்க்கப்பட்ட அந்த காஃபியை கூட.
/hello ஐ அனுப்பவும். /users ஐச் சேர்க்கவும். திருகுகளை இறுக்குங்கள். பின்னர் உங்கள் பேக்கெண்ட் முணுமுணுக்கும் போது வேறு ஏதாவது செய்யுங்கள். அது விரும்பத்தக்கது மட்டுமல்ல—அது வாழ்வது.
மினி Q&A: உண்மையான உலக சூழ்நிலைகள்
ஒரே திட்டத்தில் பொது மற்றும் தனிப்பட்ட APIகளை கலக்கலாமா?
ஆம். தனிப்பட்ட பாதைகளை அடைத்து வைக்க இடைநிலைப் பொருளைப் பயன்படுத்தவும், மேலும் இயந்திரத்திலிருந்து இயந்திரப் போக்குவரத்துக்கு தனி டோக்கன்கள்/சாவிகளைப் பயன்படுத்தவும். நோக்கங்களை இறுக்கமாக வைத்திருங்கள்.
எனக்கு பின்னணி வேலைகள் தேவைப்பட்டால் என்ன செய்வது?
நீண்டகால வேலைகளுக்கு (மின்னஞ்சல்கள், அறிக்கைகள், ஒத்திசைவுகள்) திட்டமிடப்பட்ட அல்லது வரிசை உந்துதல் செயல்பாடுகளை சுழற்றுங்கள். செய்திமடல்களை அனுப்ப பயனர் கோரிக்கைகளைத் தடுக்க வேண்டாம்.
டீன் ஏஜ் பருவத்தினர் போல் ரகசியங்களை ஸ்டேஜிங்கும் உற்பத்தியும் மாற்றுவதைத் தடுப்பது எப்படி?
தனி சூழல்கள். தனி ரகசியங்கள். CI இல் கார்ட்ரெயில்கள், எனவே ஸ்டேஜிங் நற்சான்றிதழ்கள் உற்பத்தி கட்டமைப்புகளில் ஒருபோதும் பதுங்காது.
நான் எளிமையாகத் தொடங்கி பின்னர் முழு மைக்ரோ சர்வீஸுகளுக்குச் செல்லலாமா?
நிச்சயமாக. வேகத்திற்காக மோனோலித்-இஷ் உடன் தொடங்கவும். உங்கள் அளவீடுகள் “இப்போது” என்று சொல்லும்போது ஹாட் ஸ்பாட்களைப் பிரிக்கவும், ஒரு போட்காஸ்ட் “மைக்ரோ சர்வீஸ்கள் கூல்” என்று சொல்லும்போது பிரிக்க வேண்டாம்.
அடுத்த படிகள்: உங்கள் 30 நிமிடத் திட்டம்
- 5 நிமிடங்கள்: திட்டத்தை உருவாக்கவும், டெம்ப்ளேட்டைத் தேர்ந்தெடுக்கவும்
- 10 நிமிடங்கள்:
/api/hello ஐ உருவாக்கவும், டேட்டாபேஸை வயரிங் செய்யவும், இடமாற்றத்தை இயக்கவும்
- 10 நிமிடங்கள்: JWT அங்கீகாரத்தைச் சேர்க்கவும்,
POST /api/users ஐப் பாதுகாக்கவும்
- 5 நிமிடங்கள்: ஸ்டேஜிங்கில் வரிசைப்படுத்தவும், புகை சோதனையை இயக்கவும்
அவ்வளவுதான். நீங்கள் இப்போது லவபிள் கிளவுட் மூலம் ஒரு பேக்கெண்டை உருவாக்கியுள்ளீர்கள். அது வேலை செய்கிறது. அது விரிவடைகிறது. உங்கள் காஃபியை மீண்டும் சூடாக்க உங்களுக்கு இன்னும் நேரம் இருக்கிறது.
FAQ
Q1:பேக்கெண்டை உருவாக்கும் ஆரம்பநிலையாளர்களுக்கு லவபிள் கிளவுட் நல்லதா?
ஆம்—அதன் டெம்ப்ளேட்டுகள், சர்வர்லெஸ் செயல்பாடுகள் மற்றும் சுற்றுச்சூழல் மேலாளர் ஆகியவை முதல் பேக்கெண்டை மிகவும் பயமுறுத்துவதாக ஆக்குகிறது. ஒரு எளிய REST API உடன் தொடங்கி, ஒரு டேட்டாபேஸைச் சேர்க்கவும், பின்னர் அங்கீகாரத்தை அடுக்கவும். டேட்டா மையத்துடன் மல்யுத்தம் செய்யாமல் உண்மையான வடிவங்களை நீங்கள் கற்றுக் கொள்வீர்கள்.
Q2:உற்பத்திக்காக எனது லவபிள் கிளவுட் பேக்கெண்டை நான் எப்படிப் பாதுகாப்பது?
JWT அல்லது OAuth ஐப் பயன்படுத்தவும், CORS ஐப் பூட்டவும், மேலும் ரகசியங்களை சுற்றுச்சூழல் மேலாளரில் சேமிக்கவும். ஒவ்வொரு பாதையிலும் விகித வரம்புகளைச் சேர்க்கவும், உள்ளீட்டைச் சரிபார்க்கவும், மேலும் பயனர்கள் செய்வதற்கு முன்பு சிக்கல்களைப் பிடிக்க p95 லேடென்சியைக் கண்காணிக்கவும்.
Q3:REST APIகளுக்கான லவபிள் கிளவுட் உடன் எந்த டேட்டாபேஸ் சிறப்பாக வேலை செய்கிறது?
Prisma அல்லது Drizzle போன்ற ORM உடன் குறிப்பாக PostgreSQL பெரும்பாலான பயன்பாடுகளுக்கு நம்பகமான தேர்வாக உள்ளது. இது தொடர்புடைய தரவு, பரிவர்த்தனைகள் மற்றும் குறியீட்டை நாடகம் இல்லாமல் கையாளுகிறது, மேலும் போக்குவரத்து அதிகரிக்கும் போது விரிவடைகிறது.
Q4:நான் சர்வர்லெஸ் பேக்கெண்ட்களில் குளிர் தொடக்கங்கள் மற்றும் செயல்திறனை எப்படி கையாள்வது?
சார்புகளை புத்திசாலித்தனமாக தொகுக்கவும், முக்கியமான பாதைகளை சூடாக்கவும், மேலும் ஒரு சேவை செய்யும் போது நூறு சிறிய செயல்பாடுகளைத் தவிர்க்கவும். தற்காலிக சேமிப்பு மற்றும் பக்கங்களை பிரித்து காண்பிக்கும் வசதியைச் சேர்க்கவும், மேலும் உண்மையில் முக்கியமானதைத் சரிசெய்ய p95 லேடென்சியைப் பார்க்கவும்.
Q5:தனி ரகசியங்கள் மற்றும் URLகளுடன் ஸ்டேஜிங் மற்றும் உற்பத்தியை நான் வரிசைப்படுத்தலாமா?
நிச்சயமாக. தனி சூழல்களை உருவாக்கவும், தனித்துவமான DATABASE_URL, JWT_SECRET, மற்றும் டொமைன்களை அமைக்கவும், மேலும் கட்டமைப்புகளை முன்னோக்கி மேம்படுத்தவும். இது சோதனையை பாதுகாப்பாகவும் ரோல்பேக்குகளை வலியற்றதாகவும் வைத்திருக்கிறது.