మీ నెట్‌వర్క్ ఇన్‌ఫ్రాస్ట్రక్చర్‌ను ఎలా నియంత్రించాలి. అధ్యాయం నాలుగు. ఆటోమేషన్. టెంప్లేట్లు

ఈ కథనం “మీ నెట్‌వర్క్ ఇన్‌ఫ్రాస్ట్రక్చర్‌ను ఎలా నియంత్రించాలి” సిరీస్‌లో ఆరవది. సిరీస్‌లోని అన్ని కథనాల కంటెంట్‌లు మరియు లింక్‌లను కనుగొనవచ్చు ఇక్కడ.

అనేక అంశాలను వదిలిపెట్టి, కొత్త అధ్యాయాన్ని ప్రారంభించాలని నిర్ణయించుకున్నాను.

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

నెట్‌వర్క్ కోసం DevOps

స్క్రిప్ట్‌తో కాన్ఫిగరేషన్‌ను సృష్టించడం, IT అవస్థాపనలో మార్పులను నియంత్రించడానికి GITని ఉపయోగించడం, రిమోట్ “అప్‌లోడ్” - మీరు DevOps విధానం యొక్క సాంకేతిక అమలు గురించి ఆలోచించినప్పుడు ఈ ఆలోచనలు మొదట వస్తాయి. ప్రయోజనాలు స్పష్టంగా ఉన్నాయి. కానీ, దురదృష్టవశాత్తు, ప్రతికూలతలు కూడా ఉన్నాయి.

5 సంవత్సరాల క్రితం, మా డెవలపర్లు మా వద్దకు వచ్చినప్పుడు, నెట్‌వర్కర్లు, ఈ ప్రతిపాదనలతో మేము సంతోషించలేదు.

మేము దాదాపు 10 వేర్వేరు విక్రేతల నుండి పరికరాలతో కూడిన మోట్లీ నెట్‌వర్క్‌ను వారసత్వంగా పొందామని నేను చెప్పాలి. మాకు ఇష్టమైన cli ద్వారా కొన్ని విషయాలను కాన్ఫిగర్ చేయడం సౌకర్యంగా ఉంటుంది, కానీ మరికొన్నింటిలో మేము GUIని ఉపయోగించడానికి ఇష్టపడతాము. అదనంగా, "ప్రత్యక్ష" పరికరాలపై సుదీర్ఘ పని మాకు నిజ-సమయ నియంత్రణను నేర్పింది. ఉదాహరణకు, మార్పులు చేస్తున్నప్పుడు, నేను cli ద్వారా నేరుగా పని చేయడం చాలా సుఖంగా ఉంటుంది. ఈ విధంగా ఏదో తప్పు జరిగిందని నేను త్వరగా చూడగలను మరియు మార్పులను వెనక్కి తీసుకోగలను. ఇదంతా వారి ఆలోచనలకు కొంత విరుద్ధంగా ఉంది.

ఇతర ప్రశ్నలు కూడా తలెత్తుతాయి, ఉదాహరణకు, సాఫ్ట్‌వేర్ వెర్షన్ నుండి సంస్కరణకు ఇంటర్‌ఫేస్ కొద్దిగా మారవచ్చు. ఇది చివరికి మీ స్క్రిప్ట్ తప్పు "కాన్ఫిగరేషన్"ని సృష్టించేలా చేస్తుంది. నేను "రన్నింగ్ ఇన్" కోసం ఉత్పత్తిని ఉపయోగించాలనుకోను.

లేదా, కాన్ఫిగరేషన్ ఆదేశాలు సరిగ్గా వర్తింపజేసినట్లు ఎలా అర్థం చేసుకోవాలి మరియు లోపం సంభవించినట్లయితే ఏమి చేయాలి?

ఈ సమస్యలన్నీ అపరిష్కృతమైనవని నేను చెప్పదలచుకోలేదు. “A” అని చెప్పడం బహుశా “B” అని కూడా చెప్పడానికి అర్ధమే, మరియు మీరు అభివృద్ధిలో ఉన్న మార్పు నియంత్రణ కోసం అదే ప్రక్రియలను ఉపయోగించాలనుకుంటే, మీరు ఉత్పత్తికి అదనంగా dev మరియు స్టేజింగ్ వాతావరణాలను కలిగి ఉండాలి. అప్పుడు ఈ విధానం పూర్తయినట్లు కనిపిస్తుంది. అయితే ఎంత ఖర్చు అవుతుంది?

కానీ ప్రతికూలతలు ఆచరణాత్మకంగా సమం చేయబడినప్పుడు ఒక పరిస్థితి ఉంది మరియు ప్రయోజనాలు మాత్రమే మిగిలి ఉన్నాయి. నేను డిజైన్ పని గురించి మాట్లాడుతున్నాను.

ప్రాజెక్ట్

గత రెండు సంవత్సరాలుగా నేను పెద్ద ప్రొవైడర్ కోసం డేటా సెంటర్‌ను నిర్మించే ప్రాజెక్ట్‌లో పాల్గొంటున్నాను. ఈ ప్రాజెక్ట్‌లో F5 మరియు పాలో ఆల్టోకు నేను బాధ్యత వహిస్తాను. సిస్కో దృష్టికోణంలో, ఇది “3వ పార్టీ పరికరాలు”.

నాకు వ్యక్తిగతంగా, ఈ ప్రాజెక్ట్‌లో రెండు విభిన్న దశలు ఉన్నాయి.

మొదటి దశ

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

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

ఇది ఒక సంవత్సరం పాటు కొనసాగింది. ప్రాజెక్ట్, నేను అర్థం చేసుకున్నంతవరకు, అందరికీ సులభం కాదు, కానీ క్రమంగా క్లయింట్ మరింత సంతృప్తి చెందాడు మరియు ఇది రొటీన్‌లో భాగంగా తీసుకోగలిగే అదనపు ఇంజనీర్‌లను నియమించుకోవడం సాధ్యపడింది.

ఇప్పుడు మనం కొంచెం చుట్టూ చూసుకోవచ్చు.
మరియు ఇది రెండవ దశకు నాంది.

రెండవ దశ

నేను ప్రక్రియను ఆటోమేట్ చేయాలని నిర్ణయించుకున్నాను.

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

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

కాబట్టి, YAML మరియు Jinja2ని ఉపయోగిస్తున్నప్పుడు, IP చిరునామాలు, BGP AS సంఖ్యలు, ... వంటి కాన్ఫిగరేషన్ పారామీటర్‌లతో కూడిన YAML ఫైల్ NIP పాత్రను సంపూర్ణంగా నెరవేరుస్తుంది, అయితే Jinja2 టెంప్లేట్‌లు డిజైన్‌కు అనుగుణమైన వాక్యనిర్మాణాన్ని కలిగి ఉంటాయి, అంటే, ఇది తప్పనిసరిగా ఒక LLD యొక్క ప్రతిబింబం.

YAML మరియు Jinja2 నేర్చుకోవడానికి రెండు రోజులు పట్టింది. ఇది ఎలా పని చేస్తుందో అర్థం చేసుకోవడానికి కొన్ని మంచి ఉదాహరణలు సరిపోతాయి. అప్పుడు మా డిజైన్‌కు సరిపోయే అన్ని టెంప్లేట్‌లను రూపొందించడానికి దాదాపు రెండు వారాలు పట్టింది: పాలో ఆల్టో కోసం ఒక వారం మరియు F5 కోసం మరో వారం. ఇదంతా కార్పొరేట్ గితాబ్‌లో పోస్ట్ చేయబడింది.

ఇప్పుడు మార్పు ప్రక్రియ ఇలా ఉంది:

  • YAML ఫైల్‌ను మార్చింది
  • టెంప్లేట్ (జింజా2) ఉపయోగించి కాన్ఫిగరేషన్ ఫైల్‌ను సృష్టించింది
  • రిమోట్ రిపోజిటరీలో సేవ్ చేయబడింది
  • సృష్టించిన కాన్ఫిగరేషన్‌ను పరికరాలకు అప్‌లోడ్ చేసింది
  • నేను ఒక లోపం చూశాను
  • YAML ఫైల్ లేదా Jinja2 టెంప్లేట్ మార్చబడింది
  • టెంప్లేట్ (జింజా2) ఉపయోగించి కాన్ఫిగరేషన్ ఫైల్‌ను సృష్టించింది
  • ...

మొదట్లో సవరణల కోసం చాలా సమయం వెచ్చించారని స్పష్టమైంది, కానీ ఒకటి లేదా రెండు వారాల తర్వాత ఇది చాలా అరుదుగా మారింది.

ప్రతిదానిని డీబగ్ చేయడానికి మంచి పరీక్ష మరియు అవకాశం పేరు పెట్టే విధానాన్ని మార్చాలనే క్లయింట్ కోరిక. F5తో పనిచేసిన వారు పరిస్థితి యొక్క విపరీతతను అర్థం చేసుకుంటారు. కానీ నాకు అంతా చాలా సింపుల్‌గా జరిగింది. నేను YAML ఫైల్‌లోని పేర్లను మార్చాను, పరికరాల నుండి మొత్తం కాన్ఫిగరేషన్‌ను తొలగించాను, కొత్తదాన్ని రూపొందించి అప్‌లోడ్ చేసాను. బగ్ పరిష్కారాలతో సహా అన్నింటికీ 4 రోజులు పట్టింది: ఒక్కో టెక్నాలజీకి రెండు రోజులు. ఆ తర్వాత, నేను తదుపరి దశకు సిద్ధంగా ఉన్నాను, అవి DEV మరియు స్టేజింగ్ డేటా సెంటర్ల సృష్టి.

దేవ్ మరియు స్టేజింగ్

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

యొక్క సారాంశాన్ని లెట్

కాబట్టి, నేను బాటమ్ లైన్‌లో ఏమి కలిగి ఉన్నాను?

  • కాన్ఫిగరేషన్‌ను మార్చడానికి నేను చేయాల్సిందల్లా కాన్ఫిగరేషన్ పారామితులతో సరళమైన, స్పష్టంగా నిర్మాణాత్మకమైన YAML ఫైల్‌ను మార్చడం. నేను ఎప్పుడూ పైథాన్ స్క్రిప్ట్‌ని మార్చను మరియు చాలా అరుదుగా (లోపం ఉన్నట్లయితే మాత్రమే) నేను జింజా2 హీట్‌లేట్‌ని మారుస్తాను
  • డాక్యుమెంటేషన్ కోణం నుండి, ఇది దాదాపు ఆదర్శవంతమైన పరిస్థితి. మీరు డాక్యుమెంటేషన్‌ను మార్చండి (YAML ఫైల్‌లు NIPగా పనిచేస్తాయి) మరియు ఈ కాన్ఫిగరేషన్‌ను పరికరాలకు అప్‌లోడ్ చేయండి. ఈ విధంగా మీ డాక్యుమెంటేషన్ ఎల్లప్పుడూ తాజాగా ఉంటుంది

ఇదంతా వాస్తవం దారితీసింది

  • లోపం రేటు దాదాపు 0కి పడిపోయింది
  • 90 శాతం రొటీన్ అయిపోయింది
  • అమలు వేగం గణనీయంగా పెరిగింది

పే, F5Y, ACY

ఇది ఎలా పనిచేస్తుందో అర్థం చేసుకోవడానికి కొన్ని ఉదాహరణలు సరిపోతాయని నేను చెప్పాను.
నా పని సమయంలో సృష్టించబడిన వాటి యొక్క చిన్న (మరియు వాస్తవానికి సవరించిన) సంస్కరణ ఇక్కడ ఉంది.

పే = విస్తరణ Pహలో Aనుండి Yaml = Yaml నుండి పాలో ఆల్టో
F5Y = విస్తరణ F5 నుండి Yaml = F5 నుండి Yaml (త్వరలో వస్తుంది)
ACY = విస్తరణ ACనేను నుండి Yaml = F5 నుండి YJR

నేను ACY గురించి కొన్ని పదాలను జోడిస్తాను (ACIతో గందరగోళం చెందకూడదు).

ఈ అద్భుతం (మరియు మంచి మార్గంలో కూడా) ఖచ్చితంగా నెట్‌వర్కర్లచే సృష్టించబడలేదని ACIతో పనిచేసిన వారికి తెలుసు :). నెట్‌వర్క్ గురించి మీకు తెలిసిన ప్రతిదాన్ని మరచిపోండి - ఇది మీకు ఉపయోగపడదు!
ఇది కొంచెం అతిశయోక్తి, కానీ గత 3 సంవత్సరాలుగా, ACIతో పని చేస్తూ నేను నిరంతరం అనుభవిస్తున్న అనుభూతిని ఇది సుమారుగా తెలియజేస్తుంది.

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

ఈ ప్రాజెక్ట్‌లోని ఇంజనీర్లు సరిగ్గా అదే ప్రయోజనాల కోసం YAMLకి బదులుగా ACIని కాన్ఫిగర్ చేయడానికి Excelని ఉపయోగిస్తారు. వాస్తవానికి, ఎక్సెల్ ఉపయోగించడం వల్ల ప్రయోజనాలు ఉన్నాయి:

  • ఒక ఫైల్‌లో మీ NIP
  • క్లయింట్ చూడటానికి ఆహ్లాదకరంగా ఉండే అందమైన సంకేతాలు
  • మీరు కొన్ని ఎక్సెల్ సాధనాలను ఉపయోగించవచ్చు

కానీ ఒక మైనస్ ఉంది, మరియు నా అభిప్రాయం ప్రకారం ఇది ప్రోస్ను అధిగమిస్తుంది. మార్పులను నియంత్రించడం మరియు జట్టు పనిని సమన్వయం చేయడం చాలా కష్టం అవుతుంది.

ACY అనేది నిజానికి ACIని కాన్ఫిగర్ చేయడానికి నేను 3వ పక్షం కోసం ఉపయోగించిన అదే విధానాల యొక్క అప్లికేషన్.

మూలం: www.habr.com

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