મિલિયનوں ઈમેજીસ દરરોજ સર્વ કરતા એક વિડિયો-હોસ્ટિંગ સાઇટ માટે, થંબનેલ જનરેશનને PHP બેકએન્ડમાંથી Cloudflare Workers પર ખસેડવાથી ઓરિજિન સર્વર પરનો તમામ CPU લોડ દૂર થઈ ગયો. આ ફેરફારથી ઈમેજ-પ્રોસેસિંગ લેટન્સી (વિલંબ) ડેટા સેન્ટરથી એજ (edge) પર ખસી ગઈ, જેનાથી રિસ્પોન્સ ટાઈમ ઘટ્યો અને બેન્ડવિડ્થ ખર્ચ અનુમાનિત બન્યો.

જૂનું મોડેલ કેમ નિષ્ફળ ગયું

આ સાઇટ, જે હજારો વિડિયો દર્શાવતું પ્લેટફોર્મ છે, તે એક જ પેજ પર 40 જેટલા થંબનેલ્સ એમ્બેડ કરે છે. દરેક થંબનેલને PHP સ્ક્રિપ્ટ દ્વારા જરૂરિયાત મુજબ રિસાઈઝ કરવામાં આવે છે, જે મૂળ ફાઇલ વાંચે છે અને તેને ફરીથી સ્કેલ કરે છે. જ્યારે ક્રોલર્સ સાઇટની મુલાકાત લેતા, ત્યારે બેકએન્ડ સર્વર અટકી જતું (stall થઈ જતું).

એજ પ્રોસેસિંગ પાંચ મુખ્ય જરૂરિયાતોને પૂર્ણ કરે છે

પ્રોડક્શન-ગ્રેડ થંબનેલ API એ આ બાબતો સંભાળવી જોઈએ:

  • Fan-in – ઘણા થર્ડ-પાર્ટી હોસ્ટ્સમાંથી સોર્સ ઈમેજીસ મેળવવી.
  • Fan-out – વિવિધ સાઈઝ (દા.ત., 320 px કાર્ડ્સ, 640 px હીરો ઈમેજીસ) તૈયાર કરવી.
  • Format negotiation – બેન્ડવિડ્થ ઘટાડવા માટે જ્યારે બ્રાઉઝર સપોર્ટ કરે ત્યારે WebP અથવા AVIF સર્વ કરવું.
  • Cache – એ સુનિશ્ચિત કરવું કે પ્રથમ રિક્વેસ્ટ મોંઘી હોઈ શકે છે પરંતુ તે પછીની દરેક રિક્વેસ્ટ મફત (ઝડપી) હોય.
  • Security – કોઈપણ વ્યક્તિને મનસ્વી ઈમેજીસ પ્રોસેસ કરવા માટે સર્વિસનો દુરુપયોગ કરતા અટકાવવો.

Cloudflare Workers ઓરિજિનના CPU ને અડ્યા વગર દરેક મુદ્દાનું નિરાકરણ લાવે છે:

  1. Proximity – Workers યુઝરની નજીકના ડેટા સેન્ટરોમાં ચાલે છે, તેથી પ્રોસેસ કરેલી ઈમેજ ટૂંકા માર્ગે મુસાફરી કરે છે.
  2. Built-in Image Resizing – પ્લેટફોર્મનું Image Resizing ફીચર પિક્સેલનું કામ કરે છે, જેનાથી કસ્ટમ લાઇબ્રેરીની જરૂરિયાત રહેતી નથી.
  3. Cache API – Workers રિસાઈઝ કરેલી ઈમેજને એજ પર સ્ટોર કરે છે; પ્રથમ રિક્વેસ્ટ પછી એજ તેને સીધી જ સર્વ કરે છે.
  4. Programmable security – એક નાનું સ્ક્રિપ્ટ HMAC સિગ્નેચરને વેલિડેટ કરે છે, હોસ્ટનેમ્સ અને વિડ્થ (width) માટે એલાઉ-લિસ્ટ (allow-list) લાગુ કરે છે, અને કેશ પોઈઝનિંગ (cache poisoning) ટાળવા માટે કેશ કી (cache keys) ને નોર્મલાઈઝ કરે છે.

સિસ્ટમ કેવી રીતે કામ કરે છે

  1. Origin સાઇન્ડ (signed) URLs બનાવે છે – બેક-એન્ડ પાસે એક સિક્રેટ કી હોય છે અને તે દરેક થંબનેલ રિક્વેસ્ટમાં HMAC સિગ્નેચર ઉમેરે છે. URL માં ઇચ્છિત વિડ્થ અને ફોર્મેટ પણ સામેલ હોય છે.
  2. Worker સિગ્નેચર વેરિફાય કરે છે – રિક્વેસ્ટ મળતા જ, Worker શેર કરેલી સિક્રેટ કી સાથે HMAC ને ફરીથી ગણતરી કરે છે. જો સિગ્નેચર ખૂટતું હોય અથવા ખોટું હોય, તો રિક્વેસ્ટ રિજેક્ટ કરવામાં આવે છે, જેથી દુરુપયોગ અટકે છે.
  3. Allow-list અમલીકરણ – સ્ક્રિપ્ટ તપાસે છે કે સોર્સ હોસ્ટનેમ પૂર્વનિર્ધારિત લિસ્ટમાં છે કે નહીં અને વિનંતી કરેલી વિડ્થ સપોર્ટેડ સાઈઝમાંથી એક છે કે નહીં. આનાથી માલશિયસ (malicious) હોસ્ટ્સને કેશ થતા અટકાવવામાં આવે છે.
  4. Cache key normalization – કેશ કીમાંથી સિગ્નેચરને દૂર કરવામાં આવે છે; કીમાં ફક્ત સોર્સ URL, વિડ્થ અને ફોર્મેટ હોય છે. આનાથી એ શક્યતા વધે છે કે સમાન ઈમેજ માટે રિક્વેસ્ટ કરનારા વિવિધ યુઝર્સ એક જ કેશ્ડ એન્ટ્રી પર પહોંચે.
  5. Edge fetch અને resize – જો ઈમેજ પહેલેથી કેશ ન હોય, તો Worker થર્ડ-પાર્ટી હોસ્ટમાંથી મૂળ ઈમેજ મેળવે છે, Image Resizing API ચલાવે છે, અને પરિણામને એજ કેશમાં સ્ટોર કરે છે.
  6. Cache warming – દરેક ક્રોલ પછી, એક લાઇટવેઇટ Python સ્ક્રિપ્ટ નવા થંબનેલ્સ માટે પ્રી-રિક્વેસ્ટ કરે છે. આથી, પ્રથમ વાસ્તવિક યુઝરને રિસાઈઝ ઓપરેશનની રાહ જોયા વગર કેશ્ડ રિસ્પોન્સ મળે છે.

એક મહિના પછી માપી શકાય તેવા પ્રભાવો

  • ઈમેજીસ માટે ઓરિજિન CPU – શૂન્ય થઈ ગયું; બેક-એન્ડ હવે ક્યારેય ઈમેજ બાઈટ્સ પ્રોસેસ કરતું નથી.
  • HTML સર્વિંગ સ્પીડ – નોંધપાત્ર રીતે સુધરી છે કારણ કે સર્વર હવે ઈમેજ વર્ક પર બ્લોક થતું નથી.
  • Edge cache hit rate – 96% સુધી પહોંચ્યો, જેનો અર્થ છે કે લગભગ દરેક રિક્વેસ્ટ બેકએન્ડ ફેચ વગર એજ પરથી સંતોષવામાં આવી હતી.
  • લેટન્સી (વિલંબ) – ઘટ્યો છે કારણ કે ઈમેજીસ હવે સેન્ટ્રલ ઓરિજિનને બદલે યુઝરની નજીકના ડેટા સેન્ટરમાંથી સર્વ કરવામાં આવે છે.
  • બેન્ડવિડ્થ અનુમાનિતતા (Predictability) – એજ કેશિંગ સાથે, ઓરિજિનથી બહાર જતો ટ્રાફિક સ્થિર છે અને તેનું અનુમાન લગાવવું સરળ છે.

નિષ્કર્ષ

થંબનેલ જનરેશનને Cloudflare Workers પર ઓફલોડ કરવાથી CPU-બાઉન્ડ બોટલનેક (bottleneck) લગભગ શૂન્ય ખર્ચવાળા એજ કેશમાં ફેરવાઈ ગયું. ઓરિજિન હવે ફક્ત સાઇન્ડ URLs જ ઇશ્યુ કરે છે, જ્યારે એજ ફેચિંગ, રિસાઈઝિંગ, ફોર્મેટ નેગોશિયેશન અને કેશ્ડ પરિણામો સર્વ કરવાનું કામ સંભાળે છે. કોઈપણ સાઇટ જે ઈમેજીસ પર વધુ આધાર રાખે છે—ખાસ કરીને વિડિયો પ્લેટફોર્મ્સ જે પ્રતિ પેજ ડઝનબંધ થંબનેલ્સ દર્શાવે છે—તેના માટે એજ-ફર્સ્ટ અભિગમ ઝડપી પેજ, અનુમાનિત ખર્ચ અને "શું બતાવવું" (ઓરિજિન) અને "તે કેવી રીતે પહોંચાડવું" (એજ) વચ્ચે સ્પષ્ટ વિભાજન પ્રદાન કરે છે.