𝗧𝗵𝗲 𝗠𝗼𝗱𝗲𝗿𝗻 𝗕𝗮𝗰𝗸𝗲𝗻𝗱 𝗦𝘁𝗮𝗰𝗸 𝗘𝘅𝗽𝗹𝗮𝗶𝗻𝗲𝗱
ஒவ்வொரு செயலியும் (app) இரண்டு பக்கங்களைக் கொண்டது. நீங்கள் முன்பக்கத்தை (frontend) பார்க்கிறீர்கள். ஆனால் பேக்எண்ட் (backend) மற்ற அனைத்தையும் இயக்குகிறது. இது லாஜிக் (logic), தரவு (data), பாதுகாப்பு (security) மற்றும் ஒருங்கிணைப்புகளை (integrations) கையாள்கிறது.
ஒரு பேக்எண்ட் ஸ்டாக் (backend stack) என்பது இதையெல்லாம் இயக்கும் கருவிகளின் தொகுப்பாகும். இதில் மொழிகள் (languages), தரவுத்தளங்கள் (databases) மற்றும் உள்கட்டமைப்பு (infrastructure) ஆகியவை அடங்கும்.
நீங்கள் ஒவ்வொரு கருவியையும் கற்க வேண்டிய அவசியமில்லை. ஆனால் அவை எவ்வாறு ஒன்றிணைந்து செயல்படுகின்றன என்பதை நீங்கள் புரிந்து கொள்ள வேண்டும்.
அடிப்படை: மொழிகள் (Languages) • Node.js: நிகழ்நேர செயலிகளுக்கும் (real-time apps) JavaScript பயன்படுத்தும் குழுக்களுக்கும் சிறந்தது. • Python: AI மற்றும் அதிக தரவு சார்ந்த பணிகளுக்குச் சிறந்த தேர்வு. • Go: உயர் செயல்திறன் மற்றும் கிளவுட் சேவைகளுக்காக உருவாக்கப்பட்டது. • Java: பெரிய நிறுவன அமைப்புகளுக்கான (enterprise systems) தரநிலை.
கட்டமைப்பு: பிரேம்வொர்க்குகள் (Frameworks) • Express.js: Node.js-க்கான எளிமையான மற்றும் நெகிழ்வான கருவி. • NestJS: Node.js குழுக்களுக்குக் கட்டமைப்பையும் அளவிடக்கூடிய தன்மையையும் (scale) வழங்குகிறது. • FastAPI: Python டெவலப்பர்களுக்கு வேகமானது மற்றும் எளிதானது. • Spring Boot: Java-விற்கான நம்பகமான தேர்வு.
நினைவகம்: தரவுத்தளங்கள் (Databases) • PostgreSQL: உறவுநிலை தரவுகளுக்கான (relational data) தங்கத் தரநிலை. இதைத் தொடக்கநிலைத் தேர்வாகப் பயன்படுத்தவும். • MongoDB: நெகிழ்வான அல்லது மாறிக்கொண்டே இருக்கும் தரவு அமைப்புகளுக்குச் சிறந்தது. • விதி: நிலைத்தன்மைக்கு (consistency) SQL-ஐயும், அளவிடக்கூடிய தன்மை அல்லது கட்டமைக்கப்படாத தரவுகளுக்கு (unstructured data) NoSQL-ஐயும் பயன்படுத்தவும்.
இணைப்புப் பாலம்: APIs • REST: தரநிலை. பெரும்பாலான திட்டங்களுக்கு இதைப் பயன்படுத்தவும். • GraphQL: உங்கள் முன்பக்கத்திற்கு (frontend) குறிப்பிட்ட, சிக்கலான தரவுகள் தேவைப்பட்டால் இதைப் பயன்படுத்தவும்.
பாதுகாப்பு: அங்கீகாரம் (Authentication) • JWT: stateless பாதுகாப்பிற்கான சிறிய டோக்கன்கள். • OAuth 2.0: Google போன்ற மூன்றாம் தரப்பு உள்நுழைவுகளுக்கான (third party logins) தரநிலை. • RBAC: பயனர்களின் குறிப்பிட்ட பொறுப்புகளின் (roles) அடிப்படையில் அவர்களின் செயல்பாடுகளைக் கட்டுப்படுத்தவும்.
வேகம்: கேச்சிங் மற்றும் வரிசைகள் (Caching and Queues) • Redis: தரவுத்தள வினவல்களை (database queries) வேகப்படுத்த உதவும் ஒரு இன்-மெமரி ஸ்டோர் (in-memory store). • RabbitMQ: உங்கள் செயலி வேகமாக இயங்குவதற்காகப் பணிகளைப் பின்னணியில் (background) நகர்த்துகிறது. • Kafka: மிகப்பெரிய அளவிலான தரவு ஓட்டங்களைக் (data streams) கையாள்கிறது.
சூழல்: உள்கட்டமைப்பு (Infrastructure) • Docker: உங்கள் செயலி எல்லா இடங்களிலும் ஒரே மாதிரியாக இயங்குவதற்கு அதை பேக்கேஜ் (package) செய்கிறது. • Kubernetes: உங்கள் கன்டெய்னர்களை (containers) நிர்வகிக்கிறது மற்றும் அளவிடுகிறது. • Cloud: AWS, Azure மற்றும் Google Cloud வன்பொருளை (hardware) வழங்குகின்றன.
பார்வை: கண்காணிப்பு (Observability) • நீங்கள் பார்க்க முடியாத ஒன்றை உங்களால் சரிசெய்ய முடியாது. • பிழைகள் மற்றும் செயல்திறனைக் கண்காணிக்க Sentry அல்லது Datadog போன்ற கருவிகளைப் பயன்படுத்தவும்.
2026-க்கான ஒரு வலுவான, எளிமையான ஸ்டாக்: • Frontend: Next.js • Backend: NestJS • Database: PostgreSQL • Cache: Redis • Auth: Clerk • Container: Docker • Cloud: AWS • Monitoring: Sentry
இந்தத் தவறுகளைத் தவிர்க்கவும்:
- ஆரம்பத்திலேயே அதிகப்படியான கருவிகளைச் சேர்த்தல். சிக்கலான தன்மை தோல்விக்கு வழிவகுக்கும்.
- பாதுகாப்பைப் புறக்கணித்தல். முதல் நாளிலிருந்தே பாதுகாப்பை உருவாக்கத் தொடங்குங்கள்.
- மோசமான தரவுத்தள வடிவமைப்பு. தரவுகள் சேர்ந்த பிறகு அவற்றைச் சரிசெய்வது அதிகச் செலவை ஏற்படுத்தும்.
- கண்காணிப்பைப் புறக்கணித்தல். உங்கள் செயலி செயலிழந்துவிட்டதைச் சொல்ல கோபமான பயனர்களுக்காகக் காத்திருக்க வேண்டாம்.
அடிப்படைகளில் கவனம் செலுத்துங்கள். கருவிகள் மாறும், ஆனால் தர்க்கம் மாறாது.
ஆதாரம்: https://dev.to/digitalunicon/the-modern-backend-stack-explained-142l