గతంలో మేము చెప్పారు నిరంతర ఇంటిగ్రేషన్ (CI) గురించి. నిరంతర డెలివరీని కొనసాగిద్దాం. ఇది సాఫ్ట్వేర్ అభివృద్ధి పద్ధతుల సమితి. మీ కోడ్ అమలు కోసం సిద్ధంగా ఉందని నిర్ధారించుకోవడంలో ఇది సహాయపడుతుంది.
నిరంతర డెలివరీ పదబంధాన్ని తిరిగి చూడవచ్చు చురుకైన మేనిఫెస్టో 2001 నుండి ప్రాథమిక సూత్రాల జాబితా ప్రారంభంలో: "నవీనమైన సాఫ్ట్వేర్ను నిరంతరం అందించడం ద్వారా కస్టమర్ సమస్యలను పరిష్కరించడం ప్రాధాన్యత."
2010లో, జెజ్ హంబుల్ మరియు డేవిడ్ ఫర్లే విడుదల చేశారు ఒక పుస్తకం నిరంతర డెలివరీ ద్వారా. రచయితల ప్రకారం, CD విధానాన్ని పూర్తి చేస్తుంది నిరంతర ఇంటిగ్రేషన్ మరియు విస్తరణ కోసం కోడ్ తయారీని సులభతరం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
పుస్తకం ప్రచురించబడిన తరువాత, ఈ విధానం ప్రజాదరణ పొందడం ప్రారంభించింది మరియు కేవలం రెండు సంవత్సరాలలో ఇది దాదాపు విశ్వవ్యాప్తంగా ఆమోదించబడింది. ప్రకారం సర్వే, 600లో 2014 కంటే ఎక్కువ డెవలపర్లు మరియు IT మేనేజర్ల మధ్య నిర్వహించబడింది, 97% టెక్నికల్ మేనేజర్లు మరియు 84% ప్రోగ్రామర్లు నిరంతర డెలివరీ గురించి బాగా తెలుసు.
ఇప్పుడు ఈ విధానం అత్యంత ప్రజాదరణ పొందిన వాటిలో ఒకటిగా మిగిలిపోయింది. IT కమ్యూనిటీ DevOps మరియు జెంకిన్స్ కమ్యూనిటీకి సంబంధించిన 2018 అధ్యయనం ప్రకారం, ఇది ఉపయోగాలు సర్వేలో పాల్గొన్న వెయ్యి మంది కంటే ఎక్కువ మంది ప్రతివాదులు.
నిరంతర డెలివరీ ఎలా పని చేస్తుంది?
CD ఆధారం అనేది విస్తరణ కోసం కోడ్ యొక్క సంసిద్ధత. ఈ పనిని పూర్తి చేయడానికి, విడుదల కోసం సాఫ్ట్వేర్ను సిద్ధం చేసే ప్రక్రియ యొక్క ఆటోమేషన్ ఉపయోగించబడుతుంది. ఇది వివిధ అభివృద్ధి పరిసరాలలో ప్రామాణికంగా ఉండాలి, ఇది బలహీనమైన పాయింట్లను త్వరగా కనుగొని వాటిని ఆప్టిమైజ్ చేయడానికి సహాయపడుతుంది. ఉదాహరణకు, పరీక్షను వేగవంతం చేయండి.
నిరంతర డెలివరీ ప్రక్రియ యొక్క ఉదాహరణ ఇలా కనిపిస్తుంది:
మొదటి రెండు దశలను ఆటోమేట్ చేయడానికి నిరంతర ఇంటిగ్రేషన్ విధానం బాధ్యత వహిస్తే, తర్వాతి రెండింటికి నిరంతర డెలివరీ బాధ్యత వహిస్తుంది. ప్రక్రియ స్థిరత్వం ఇతర విషయాలతోపాటు, వ్యవస్థల ద్వారా నిర్ధారించబడుతుంది ఆకృతీకరణ నిర్వహణ. వారు మౌలిక సదుపాయాలు, డేటాబేస్లు మరియు డిపెండెన్సీలలో మార్పులను పర్యవేక్షిస్తారు. విస్తరణ స్వయంచాలకంగా లేదా మానవీయంగా చేయవచ్చు.
ప్రక్రియపై క్రింది అవసరాలు విధించబడ్డాయి:
ఉత్పత్తి వాతావరణంలోకి ప్రవేశించడానికి సంసిద్ధత మరియు తక్షణ విడుదలకు సంసిద్ధత గురించి సమాచారం లభ్యత (CD సాధనాలు కోడ్ను పరీక్షించి, విడుదలలో మార్పుల ప్రభావాన్ని అంచనా వేయడం సాధ్యం చేస్తుంది).
తుది ఉత్పత్తికి మొత్తం బాధ్యత. ఉత్పత్తి బృందం - నిర్వాహకులు, డెవలపర్లు, టెస్టర్లు - ఫలితం గురించి ఆలోచించండి మరియు వారి బాధ్యత ప్రాంతం గురించి మాత్రమే కాకుండా (ఫలితం ఉత్పత్తి యొక్క వినియోగదారులకు అందుబాటులో ఉండే పని విడుదల).
CD లలో ఇది సాధారణంగా ఉపయోగించబడుతుంది కోడ్ సమీక్ష, మరియు కస్టమర్ అభిప్రాయాలను సేకరించడం కోసం - సూత్రం చీకటి ప్రయోగ. కొత్త ఫీచర్ మొదట వినియోగదారుల యొక్క చిన్న విభాగానికి విడుదల చేయబడింది - ఉత్పత్తితో పరస్పర చర్య చేయడంలో వారి అనుభవం అంతర్గత పరీక్ష సమయంలో గుర్తించబడని లోపాలు మరియు బగ్లను కనుగొనడంలో సహాయపడుతుంది.
ఏం లాభం
నిరంతర డెలివరీ కోడ్ విస్తరణను సులభతరం చేయడంలో సహాయపడుతుంది, ఇది ఉత్పాదకతపై సానుకూల ప్రభావాన్ని చూపుతుంది మరియు ఉద్యోగి బర్న్అవుట్ సంభావ్యతను తగ్గిస్తుంది. అంతిమంగా, ఇది మొత్తం అభివృద్ధి ఖర్చులను తగ్గిస్తుంది. ఉదాహరణకు, CD HP టీమ్లలో ఒకదానికి సహాయపడింది తగ్గించడానికి అటువంటి ఖర్చులు 40%.
అదనంగా, 2016 అధ్యయనం ప్రకారం (పేజీ 28 పత్రం) - CDని అమలు చేసిన కంపెనీలు ఈ విధానాన్ని ఉపయోగించని వారి కంటే 50% వేగంగా సమాచార భద్రత సమస్యలను పరిష్కరిస్తాయి. కొంత వరకు, ఈ వ్యత్యాసాన్ని ప్రక్రియ ఆటోమేషన్ సాధనాల పనితీరు ద్వారా వివరించవచ్చు.
విడుదలల త్వరణం మరొక ప్లస్. ఫిన్నిష్ డెవలప్మెంట్ స్టూడియోలో నిరంతర డెలివరీ సహాయం చేసారు కోడ్ అసెంబ్లీ వేగాన్ని 25% పెంచండి.
సంభావ్య ఇబ్బందులు
మొదటి మరియు ప్రధాన సమస్య తెలిసిన ప్రక్రియలను పునర్నిర్మించాల్సిన అవసరం ఉంది. కొత్త విధానం యొక్క ప్రయోజనాలను చూపించడానికి, చాలా శ్రమతో కూడిన అప్లికేషన్లతో కాకుండా క్రమంగా CDకి మారడం విలువ.
రెండవ సంభావ్య సమస్య పెద్ద సంఖ్యలో కోడ్ శాఖలు. "బ్రాంచింగ్" యొక్క పరిణామం తరచుగా విభేదాలు మరియు ఎక్కువ సమయం కోల్పోవడం. సాధ్యమైన పరిష్కారం - విధానం శాఖలు లేవు.
ముఖ్యంగా, కొన్ని కంపెనీలలో పరీక్షతో ప్రధాన ఇబ్బందులు తలెత్తుతాయి - ఇది చాలా సమయం పడుతుంది. పరీక్ష ఫలితాలను తరచుగా మాన్యువల్గా విశ్లేషించాల్సి ఉంటుంది, అయితే CD అమలు యొక్క ప్రారంభ దశల్లో పరీక్షలను సమాంతరంగా చేయడం సాధ్యమయ్యే పరిష్కారం.
మీరు కొత్త సాధనాలతో పని చేయడానికి ఉద్యోగులకు శిక్షణ ఇవ్వాలి - ప్రాథమిక విద్యా కార్యక్రమం డెవలపర్ల కృషి మరియు సమయాన్ని ఆదా చేస్తుంది.
నిరంతర డెలివరీ కోసం ఇక్కడ కొన్ని ఓపెన్ టూల్స్ ఉన్నాయి:
GoCD — జావా మరియు JRuby ఆన్ రైల్స్లో నిరంతర డెలివరీ కోసం సర్వర్. మొత్తం అప్లికేషన్ డెలివరీ ప్రక్రియను నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది: బిల్డ్-టెస్ట్-విడుదల. సాధనం Apache 2.0 లైసెన్స్ క్రింద పంపిణీ చేయబడింది. మీరు దీన్ని అధికారిక వెబ్సైట్లో కనుగొనవచ్చు సెటప్ గైడ్.
కాపిస్ట్రానో — రూబీ, జావా లేదా PHPలో అప్లికేషన్ల విస్తరణను ఆటోమేట్ చేసే స్క్రిప్ట్లను రూపొందించడానికి ఫ్రేమ్వర్క్. కాపిస్ట్రానో రిమోట్ మెషీన్కు SSH ద్వారా కనెక్ట్ చేయడం ద్వారా ఆదేశాలను అమలు చేయగలదు. సమగ్రత CI సర్వర్ వంటి ఇతర నిరంతర ఏకీకరణ మరియు డెలివరీ సాధనాలతో పని చేస్తుంది.
గ్రెడిల్ మొత్తం అప్లికేషన్ డెవలప్మెంట్ సైకిల్ను ఆటోమేట్ చేసే బహుళ-ప్లాట్ఫారమ్ సాధనం. Gradle Java, Python, C/C++, Scala మొదలైన వాటితో పని చేస్తుంది. Eclipse, IntelliJ మరియు Jenkinsతో ఏకీకరణ ఉంది.
డ్రోన్ - గో భాషలో CD ప్లాట్ఫారమ్. డ్రోన్ను ఆవరణలో లేదా క్లౌడ్లో అమర్చవచ్చు. సాధనం కంటైనర్ల పైన నిర్మించబడింది మరియు వాటిని నిర్వహించడానికి YAML ఫైల్లను ఉపయోగిస్తుంది.
స్పిన్నకర్ - బహుళ-క్లౌడ్ సిస్టమ్లలో నిరంతర కోడ్ డెలివరీ కోసం ఒక వేదిక. నెట్ఫ్లిక్స్ ద్వారా అభివృద్ధి చేయబడింది, సాధనం అభివృద్ధిలో Google ఇంజనీర్లు పెద్ద పాత్ర పోషించారు. సంస్థాపన సూచనలు అధికారిక వెబ్సైట్లో కనుగొనండి.