ప్రోహోస్టర్ > బ్లాగ్ > పరిపాలన > డమ్మీస్ గైడ్: ఓపెన్ సోర్స్ టూల్స్తో DevOps చైన్లను రూపొందించడం
డమ్మీస్ గైడ్: ఓపెన్ సోర్స్ టూల్స్తో DevOps చైన్లను రూపొందించడం
ప్రారంభకులకు ఐదు దశల్లో మీ మొదటి DevOps గొలుసును రూపొందించడం.
DevOps చాలా నెమ్మదిగా, డిస్కనెక్ట్ చేయబడిన మరియు సమస్యాత్మకమైన అభివృద్ధి ప్రక్రియలకు దివ్యౌషధంగా మారింది. కానీ మీకు DevOpsలో కనీస పరిజ్ఞానం అవసరం. ఇది DevOps చైన్ మరియు ఐదు దశల్లో ఒకదాన్ని ఎలా సృష్టించాలి వంటి అంశాలను కవర్ చేస్తుంది. ఇది పూర్తి గైడ్ కాదు, కానీ విస్తరించగల "చేప" మాత్రమే. చరిత్రతో ప్రారంభిద్దాం.
DevOpsకి నా పరిచయం
నేను సిటీ గ్రూప్లో క్లౌడ్లతో కలిసి పనిచేసి, Citi క్లౌడ్ ఇన్ఫ్రాస్ట్రక్చర్ని నిర్వహించడానికి IaaS వెబ్ అప్లికేషన్ని డెవలప్ చేసేవాడిని, అయితే డెవలపర్లలో డెవలప్మెంట్ చైన్ను ఎలా ఆప్టిమైజ్ చేయాలి మరియు సంస్కృతిని ఎలా మెరుగుపరచాలనే దానిపై నాకు ఎప్పుడూ ఆసక్తి ఉంటుంది. క్లౌడ్ ఆర్కిటెక్చర్ మరియు ఇన్ఫ్రాస్ట్రక్చర్ కోసం మా CTO గ్రెగ్ లావెండర్ ఈ పుస్తకాన్ని నాకు సిఫార్సు చేసారు. ఫీనిక్స్ ప్రాజెక్ట్. ఇది DevOps సూత్రాలను అందంగా వివరిస్తుంది మరియు నవల లాగా చదువుతుంది.
కంపెనీలు కొత్త వెర్షన్లను ఎంత తరచుగా విడుదల చేస్తాయో వెనుక ఉన్న పట్టిక చూపిస్తుంది:
అమెజాన్, గూగుల్ మరియు నెట్ఫ్లిక్స్లు ఇంతగా ఎలా విడుదల చేయగలుగుతున్నాయి? మరియు ఇది చాలా సులభం: వారు ఖచ్చితమైన DevOps గొలుసును ఎలా సృష్టించాలో కనుగొన్నారు.
మేము DevOpsకి మారే వరకు సిటీలో మాకు చాలా భిన్నంగా ఉండేవి. అప్పుడు నా బృందం వేర్వేరు వాతావరణాలను కలిగి ఉంది, కానీ మేము డెవలప్మెంట్ సర్వర్కు మాన్యువల్గా డెలివరీ చేసాము. డెవలపర్లందరికీ IBM వెబ్స్పియర్ అప్లికేషన్ సర్వర్ కమ్యూనిటీ ఎడిషన్ ఆధారంగా ఒక డెవలప్మెంట్ సర్వర్కు మాత్రమే యాక్సెస్ ఉంది. బట్వాడా చేయడానికి ఏకకాల ప్రయత్నంతో, సర్వర్ "పడిపోయింది", మరియు ప్రతిసారీ మనం మనలో "బాధాకరంగా" చర్చలు జరపవలసి వచ్చింది. మేము పరీక్షలతో తగినంత కోడ్ కవరేజీని కలిగి లేము, సమయం తీసుకునే మాన్యువల్ డెలివరీ ప్రక్రియ మరియు కొన్ని టాస్క్ లేదా క్లయింట్ అవసరాల సహాయంతో కోడ్ డెలివరీని ట్రాక్ చేయడానికి మార్గం లేదు.
తక్షణమే ఏదో ఒకటి చేయవలసి ఉందని స్పష్టమైంది మరియు నేను అలాంటి ఆలోచనాపరుడైన సహోద్యోగిని కనుగొన్నాను. మేము కలిసి మొదటి DevOps గొలుసును రూపొందించాలని నిర్ణయించుకున్నాము - అతను వర్చువల్ మెషీన్ మరియు టామ్క్యాట్ అప్లికేషన్ సర్వర్ను సెటప్ చేసాము మరియు నేను జెంకిన్స్, అట్లాసియన్ జిరా మరియు బిట్బకెట్తో ఏకీకరణ, అలాగే పరీక్షలతో కోడ్ కవరేజీని చూసుకున్నాను. ప్రాజెక్ట్ విజయవంతమైంది: మేము డెవలప్మెంట్ చెయిన్ను పూర్తిగా ఆటోమేట్ చేసాము, డెవలప్మెంట్ సర్వర్లో దాదాపు 100% అప్టైమ్ను సాధించాము, పరీక్షలతో కోడ్ కవరేజీని పర్యవేక్షించడం మరియు మెరుగుపరచడం మరియు Git బ్రాంచ్ని జిరా డెలివరీ మరియు ఇష్యూతో ముడిపెట్టవచ్చు. మరియు DevOps గొలుసును నిర్మించడానికి మేము ఉపయోగించిన దాదాపు అన్ని సాధనాలు ఓపెన్ సోర్స్.
వాస్తవానికి, చైన్ సరళీకృతం చేయబడింది, ఎందుకంటే మేము జెంకిన్స్ లేదా అన్సిబుల్ ఉపయోగించి అధునాతన కాన్ఫిగరేషన్లను కూడా వర్తింపజేయలేదు. కానీ మేము విజయం సాధించాము. బహుశా ఇది సూత్రం యొక్క పరిణామం పారెటో (అకా 80/20 నియమం).
DevOps మరియు CI/CD చైన్ యొక్క సంక్షిప్త వివరణ
DevOpsకు విభిన్న నిర్వచనాలు ఉన్నాయి. ఎజైల్ వంటి DevOps విభిన్న విభాగాలను కలిగి ఉంటుంది. కానీ చాలా మంది కింది నిర్వచనంతో ఏకీభవిస్తారు: DevOps అనేది సాఫ్ట్వేర్ డెవలప్మెంట్ యొక్క ఒక పద్ధతి లేదా జీవిత చక్రం, డెవలపర్లు మరియు ఇతర ఉద్యోగులు “ఒకే తరంగదైర్ఘ్యం” ఉన్న సంస్కృతిని సృష్టించడం దీని ప్రధాన సూత్రం, మాన్యువల్ లేబర్ ఆటోమేటెడ్, ప్రతి ఒక్కరూ వారు ఉత్తమంగా ఏమి చేస్తారు, డెలివరీల ఫ్రీక్వెన్సీ పెరుగుతుంది, పని యొక్క ఉత్పాదకత పెరుగుతుంది, వశ్యత పెరుగుతుంది.
DevOps వాతావరణాన్ని సృష్టించడానికి సాధనాలు మాత్రమే సరిపోవు, అవి చాలా అవసరం. వీటిలో ముఖ్యమైనది నిరంతర ఏకీకరణ మరియు నిరంతర డెలివరీ (CI/CD). ప్రతి పర్యావరణం కోసం గొలుసులో వివిధ దశలు ఉన్నాయి (ఉదా. DEV (అభివృద్ధి), INT (సమగ్రత), TST (పరీక్ష), QA (నాణ్యత హామీ), UAT (వినియోగదారు అంగీకార పరీక్ష), STG (తయారీ), PROD (ఉపయోగం)) , మాన్యువల్ పనులు స్వయంచాలకంగా ఉంటాయి, డెవలపర్లు నాణ్యమైన కోడ్ని తయారు చేయగలరు, దానిని బట్వాడా చేయగలరు మరియు సులభంగా పునర్నిర్మించగలరు.
ఈ గమనిక ఓపెన్ సోర్స్ సాధనాలను ఉపయోగించి దిగువ చిత్రంలో చూపిన విధంగా ఐదు దశల్లో DevOps గొలుసును ఎలా సృష్టించాలో వివరిస్తుంది.
పనిలోకి దిగుదాం.
దశ 1: CI/CD ప్లాట్ఫారమ్
అన్నింటిలో మొదటిది, మీకు CI/CD సాధనం అవసరం. జెంకిన్స్ అనేది MIT-లైసెన్స్ పొందిన, జావాలో వ్రాయబడిన ఓపెన్-సోర్స్ CI/CD సాధనం, ఇది DevOps ఉద్యమాన్ని ప్రాచుర్యంలోకి తెచ్చింది మరియు CICDకి వాస్తవ ప్రమాణంగా మారింది.
జెంకిన్స్ అంటే ఏమిటి? మీరు వివిధ రకాల సేవలు మరియు సాధనాల కోసం మాయా నియంత్రణ ప్యానెల్ని కలిగి ఉన్నారని ఊహించండి. సొంతంగా, జెంకిన్స్ వంటి CI/CD సాధనం పనికిరానిది, కానీ విభిన్న సాధనాలు మరియు సేవలతో, ఇది సర్వశక్తివంతంగా మారుతుంది.
జెంకిన్స్తో పాటు, అనేక ఇతర ఓపెన్ సోర్స్ సాధనాలు ఉన్నాయి, ఏదైనా ఎంచుకోండి.
CI/CD సాధనంతో DevOps ప్రక్రియ ఎలా ఉంటుందో ఇక్కడ ఉంది
మీరు లోకల్ హోస్ట్లో CI / CD టూల్ని కలిగి ఉన్నారు, కానీ ఇంకా చేయాల్సింది ఏమీ లేదు. తదుపరి దశకు వెళ్దాం.
దశ 2: సంస్కరణ
CI/CD సాధనం యొక్క మాయాజాలాన్ని పరీక్షించడానికి ఉత్తమమైన (మరియు నిస్సందేహంగా సులభమైన) మార్గం దానిని సోర్స్ కంట్రోల్ మేనేజ్మెంట్ (SCM) సాధనంతో ఏకీకృతం చేయడం. మీకు సంస్కరణ నియంత్రణ ఎందుకు అవసరం? మీరు దరఖాస్తు చేస్తున్నారనుకుందాం. మీరు దీన్ని Java, Python, C++, Go, Ruby, JavaScript లేదా బండి మరియు చిన్న బండి వంటి ఏదైనా ఇతర భాషలో వ్రాస్తారు. మీరు వ్రాసేదాన్ని సోర్స్ కోడ్ అంటారు. మొదట, ప్రత్యేకంగా మీరు ఒంటరిగా పని చేస్తున్నట్లయితే, మీరు ప్రతి ఒక్కటి స్థానిక డైరెక్టరీకి సేవ్ చేయవచ్చు. కానీ ప్రాజెక్ట్ అభివృద్ధి చెందుతున్నప్పుడు మరియు ఎక్కువ మంది వ్యక్తులు చేరినప్పుడు, కోడ్ మార్పులను భాగస్వామ్యం చేయడానికి మీకు ఒక మార్గం అవసరం కానీ మార్పులను విలీనం చేసేటప్పుడు వైరుధ్యాలను నివారించండి. మరియు మీరు బ్యాకప్లను ఉపయోగించకుండా మరియు కోడ్ ఫైల్ల కోసం కాపీ-పేస్ట్ పద్ధతిని ఉపయోగించకుండా మునుపటి సంస్కరణలను పునరుద్ధరించాలి.
మరియు ఇక్కడ ఎక్కడా SCM లేకుండా. SCM రిపోజిటరీలలో కోడ్ను నిల్వ చేస్తుంది, దాని సంస్కరణలను నిర్వహిస్తుంది మరియు డెవలపర్ల మధ్య సమన్వయం చేస్తుంది.
అనేక SCM సాధనాలు ఉన్నాయి, కానీ Git అర్హతతో వాస్తవ ప్రమాణంగా మారింది. దీన్ని ఉపయోగించమని నేను మీకు సలహా ఇస్తున్నాను, కానీ ఇతర ఎంపికలు ఉన్నాయి.
SCMని జోడించిన తర్వాత DevOps పైప్లైన్ ఎలా ఉంటుందో ఇక్కడ ఉంది.
CI/CD సాధనం సోర్స్ కోడ్ అప్లోడ్ మరియు డౌన్లోడ్ మరియు బృందం సహకారాన్ని ఆటోమేట్ చేయగలదు. చెడ్డది కాదా? కానీ ఇప్పుడు బిలియన్ల మంది వినియోగదారులు ఇష్టపడే దీని నుండి పని చేసే అప్లికేషన్ను ఎలా తయారు చేయాలి?
దశ 3: ఆటోమేషన్ సాధనాన్ని రూపొందించండి
అంతా అనుకున్నట్లుగానే జరుగుతోంది. మీరు కోడ్ని అప్లోడ్ చేయవచ్చు మరియు సోర్స్ నియంత్రణలో మార్పులను చేయవచ్చు మరియు మీతో కలిసి పని చేయడానికి స్నేహితులను ఆహ్వానించవచ్చు. కానీ మీకు ఇంకా యాప్ లేదు. ఇది వెబ్ అప్లికేషన్ కావాలంటే, ఇది తప్పనిసరిగా కంపైల్ చేయబడి పంపిణీ కోసం ప్యాక్ చేయబడాలి లేదా ఎక్జిక్యూటబుల్గా అమలు చేయాలి. (జావాస్క్రిప్ట్ లేదా PHP వంటి అన్వయించబడిన ప్రోగ్రామింగ్ లాంగ్వేజ్ కంపైల్ చేయవలసిన అవసరం లేదు.)
బిల్డ్ ఆటోమేషన్ సాధనాన్ని ఉపయోగించండి. మీరు ఎంచుకున్న సాధనం ఏదైనప్పటికీ, అది కోడ్ను సరైన ఫార్మాట్లో సమీకరించి, క్లీనప్, కంపైలేషన్, టెస్టింగ్ మరియు డెలివరీని ఆటోమేట్ చేస్తుంది. బిల్డ్ టూల్స్ భాషని బట్టి మారుతుంటాయి, అయితే కింది ఓపెన్ సోర్స్ ఎంపికలు సాధారణంగా ఉపయోగించబడతాయి.
పర్ఫెక్ట్! ఇప్పుడు బిల్డ్ ఆటోమేషన్ టూల్ కాన్ఫిగరేషన్ ఫైల్లను సోర్స్ కంట్రోల్లోకి ఇన్సర్ట్ చేద్దాం, తద్వారా CI/CD టూల్ వాటిని నిర్మిస్తుంది.
ఇది చాలా బాగా అనిపిస్తొంది. అయితే ఇవన్నీ ఇప్పుడు ఎక్కడ బయట పడతాయి?
దశ 4: వెబ్ అప్లికేషన్ సర్వర్
కాబట్టి, మీరు ఎగ్జిక్యూట్ చేయగల లేదా రోల్ అవుట్ చేయగల ప్యాక్ చేసిన ఫైల్ని కలిగి ఉన్నారు. అప్లికేషన్ నిజంగా ఉపయోగకరంగా ఉండాలంటే, అది తప్పనిసరిగా ఏదో ఒక రకమైన సేవ లేదా ఇంటర్ఫేస్ని కలిగి ఉండాలి, కానీ మీరు అన్నింటినీ ఎక్కడో ఉంచాలి.
వెబ్ అప్లికేషన్ను వెబ్ అప్లికేషన్ సర్వర్లో హోస్ట్ చేయవచ్చు. అప్లికేషన్ సర్వర్ మీరు ప్యాక్ చేసిన లాజిక్ని అమలు చేయగల వాతావరణాన్ని అందిస్తుంది, ఇంటర్ఫేస్లను రెండర్ చేయవచ్చు మరియు సాకెట్లో వెబ్ సేవలను బహిర్గతం చేయవచ్చు. అప్లికేషన్ సర్వర్ని ఇన్స్టాల్ చేయడానికి మీకు HTTP సర్వర్ మరియు కొన్ని ఇతర పరిసరాలు (ఉదాహరణకు వర్చువల్ మెషీన్) అవసరం. ప్రస్తుతానికి, మీరు వెళ్లేటప్పుడు వీటన్నింటితో వ్యవహరిస్తున్నట్లు నటిద్దాం (నేను దిగువ కంటైనర్ల గురించి మాట్లాడుతున్నాను).
అనేక ఓపెన్ వెబ్ అప్లికేషన్ సర్వర్లు ఉన్నాయి.
మేము ఇప్పటికే దాదాపుగా పని చేస్తున్న DevOps గొలుసును కలిగి ఉన్నాము. గొప్ప పని!
సూత్రప్రాయంగా, మీరు ఇక్కడ ఆపవచ్చు, అప్పుడు మీరు దానిని మీరే నిర్వహించవచ్చు, కానీ కోడ్ యొక్క నాణ్యత గురించి మాట్లాడటం విలువ.
దశ 5: పరీక్ష కవరేజ్
పరీక్షకు చాలా సమయం మరియు శ్రమ పడుతుంది, అయితే బగ్లను వెంటనే కనుగొని, తుది వినియోగదారులను సంతోషపెట్టడానికి కోడ్ను మెరుగుపరచడం మంచిది. ఈ ప్రయోజనం కోసం, కోడ్ను పరీక్షించడమే కాకుండా, దాన్ని ఎలా మెరుగుపరచాలనే దానిపై కూడా సలహా ఇచ్చే అనేక ఓపెన్ టూల్స్ ఉన్నాయి. చాలా CI/CD సాధనాలు ఈ సాధనాల్లోకి ప్లగిన్ చేయగలవు మరియు ప్రక్రియను ఆటోమేట్ చేయగలవు.
పరీక్ష రెండు భాగాలుగా విభజించబడింది: పరీక్షలు రాయడం మరియు అమలు చేయడం కోసం టెస్టింగ్ ఫ్రేమ్వర్క్లు మరియు కోడ్ నాణ్యతను మెరుగుపరచడానికి సూచనలతో కూడిన సాధనాలు.
టెస్టింగ్ ఫ్రేమ్వర్క్లు
నాణ్యమైన చిట్కాలతో కూడిన సాధనాలు
ఈ సాధనాలు మరియు ఫ్రేమ్వర్క్లు చాలా వరకు జావా, పైథాన్ మరియు జావాస్క్రిప్ట్ కోసం వ్రాయబడ్డాయి ఎందుకంటే C++ మరియు C# యాజమాన్యం (GCC ఓపెన్ సోర్స్ అయినప్పటికీ).
మేము పరీక్ష కవరేజ్ సాధనాలను వర్తింపజేసాము మరియు ఇప్పుడు DevOps పైప్లైన్ ట్యుటోరియల్ ప్రారంభంలో ఉన్న చిత్రం వలె ఉండాలి.
అదనపు దశలు
కంటైనర్లు
నేను ఇంతకు ముందు చెప్పినట్లుగా, అప్లికేషన్ సర్వర్ను వర్చువల్ మెషీన్ లేదా సర్వర్లో హోస్ట్ చేయవచ్చు, అయితే కంటైనర్లు మరింత ప్రాచుర్యం పొందాయి.
కంటైనర్లు ఏమిటి? సంక్షిప్తంగా, వర్చువల్ మెషీన్లో, ఆపరేటింగ్ సిస్టమ్ తరచుగా అప్లికేషన్ కంటే ఎక్కువ స్థలాన్ని తీసుకుంటుంది మరియు ఒక కంటైనర్ సాధారణంగా కొన్ని లైబ్రరీలు మరియు కాన్ఫిగరేషన్తో సరిపోతుంది. కొన్ని సందర్భాల్లో, వర్చువల్ మిషన్లు అనివార్యమైనవి, అయితే కంటైనర్ ఎటువంటి అదనపు ఖర్చు లేకుండా సర్వర్తో పాటు అప్లికేషన్ను ఉంచగలదు.
ఇతర ఎంపికలు ఉన్నప్పటికీ, కంటైనర్ల కోసం, డాకర్ మరియు కుబెర్నెట్స్ సాధారణంగా తీసుకోబడతాయి.
డాకర్ మరియు కుబెర్నెట్స్ గురించిన కథనాలను ఇక్కడ చదవండి ఓపెన్సోర్స్.కామ్:
మా DevOps గొలుసు సహకార నిర్మాణం మరియు అప్లికేషన్ యొక్క డెలివరీపై దృష్టి పెట్టింది, అయితే DevOps సాధనాలతో మీరు చేయగల ఇతర ఆసక్తికరమైన విషయాలు ఉన్నాయి. ఉదాహరణకు, ఇన్ఫ్రాస్ట్రక్చర్ని కోడ్ (IaC) సాధనాలుగా ఉపయోగించండి, మిడిల్వేర్ ఆటోమేషన్ టూల్స్ అని కూడా పిలుస్తారు. ఈ సాధనాలు మిడిల్వేర్ కోసం ఇన్స్టాలేషన్, మేనేజ్మెంట్ మరియు ఇతర పనులను ఆటోమేట్ చేయడంలో సహాయపడతాయి. ఉదాహరణకు, ఆటోమేషన్ సాధనం సరైన కాన్ఫిగరేషన్లతో అప్లికేషన్లను (వెబ్ అప్లికేషన్ సర్వర్, డేటాబేస్, మానిటరింగ్ టూల్స్) తీసుకొని వాటిని అప్లికేషన్ సర్వర్కి నెట్టగలదు.
ఓపెన్ మిడిల్వేర్ ఆటోమేషన్ సాధనాల కోసం ఇక్కడ కొన్ని ఎంపికలు ఉన్నాయి:
ఇది మంచుకొండ యొక్క కొన మాత్రమే. DevOps చైన్ చాలా ఎక్కువ చేయగలదు. CI/CD సాధనంతో ప్రారంభించండి మరియు మీ పనిని సులభతరం చేయడానికి మీరు ఇంకా ఏమి ఆటోమేట్ చేయవచ్చో చూడండి. గురించి మర్చిపోవద్దు ఓపెన్ కమ్యూనికేషన్ సాధనాలు సమర్థవంతమైన సహకారం కోసం.
ప్రారంభకులకు ఇక్కడ కొన్ని మంచి DevOps కథనాలు ఉన్నాయి: