Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

Үзгүлтүксүз жайгаштыруу программалык камсыздоонун ар кандай функцияларын тез, коопсуз жана натыйжалуу ишке ашыруу үчүн колдонулган программалык камсыздоону иштеп чыгуудагы өзгөчө ыкма.

Негизги идея - иштеп чыгуучуга даяр продукцияны колдонуучуга тез жеткирүүгө мүмкүндүк берген ишенимдүү автоматташтырылган процессти түзүү. Ошол эле учурда өндүрүшкө тынымсыз өзгөртүүлөр киргизилет - бул үзгүлтүксүз жеткирүү түтүкчөлөрү (CD Pipeline) деп аталат.

Skillbox сунуштайт: Практикалык курс "Мобилдик иштеп чыгуучу PRO".

Биз эсиңизге салабыз: "Хабрдын" бардык окурмандары үчүн - "Habr" промо-кодун колдонуу менен каалаган Skillbox курсуна катталганда 10 000 рубль арзандатуу.

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

Агымды башкаруу үчүн, сиз акы төлөнүүчү жана толугу менен акысыз, анын ичинде көптөгөн куралдарды колдоно аласыз. Бул макалада ар бир программист үчүн пайдалуу боло турган иштеп чыгуучулардын эң популярдуу үч чечими сүрөттөлөт.

Jenkins

Толугу менен өз алдынча ачык булак автоматташтыруу сервери. Бул программалык камсыздоону курууга, сыноого, жөнөтүүгө же жайылтууга байланыштуу ар кандай тапшырмаларды автоматташтыруу үчүн иштөөгө арзырлык.

Компьютерге минималдуу талаптар:

  • 256 MB RAM, 1 ГБ файл мейкиндиги.

Оптималдуу:

  • 1 ГБ RAM, 50 ГБ катуу диск.

Иштөө үчүн сизге кошумча программа керек болот - Java Runtime Environment (JRE) 8 версиясы.

Архитектура (бөлүштүрүлгөн эсептөө) төмөнкүдөй көрүнөт:
Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

Jenkins Server GUI хостинги үчүн жооптуу болгон орнотуу, ошондой эле бүт курууну уюштуруу жана аткаруу.

Jenkins Node/Slave/Build Server - Мастердин атынан куруу иштерин аткаруу үчүн конфигурациялануучу түзүлүштөр (негизги түйүн).

Linux үчүн орнотуу

Алгач сиз Jenkins репозиторийсин тутумга кошушуңуз керек:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-ачкыч кошуу - echo 'deb pkg.jenkins.io/debian-stable бинардык/' | sudo tee -a /etc/apt/sources.list.d/je

Пакет репозиторийин жаңыртуу:

Sudo ап өзгөртүү

Jenkins орнотуу:

sudo apt jenkins орнотуу

Андан кийин, Дженкинс системада демейки порт 8080 аркылуу жеткиликтүү болот.

Функционалдуулукту текшерүү үчүн браузерде даректи ачуу керек көрүү .xrf:8080. Андан кийин система түпкү колдонуучу үчүн баштапкы сырсөздү киргизүүнү сунуштайт. Бул сырсөз /var/lib/jenkins/secrets/initialAdminPassword файлында жайгашкан.

Эми баары даяр, сиз CI/CD агымдарын түзө баштасаңыз болот. Жумушчу столдун графикалык интерфейси төмөнкүдөй көрүнөт:

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

Дженкинс күчтүү жактары:

  • Master/Slave архитектурасы тарабынан берилген масштабдуулук;
  • REST XML/JSON API болушу;
  • плагиндердин жардамы менен көп сандагы кеңейтүүлөрдү туташтыруу мүмкүнчүлүгү;
  • активдүү жана тынымсыз өнүгүп жаткан коом.

жактары:

  • аналитикалык блок жок;
  • колдонуучуга абдан ыңгайлуу интерфейс эмес.

TeamCity

JetBrains компаниясынан коммерциялык өнүгүү. Сервер жөнөкөй орнотуу жана сонун интерфейси менен жакшы. Демейки конфигурацияда көптөгөн функциялар бар жана жеткиликтүү плагиндердин саны тынымсыз көбөйүүдө.

Java Runtime Environment (JRE) 8 версиясын талап кылат.

Сервердин жабдыктарына талаптар критикалык эмес:

  • RAM - 3,2 ГБ;
  • процессор - эки ядролуу, 3,2 ГГц;
  • 1 Гб/с кубаттуулуктагы байланыш каналы.

Сервер жогорку көрсөткүчтөргө жетишүүгө мүмкүндүк берет:

  • 60 куруу конфигурациялары менен 300 долбоор;
  • куруу журналы үчүн 2 МБ бөлүү;
  • 50 куруучу агенттер;
  • веб версиясында 50 колдонуучу жана IDEде 30 колдонуучу менен иштөө мүмкүнчүлүгү;
  • Тышкы VCS 100 туташуусу, адатта Perforce жана Subversion. Орточо өзгөртүү убактысы 120 секунд;
  • күнүнө 150дөн ашык өзгөртүүлөр;
  • бир серверде маалымат базасы менен иштөө;
  • JVM сервер процессинин жөндөөлөрү: -Xmx1100m -XX:MaxPermSize=120m.

Агенттин талаптары иштеп жаткан жыйындарга негизделген. Сервердин негизги милдети - бардык туташкан агенттерди көзөмөлдөө жана натыйжаларды билдирүү менен шайкештиктин талаптарынын негизинде бул агенттерге кезекте турган чогулуштарды бөлүштүрүү. Агенттер ар кандай платформаларда жана операциялык системаларда, ошондой эле алдын ала конфигурацияланган чөйрөдө келет.

Куруу натыйжалары жөнүндө бардык маалыматтар маалымат базасында сакталат. Биринчи кезекте бул тарых жана башка ушул сыяктуу маалыматтар, VCS өзгөртүүлөр, агенттер, куруу кезектери, колдонуучунун каттоо эсеби жана уруксаттар. Маалыматтар базасы куруу журналдарын жана артефакттарды гана камтыбайт.

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

Linux үчүн орнотуу

TeamCityти Tomcat сервлет контейнери менен кол менен орнотуу үчүн, TeamCity архивин колдонушуңуз керек: TeamCity .tar.gz. Жүктөп алуу бул жерден ала аласыз.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [баштоо|токтоо]

Сиз биринчи жолу баштаганда, сиз монтаждык маалыматтар сактала турган маалымат базасынын түрүн тандап алышыңыз керек.

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

Демейки конфигурация иштейт көрүү .xrf:8111/ бир эле компьютерде иштеген бир катталган куруу агенти менен.

TeamCity'дин күчтүү жактары:

  • оңой орнотуу;
  • Колдонуучу достук колдонмо;
  • орнотулган функциялардын көп саны;
  • колдоо кызматы;
  • RESTful API бар;
  • жакшы документтер;
  • жакшы коопсуздук.

жактары:

  • чектелген интеграция;
  • Бул акы төлөнүүчү курал болуп саналат;
  • кичинекей коомчулук (бирок, өсүп жатат).

GoCD

Орнотуу жана иштетүү үчүн Java Runtime Environment (JRE) 8 версиясын талап кылган ачык булак долбоору.

Системалык талаптар:

  • RAM - 1 ГБ минималдуу, көбүрөөк жакшы;
  • процессор - эки ядролуу, негизги жыштыгы 2 ГГц;
  • катуу диск - кеминде 1 ГБ бош орун.

Агент:

  • RAM - кеминде 128 МБ, көбүрөөк жакшыраак;
  • процессор - кеминде 2 ГГц.

Сервер агенттердин иштешин камсыздайт жана колдонуучуга ыңгайлуу интерфейсти камсыз кылат:

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

Этаптар/жумуштар/милдеттери:

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

Linux үчүн орнотуу

жаңырык "деб download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

бүгө download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-ачкыч кошуу -
add-apt-repository ppa:openjdk-r/ppa

ап-Get өзгөртүү

apt-get install -y openjdk-8-jre

apt-get орнотуу go-серверин

apt-get орнотуу Go-агент

/etc/init.d/go-server [старт|стоп|статус|кайра баштоо]

/etc/init.d/go-agent [старт|стоп|статус|кайра баштоо]

Демейки боюнча GoCd иштейт көрүү .xrf: 8153.

GoCd күчтүү жактары:

  • ачык булак;
  • жөнөкөй орнотуу жана конфигурациялоо;
  • жакшы документтер;

  • Мыкты колдонуучу интерфейси:

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

  • бир көрүнүштө кадам кадам GoCD жайылтуу жолун көрсөтүү мүмкүнчүлүгү:

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

  • түтүк түзүмүн мыкты көрсөтүү:

Үзгүлтүксүз жайылтууну уюштуруу үчүн 3 популярдуу куралдар (Үзгүлтүксүз жайылтуу)

  • GoCD эң популярдуу булут чөйрөлөрүндө CD иштөө процессин оптималдаштырат, анын ичинде Docker, AWS;
  • курал түтүктөгү көйгөйлөрдү оңдоого мүмкүндүк берет, ал үчүн реалдуу убакыт режиминде милдеттендирүүдөн жайылтууга чейин ар бир өзгөрүү көзөмөлдөнөт.

жактары:

  • жок дегенде бир агент керек;
  • бардык аткарылган тапшырмаларды көрсөтүү үчүн консол жок;
  • ар бир буйрукту аткаруу үчүн, түтүктү конфигурациялоо үчүн бир тапшырманы түзүү керек;
  • Плагинди орнотуу үчүн, .jar файлын /plugins/external дегенге жылдырып, серверди өчүрүп күйгүзүшүңүз керек;
  • салыштырмалуу кичинекей жамаат.

Жыйынтык катары

Бул үч гана инструмент, чындыгында дагы көп. Бул тандоо кыйын, ошондуктан, албетте, кошумча аспектилерине кулак салышыбыз керек.

Куралдын ачык баштапкы коду анын эмне экенин түшүнүүгө жана жаңы функцияларды тезирээк кошууга мүмкүндүк берет. Бирок бир нерсе иштебей калса, анда сиз өзүңүзгө жана коомчулуктун жардамына гана таянышыңыз керек. Акы төлөнүүчү куралдар кээде маанилүү болушу мүмкүн болгон колдоо көрсөтөт.

Эгер коопсуздук сиздин башкы приоритетиңиз болсо, анда ал жергиликтүү курал менен иштөөгө арзыйт. Эгерде жок болсо, анда SaaS чечимди тандоо жакшы чечим болуп саналат.

Акырында, чындап эле натыйжалуу үзгүлтүксүз жайылтуу процессин камсыз кылуу үчүн, сиз критерийлерди иштеп чыгышыңыз керек, алардын өзгөчөлүктөрү жеткиликтүү инструменттердин спектрин кыскартууга мүмкүндүк берет.

Skillbox сунуштайт:

Source: www.habr.com

Комментарий кошуу