இணையத்தை இயங்க வைக்கும் பேக்எண்ட் கருவிகள்

பெரும்பாலான டெவலப்பர்கள் கவர்ச்சிகரமான UI மற்றும் புதிய பிரண்ட்எண்ட் பிரேம்வொர்க்குகளில் (frontend frameworks) கவனம் செலுத்துகிறார்கள்.

ஆனால் மில்லியன் கணக்கான மக்கள் ஒரே நேரத்தில் பயன்படுத்தும்போது, ஒரு ஆப் (app) செயலிழக்காமல் இருப்பதை எது உறுதி செய்கிறது?

உண்மையான இன்ஜினியரிங் பின்னணியில் தான் நடக்கிறது. கடினமான பணிகளைக் கையாளும் உள்கட்டமைப்பு கருவிகளை (infrastructure tools) நீங்கள் புரிந்து கொள்ள வேண்டும்.

எட்டு முக்கியமான பேக்எண்ட் தொழில்நுட்பங்களின் விவரம் இதோ:

Redis வேகத்திற்காக இது தரவை நினைவகத்தில் (memory) சேமிக்கிறது.

  • பயனர்களை லாக்-இன் நிலையில் வைத்திருக்க செஷன் மேனேஜ்மென்ட் (Session management).
  • வினவல்களை (queries) உடனடியாகச் செய்ய API கேச்சிங் (API caching).

Kafka இது தொடர்ச்சியான தரவு நிகழ்வுகளின் ஓட்டங்களைக் (data streams) கையாள்கிறது.

  • சேவைகளைத் தனித்தனியாகப் பிரிப்பதன் மூலம் அவை சுதந்திரமாகச் செயல்பட உதவுகிறது.
  • நிகழ்நேர பயனர் செயல்பாடுகள் மற்றும் GPS தரவைக் கண்காணிக்கிறது.

Nginx இது உங்கள் சேவையகங்களுக்கு (servers) ஒரு கேடயமாகச் செயல்படுகிறது.

  • டிராஃபிக்கை (traffic) சமமாகப் பிரிக்க லோட் பேலன்சிங் (Load balancing).
  • கோரிக்கைகளைச் சரியான இடத்திற்கு அனுப்ப ரிவர்ஸ் ப்ராக்ஸிங் (Reverse proxying).

Kubernetes இது பல சேவைகளின் நிர்வாகத்தை தானியக்கமாக்குகிறது (automates).

  • செயலிழந்த கண்டெய்னர்களை (containers) மீண்டும் தொடங்க சுய-குணப்படுத்தும் (Self-healing) வசதி.
  • அதிக டிராஃபிக் இருக்கும்போது வளங்களை (resources) அதிகரித்தல்.

Elasticsearch இது மிகப்பெரிய அளவிலான கட்டமைக்கப்படாத தரவுகளில் (unstructured data) தேடுகிறது.

  • சிக்கலான இ-காமர்ஸ் ஃபில்டர்களை (e-commerce filters) இயக்குகிறது.
  • மிகப்பெரிய லாக் கோப்புகளில் (log files) குறிப்பிட்ட பிழைகளைக் கண்டறிகிறது.

GraphQL இது உங்களுக்குத் தேவையான குறிப்பிட்ட தரவை மட்டும் கோர அனுமதிக்கிறது.

  • மொபைல் ஆப்ஸ்களில் பேண்ட்வித் (bandwidth) சேமிக்கிறது.
  • ஒரே அழைப்பில் பல ஆதாரங்களில் இருந்து தரவைப் பெறுகிறது.

RabbitMQ இது ஒரு அமைப்பின் பல்வேறு பகுதிகளுக்கு இடையிலான தொடர்பை நிர்வகிக்கிறது.

  • பின்னணியில் கோப்புகளைச் செயலாக்குகிறது.
  • ஆப்பை மெதுவாக்காமல் அறிவிப்பு மின்னஞ்சல்களை அனுப்புகிறது.

Docker இது குறியீட்டை (code) பேக்கேஜ் செய்வதன் மூலம் எல்லா இடங்களிலும் ஒரே மாதிரியாக இயங்குவதை உறுதி செய்கிறது.

  • உங்கள் லேப்டாப் மற்றும் கிளவுட் (cloud) ஆகியவற்றிற்கு இடையே ஒருமைப்பாட்டை உறுதி செய்கிறது.
  • ஆப்ஸ்கள் ஒன்றையொன்று பாதிக்காதவாறு தனிமைப்படுத்துகிறது.

ஒரு சிறந்த டெவலப்பராக இருப்பதற்கு நீங்கள் இவை அனைத்திலும் நிபுணராக வேண்டிய அவசியமில்லை. ஆனால், அளவிடக்கூடிய (scale) அமைப்புகளை உருவாக்க இவை எவ்வாறு ஒன்றிணைந்து செயல்படுகின்றன என்பதை நீங்கள் புரிந்து கொள்ள வேண்டும்.

உங்கள் தற்போதைய திட்டத்தில் இவற்றில் எந்தக் கருவிகளைப் பயன்படுத்துகிறீர்கள்?

ஆதாரம்: https://dev.to/mursalfk/the-invisible-duct-tape-of-the-internet-backend-tools-you-hear-about-but-never-fully-get-3f0f