క్లుప్త క్షణం
- అప్లికేషన్లను అమలు చేయడానికి నిర్దిష్ట OS లేకుండా సర్వర్లెస్ కంప్యూటింగ్ (సర్వర్లెస్) కొత్త శకాన్ని తెరుస్తుందని చాలా సంవత్సరాలుగా మేము వాగ్దానం చేస్తున్నాము. అటువంటి నిర్మాణం చాలా స్కేలబిలిటీ సమస్యలను పరిష్కరిస్తుందని మాకు చెప్పబడింది. నిజానికి, ప్రతిదీ భిన్నంగా ఉంటుంది.
- చాలామంది సర్వర్లెస్ టెక్నాలజీని కొత్త ఆలోచనగా భావించినప్పటికీ, దాని మూలాలను జిమ్కి పాస్ మరియు గూగుల్ యాప్ ఇంజిన్తో 2006 నుండి గుర్తించవచ్చు, ఈ రెండూ సర్వర్లెస్ ఆర్కిటెక్చర్ను ఉపయోగిస్తాయి.
- పరిమిత ప్రోగ్రామింగ్ లాంగ్వేజ్ మద్దతు నుండి పనితీరు సమస్యల వరకు సర్వర్లెస్ విప్లవం నిలిచిపోవడానికి నాలుగు కారణాలు ఉన్నాయి.
- సర్వర్లెస్ కంప్యూటింగ్ అంత పనికిరానిది కాదు. దానికి దూరంగా. అయినప్పటికీ, వాటిని సర్వర్లకు ప్రత్యక్ష ప్రత్యామ్నాయంగా చూడకూడదు. కొన్ని అనువర్తనాల కోసం, అవి సులభ సాధనంగా ఉంటాయి.
సర్వర్ చనిపోయింది, సర్వర్ చిరకాలం జీవించు!
ఇది సర్వర్లెస్ విప్లవం యొక్క అనుచరుల పోరాట ఘోష. గత కొన్ని సంవత్సరాలుగా పరిశ్రమ ప్రెస్ని ఒక్కసారి చూస్తే చాలు, సాంప్రదాయ సర్వర్ మోడల్ చనిపోయిందని మరియు కొన్ని సంవత్సరాలలో మనమందరం సర్వర్లెస్ ఆర్కిటెక్చర్లను ఉపయోగిస్తాము అని నిర్ధారించడానికి.
పరిశ్రమలో ఎవరికైనా తెలిసినట్లుగా, మరియు మేము మా కథనంలో కూడా సూచించాము
సర్వర్లెస్ మోడల్ల కోసం కొన్ని వాగ్దానాలు ఖచ్చితంగా నిజమయ్యాయి, కానీ అన్నీ కాదు. అందరూ కాదు.
ఈ వ్యాసంలో నేను ఈ పరిస్థితికి కారణాలను పరిగణించాలనుకుంటున్నాను. సర్వర్లెస్ మోడల్ల సౌలభ్యం లేకపోవడం వాటి విస్తృత స్వీకరణకు ఇప్పటికీ ఎందుకు అడ్డంకిగా ఉంది, అయినప్పటికీ అవి నిర్దిష్టమైన, బాగా నిర్వచించబడిన పరిస్థితులలో ఉపయోగకరంగా ఉంటాయి.
సర్వర్లెస్ కంప్యూటింగ్ యొక్క ప్రవీణులు ఏమి వాగ్దానం చేసారు
సర్వర్లెస్ కంప్యూటింగ్ సమస్యలకు వెళ్లే ముందు, వారు ఏమి అందించాలో చూద్దాం.
ఈ పదం గురించి తెలియని వారి కోసం, ఇక్కడ క్లుప్త నిర్వచనం ఉంది. సర్వర్లెస్ కంప్యూటింగ్ అనేది సాధారణంగా రిమోట్గా హోస్ట్ చేయబడిన రన్టైమ్ ఎన్విరాన్మెంట్లలో డిమాండ్పై అప్లికేషన్లు (లేదా అప్లికేషన్ల భాగాలు) అమలు చేసే నిర్మాణాన్ని నిర్వచిస్తుంది. అదనంగా, సర్వర్లెస్ సిస్టమ్లను హోస్ట్ చేయవచ్చు. గత కొన్ని సంవత్సరాలుగా పటిష్టమైన సర్వర్లెస్ సిస్టమ్లను నిర్మించడం అనేది సిస్టమ్ అడ్మినిస్ట్రేటర్లు మరియు SaaS కంపెనీల ప్రధాన ఆందోళనగా ఉంది, (ఇది దావా వేయబడింది) ఈ ఆర్కిటెక్చర్ "సాంప్రదాయ" క్లయింట్/సర్వర్ మోడల్ కంటే అనేక కీలక ప్రయోజనాలను అందిస్తుంది:
- సర్వర్లెస్ మోడల్లకు వినియోగదారులు తమ స్వంత ఆపరేటింగ్ సిస్టమ్లను నిర్వహించాల్సిన అవసరం లేదు లేదా నిర్దిష్ట ఆపరేటింగ్ సిస్టమ్లకు అనుకూలంగా ఉండే అప్లికేషన్లను రూపొందించడం కూడా అవసరం లేదు. బదులుగా, డెవలపర్లు భాగస్వామ్య కోడ్ని సృష్టించి, సర్వర్లెస్ ప్లాట్ఫారమ్కు అప్లోడ్ చేసి, దాన్ని అమలు చేయడం చూస్తారు.
- సర్వర్లెస్ ఫ్రేమ్వర్క్లలోని వనరులు సాధారణంగా నిమిషం (లేదా సెకన్లు) ద్వారా బిల్ చేయబడతాయి. క్లయింట్లు వారు కోడ్ను అమలు చేసే సమయానికి మాత్రమే చెల్లిస్తారని దీని అర్థం. ఇది సాంప్రదాయ క్లౌడ్ VMతో అనుకూలంగా ఉంటుంది, ఇక్కడ యంత్రం ఎక్కువ సమయం పనిలేకుండా ఉంటుంది, కానీ మీరు దాని కోసం చెల్లించాలి.
- స్కేలబిలిటీ సమస్య కూడా పరిష్కరించబడింది. సర్వర్లెస్ ఫ్రేమ్వర్క్లలోని వనరులు డైనమిక్గా కేటాయించబడతాయి, తద్వారా సిస్టమ్ డిమాండ్లో ఆకస్మిక స్పైక్లను సులభంగా ఎదుర్కోగలదు.
సంక్షిప్తంగా, సర్వర్లెస్ మోడల్లు సౌకర్యవంతమైన, తక్కువ-ధర, స్కేలబుల్ పరిష్కారాలను అందిస్తాయి. ఇంతకు ముందు మనం ఈ ఆలోచన గురించి ఆలోచించకపోవటం నాకు ఆశ్చర్యంగా ఉంది.
ఇది నిజంగా కొత్త ఆలోచనేనా?
నిజానికి ఆలోచన కొత్తది కాదు. కోడ్ అమలులో ఉన్న సమయానికి మాత్రమే చెల్లించడానికి వినియోగదారులను అనుమతించే భావన కింద ప్రవేశపెట్టినప్పటి నుండి ఉంది
వాస్తవానికి, మనం ఇప్పుడు "సర్వర్లెస్" మోడల్ అని పిలుస్తున్నది ఇప్పుడు "క్లౌడ్ నేటివ్" అని పిలువబడే అనేక సాంకేతికతల కంటే పాతది. గుర్తించినట్లుగా, సర్వర్లెస్ మోడల్లు తప్పనిసరిగా దశాబ్దాలుగా ఉన్న SaaS వ్యాపార నమూనా యొక్క పొడిగింపు మాత్రమే.
సర్వర్లెస్ మోడల్ FaaS ఆర్కిటెక్చర్ కాదని కూడా గుర్తించడం విలువైనదే, అయినప్పటికీ రెండింటి మధ్య కనెక్షన్ ఉంది. FaaS అనేది సర్వర్లెస్ ఆర్కిటెక్చర్ యొక్క కంప్యూట్-సెంట్రిక్ భాగం, కానీ ఇది మొత్తం సిస్టమ్ను సూచించదు.
అయితే ఈ ప్రచారం అంతా ఎందుకు? బాగా, అభివృద్ధి చెందుతున్న దేశాలలో ఇంటర్నెట్ వ్యాప్తి రేటు ఆకాశాన్ని తాకుతున్నందున, కంప్యూటింగ్ వనరులకు డిమాండ్ కూడా పెరుగుతోంది. ఉదాహరణకు, వేగంగా అభివృద్ధి చెందుతున్న ఇ-కామర్స్ రంగాలను కలిగి ఉన్న అనేక దేశాలు ఈ ప్లాట్ఫారమ్లలోని అప్లికేషన్ల కోసం కంప్యూటింగ్ మౌలిక సదుపాయాలను కలిగి లేవు. ఇక్కడే చెల్లింపు సర్వర్లెస్ ప్లాట్ఫారమ్లు వస్తాయి.
సర్వర్లెస్ మోడల్లతో సమస్యలు
క్యాచ్ ఏమిటంటే సర్వర్లెస్ మోడల్స్లో సమస్యలు ఉన్నాయి. నన్ను తప్పుగా భావించవద్దు: వారు తమలో తాము చెడుగా ఉన్నారని లేదా కొన్ని పరిస్థితులలో కొన్ని కంపెనీలకు గణనీయమైన విలువను అందించరని నేను చెప్పడం లేదు. కానీ "విప్లవం" యొక్క ప్రధాన వాదన - సర్వర్లెస్ ఆర్కిటెక్చర్ సాంప్రదాయక నిర్మాణాన్ని త్వరగా భర్తీ చేస్తుంది - ఎప్పటికీ ఫలించదు.
అందుకే.
ప్రోగ్రామింగ్ భాషలకు పరిమిత మద్దతు
చాలా సర్వర్లెస్ ప్లాట్ఫారమ్లు కొన్ని భాషలలో వ్రాసిన అప్లికేషన్లను మాత్రమే అమలు చేయడానికి అనుమతిస్తాయి. ఇది ఈ వ్యవస్థల వశ్యత మరియు అనుకూలతను తీవ్రంగా పరిమితం చేస్తుంది.
సర్వర్లెస్ ప్లాట్ఫారమ్లు చాలా ప్రధాన భాషలకు మద్దతుగా పరిగణించబడతాయి. AWS లాంబ్డా మరియు అజూర్ ఫంక్షన్లు మద్దతు లేని భాషలలో అప్లికేషన్లు మరియు ఫంక్షన్లను అమలు చేయడానికి ఒక రేపర్ను కూడా అందిస్తాయి, అయినప్పటికీ ఇది తరచుగా పనితీరు ఖర్చుతో వస్తుంది. కాబట్టి చాలా సంస్థలకు, ఈ పరిమితి సాధారణంగా పెద్ద విషయం కాదు. అయితే ఇక్కడ విషయం ఉంది. సర్వర్లెస్ మోడల్ల ప్రయోజనాల్లో ఒకటి అస్పష్టంగా, అరుదుగా ఉపయోగించే ప్రోగ్రామ్లను చౌకగా ఉపయోగించవచ్చు ఎందుకంటే మీరు అవి అమలు చేసే సమయానికి మాత్రమే చెల్లిస్తారు. మరియు అస్పష్టమైన, అరుదుగా ఉపయోగించే ప్రోగ్రామ్లు తరచుగా... అస్పష్టమైన, అరుదుగా ఉపయోగించే ప్రోగ్రామింగ్ భాషలలో వ్రాయబడతాయి.
ఇది సర్వర్లెస్ మోడల్ యొక్క ముఖ్య ప్రయోజనాల్లో ఒకదానిని బలహీనపరుస్తుంది.
ఒక విక్రేతకు బైండింగ్
సర్వర్లెస్ ప్లాట్ఫారమ్లతో రెండవ సమస్య లేదా కనీసం అవి ప్రస్తుతం అమలు చేయబడిన విధానం, అవి సాధారణంగా కార్యాచరణ స్థాయిలో ఒకేలా కనిపించవు. వ్రాత విధులు, విస్తరణ మరియు నిర్వహణ పరంగా ఆచరణాత్మకంగా ప్రామాణీకరణ లేదు. దీని అర్థం ఫీచర్లను ఒక ప్లాట్ఫారమ్ నుండి మరొక ప్లాట్ఫారమ్కు మార్చడం చాలా సమయం తీసుకుంటుంది.
సర్వర్లెస్ మోడల్కి వెళ్లడంలో కష్టతరమైన భాగం కంప్యూటేషనల్ ఫీచర్లు కాదు, ఇవి సాధారణంగా కోడ్ స్నిప్పెట్లు మాత్రమే, అయితే ఆబ్జెక్ట్ స్టోరేజ్, ఐడెంటిటీ మేనేజ్మెంట్ మరియు క్యూలు వంటి కనెక్ట్ చేయబడిన సిస్టమ్లతో అప్లికేషన్లు ఎలా కమ్యూనికేట్ చేస్తాయి. విధులు తరలించబడతాయి, కానీ మిగిలిన అప్లికేషన్ను తరలించలేము. వాగ్దానం చేయబడిన చౌక మరియు సౌకర్యవంతమైన ప్లాట్ఫారమ్లకు ఇది ఖచ్చితమైన వ్యతిరేకం.
సర్వర్లెస్ మోడల్లు కొత్తవి మరియు అవి ఎలా పని చేస్తాయో ప్రమాణీకరించడానికి సమయం లేదని కొందరు వాదిస్తున్నారు. కానీ నేను పైన పేర్కొన్నట్లుగా అవి కొత్తవి కావు మరియు మంచి ప్రమాణాలను అభివృద్ధి చేయడం మరియు విస్తృతంగా స్వీకరించడం వలన కంటైనర్లు వంటి అనేక ఇతర క్లౌడ్ సాంకేతికతలు ఇప్పటికే చాలా సౌకర్యవంతంగా మారాయి.
ఉత్పాదకత
సర్వర్లెస్ ప్లాట్ఫారమ్ల యొక్క కంప్యూటింగ్ పనితీరును కొలవడం కష్టం, ఎందుకంటే విక్రేతలు సమాచారాన్ని రహస్యంగా ఉంచుతారు. రిమోట్, సర్వర్లెస్ ప్లాట్ఫారమ్లలోని ఫీచర్లు అంతర్గత సర్వర్లలో ఎంత వేగంగా పనిచేస్తాయో, కొన్ని అనివార్య జాప్యం సమస్యల కోసం సేవ్ అవుతాయని చాలా మంది వాదిస్తున్నారు.
అయితే, కొన్ని ఆధారాలు భిన్నంగా సూచిస్తున్నాయి. గతంలో నిర్దిష్ట ప్లాట్ఫారమ్లో అమలు చేయని లేదా కొంత సమయం వరకు అమలు చేయని విధులు ప్రారంభించేందుకు కొంత సమయం పడుతుంది. వారి కోడ్ తక్కువ సులభంగా అందుబాటులో ఉన్న నిల్వ మాధ్యమానికి పోర్ట్ చేయబడి ఉండవచ్చు, అయినప్పటికీ - బెంచ్మార్క్ల మాదిరిగానే - చాలా మంది విక్రేతలు డేటాను పోర్టింగ్ చేయడం గురించి మీకు చెప్పరు.
వాస్తవానికి, దీనిని అధిగమించడానికి అనేక మార్గాలు ఉన్నాయి. ఒకటి, మీ సర్వర్లెస్ ప్లాట్ఫారమ్ నడుస్తున్న క్లౌడ్ భాష కోసం ఫీచర్లను ఆప్టిమైజ్ చేయడం, అయితే ఇది ఈ ప్లాట్ఫారమ్లు "చురుకైనవి" అనే వాదనను కొంతవరకు బలహీనపరుస్తుంది.
పనితీరు-క్లిష్టమైన ప్రోగ్రామ్లు వాటిని "తాజాగా" ఉంచడానికి క్రమం తప్పకుండా అమలు అయ్యేలా చూసుకోవడం మరొక విధానం. ఈ రెండవ విధానం, సర్వర్లెస్ ప్లాట్ఫారమ్లు ఎక్కువ ఖర్చుతో కూడుకున్నవి అనే దావాకు కొద్దిగా వ్యతిరేకం ఎందుకంటే మీరు మీ ప్రోగ్రామ్లు నడుస్తున్న సమయానికి మాత్రమే చెల్లిస్తారు. క్లౌడ్ ప్రొవైడర్లు చల్లని ప్రారంభాలను తగ్గించడానికి కొత్త మార్గాలను ప్రవేశపెట్టారు, అయితే వాటిలో చాలా వాటికి "స్కేల్ టు వన్" (స్కేల్ టు వన్) అవసరం, ఇది FaaS యొక్క అసలు విలువను బలహీనపరుస్తుంది.
సర్వర్లెస్ సిస్టమ్లను అంతర్గతంగా అమలు చేయడం ద్వారా కోల్డ్ స్టార్ట్ సమస్యను పాక్షికంగా పరిష్కరించవచ్చు, అయితే ఇది దాని స్వంత ఖర్చుతో వస్తుంది మరియు బాగా వనరులు ఉన్న జట్లకు సముచిత ఎంపికగా మిగిలిపోయింది.
మీరు మొత్తం అప్లికేషన్లను అమలు చేయలేరు
చివరగా, సర్వర్లెస్ ఆర్కిటెక్చర్లు ఎప్పుడైనా సంప్రదాయ నమూనాలను భర్తీ చేయకపోవడానికి చాలా ముఖ్యమైన కారణం ఏమిటంటే అవి (సాధారణంగా) మొత్తం అప్లికేషన్లను అమలు చేయలేవు.
మరింత ఖచ్చితంగా, ఇది ఖర్చు కోణం నుండి అసాధ్యమైనది. మీ విజయవంతమైన మోనోలిత్ను ఎనిమిది గేట్వేలు, నలభై క్యూలు మరియు డజను డేటాబేస్ ఉదంతాలతో కలిపి నాలుగు డజన్ల ఫంక్షన్ల సెట్గా మార్చకూడదు. ఈ కారణంగా, సర్వర్లెస్ కొత్త డెవలప్మెంట్లకు బాగా సరిపోతుంది. వాస్తవంగా ఇప్పటికే ఉన్న ఏ అప్లికేషన్ (ఆర్కిటెక్చర్) పోర్ట్ చేయబడదు. మీరు వలస వెళ్ళవచ్చు, కానీ మీరు మొదటి నుండి ప్రారంభించాలి.
దీని అర్థం చాలా సందర్భాలలో, సర్వర్లెస్ ప్లాట్ఫారమ్లు గణనపరంగా ఇంటెన్సివ్ టాస్క్లను నిర్వహించడానికి బ్యాక్-ఎండ్ సర్వర్లకు పూరకంగా ఉపయోగించబడతాయి. ఇది క్లౌడ్ కంప్యూటింగ్ యొక్క ఇతర రెండు రూపాలు, కంటైనర్లు మరియు వర్చువల్ మిషన్ల నుండి చాలా భిన్నంగా ఉంటుంది, ఇవి రిమోట్ కంప్యూటింగ్ను నిర్వహించడానికి సంపూర్ణ మార్గాన్ని అందిస్తాయి. మైక్రోసర్వీస్ల నుండి సర్వర్లెస్ సిస్టమ్లకు మారడం యొక్క సవాళ్లలో ఒకదానిని ఇది వివరిస్తుంది.
వాస్తవానికి, ఇది ఎల్లప్పుడూ సమస్య కాదు. మీ స్వంత హార్డ్వేర్ను కొనుగోలు చేయకుండా క్రమానుగతంగా భారీ కంప్యూటింగ్ వనరులను ఉపయోగించగల సామర్థ్యం అనేక సంస్థలకు నిజమైన మరియు శాశ్వత ప్రయోజనాలను తెస్తుంది. కానీ కొన్ని అప్లికేషన్లు అంతర్గత సర్వర్లలో మరియు మరికొన్ని సర్వర్లెస్ క్లౌడ్ ఆర్కిటెక్చర్లలో ఉంటే, నిర్వహణ కొత్త స్థాయి సంక్లిష్టతలోకి ప్రవేశిస్తుంది.
విప్లవం చిరకాలం జీవించాలా?
ఇన్ని ఫిర్యాదులు ఉన్నప్పటికీ, సర్వర్లెస్ సొల్యూషన్స్కు నేను వ్యతిరేకం కాదు. నిజాయితీగా. డెవలపర్లు అర్థం చేసుకోవాలి - ప్రత్యేకించి వారు మొదటిసారిగా సర్వర్లెస్ మోడల్లను అన్వేషిస్తున్నట్లయితే - ఈ సాంకేతికత సర్వర్లకు ప్రత్యక్ష ప్రత్యామ్నాయం కాదని. బదులుగా, మా చిట్కాలు మరియు వనరులను తనిఖీ చేయండి
మూలం: www.habr.com