రోజుకు మిలియన్ల కొద్దీ చిత్రాలను అందించే ఒక వీడియో-హోస్టింగ్ సైట్ కోసం, థంబ్ నెయిల్ జనరేషన్ను PHP బ్యాకెండ్ నుండి Cloudflare Workersకి మార్చడం వల్ల ఒరిజిన్ సర్వర్పై ఉన్న CPU లోడ్ పూర్తిగా తొలగిపోయింది. ఈ మార్పు వల్ల ఇమేజ్-ప్రాసెసింగ్ లేటెన్సీ డేటా సెంటర్ నుండి ఎడ్జ్ (edge) కి మారింది, దీనివల్ల రెస్పాన్స్ టైమ్స్ గణనీయంగా తగ్గాయి మరియు బ్యాండ్విడ్త్ ఖర్చులు కూడా ఊహించదగినవిగా మారాయి.
పాత మోడల్ ఎందుకు విఫలమైంది
వేల సంఖ్యలో వీడియోలను ప్రదర్శించే ఈ సైట్, ఒకే పేజీలో 40 వరకు థంబ్ నెయిల్స్ను ఎంబెడ్ చేస్తుంది. ప్రతి థంబ్ నెయిల్ ఒరిజినల్ ఫైల్ను చదివి, దానిని రీస్కేల్ చేసే PHP స్క్రిప్ట్ ద్వారా డిమాండ్ మేరకు రీసైజ్ చేయబడుతుంది. క్రాలర్స్ (crawlers) సైట్ను సందర్శించినప్పుడు, బ్యాకెండ్ సర్వర్ నిలిచిపోయేది (stall).
ఎడ్జ్ ప్రాసెసింగ్ ఐదు ప్రధాన అవసరాలను తీరుస్తుంది
ప్రొడక్షన్-గ్రేడ్ థంబ్ నెయిల్ API ఈ క్రింది వాటిని నిర్వహించాలి:
- Fan-in – అనేక థర్డ్-పార్టీ హోస్ట్ల నుండి సోర్స్ చిత్రాలను సేకరించడం.
- Fan-out – వివిధ పరిమాణాలను ఉత్పత్తి చేయడం (ఉదాహరణకు, 320 px కార్డ్స్, 640 px హీరో ఇమేజెస్).
- Format negotiation – బ్యాండ్విడ్త్ను తగ్గించడానికి బ్రౌజర్ సపోర్ట్ చేసినప్పుడు WebP లేదా AVIF ఫార్మాట్లను అందించడం.
- Cache – మొదటి రిక్వెస్ట్ ఖరీదైనదిగా ఉన్నప్పటికీ, తదుపరి ప్రతి రిక్వెస్ట్ ఉచితంగా ఉండేలా చూడటం.
- Security – ఎవరైనా సేవను దుర్వినియోగం చేసి ఏదో ఒక చిత్రాన్ని ప్రాసెస్ చేయకుండా నిరోధించడం.
Cloudflare Workers ఒరిజిన్ CPUని తాకకుండానే ప్రతి అంశాన్ని పరిష్కరిస్తాయి:
- Proximity – Workers వినియోగదారునికి దగ్గరగా ఉన్న డేటా సెంటర్లలో నడుస్తాయి, కాబట్టి ప్రాసెస్ చేయబడిన చిత్రం తక్కువ దూరం ప్రయాణిస్తుంది.
- Built-in Image Resizing – ప్లాట్ఫారమ్ యొక్క Image Resizing ఫీచర్ పిక్సెల్ పనులను చేస్తుంది, దీనివల్ల కస్టమ్ లైబ్రరీ అవసరం ఉండదు.
- Cache API – Workers రీసైజ్ చేసిన చిత్రాన్ని ఎడ్జ్ వద్ద నిల్వ చేస్తాయి; మొదటి రిక్వెస్ట్ తర్వాత ఎడ్జ్ నేరుగా దానిని అందిస్తుంది.
- Programmable security – ఒక చిన్న స్క్రిప్ట్ HMAC సిగ్నేచర్లను ధృవీకరిస్తుంది, హోస్ట్నేమ్లు మరియు వెడల్పుల (widths) కోసం అలో-లిస్ట్ (allow-list) అమలు చేస్తుంది మరియు క్యాచీ పాయిజనింగ్ను నివారించడానికి క్యాచీ కీలను నార్మలైజ్ చేస్తుంది.
సిస్టమ్ ఎలా పనిచేస్తుంది
- Origin signed URLsలను సృష్టిస్తుంది – బ్యాకెండ్ ఒక సీక్రెట్ కీని కలిగి ఉంటుంది మరియు ప్రతి థంబ్ నెయిల్ రిక్వెస్ట్కు HMAC సిగ్నేచర్ను జోడిస్తుంది. URLలో కావలసిన వెడల్పు మరియు ఫార్మాట్ కూడా ఉంటాయి.
- Worker సిగ్నేచర్ను ధృవీకరిస్తుంది – రిక్వెస్ట్ అందిన వెంటనే, Worker షేర్డ్ సీక్రెట్తో HMACని మళ్ళీ లెక్కిస్తుంది. సిగ్నేచర్ లేకపోయినా లేదా తప్పుగా ఉన్నా, రిక్వెస్ట్ తిరస్కరించబడుతుంది, తద్వారా దుర్వినియోగాన్ని అడ్డుకోవచ్చు.
- Allow-list అమలు – సోర్స్ హోస్ట్నేమ్ ముందుగా నిర్ణయించిన జాబితాలో ఉందో లేదో మరియు కోరిన వెడల్పు సపోర్ట్ చేయబడిన పరిమాణాలలో ఒకటిగా ఉందో లేదో స్క్రిప్ట్ తనిఖీ చేస్తుంది. ఇది హానికరమైన హోస్ట్లను క్యాష్ చేయకుండా నిరోధిస్తుంది.
- Cache key normalization – క్యాచీ కీ నుండి సిగ్నేచర్ను తొలగిస్తారు; కీలో కేవలం సోర్స్ URL, వెడల్పు మరియు ఫార్మాట్ మాత్రమే ఉంటాయి. దీనివల్ల ఒకే చిత్రాన్ని కోరుతున్న వేర్వేరు వినియోగదారులు ఒకే క్యాష్డ్ ఎంట్రీని పొందే అవకాశం పెరుగుతుంది.
- Edge fetch మరియు resize – చిత్రం ఇప్పటికే క్యాష్ చేయబడకపోతే, Worker థర్డ్-పార్టీ హోస్ట్ నుండి ఒరిజినల్ను తీసుకుంటుంది, Image Resizing APIని రన్ చేస్తుంది మరియు ఫలితాన్ని ఎడ్జ్ క్యాష్లో నిల్వ చేస్తుంది.
- Cache warming – ప్రతి క్రాల్ తర్వాత, ఒక లైట్వెయిట్ Python స్క్రిప్ట్ కొత్త థంబ్ నెయిల్స్ను ప్రీ-రిక్వెస్ట్ చేస్తుంది. దీనివల్ల మొదటి నిజమైన వినియోగదారు రీసైజ్ ఆపరేషన్ కోసం వేచి ఉండకుండా, క్యాష్ చేయబడిన రెస్పాన్స్ను పొందుతారు.
ఒక నెల తర్వాత కొలవదగిన ప్రభావం
- ఇమేజెస్ కోసం Origin CPU – సున్నాకి పడిపోయింది; బ్యాకెండ్ ఇకపై ఇమేజ్ బైట్లను ప్రాసెస్ చేయదు.
- HTML సర్వింగ్ వేగం – సర్వర్ ఇకపై ఇమేజ్ పనుల కోసం ఆగదు కాబట్టి, వేగం గణనీయంగా మెరుగుపడింది.
- Edge cache hit rate – 96% కి చేరుకుంది, అంటే దాదాపు ప్రతి రిక్వెస్ట్ బ్యాకెండ్ ఫెచ్ లేకుండా ఎడ్జ్ నుండి సంతృప్తిపరచబడింది.
- Latency – చిత్రాలు ఇప్పుడు సెంట్రల్ ఒరిజిన్ కంటే వినియోగదారునికి దగ్గరగా ఉన్న డేటా సెంటర్ నుండి అందించబడుతున్నందున తగ్గింది.
- Bandwidth predictability – ఎడ్జ్ క్యాషింగ్తో, ఒరిజిన్ నుండి వెళ్లే అవుట్బౌండ్ ట్రాఫిక్ స్థిరంగా ఉంటుంది మరియు అంచనా వేయడం సులభం.
ముగింపు
థంబ్ నెయిల్ జనరేషన్ను Cloudflare Workersకి బదిలీ చేయడం వల్ల CPU-బౌండ్ బాటిల్నెక్ (bottleneck), దాదాపు సున్నా ఖర్చుతో కూడిన ఎడ్జ్ క్యాష్గా మారింది. ఒరిజిన్ ఇప్పుడు కేవలం సైన్డ్ URLలను మాత్రమే జారీ చేస్తుంది, అయితే ఎడ్జ్ ఫెచింగ్, రీసైజింగ్, ఫార్మాట్ నెగోషియేషన్ మరియు క్యాష్ చేయబడిన ఫలితాలను అందించే పనులను చూసుకుంటుంది. చిత్రాలపై ఎక్కువగా ఆధారపడే ఏ సైట్కైనా—ముఖ్యంగా ఒకే పేజీలో డజన్ల కొద్దీ థంబ్ నెయిల్స్ను ప్రదర్శించే వీడియో ప్లాట్ఫారమ్లకు—ఈ ఎడ్జ్-ఫస్ట్ విధానం వేగవంతమైన పేజీలు, ఊహించదగిన ఖర్చులు మరియు "ఏమి చూపాలి" (origin) మరియు "దాన్ని ఎలా అందించాలి" (edge) అనే అంశాల మధ్య స్పష్టమైన విభజనను అందిస్తుంది.
