
సాఫ్ట్వేర్ డెవలప్మెంట్లో నిరంతర విస్తరణ అనేది సాఫ్ట్వేర్లో వివిధ విధులను త్వరగా, సురక్షితంగా మరియు సమర్ధవంతంగా అమలు చేయడానికి ఉపయోగించే ఒక ప్రత్యేక విధానం.
డెవలపర్ పూర్తి ఉత్పత్తిని వినియోగదారుకు త్వరగా అందించడానికి అనుమతించే విశ్వసనీయ స్వయంచాలక ప్రక్రియను సృష్టించడం ప్రధాన ఆలోచన. అదే సమయంలో, ఉత్పత్తికి స్థిరమైన మార్పులు చేయబడతాయి - దీనిని నిరంతర డెలివరీ పైప్లైన్ (CD పైప్లైన్) అంటారు.
Skillbox సిఫార్సు చేస్తోంది: ప్రాక్టికల్ కోర్సు .
మేము గుర్తు చేస్తున్నాము: Habr పాఠకులందరికీ - Habr ప్రోమో కోడ్ని ఉపయోగించి ఏదైనా Skillbox కోర్సులో నమోదు చేసుకున్నప్పుడు 10 రూబుల్ తగ్గింపు.

ప్రవాహాన్ని నియంత్రించడానికి, మీరు చెల్లింపు మరియు పూర్తిగా ఉచితం రెండింటితో సహా విస్తృత శ్రేణి సాధనాలను ఉపయోగించవచ్చు. ప్రతి ప్రోగ్రామర్కు ఉపయోగపడే డెవలపర్లలో అత్యంత ప్రజాదరణ పొందిన మూడు పరిష్కారాలను ఈ కథనం వివరిస్తుంది.
జెంకిన్స్
పూర్తిగా స్వీయ-నియంత్రణ, ఓపెన్ సోర్స్ ఆటోమేషన్ సర్వర్. సాఫ్ట్వేర్ను నిర్మించడం, పరీక్షించడం, షిప్పింగ్ చేయడం లేదా అమలు చేయడం వంటి వాటికి సంబంధించిన అన్ని రకాల పనులను ఆటోమేట్ చేయడానికి ఇది పని చేయడం విలువైనది.
కనీస PC అవసరాలు:
- 256 MB RAM, 1 GB ఫైల్ స్పేస్.
అనుకూలం:
- 1 GB RAM, 50 GB హార్డ్ డ్రైవ్.
పని చేయడానికి, మీకు అదనపు సాఫ్ట్వేర్ కూడా అవసరం - జావా రన్టైమ్ ఎన్విరాన్మెంట్ (JRE) వెర్షన్ 8.
ఆర్కిటెక్చర్ (పంపిణీ చేయబడిన కంప్యూటింగ్) ఇలా కనిపిస్తుంది:

జెంకిన్స్ సర్వర్ అనేది GUI హోస్టింగ్కు బాధ్యత వహించే ఇన్స్టాలేషన్, అలాగే మొత్తం నిర్మాణాన్ని నిర్వహించడం మరియు అమలు చేయడం.
జెంకిన్స్ నోడ్/స్లేవ్/బిల్డ్ సర్వర్ - మాస్టర్ (మెయిన్ నోడ్) తరపున బిల్డ్ వర్క్ చేయడానికి కాన్ఫిగర్ చేయగల పరికరాలు.
సంస్థాపన కోసం Linux
మొదట మీరు సిస్టమ్కు జెంకిన్స్ రిపోజిటరీని జోడించాలి:
cd /tmp && wget -q -O — | sudo apt-key add - echo 'deb బైనరీ/' | sudo tee -a /etc/apt/sources.list.d/je
ప్యాకేజీ రిపోజిటరీని నవీకరించండి:
sudo apt నవీకరణ
జెంకిన్స్ని ఇన్స్టాల్ చేయండి:
sudo apt jenkins ఇన్స్టాల్
దీని తరువాత, డిఫాల్ట్ పోర్ట్ 8080 ద్వారా జెంకిన్స్ సిస్టమ్లో అందుబాటులో ఉంటుంది.
కార్యాచరణను తనిఖీ చేయడానికి, మీరు బ్రౌజర్లో చిరునామాను తెరవాలి :8080. రూట్ వినియోగదారు కోసం ప్రారంభ పాస్వర్డ్ను నమోదు చేయమని సిస్టమ్ మిమ్మల్ని అడుగుతుంది. ఈ పాస్వర్డ్ ఫైల్ /var/lib/jenkins/secrets/initialAdminPassword ఫైల్లో ఉంది.
ఇప్పుడు ప్రతిదీ సిద్ధంగా ఉంది, మీరు CI/CD ఫ్లోలను సృష్టించడం ప్రారంభించవచ్చు. వర్క్బెంచ్ యొక్క గ్రాఫికల్ ఇంటర్ఫేస్ ఇలా కనిపిస్తుంది:


జెంకిన్స్ బలాలు:
- మాస్టర్/స్లేవ్ ఆర్కిటెక్చర్ అందించిన స్కేలబిలిటీ;
- REST XML/JSON API లభ్యత;
- ప్లగిన్లకు పెద్ద సంఖ్యలో పొడిగింపులను కనెక్ట్ చేసే సామర్థ్యం;
- చురుకుగా మరియు నిరంతరం అభివృద్ధి చెందుతున్న సంఘం.
కాన్స్:
- విశ్లేషణాత్మక బ్లాక్ లేదు;
- చాలా యూజర్ ఫ్రెండ్లీ ఇంటర్ఫేస్ కాదు.
TeamCity
JetBrains నుండి వాణిజ్య అభివృద్ధి. సాధారణ సెటప్ మరియు అద్భుతమైన ఇంటర్ఫేస్తో సర్వర్ బాగుంది. డిఫాల్ట్ కాన్ఫిగరేషన్ పెద్ద సంఖ్యలో ఫంక్షన్లను కలిగి ఉంది మరియు అందుబాటులో ఉన్న ప్లగిన్ల సంఖ్య నిరంతరం పెరుగుతూ ఉంటుంది.
జావా రన్టైమ్ ఎన్విరాన్మెంట్ (JRE) వెర్షన్ 8 అవసరం.
సర్వర్ హార్డ్వేర్ అవసరాలు క్లిష్టమైనవి కావు:
- RAM - 3,2 GB;
- ప్రాసెసర్ - డ్యూయల్ కోర్, 3,2 GHz;
- 1 Gb/s సామర్థ్యంతో కమ్యూనికేషన్ ఛానెల్.
సర్వర్ అధిక పనితీరును సాధించడానికి మిమ్మల్ని అనుమతిస్తుంది:
- 60 బిల్డ్ కాన్ఫిగరేషన్లతో 300 ప్రాజెక్ట్లు;
- బిల్డ్ లాగ్ కోసం 2 MB కేటాయింపు;
- 50 బిల్డ్ ఏజెంట్లు;
- వెబ్ వెర్షన్లో 50 మంది వినియోగదారులు మరియు IDEలో 30 మంది వినియోగదారులతో పని చేసే సామర్థ్యం;
- బాహ్య VCS యొక్క 100 కనెక్షన్లు, సాధారణంగా పెర్ఫోర్స్ మరియు సబ్వర్షన్. సగటు మార్పు సమయం 120 సెకన్లు;
- రోజుకు 150 కంటే ఎక్కువ మార్పులు;
- ఒక సర్వర్లో డేటాబేస్తో పని చేయడం;
- JVM సర్వర్ ప్రాసెస్ సెట్టింగ్లు: -Xmx1100m -XX:MaxPermSize=120m.
ఏజెంట్ అవసరాలు రన్నింగ్ అసెంబ్లీలపై ఆధారపడి ఉంటాయి. అన్ని కనెక్ట్ చేయబడిన ఏజెంట్లను పర్యవేక్షించడం మరియు అనుకూలత అవసరాల ఆధారంగా ఈ ఏజెంట్లకు క్యూలో ఉన్న అసెంబ్లీలను పంపిణీ చేయడం, ఫలితాలను నివేదించడం సర్వర్ యొక్క ప్రధాన విధి. ఏజెంట్లు వివిధ ప్లాట్ఫారమ్లు మరియు ఆపరేటింగ్ సిస్టమ్లతో పాటు ముందుగా కాన్ఫిగర్ చేయబడిన వాతావరణంలో వస్తారు.
బిల్డ్ ఫలితాల గురించిన మొత్తం సమాచారం డేటాబేస్లో నిల్వ చేయబడుతుంది. ప్రాథమికంగా ఇది చరిత్ర మరియు ఇతర సారూప్య డేటా, VCS మార్పులు, ఏజెంట్లు, బిల్డ్ క్యూలు, వినియోగదారు ఖాతాలు మరియు అనుమతులు. డేటాబేస్ బిల్డ్ లాగ్లు మరియు కళాఖండాలను మాత్రమే కలిగి ఉండదు.

సంస్థాపన కోసం Linux
Tomcat సర్వ్లెట్ కంటైనర్తో TeamCityని మాన్యువల్గా ఇన్స్టాల్ చేయడానికి, మీరు TeamCity ఆర్కైవ్ని ఉపయోగించాలి: TeamCity .tar.gz. డౌన్లోడ్ చేయండి .
tar -xfz TeamCity.tar.gz
/బిన్/రన్ అన్నీ. sh [ప్రారంభం|ఆపు]
మీరు మొదట ప్రారంభించినప్పుడు, అసెంబ్లీ డేటా నిల్వ చేయబడే డేటాబేస్ రకాన్ని మీరు ఎంచుకోవాలి.

డిఫాల్ట్ కాన్ఫిగరేషన్ నడుస్తుంది :8111/ ఒకే PCలో నడుస్తున్న ఒక రిజిస్టర్డ్ బిల్డ్ ఏజెంట్తో.
TeamCity యొక్క బలాలు:
- సాధారణ సెటప్;
- యూజర్ ఫ్రెండ్లీ ఇంటర్ఫేస్;
- పెద్ద సంఖ్యలో అంతర్నిర్మిత విధులు;
- మద్దతు సేవ;
- RESTful API ఉంది;
- మంచి డాక్యుమెంటేషన్;
- మంచి భద్రత.
కాన్స్:
- పరిమిత ఏకీకరణ;
- ఇది చెల్లింపు సాధనం;
- ఒక చిన్న సంఘం (అయితే, ఇది పెరుగుతోంది).
GoCD
ఇన్స్టాలేషన్ మరియు ఆపరేషన్ కోసం జావా రన్టైమ్ ఎన్విరాన్మెంట్ (JRE) వెర్షన్ 8 అవసరమయ్యే ఓపెన్ సోర్స్ ప్రాజెక్ట్.
పనికి కావలసిన సరంజామ:
- RAM - 1 GB కనిష్టంగా, మరింత మంచిది;
- ప్రాసెసర్ - డ్యూయల్ కోర్, 2 GHz కోర్ ఫ్రీక్వెన్సీతో;
- హార్డ్ డ్రైవ్ - కనీసం 1 GB ఖాళీ స్థలం.
ఏజెంట్:
- RAM - కనీసం 128 MB, మరింత ఉత్తమం;
- ప్రాసెసర్ - కనీసం 2 GHz.
సర్వర్ ఏజెంట్ల ఆపరేషన్ను నిర్ధారిస్తుంది మరియు వినియోగదారుకు అనుకూలమైన ఇంటర్ఫేస్ను అందిస్తుంది:

దశలు/ఉద్యోగాలు/పనులు:

సంస్థాపన కోసం Linux
ఎకో "డెబ్ /” | sudo tee /etc/apt/sources.list.d/gocd.list
కర్ల్ | sudo apt-key యాడ్ -
add-apt-repository ppa:openjdk-r/ppa
Apt-get update
apt-get install -y openjdk-8-jre
apt-get install go-server
apt-get install go-agent
/etc/init.d/go-server [ప్రారంభం|స్టాప్|స్థితి|పునఃప్రారంభించు]
/etc/init.d/go-agent [ప్రారంభం|స్టాప్|స్థితి|పునఃప్రారంభించు]
డిఫాల్ట్గా GoCd ఆన్లో నడుస్తుంది : 8153.
GoCd బలాలు:
- ఓపెన్ సోర్స్;
- సాధారణ సంస్థాపన మరియు ఆకృతీకరణ;
- మంచి డాక్యుమెంటేషన్;
- గొప్ప వినియోగదారు ఇంటర్ఫేస్:

- ఒక వీక్షణలో దశల వారీ GoCD విస్తరణ మార్గాన్ని చూపగల సామర్థ్యం:

- పైప్లైన్ నిర్మాణం యొక్క అద్భుతమైన ప్రదర్శన:

- GoCD డాకర్, AWSతో సహా అత్యంత ప్రజాదరణ పొందిన క్లౌడ్ పరిసరాలలో CD వర్క్ఫ్లోను ఆప్టిమైజ్ చేస్తుంది;
- సాధనం పైప్లైన్లోని సమస్యలను సరిదిద్దడాన్ని సాధ్యం చేస్తుంది, దీని కోసం నిజ సమయంలో నిబద్ధత నుండి విస్తరణ వరకు ప్రతి మార్పును ట్రాక్ చేయవచ్చు.
కాన్స్:
- కనీసం ఒక ఏజెంట్ అవసరం;
- పూర్తి చేసిన అన్ని పనులను ప్రదర్శించడానికి కన్సోల్ లేదు;
- ప్రతి ఆదేశాన్ని అమలు చేయడానికి, మీరు పైప్లైన్ కాన్ఫిగరేషన్ కోసం ఒక పనిని సృష్టించాలి;
- ప్లగిన్ను ఇన్స్టాల్ చేయడానికి, మీరు .jar ఫైల్ను /plugins/externalకి తరలించి, సర్వర్ని పునఃప్రారంభించాలి;
- సాపేక్షంగా చిన్న సంఘం.
ముగింపుగా
ఇవి కేవలం మూడు సాధనాలు, వాస్తవానికి ఇంకా చాలా ఉన్నాయి. ఎంచుకోవడం కష్టం, కాబట్టి మీరు ఖచ్చితంగా అదనపు అంశాలకు శ్రద్ధ వహించాలి.
సాధనం యొక్క ఓపెన్ సోర్స్ కోడ్ అది ఏమిటో అర్థం చేసుకోవడం సాధ్యపడుతుంది మరియు కొత్త ఫీచర్లను వేగంగా జోడించడం. కానీ ఏదైనా పని చేయకపోతే, మీరు మీపై మరియు సంఘం సహాయంపై మాత్రమే ఆధారపడాలి. చెల్లింపు సాధనాలు కొన్నిసార్లు కీలకమైన మద్దతును అందిస్తాయి.
భద్రత మీ ప్రధాన ప్రాధాన్యత అయితే, స్థానిక సాధనంతో పని చేయడం విలువైనది. కాకపోతే, SaaS సొల్యూషన్ను ఎంచుకోవడం మంచి ఎంపిక.
మరియు చివరగా, నిజంగా సమర్థవంతమైన నిరంతర విస్తరణ ప్రక్రియను నిర్ధారించడానికి, మీరు అందుబాటులో ఉన్న సాధనాల పరిధిని తగ్గించడానికి ప్రత్యేకతలు మిమ్మల్ని అనుమతించే ప్రమాణాలను రూపొందించాలి.
Skillbox సిఫార్సు చేస్తోంది:
- రెండేళ్ల ప్రాక్టికల్ కోర్సు .
- ఆన్లైన్ కోర్సు .
- ప్రాక్టికల్ ఒక సంవత్సరం కోర్సు .
మూలం: www.habr.com
