క్లౌడ్-నేటివ్ యాప్‌లను రూపొందించడానికి 5 కామన్ సెన్స్ ప్రిన్సిపల్స్

క్లౌడ్ ఇన్‌ఫ్రాస్ట్రక్చర్‌లలో పని చేయడానికి "క్లౌడ్ స్థానిక" లేదా కేవలం "క్లౌడ్" అప్లికేషన్‌లు ప్రత్యేకంగా సృష్టించబడతాయి. అవి సాధారణంగా కంటైనర్‌లలో ప్యాక్ చేయబడిన వదులుగా కపుల్డ్ మైక్రోసర్వీస్‌ల సమితిగా నిర్మించబడతాయి, ఇవి క్లౌడ్ ప్లాట్‌ఫారమ్ ద్వారా నిర్వహించబడతాయి. అటువంటి అప్లికేషన్‌లు డిఫాల్ట్‌గా వైఫల్యాల కోసం తయారు చేయబడతాయి, అంటే అవి తీవ్రమైన మౌలిక సదుపాయాల-స్థాయి వైఫల్యాల సందర్భంలో కూడా విశ్వసనీయంగా మరియు స్కేల్‌గా పని చేస్తాయి. నాణెం యొక్క మరొక వైపు క్లౌడ్ ప్లాట్‌ఫారమ్ కంటైనర్ అప్లికేషన్‌లను స్వయంచాలకంగా నిర్వహించగలిగేలా వాటిపై విధించే పరిమితుల సెట్లు (ఒప్పందాలు).

క్లౌడ్-నేటివ్ యాప్‌లను రూపొందించడానికి 5 కామన్ సెన్స్ ప్రిన్సిపల్స్

క్లౌడ్-ఆధారిత అప్లికేషన్‌లకు వెళ్లడం యొక్క ఆవశ్యకత మరియు ప్రాముఖ్యత గురించి పూర్తిగా తెలిసినప్పటికీ, చాలా సంస్థలకు ఇప్పటికీ ఎక్కడ ప్రారంభించాలో తెలియదు. ఈ పోస్ట్‌లో, మేము అనేక సూత్రాలను పరిశీలిస్తాము, కంటెయినరైజ్డ్ అప్లికేషన్‌లను అభివృద్ధి చేసేటప్పుడు, క్లౌడ్ ప్లాట్‌ఫారమ్‌ల సామర్థ్యాన్ని గ్రహించడానికి మరియు IT ఇన్‌ఫ్రాస్ట్రక్చర్‌లో తీవ్రమైన వైఫల్యాలు సంభవించినప్పుడు కూడా అప్లికేషన్‌ల యొక్క నమ్మకమైన ఆపరేషన్ మరియు స్కేలింగ్‌ను సాధించడానికి మిమ్మల్ని అనుమతిస్తుంది. స్థాయి. Kubernetes వంటి క్లౌడ్ ప్లాట్‌ఫారమ్‌ల ద్వారా స్వయంచాలకంగా నిర్వహించబడే అప్లికేషన్‌లను ఎలా రూపొందించాలో నేర్చుకోవడం ఇక్కడ వివరించిన సూత్రాల యొక్క అంతిమ లక్ష్యం.

సాఫ్ట్‌వేర్ డిజైన్ సూత్రాలు

ప్రోగ్రామింగ్ ప్రపంచంలో, సాఫ్ట్‌వేర్‌ను అభివృద్ధి చేసేటప్పుడు అనుసరించాల్సిన సాధారణ నియమాలను సూత్రాలు సూచిస్తాయి. ఏదైనా ప్రోగ్రామింగ్ భాషతో పనిచేసేటప్పుడు వాటిని ఉపయోగించవచ్చు. ప్రతి సూత్రం దాని స్వంత లక్ష్యాలను కలిగి ఉంటుంది, సాధారణంగా టెంప్లేట్లు మరియు అభ్యాసాలు సాధించడానికి సాధనాలు. అధిక-నాణ్యత సాఫ్ట్‌వేర్‌ను రూపొందించడానికి అనేక ప్రాథమిక సూత్రాలు కూడా ఉన్నాయి, వాటి నుండి మిగతావన్నీ ప్రవహిస్తాయి. ఇక్కడ ప్రాథమిక సూత్రాలకు కొన్ని ఉదాహరణలు ఉన్నాయి:

  • KISS (ఇది సాధారణ, తెలివితక్కువదని ఉంచండి) - దానిని క్లిష్టతరం చేయవద్దు;
  • DRY (మిమ్మల్ని మీరు పునరావృతం చేయవద్దు) - మీరే పునరావృతం చేయవద్దు;
  • YAGNI (మీకు ఇది అవసరం లేదు) - వెంటనే అవసరం లేని వాటిని సృష్టించవద్దు;
  • SoC ఆందోళనల విభజన - బాధ్యతలను పంచుకోండి.

మీరు చూడగలిగినట్లుగా, ఈ సూత్రాలు నిర్దిష్ట నియమాలను ఏవీ సెట్ చేయవు, కానీ ఆచరణాత్మక అనుభవం ఆధారంగా ఇంగితజ్ఞానం పరిగణనలు అని పిలవబడే వర్గానికి చెందినవి, వీటిని చాలా మంది డెవలపర్లు భాగస్వామ్యం చేస్తారు మరియు వారు క్రమం తప్పకుండా సూచిస్తారు.
అదనంగా, ఉంది సాలిడ్ – రాబర్ట్ మార్టిన్ రూపొందించిన ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ మరియు డిజైన్ యొక్క మొదటి ఐదు సూత్రాల సమితి. SOLID విస్తృత, ఓపెన్-ఎండ్, కాంప్లిమెంటరీ సూత్రాలను కలిగి ఉంటుంది, అవి-కలిసి వర్తింపజేసినప్పుడు-మెరుగైన సాఫ్ట్‌వేర్ సిస్టమ్‌లను రూపొందించడంలో సహాయపడతాయి మరియు వాటిని దీర్ఘకాలికంగా మెరుగ్గా నిర్వహించడంలో సహాయపడతాయి.

SOLID సూత్రాలు OOP రంగానికి చెందినవి మరియు తరగతులు, ఇంటర్‌ఫేస్‌లు మరియు వారసత్వం వంటి భావనలు మరియు భావనల భాషలో రూపొందించబడ్డాయి. సారూప్యత ద్వారా, క్లౌడ్ అప్లికేషన్‌ల కోసం అభివృద్ధి సూత్రాలను కూడా రూపొందించవచ్చు, ఇక్కడ ప్రాథమిక మూలకం మాత్రమే తరగతి కాదు, కానీ కంటైనర్. ఈ సూత్రాలను అనుసరించడం ద్వారా, మీరు Kubernetes వంటి క్లౌడ్ ప్లాట్‌ఫారమ్‌ల లక్ష్యాలు మరియు లక్ష్యాలను మెరుగ్గా చేరుకునే కంటెయినరైజ్డ్ అప్లికేషన్‌లను సృష్టించవచ్చు.

క్లౌడ్-నేటివ్ కంటైనర్‌లు: Red Hat విధానం

నేడు, దాదాపు ఏదైనా అప్లికేషన్ సాపేక్షంగా సులభంగా కంటైనర్లలోకి ప్యాక్ చేయబడుతుంది. కానీ కుబెర్నెటెస్ వంటి క్లౌడ్ ప్లాట్‌ఫారమ్‌లో అప్లికేషన్‌లు ప్రభావవంతంగా స్వయంచాలకంగా మరియు ఆర్కెస్ట్రేట్ చేయడానికి, అదనపు ప్రయత్నం అవసరం.
దిగువ వివరించిన ఆలోచనలకు ఆధారం పద్దతి పన్నెండు కారకాల యాప్ మరియు సోర్స్ కోడ్ మేనేజ్‌మెంట్ నుండి స్కేలింగ్ మోడల్‌ల వరకు వెబ్ అప్లికేషన్‌లను రూపొందించడంలో అనేక ఇతర అంశాలు ఉన్నాయి. వివరించిన సూత్రాలు మైక్రోసర్వీస్‌ల పైన నిర్మించబడిన మరియు కుబెర్నెట్స్ వంటి క్లౌడ్ ప్లాట్‌ఫారమ్‌ల కోసం రూపొందించబడిన కంటెయినరైజ్డ్ అప్లికేషన్‌ల అభివృద్ధికి మాత్రమే వర్తిస్తాయి. మా చర్చలో ప్రాథమిక అంశం కంటైనర్ ఇమేజ్, మరియు టార్గెట్ కంటైనర్ రన్‌టైమ్ కంటైనర్ ఆర్కెస్ట్రేషన్ ప్లాట్‌ఫారమ్. ప్రతిపాదిత సూత్రాల లక్ష్యం చాలా ఆర్కెస్ట్రేషన్ ప్లాట్‌ఫారమ్‌లలో షెడ్యూలింగ్, స్కేలింగ్ మరియు మానిటరింగ్ టాస్క్‌లను ఆటోమేట్ చేయగల కంటైనర్‌లను రూపొందించడం. సూత్రాలు నిర్దిష్ట క్రమంలో ప్రదర్శించబడవు.

సింగిల్ కన్సర్న్ ప్రిన్సిపల్ (SCP)

ఈ సూత్రం అనేక విధాలుగా ఒకే బాధ్యత సూత్రాన్ని పోలి ఉంటుంది. SRP), ఇది SOLID సెట్‌లో భాగం మరియు ప్రతి వస్తువుకు ఒక బాధ్యత ఉండాలి మరియు ఆ బాధ్యత పూర్తిగా తరగతిలో కప్పబడి ఉండాలి. SRP యొక్క ఉద్దేశ్యం ఏమిటంటే, ప్రతి బాధ్యత మార్పుకు కారణం, మరియు ఒక తరగతి మార్పుకు ఒకే ఒక కారణం ఉండాలి.

SCPలో, OOP క్లాస్‌తో పోలిస్తే కంటైనర్ యొక్క అధిక స్థాయి సంగ్రహణ మరియు విస్తృత ప్రయోజనాన్ని సూచించడానికి మేము "బాధ్యత" అనే పదానికి బదులుగా "కన్సర్న్" అనే పదాన్ని ఉపయోగిస్తాము. మరియు SRP యొక్క లక్ష్యం మార్పుకు ఒక కారణం మాత్రమే అయితే, SCP వెనుక కంటైనర్లను తిరిగి ఉపయోగించగల మరియు భర్తీ చేసే సామర్థ్యాన్ని విస్తరించాలనే కోరిక ఉంటుంది. SRPని అనుసరించడం ద్వారా మరియు ఒకే సమస్యను పరిష్కరించే మరియు క్రియాత్మకంగా పూర్తి చేసే విధంగా కంటైనర్‌ను సృష్టించడం ద్వారా, మీరు ఆ కంటైనర్ చిత్రాన్ని వేర్వేరు అప్లికేషన్ సందర్భాలలో మళ్లీ ఉపయోగించుకునే అవకాశాలను పెంచుతారు.

SCP సూత్రం ప్రకారం ప్రతి కంటైనర్ ఒక్కో సమస్యను పరిష్కరించాలి మరియు దానిని బాగా చేయాలి. అంతేకాకుండా, OOP ప్రపంచంలో SRP కంటే కంటైనర్ ప్రపంచంలో SCP సాధించడం సులభం, ఎందుకంటే కంటైనర్లు సాధారణంగా ఒకే ప్రక్రియను అమలు చేస్తాయి మరియు చాలా సమయం ఈ ప్రక్రియ ఒకే పనిని పరిష్కరిస్తుంది.

ఒక కంటైనర్ మైక్రోసర్వీస్ ఒకేసారి అనేక సమస్యలను పరిష్కరిస్తే, దానిని సింగిల్-టాస్క్ కంటైనర్‌లుగా విభజించి, సైడ్‌కార్ మరియు ఇనిట్ కంటైనర్ టెంప్లేట్‌లను ఉపయోగించి ఒక పాడ్‌లో (కంటైనర్ ప్లాట్‌ఫారమ్ విస్తరణ యూనిట్) కలపవచ్చు. అదనంగా, SCP పాత కంటైనర్‌ను (వెబ్ సర్వర్ లేదా మెసేజ్ బ్రోకర్ వంటిది) కొత్త దానితో భర్తీ చేయడాన్ని సులభతరం చేస్తుంది, అది అదే సమస్యను పరిష్కరిస్తుంది, కానీ విస్తరింపబడిన కార్యాచరణ లేదా స్కేల్‌లను మెరుగుపరుస్తుంది.

క్లౌడ్-నేటివ్ యాప్‌లను రూపొందించడానికి 5 కామన్ సెన్స్ ప్రిన్సిపల్స్

అధిక పరిశీలన సూత్రం (HOP)

అప్లికేషన్‌లను ప్యాకేజీ చేయడానికి మరియు అమలు చేయడానికి కంటైనర్‌లను ఏకీకృత మార్గంగా ఉపయోగించినప్పుడు, అప్లికేషన్‌లు బ్లాక్ బాక్స్‌గా పరిగణించబడతాయి. అయితే, ఇవి క్లౌడ్ కంటైనర్‌లైతే, కంటైనర్‌ల ఆరోగ్యాన్ని పర్యవేక్షించడానికి మరియు అవసరమైతే తగిన చర్య తీసుకోవడానికి తప్పనిసరిగా ప్రత్యేక APIలను తప్పనిసరిగా రన్‌టైమ్‌కు అందించాలి. ఇది లేకుండా, కంటైనర్లను నవీకరించడం మరియు వాటి జీవిత చక్రాన్ని నిర్వహించడం యొక్క ఆటోమేషన్‌ను ఏకీకృతం చేయడం సాధ్యం కాదు, ఇది సాఫ్ట్‌వేర్ సిస్టమ్ యొక్క స్థిరత్వం మరియు వినియోగాన్ని మరింత దిగజార్చుతుంది.

క్లౌడ్-నేటివ్ యాప్‌లను రూపొందించడానికి 5 కామన్ సెన్స్ ప్రిన్సిపల్స్
ఆచరణలో, కంటెయినరైజ్డ్ అప్లికేషన్, కనీసం, వివిధ రకాల ఆరోగ్య తనిఖీల కోసం APIని కలిగి ఉండాలి: లైవ్‌నెస్ పరీక్షలు మరియు సంసిద్ధత పరీక్షలు. ఒక అప్లికేషన్ మరింత ఎక్కువ చేయాలని క్లెయిమ్ చేస్తే, అది తప్పనిసరిగా దాని స్థితిని పర్యవేక్షించడానికి ఇతర మార్గాలను అందించాలి. ఉదాహరణకు, Fluentd, Logstash మరియు ఇతర సారూప్య సాధనాలను ఉపయోగించి లాగ్ అగ్రిగేషన్ కోసం STDERR మరియు STDOUT ద్వారా ముఖ్యమైన ఈవెంట్‌లను లాగిన్ చేయడం. అలాగే OpenTracing, Prometheus మొదలైన ట్రేసింగ్ మరియు మెట్రిక్స్ సేకరణ లైబ్రరీలతో ఏకీకరణ.

సాధారణంగా, అప్లికేషన్ ఇప్పటికీ బ్లాక్ బాక్స్‌గా పరిగణించబడుతుంది, అయితే దీన్ని సాధ్యమైనంత ఉత్తమమైన రీతిలో పర్యవేక్షించడానికి మరియు నిర్వహించడానికి ప్లాట్‌ఫారమ్‌కు అవసరమైన అన్ని APIలను తప్పనిసరిగా అందించాలి.

లైఫ్-సైకిల్ కన్ఫార్మెన్స్ ప్రిన్సిపల్ (LCP)

LCP అనేది HOPకి వ్యతిరేకం. కంటైనర్ తప్పనిసరిగా ప్లాట్‌ఫారమ్‌కు రీడ్ APIలను బహిర్గతం చేయాలని HOP పేర్కొన్నప్పుడు, LCP ప్లాట్‌ఫారమ్ నుండి సమాచారాన్ని ఆమోదించగలగాలి. అంతేకాకుండా, కంటైనర్ ఈవెంట్‌లను స్వీకరించడమే కాకుండా, ఇతర మాటలలో, వాటికి ప్రతిస్పందించాలి. అందువల్ల సూత్రం పేరు, ఇది ప్లాట్‌ఫారమ్‌ను వ్రాయడం APIలను అందించడానికి ఒక అవసరంగా పరిగణించబడుతుంది.

క్లౌడ్-నేటివ్ యాప్‌లను రూపొందించడానికి 5 కామన్ సెన్స్ ప్రిన్సిపల్స్
ప్లాట్‌ఫారమ్‌లు కంటైనర్ జీవితచక్రాన్ని నిర్వహించడంలో సహాయపడటానికి వివిధ రకాల ఈవెంట్‌లను కలిగి ఉంటాయి. కానీ వాటిలో ఏది గ్రహించాలి మరియు ఎలా స్పందించాలి అనేది అప్లికేషన్ స్వయంగా నిర్ణయించుకోవాలి.

కొన్ని సంఘటనలు ఇతరులకన్నా ముఖ్యమైనవి అని స్పష్టమవుతుంది. ఉదాహరణకు, ఒక అప్లికేషన్ క్రాష్‌లను బాగా సహించనట్లయితే, అది తప్పనిసరిగా సిగ్నల్‌ను అంగీకరించాలి: (SIGTERM) సందేశాలను ముగించాలి మరియు సిగ్నల్‌ను క్యాచ్ చేయడానికి వీలైనంత త్వరగా దాని ముగింపు దినచర్యను ప్రారంభించాలి: SIGTERM తర్వాత వచ్చే కిల్ (SIGKILL).

అదనంగా, పోస్ట్‌స్టార్ట్ మరియు ప్రీస్టాప్ వంటి ఈవెంట్‌లు అప్లికేషన్ యొక్క జీవితచక్రానికి ముఖ్యమైనవి. ఉదాహరణకు, అప్లికేషన్‌ను ప్రారంభించిన తర్వాత, అభ్యర్థనలకు ప్రతిస్పందించడానికి కొంత సమయం అవసరం కావచ్చు. లేదా షట్ డౌన్ చేస్తున్నప్పుడు అప్లికేషన్ తప్పనిసరిగా కొన్ని ప్రత్యేక మార్గంలో వనరులను విడుదల చేయాలి.

ఇమేజ్ ఇమ్యుటబిలిటీ ప్రిన్సిపల్ (IIP)

కంటెయినరైజ్డ్ అప్లికేషన్‌లు వేర్వేరు వాతావరణాలలో అమలు చేయబడినప్పటికీ, నిర్మించిన తర్వాత కూడా మారకుండా ఉండాలని సాధారణంగా అంగీకరించబడింది. ఇది రన్‌టైమ్‌లో డేటా నిల్వను బాహ్యీకరించాల్సిన అవసరం ఉంది (మరో మాటలో చెప్పాలంటే, దీని కోసం బాహ్య సాధనాలను ఉపయోగించడం) మరియు ప్రతి పర్యావరణానికి ప్రత్యేకమైన కంటైనర్‌లను సవరించడం లేదా సృష్టించడం కంటే బాహ్య, రన్‌టైమ్-నిర్దిష్ట కాన్ఫిగరేషన్‌లపై ఆధారపడటం అవసరం. అప్లికేషన్‌లో ఏవైనా మార్పులు చేసిన తర్వాత, కంటైనర్ ఇమేజ్ తప్పనిసరిగా పునర్నిర్మించబడాలి మరియు ఉపయోగించిన అన్ని పరిసరాలకు అమలు చేయాలి. మార్గం ద్వారా, IT వ్యవస్థలను నిర్వహించేటప్పుడు, ఇదే విధమైన సూత్రం ఉపయోగించబడుతుంది, దీనిని సర్వర్లు మరియు అవస్థాపన యొక్క మార్పులేని సూత్రం అని పిలుస్తారు.

IIP యొక్క లక్ష్యం వివిధ రన్‌టైమ్ ఎన్విరాన్‌మెంట్‌ల కోసం ప్రత్యేక కంటైనర్ ఇమేజ్‌ల సృష్టిని నిరోధించడం మరియు తగిన పర్యావరణ-నిర్దిష్ట కాన్ఫిగరేషన్‌తో పాటు ప్రతిచోటా ఒకే చిత్రాన్ని ఉపయోగించడం. ఈ సూత్రాన్ని అనుసరించడం వలన క్లౌడ్ సిస్టమ్‌ల ఆటోమేషన్ కోణం నుండి రోల్-బ్యాక్ మరియు అప్లికేషన్ అప్‌డేట్‌ల రోల్-ఫార్వర్డ్ వంటి ముఖ్యమైన పద్ధతులను అమలు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.

క్లౌడ్-నేటివ్ యాప్‌లను రూపొందించడానికి 5 కామన్ సెన్స్ ప్రిన్సిపల్స్

ప్రాసెస్ డిస్పోజబిలిటీ ప్రిన్సిపల్ (PDP)

కంటైనర్ యొక్క అతి ముఖ్యమైన లక్షణాలలో ఒకటి దాని అశాశ్వతత: కంటైనర్ యొక్క ఉదాహరణ సృష్టించడం సులభం మరియు నాశనం చేయడం సులభం, కాబట్టి దానిని ఎప్పుడైనా మరొక ఉదాహరణతో సులభంగా భర్తీ చేయవచ్చు. అటువంటి భర్తీకి అనేక కారణాలు ఉండవచ్చు: సర్వీస్‌బిలిటీ పరీక్ష వైఫల్యం, అప్లికేషన్ యొక్క స్కేలింగ్, మరొక హోస్ట్‌కి బదిలీ చేయడం, ప్లాట్‌ఫారమ్ వనరులు క్షీణించడం లేదా ఇతర పరిస్థితులు.

క్లౌడ్-నేటివ్ యాప్‌లను రూపొందించడానికి 5 కామన్ సెన్స్ ప్రిన్సిపల్స్
పర్యవసానంగా, కంటైనర్ చేయబడిన అప్లికేషన్‌లు తప్పనిసరిగా కొన్ని బాహ్య మార్గాలను ఉపయోగించి తమ స్థితిని కొనసాగించాలి లేదా దీని కోసం రిడెండెన్సీతో అంతర్గత పంపిణీ పథకాలను ఉపయోగించాలి. అదనంగా, అప్లికేషన్ త్వరగా ప్రారంభించబడాలి మరియు త్వరగా మూసివేయబడాలి మరియు ఆకస్మిక ప్రాణాంతక హార్డ్‌వేర్ వైఫల్యానికి సిద్ధంగా ఉండాలి.

ఈ సూత్రాన్ని అమలు చేయడంలో సహాయపడే ఒక అభ్యాసం కంటైనర్లను చిన్నగా ఉంచడం. క్లౌడ్ ఎన్విరాన్‌మెంట్‌లు కంటైనర్ ఉదాహరణను ప్రారంభించేందుకు స్వయంచాలకంగా హోస్ట్‌ను ఎంచుకోవచ్చు, కాబట్టి కంటైనర్ చిన్నగా ఉంటే, అది వేగంగా ప్రారంభమవుతుంది - ఇది నెట్‌వర్క్‌లోని లక్ష్య హోస్ట్‌కు వేగంగా కాపీ చేస్తుంది.

స్వీయ-నియంత్రణ సూత్రం (S-CP)

ఈ సూత్రం ప్రకారం, అసెంబ్లీ దశలో, అవసరమైన అన్ని భాగాలు కంటైనర్లో చేర్చబడ్డాయి. సిస్టమ్ స్వచ్ఛమైన లైనక్స్ కెర్నల్‌ను మాత్రమే కలిగి ఉందని భావించి కంటైనర్‌ను నిర్మించాలి, కాబట్టి అవసరమైన అన్ని అదనపు లైబ్రరీలను కంటైనర్‌లోనే ఉంచాలి. ఇది సంబంధిత ప్రోగ్రామింగ్ లాంగ్వేజ్ కోసం రన్‌టైమ్, అప్లికేషన్ ప్లాట్‌ఫారమ్ (అవసరమైతే) మరియు కంటైనర్ అప్లికేషన్ రన్ అవుతున్నప్పుడు అవసరమయ్యే ఇతర డిపెండెన్సీల వంటి అంశాలను కూడా కలిగి ఉండాలి.

క్లౌడ్-నేటివ్ యాప్‌లను రూపొందించడానికి 5 కామన్ సెన్స్ ప్రిన్సిపల్స్

పర్యావరణం నుండి పర్యావరణానికి మారుతూ ఉండే కాన్ఫిగరేషన్‌ల కోసం మినహాయింపులు చేయబడ్డాయి మరియు రన్‌టైమ్‌లో తప్పనిసరిగా అందించబడాలి, ఉదాహరణకు Kubernetes ConfigMap ద్వారా.

ఒక అప్లికేషన్ అనేక కంటెయినరైజ్డ్ కాంపోనెంట్‌లను కలిగి ఉండవచ్చు, ఉదాహరణకు, ఒక కంటెయినరైజ్డ్ వెబ్ అప్లికేషన్‌లోని ప్రత్యేక DBMS కంటైనర్. S-CP సూత్రం ప్రకారం, ఈ కంటైనర్‌లను ఒకటిగా కలపకూడదు, కానీ DBMS కంటైనర్‌లో డేటాబేస్ యొక్క ఆపరేషన్‌కు అవసరమైన ప్రతిదాన్ని కలిగి ఉండేలా తయారు చేయాలి మరియు వెబ్ అప్లికేషన్ కంటైనర్‌లో వెబ్ ఆపరేషన్‌కు అవసరమైన ప్రతిదీ ఉంటుంది. అప్లికేషన్, అదే వెబ్ సర్వర్ . ఫలితంగా, రన్‌టైమ్‌లో వెబ్ అప్లికేషన్ కంటైనర్ DBMS కంటైనర్‌పై ఆధారపడి ఉంటుంది మరియు దానిని అవసరమైన విధంగా యాక్సెస్ చేస్తుంది.

రన్‌టైమ్ నిర్బంధ సూత్రం (RCP)

S-CP సూత్రం కంటైనర్ ఎలా నిర్మించబడాలి మరియు ఇమేజ్ బైనరీ ఏమి కలిగి ఉండాలి అని నిర్వచిస్తుంది. కానీ కంటైనర్ అంటే కేవలం ఒక "బ్లాక్ బాక్స్" మాత్రమే కాదు - ఫైల్ పరిమాణం. అమలు సమయంలో, కంటైనర్ ఇతర కొలతలు తీసుకుంటుంది: ఉపయోగించిన మెమరీ మొత్తం, CPU సమయం మరియు ఇతర సిస్టమ్ వనరులు.

క్లౌడ్-నేటివ్ యాప్‌లను రూపొందించడానికి 5 కామన్ సెన్స్ ప్రిన్సిపల్స్
మరియు ఇక్కడ RCP సూత్రం ఉపయోగపడుతుంది, దీని ప్రకారం కంటైనర్ సిస్టమ్ వనరుల కోసం దాని అవసరాలను శిరచ్ఛేదం చేయాలి మరియు వాటిని ప్లాట్‌ఫారమ్‌కు బదిలీ చేయాలి. ప్రతి కంటైనర్ యొక్క రిసోర్స్ ప్రొఫైల్‌లతో (దీనికి ఎంత CPU, మెమరీ, నెట్‌వర్క్ మరియు డిస్క్ వనరులు కావాలి), ప్లాట్‌ఫారమ్ షెడ్యూలింగ్ మరియు ఆటోస్కేలింగ్‌ను ఉత్తమంగా నిర్వహించగలదు, IT సామర్థ్యాన్ని నిర్వహించగలదు మరియు కంటైనర్‌ల కోసం SLA స్థాయిలను నిర్వహించగలదు.

కంటైనర్ యొక్క వనరుల అవసరాలను తీర్చడంతో పాటు, అప్లికేషన్ దాని స్వంత సరిహద్దులను దాటి వెళ్లకుండా ఉండటం కూడా ముఖ్యం. లేకపోతే, వనరుల కొరత ఏర్పడినప్పుడు, ప్లాట్‌ఫారమ్ దాన్ని రద్దు చేయాల్సిన లేదా తరలించాల్సిన అప్లికేషన్‌ల జాబితాలో చేర్చే అవకాశం ఉంది.

మేము క్లౌడ్-ఫస్ట్ గురించి మాట్లాడేటప్పుడు, మేము పని చేసే విధానం గురించి మాట్లాడుతున్నాము.
పైన, క్లౌడ్ పరిసరాల కోసం అధిక-నాణ్యత కంటైనర్ అప్లికేషన్‌లను రూపొందించడానికి పద్దతి పునాదిని సెట్ చేసే అనేక సాధారణ సూత్రాలను మేము రూపొందించాము.

ఈ సాధారణ సూత్రాలకు అదనంగా, కంటైనర్లతో పని చేయడానికి మీకు అదనపు అధునాతన పద్ధతులు మరియు పద్ధతులు కూడా అవసరమని గమనించండి. అదనంగా, మేము మరింత నిర్దిష్టమైన కొన్ని చిన్న సిఫార్సులను కలిగి ఉన్నాము మరియు పరిస్థితిని బట్టి వర్తింపజేయాలి (లేదా వర్తించకూడదు):

  • చిత్రాల పరిమాణాన్ని తగ్గించడానికి ప్రయత్నించండి: తాత్కాలిక ఫైల్‌లను తొలగించండి మరియు అనవసరమైన ప్యాకేజీలను ఇన్‌స్టాల్ చేయవద్దు - కంటైనర్ పరిమాణం చిన్నది, అది వేగంగా సమీకరించబడుతుంది మరియు నెట్‌వర్క్ ద్వారా లక్ష్య హోస్ట్‌కు కాపీ చేయబడుతుంది.
  • ఏకపక్ష వినియోగదారు-IDలపై దృష్టి కేంద్రీకరించండి: మీ కంటైనర్‌లను ప్రారంభించేందుకు sudo కమాండ్ లేదా ఏదైనా ప్రత్యేక useridని ఉపయోగించవద్దు.
  • ముఖ్యమైన పోర్ట్‌లను గుర్తించండి: మీరు రన్‌టైమ్‌లో పోర్ట్ నంబర్‌లను సెట్ చేయవచ్చు, కానీ EXPOSE కమాండ్‌ని ఉపయోగించి వాటిని పేర్కొనడం ఉత్తమం - ఇది మీ చిత్రాలను ఉపయోగించడానికి ఇతర వ్యక్తులు మరియు ప్రోగ్రామ్‌లకు సులభతరం చేస్తుంది.
  • వాల్యూమ్‌లపై నిరంతర డేటాను నిల్వ చేయండి: కంటైనర్ నాశనం అయిన తర్వాత మిగిలి ఉండే డేటా వాల్యూమ్‌లకు వ్రాయబడాలి.
  • చిత్ర మెటాడేటాను వ్రాయండి: ట్యాగ్‌లు, లేబుల్‌లు మరియు ఉల్లేఖనాలు చిత్రాలను ఉపయోగించడానికి సులభతరం చేస్తాయి - ఇతర డెవలపర్‌లు మీకు కృతజ్ఞతలు తెలుపుతారు.
  • హోస్ట్ మరియు చిత్రాలను సమకాలీకరించండి: కొన్ని కంటెయినరైజ్ చేసిన అప్లికేషన్‌లకు సమయం లేదా మెషిన్ ID వంటి నిర్దిష్ట లక్షణాలపై హోస్ట్‌తో సమకాలీకరించడానికి కంటైనర్ అవసరం.
  • ముగింపులో, పైన పేర్కొన్న సూత్రాలను మరింత సమర్థవంతంగా అమలు చేయడంలో మీకు సహాయపడే టెంప్లేట్‌లు మరియు ఉత్తమ అభ్యాసాలను మేము భాగస్వామ్యం చేస్తాము:
    www.slideshare.net/luebken/container-patterns
    docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices
    docs.projectatomic.io/container-best-practices
    docs.openshift.com/enterprise/3.0/creating_images/guidelines.html
    www.usenix.org/system/files/conference/hotcloud16/hotcloud16_burns.pdf
    leanpub.com/k8spatterns
    12factor.net

OpenShift కంటైనర్ ప్లాట్‌ఫారమ్ యొక్క కొత్త వెర్షన్‌లో Webinar – 4
జూన్ 11 11.00 గంటలకు

మీరు ఏమి నేర్చుకుంటారు:

  • మార్పులేని Red Hat Enterprise Linux CoreOS
  • OpenShift సర్వీస్ మెష్
  • ఆపరేటర్ ఫ్రేమ్‌వర్క్
  • నాటివ్ ఫ్రేమ్‌వర్క్

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి