Awọn irinṣẹ olokiki 3 fun siseto imuṣiṣẹ lemọlemọfún (Ilọsiwaju Ilọsiwaju)
Ilọsiwaju Ilọsiwaju jẹ ọna pataki ni idagbasoke sọfitiwia ti o lo lati yara, lailewu ati ni imunadoko awọn iṣẹ lọpọlọpọ ninu sọfitiwia.
Ero akọkọ ni lati ṣẹda ilana adaṣe adaṣe ti o ni igbẹkẹle ti o fun laaye olupilẹṣẹ lati firanṣẹ ọja ti o pari ni iyara si olumulo. Ni akoko kanna, awọn ayipada igbagbogbo ni a ṣe si iṣelọpọ - eyi ni a pe ni opo gigun ti ifijiṣẹ lemọlemọfún (Paipu CD).
A leti:fun gbogbo awọn oluka ti "Habr" - ẹdinwo ti 10 rubles nigbati o forukọsilẹ ni eyikeyi iṣẹ-ẹkọ Skillbox nipa lilo koodu ipolowo “Habr”.
Lati ṣakoso ṣiṣan naa, o le lo ọpọlọpọ awọn irinṣẹ, pẹlu isanwo mejeeji ati ọfẹ patapata. Nkan yii ṣe apejuwe mẹta ti awọn solusan olokiki julọ laarin awọn olupilẹṣẹ ti o le wulo fun gbogbo olupilẹṣẹ.
Jenkins
Olupin adaṣiṣẹ orisun ṣiṣi ti ara ẹni ni kikun. O tọ lati ṣiṣẹ pẹlu adaṣe adaṣe gbogbo iru awọn iṣẹ ṣiṣe ti o ni ibatan si kikọ, idanwo, sowo, tabi imuṣiṣẹ sọfitiwia.
Awọn ibeere PC ti o kere julọ:
256 MB Ramu, 1 GB faili aaye.
Ti o dara julọ:
1 GB Ramu, 50 GB dirafu lile.
Lati ṣiṣẹ, iwọ yoo tun nilo sọfitiwia afikun - Java Runtime Environment (JRE) version 8.
Awọn faaji (iṣiro pinpin) dabi eyi:
Jenkins Server jẹ fifi sori ẹrọ ti o jẹ iduro fun alejo gbigba GUI, bakanna bi siseto ati ṣiṣe gbogbo kikọ.
Jenkins Node/Ẹrú/ Kọ Server - awọn ẹrọ ti o le wa ni tunto lati a ṣe iṣẹ ikole lori dípò ti Titunto (titunto si ipade).
Fifi sori ẹrọ fun Linux
Ni akọkọ o nilo lati ṣafikun ibi ipamọ Jenkins si eto naa:
Lẹhin eyi, Jenkins yoo wa ninu eto nipasẹ ibudo aiyipada 8080.
Lati ṣayẹwo iṣẹ ṣiṣe, o nilo lati ṣii adirẹsi ninu ẹrọ aṣawakiri localhost:8080. Awọn eto yoo ki o si tọ ọ lati tẹ awọn ni ibẹrẹ ọrọigbaniwọle fun awọn root olumulo. Ọrọigbaniwọle yii wa ninu faili /var/lib/jenkins/secrets/initialAdminPassword.
Bayi ohun gbogbo ti ṣetan lati lọ, o le bẹrẹ ṣiṣẹda awọn ṣiṣan CI / CD. Ni wiwo ayaworan ti workbench dabi eyi:
Awọn Agbara Jenkins:
scalability ti a pese nipasẹ Titunto si / Ẹrú faaji;
wiwa REST XML/JSON API;
agbara lati sopọ nọmba nla ti awọn amugbooro ọpẹ si awọn afikun;
ti nṣiṣe lọwọ ati ki o nigbagbogbo dagbasi awujo.
Konsi:
ko si analitikali Àkọsílẹ;
ko gan olumulo ore-ni wiwo.
TeamCity
Idagbasoke iṣowo lati JetBrains. Olupin naa dara pẹlu iṣeto ti o rọrun ati wiwo ti o dara julọ. Iṣeto aiyipada ni nọmba nla ti awọn iṣẹ, ati nọmba awọn afikun ti o wa ti n pọ si nigbagbogbo.
Nilo Java Runtime Environment (JRE) ẹya 8.
Awọn ibeere ohun elo olupin ko ṣe pataki:
Ramu - 3,2 GB;
isise - meji-mojuto, 3,2 GHz;
ikanni ibaraẹnisọrọ pẹlu agbara ti 1 Gb / s.
Olupin naa gba ọ laaye lati ṣaṣeyọri iṣẹ ṣiṣe giga:
Awọn iṣẹ akanṣe 60 pẹlu awọn atunto kọ 300;
2 MB ipin fun Kọ log;
50 kọ awọn aṣoju;
agbara lati ṣiṣẹ pẹlu awọn olumulo 50 ni ẹya wẹẹbu ati awọn olumulo 30 ni IDE;
Awọn asopọ 100 ti VCS ita, nigbagbogbo Perforce ati Subversion. Akoko iyipada apapọ jẹ awọn aaya 120;
diẹ ẹ sii ju awọn iyipada 150 fun ọjọ kan;
ṣiṣẹ pẹlu ibi ipamọ data lori olupin kan;
Awọn eto ilana olupin JVM: -Xmx1100m -XX: MaxPermSize=120m.
Awọn ibeere aṣoju da lori ṣiṣe awọn apejọ. Iṣẹ akọkọ ti olupin ni lati ṣe atẹle gbogbo awọn aṣoju ti o ni asopọ ati pinpin awọn apejọ ti ila si awọn aṣoju wọnyi ti o da lori awọn ibeere ibamu, jijabọ awọn abajade. Awọn aṣoju wa ni ọpọlọpọ awọn iru ẹrọ ati awọn ọna ṣiṣe, pẹlu agbegbe ti a tunto tẹlẹ.
Gbogbo alaye nipa awọn abajade kikọ ti wa ni ipamọ ni ibi ipamọ data. Ni akọkọ eyi jẹ itan-akọọlẹ ati data miiran ti o jọra, awọn iyipada VCS, awọn aṣoju, awọn ila ti o kọ, awọn akọọlẹ olumulo ati awọn igbanilaaye. Ibi-ipamọ data ko pẹlu awọn akọọlẹ kikọ ati awọn ohun-ọṣọ nikan.
Fifi sori ẹrọ fun Linux
Lati fi sori ẹrọ TeamCity pẹlu ọwọ pẹlu apoti servlet Tomcat, o yẹ ki o lo ile-ipamọ TeamCity: TeamCity .tar.gz. Gba lati ayelujara o le gba lati ibi.
tar -xfz TeamCity.tar.gz
/bin/runGbogbo. sh [ibẹrẹ|duro]
Nigbati o ba bẹrẹ akọkọ, o nilo lati yan iru data data ninu eyiti data apejọ yoo wa ni ipamọ.
Awọn aiyipada iṣeto ni nṣiṣẹ lori localhost: 8111 / pẹlu ọkan ti a forukọsilẹ ti o forukọsilẹ ti o nṣiṣẹ lori PC kanna.
Awọn agbara TeamCity:
iṣeto ti o rọrun;
ni wiwo olumulo;
nọmba nla ti awọn iṣẹ ti a ṣe sinu;
Iṣẹ atilẹyin;
API RESTful kan wa;
iwe ti o dara;
ti o dara aabo.
Konsi:
lopin Integration;
Eleyi jẹ a san ọpa;
agbegbe kekere kan (eyiti, sibẹsibẹ, n dagba).
GoCD
Ise agbese orisun ṣiṣi ti o nilo Java Runtime Environment (JRE) ẹya 8 fun fifi sori ẹrọ ati iṣẹ.
Awọn ibeere eto:
Ramu - o kere ju 1 GB, diẹ sii dara julọ;
isise - meji-mojuto, pẹlu kan mojuto igbohunsafẹfẹ ti 2 GHz;
dirafu lile - o kere ju 1 GB ti aaye ọfẹ.
Aṣoju:
Ramu - o kere ju 128 MB, diẹ sii dara julọ;
isise - o kere 2 GHz.
Olupin naa ṣe idaniloju iṣẹ ti awọn aṣoju ati pese wiwo irọrun fun olumulo:
Awọn ipele/Awọn iṣẹ/Awọn iṣẹ-ṣiṣe:
Fifi sori ẹrọ fun Linux
iwoyi "deb download.gocd.org /" | sudo tee /etc/apt/sources.list.d/gocd.list
agbara lati ṣafihan ọna imuṣiṣẹ GoCD ni igbese-nipasẹ-igbesẹ ni wiwo kan:
ifihan ti o dara julọ ti ọna opo gigun ti epo:
GoCD ṣe iṣapeye iṣan-iṣẹ CD ni awọn agbegbe awọsanma olokiki julọ pẹlu Docker, AWS;
ọpa jẹ ki o ṣee ṣe lati ṣe atunṣe awọn iṣoro ni opo gigun ti epo, eyiti o wa ni ipasẹ gbogbo iyipada lati ifaramọ si imuṣiṣẹ ni akoko gidi.
Konsi:
o kere ju aṣoju kan nilo;
ko si console lati ṣafihan gbogbo awọn iṣẹ ṣiṣe ti o pari;
lati ṣiṣẹ aṣẹ kọọkan, o nilo lati ṣẹda iṣẹ-ṣiṣe kan fun iṣeto opo gigun ti epo;
Lati fi ohun itanna sii o nilo lati gbe faili .jar si / afikun / ita ati tun olupin naa bẹrẹ;
jo kekere awujo.
Bi ipari
Iwọnyi jẹ awọn irinṣẹ mẹta, ni otitọ ọpọlọpọ diẹ sii wa. O nira lati yan, nitorinaa o nilo lati fiyesi si awọn aaye afikun.
Koodu orisun ṣiṣi ti ọpa jẹ ki o ṣee ṣe lati loye kini o jẹ, pẹlu ṣafikun awọn ẹya tuntun ni iyara. Ṣugbọn ti nkan ko ba ṣiṣẹ, lẹhinna o ni lati gbẹkẹle ararẹ nikan ati iranlọwọ ti agbegbe. Awọn irinṣẹ isanwo pese atilẹyin ti o le ṣe pataki nigbakan.
Ti aabo ba jẹ pataki akọkọ rẹ, o tọ lati ṣiṣẹ pẹlu ohun elo agbegbe kan. Ti kii ba ṣe bẹ, lẹhinna yiyan ojutu SaaS jẹ aṣayan ti o dara.
Ati nikẹhin, lati rii daju ilana imuṣiṣẹ lemọlemọfún ti o munadoko nitootọ, o nilo lati ṣe agbekalẹ awọn agbekalẹ eyiti awọn pato yoo gba ọ laaye lati dín iwọn awọn irinṣẹ to wa.