අඛණ්ඩ යෙදවීම යනු මෘදුකාංග සංවර්ධනයේ විශේෂ ප්රවේශයක් වන අතර එය මෘදුකාංගයේ විවිධ කාර්යයන් ඉක්මනින්, ආරක්ෂිතව සහ කාර්යක්ෂමව ක්රියාත්මක කිරීමට භාවිතා කරයි.
ප්රධාන අදහස වන්නේ සංවර්ධකයාට නිමි භාණ්ඩය පරිශීලකයාට ඉක්මනින් ලබා දීමට ඉඩ සලසන විශ්වසනීය ස්වයංක්රීය ක්රියාවලියක් නිර්මාණය කිරීමයි. ඒ සමගම, නිෂ්පාදනය සඳහා නිරන්තර වෙනස්කම් සිදු කරනු ලැබේ - මෙය අඛණ්ඩ බෙදාහැරීමේ නල මාර්ගයක් (CD Pipeline) ලෙස හැඳින්වේ.
Skillbox නිර්දේශ කරයි: ප්රායෝගික පාඨමාලාව
"ජංගම සංවර්ධක PRO" .අපි ඔබට මතක් කරමු: "Habr" හි සියලුම පාඨකයින් සඳහා - "Habr" ප්රවර්ධන කේතය භාවිතයෙන් ඕනෑම Skillbox පාඨමාලාවකට ලියාපදිංචි වන විට රූබල් 10 ක වට්ටමක්.
ප්රවාහය පාලනය කිරීම සඳහා, ඔබට ගෙවන ලද සහ සම්පූර්ණයෙන්ම නොමිලේ යන දෙකම ඇතුළුව පුළුල් පරාසයක මෙවලම් භාවිතා කළ හැකිය. සෑම ක්රමලේඛකයෙකුටම ප්රයෝජනවත් විය හැකි සංවර්ධකයින් අතර වඩාත් ජනප්රිය විසඳුම් තුනක් මෙම ලිපියෙන් විස්තර කෙරේ.
ජෙන්කින්ස්
සම්පුර්ණයෙන්ම ස්වයං අන්තර්ගත විවෘත මූලාශ්ර ස්වයංක්රීයකරණ සේවාදායකය. මෘදුකාංග ගොඩනැගීම, පරීක්ෂා කිරීම, නැව්ගත කිරීම හෝ යෙදවීම සම්බන්ධ සියලු ආකාරයේ කාර්යයන් ස්වයංක්රීය කිරීම සඳහා වැඩ කිරීම වටී.
අවම පරිගණක අවශ්යතා:
- 256 MB RAM, 1 GB ගොනු ඉඩ.
ප්රශස්ත:
- 1 GB RAM, 50 GB දෘඪ තැටිය.
වැඩ කිරීමට, ඔබට අමතර මෘදුකාංග ද අවශ්ය වනු ඇත - Java Runtime Environment (JRE) අනුවාදය 8.
ගෘහ නිර්මාණ ශිල්පය (බෙදාහැරුණු පරිගණනය) මේ වගේ ය:
Jenkins Server යනු GUI සත්කාරකත්වය මෙන්ම සම්පූර්ණ ගොඩනැගීම සංවිධානය කිරීම සහ ක්රියාත්මක කිරීම සඳහා වගකිව යුතු ස්ථාපනයකි.
Jenkins Node/Slave/Build Server - Master (master node) වෙනුවෙන් ගොඩනැංවීමේ කාර්යය සිදු කිරීමට වින්යාස කළ හැකි උපාංග.
ලිනක්ස් සඳහා ස්ථාපනය
පළමුව ඔබ පද්ධතියට ජෙන්කින්ස් ගබඩාව එක් කළ යුතුය:
cd /tmp && wget -q -O —
පැකේජ ගබඩාව යාවත්කාලීන කරන්න:
sudo apt යාවත්කාලීන කිරීම
ජෙන්කින්ස් ස්ථාපනය කරන්න:
sudo apt ස්ථාපනය jenkins
මෙයින් පසු, ජෙන්කින්ස් පෙරනිමි වරාය 8080 හරහා පද්ධතිය තුළ ලබා ගත හැකිය.
ක්රියාකාරීත්වය පරීක්ෂා කිරීම සඳහා, ඔබ බ්රවුසරයේ ලිපිනය විවෘත කළ යුතුය
දැන් සියල්ල යාමට සුදානම්, ඔබට CI/CD ප්රවාහ නිර්මාණය කිරීම ආරම්භ කළ හැක. වැඩ බංකුවේ චිත්රක අතුරු මුහුණත මේ වගේ ය:
ජෙන්කින්ස්ගේ ශක්තීන්:
- මාස්ටර්/වහල් ගෘහ නිර්මාණ ශිල්පය මගින් සපයන ලද පරිමාණය;
- REST XML/JSON API ලබා ගැනීමේ හැකියාව;
- ප්ලගීන වලට ස්තුති කරමින් දිගු විශාල සංඛ්යාවක් සම්බන්ධ කිරීමේ හැකියාව;
- ක්රියාකාරී සහ නිරන්තරයෙන් විකාශනය වන ප්රජාව.
එය:
- විශ්ලේෂණ අවහිරයක් නොමැත;
- ඉතා පරිශීලක-හිතකාමී අතුරු මුහුණතක් නොවේ.
TeamCity
JetBrains වෙතින් වාණිජ සංවර්ධනය. සරල සැකසුම සහ විශිෂ්ට අතුරු මුහුණතක් සමඟ සේවාදායකය හොඳයි. පෙරනිමි වින්යාසය විශාල කාර්යයන් ගණනාවක් ඇති අතර, පවතින ප්ලගීන සංඛ්යාව නිරන්තරයෙන් වැඩි වේ.
Java Runtime Environment (JRE) අනුවාදය 8 අවශ්ය වේ.
සේවාදායක දෘඩාංග අවශ්යතා තීරණාත්මක නොවේ:
- RAM - 3,2 GB;
- ප්රොසෙසරය - dual-core, 3,2 GHz;
- 1 Gb/s ධාරිතාවක් සහිත සන්නිවේදන නාලිකාව.
සේවාදායකය ඔබට ඉහළ කාර්ය සාධනයක් ලබා ගැනීමට ඉඩ දෙයි:
- ඉදිකිරීම් වින්යාසයන් 60ක් සහිත ව්යාපෘති 300ක්;
- ගොඩනැගීමේ ලොගය සඳහා 2 MB වෙන් කිරීම;
- 50 ගොඩනැගීමේ නියෝජිතයන්;
- වෙබ් අනුවාදයේ පරිශීලකයින් 50 ක් සහ IDE හි පරිශීලකයින් 30 ක් සමඟ වැඩ කිරීමේ හැකියාව;
- බාහිර VCS සම්බන්ධතා 100 ක්, සාමාන්යයෙන් Perforce සහ Subversion. සාමාන්ය වෙනස් කිරීමේ කාලය තත්පර 120 කි;
- දිනකට වෙනස් කිරීම් 150 කට වඩා;
- එක් සේවාදායකයක දත්ත සමුදාය සමඟ වැඩ කිරීම;
- JVM සේවාදායක ක්රියාවලි සැකසුම්: -Xmx1100m -XX:MaxPermSize=120m.
නියෝජිත අවශ්යතා එක්රැස්වීම් ධාවනය මත පදනම් වේ. සේවාදායකයේ ප්රධාන කාර්යය වන්නේ සියලුම සම්බන්ධිත නියෝජිතයන් නිරීක්ෂණය කිරීම සහ අනුකූලතා අවශ්යතා මත පදනම්ව මෙම නියෝජිතයින්ට පෝලිම් එකලස් කිරීම් බෙදා හැරීම, ප්රතිඵල වාර්තා කිරීමයි. නියෝජිතයන් විවිධ වේදිකා සහ මෙහෙයුම් පද්ධති සහ පෙර-වින්යාස කළ පරිසරයකින් පැමිණේ.
ගොඩනැගීමේ ප්රතිඵල පිළිබඳ සියලු තොරතුරු දත්ත ගබඩාවේ ගබඩා කර ඇත. මූලික වශයෙන් මෙය ඉතිහාසය සහ වෙනත් සමාන දත්ත, VCS වෙනස්කම්, නියෝජිතයන්, පෝලිම් ගොඩනැගීම, පරිශීලක ගිණුම් සහ අවසරයන් වේ. දත්ත සමුදාය ගොඩනඟන ලඝු-සටහන් සහ පුරාවස්තු පමණක් ඇතුළත් නොවේ.
ලිනක්ස් සඳහා ස්ථාපනය
Tomcat servlet කන්ටේනරයක් සමඟ TeamCity හස්තීයව ස්ථාපනය කිරීමට, ඔබ TeamCity සංරක්ෂිතය භාවිතා කළ යුතුය: TeamCity .tar.gz. බාගත
tar -xfz TeamCity.tar.gz
/bin/runAll. sh [ආරම්භය|නැවතුම්]
ඔබ මුලින්ම ආරම්භ කරන විට, එකලස් කිරීමේ දත්ත ගබඩා කරන දත්ත සමුදායේ වර්ගය තෝරාගත යුතුය.
පෙරනිමි වින්යාසය ක්රියාත්මක වේ
TeamCity හි ශක්තීන්:
- සරල සැකසුම;
- පරිශීලක-හිතකාමී අතුරුමුහුණත;
- ගොඩනඟන ලද කාර්යයන් විශාල සංඛ්යාවක්;
- උපකාරක සේවාව;
- RESTful API ඇත;
- හොඳ ලියකියවිලි;
- හොඳ ආරක්ෂාවක්.
එය:
- සීමිත ඒකාබද්ධ කිරීම;
- මෙය ගෙවන මෙවලමකි;
- කුඩා ප්රජාවක් (කෙසේ වෙතත්, වර්ධනය වෙමින් පවතී).
GoCD
ස්ථාපනය සහ ක්රියාත්මක කිරීම සඳහා Java Runtime Environment (JRE) අනුවාදය 8 අවශ්ය වන විවෘත මූලාශ්ර ව්යාපෘතියකි.
පද්ධති අවශ්යතා:
- RAM - අවම වශයෙන් 1 GB, වඩා හොඳය;
- ප්රොසෙසරය - ද්විත්ව හරය, 2 GHz හි හර සංඛ්යාතයක් සහිත;
- දෘඪ තැටිය - අවම වශයෙන් 1 GB නිදහස් ඉඩක්.
නියෝජිත:
- RAM - අවම වශයෙන් 128 MB, වඩාත් සුදුසුය;
- ප්රොසෙසරය - අවම වශයෙන් 2 GHz.
සේවාදායකය නියෝජිතයින්ගේ ක්රියාකාරිත්වය සහතික කරන අතර පරිශීලකයාට පහසු අතුරු මුහුණතක් සපයයි:
අදියර/රැකියා/කාර්ය:
ලිනක්ස් සඳහා ස්ථාපනය
echo "deb
හැඬලී ය
add-apt-repository ppa:openjdk-r/ppa
උචිත-හමුවීමක් යාවත්කාලීන
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 ක්රියාත්මක වේ
GoCd හි ශක්තීන්:
- විවෘත මූලාශ්රය;
- සරල ස්ථාපනය සහ වින්යාසය;
- හොඳ ලියකියවිලි;
- විශිෂ්ට පරිශීලක අතුරුමුහුණත:
- එක් දසුනකින් පියවරෙන් පියවර GoCD යෙදවීමේ මාර්ගය පෙන්වීමේ හැකියාව:
- නල මාර්ග ව්යුහයේ විශිෂ්ට සංදර්ශකය:
- GoCD Docker, AWS ඇතුළුව වඩාත් ජනප්රිය වලාකුළු පරිසරයන්හි CD කාර්ය ප්රවාහය ප්රශස්ත කරයි;
- මෙවලම මඟින් නල මාර්ගයේ ඇති ගැටළු නිවැරදි කිරීමට හැකි වේ, ඒ සඳහා කැපවීමේ සිට යෙදවීම දක්වා සෑම වෙනස්කමක්ම තත්ය කාලීනව නිරීක්ෂණය කෙරේ.
එය:
- අවම වශයෙන් එක් නියෝජිතයෙකු අවශ්ය වේ;
- සම්පුර්ණ කරන ලද සියලුම කාර්යයන් ප්රදර්ශනය කිරීමට කොන්සෝලයක් නොමැත;
- එක් එක් විධානය ක්රියාත්මක කිරීමට, ඔබ නල මාර්ග වින්යාසය සඳහා එක් කාර්යයක් සෑදිය යුතුය;
- ප්ලගිනය ස්ථාපනය කිරීමට, ඔබ .jar ගොනුව /plugins/external වෙත ගෙන ගොස් සේවාදායකය නැවත ආරම්භ කළ යුතුය;
- සාපේක්ෂව කුඩා ප්රජාව.
අවසාන වශයෙන්
මේවා මෙවලම් තුනක් පමණි, ඇත්ත වශයෙන්ම තවත් බොහෝ දේ ඇත. එය තෝරා ගැනීමට අපහසුය, එබැවින් ඔබ අනිවාර්යයෙන්ම අමතර අංශ කෙරෙහි අවධානය යොමු කළ යුතුය.
මෙවලමෙහි විවෘත කේත එය කුමක්දැයි තේරුම් ගැනීමට හැකි වන අතර, නව විශේෂාංග ඉක්මනින් එකතු කරයි. නමුත් යමක් ක්රියාත්මක නොවන්නේ නම්, ඔබට විශ්වාසය තැබිය යුත්තේ ඔබ සහ ප්රජාවගේ උපකාරය මත පමණි. ගෙවූ මෙවලම් සමහර විට තීරණාත්මක විය හැකි සහාය සපයයි.
ආරක්ෂාව ඔබේ ප්රමුඛතාවය නම්, එය දේශීය මෙවලමක් සමඟ වැඩ කිරීම වටී. එසේ නොවේ නම්, SaaS විසඳුමක් තෝරා ගැනීම හොඳ විකල්පයකි.
අවසාන වශයෙන්, සැබවින්ම ඵලදායී අඛණ්ඩ යෙදවුම් ක්රියාවලියක් සහතික කිරීම සඳහා, ඔබට පවතින මෙවලම් පරාසය අඩු කිරීමට විශේෂිත වූ නිර්ණායක සකස් කළ යුතුය.
Skillbox නිර්දේශ කරයි:
- වසර දෙකක ප්රායෝගික පාඨමාලාව
"මම PRO වෙබ් සංවර්ධකයෙක්" .- මාර්ගගත පාඨමාලාව
"C# සංවර්ධක" .- ප්රායෝගික වසර පාඨමාලාව
"0 සිට PRO දක්වා PHP සංවර්ධකයා" .
මූලාශ්රය: www.habr.com