Помощ: какво е непрекъсната доставка

По-рано ние каза относно непрекъснатата интеграция (CI). Да продължим с непрекъсната доставка. Това е набор от методи за разработка на софтуер. Помага да се гарантира, че вашият код е готов за внедряване.

Помощ: какво е непрекъсната доставка
/Pixabay/ синьо вълнисто папагалче / PL

История

Фразата непрекъсната доставка може да се види отново в пъргав манифест от 2001 г. в началото на списъка с основни принципи: „Приоритет е решаването на проблемите на клиентите чрез непрекъсната доставка на актуален софтуер.“

През 2010 г. Jez Humble и David Farley издават книгу чрез непрекъсната доставка. Според авторите CD допълва подхода Непрекъснато интегриране и ви позволява да опростите подготовката на кода за внедряване.

След публикуването на книгата подходът започва да набира популярност и само за няколко години става почти универсално приет. Според изследване, проведен сред повече от 600 разработчици и ИТ мениджъри през 2014 г., 97% от техническите мениджъри и 84% от програмистите са били запознати с Continuous Delivery.

Сега този подход остава един от най-популярните. Според проучване от 2018 г., включващо ИТ общността DevOps и Jenkins Community, то използва половината от анкетираните повече от хиляда респонденти.

Как работи непрекъснатата доставка?

Базата на CD е готовността на кода за внедряване. За да се изпълни тази задача, се използва автоматизация на процеса на подготовка на софтуера за пускане. Той трябва да бъде стандартен в различните среди за разработка, което ще помогне бързо да се намерят слаби места и да се оптимизират. Например, ускорете тестването.

Пример за процес на непрекъсната доставка изглежда така:

Помощ: какво е непрекъсната доставка

Ако подходът на непрекъснатата интеграция е отговорен за автоматизирането на първите два етапа, тогава непрекъснатата доставка е отговорна за следващите два. Стабилността на процеса се осигурява, наред с други неща, от системи управление на конфигурацията. Те наблюдават промените в инфраструктурата, базите данни и зависимостите. Самото внедряване може да бъде автоматизирано или направено ръчно.

Към процеса са наложени следните изисквания:

  • Наличие на информация за готовност за влизане в производствената среда и готовност за незабавно пускане (CD инструментите тестват кода и дават възможност да се оцени ефектът от промените в изданието).
  • Цялостна отговорност за крайния продукт. Екипът на продукта - мениджъри, разработчици, тестери - мисли за резултата, а не само за своята област на отговорност (резултатът е работеща версия, която е достъпна за потребителите на продукта).

В компактдискове обикновено се използва преглед на код, а за събиране на мнения на клиенти - принципа тъмно изстрелване. Нова функция се пуска първо за малък сегмент от потребители - техният опит от взаимодействие с продукта помага да се намерят недостатъци и грешки, които не са били забелязани по време на вътрешното тестване.

Каква е ползата

Continuous Delivery помага за опростяване на внедряването на код, което има положително въздействие върху производителността и намалява вероятността от прегаряне на служителите. В крайна сметка това намалява общите разходи за разработка. Например CD помогна на един от екипите на HP намаляване на такива разходи с 40%.

В допълнение, според проучване от 2016 г. (стр. 28 документ) - компаниите, внедрили CD, решават проблемите на информационната сигурност 50% по-бързо от тези, които не използват подхода. До известна степен тази разлика може да се обясни с производителността на инструментите за автоматизация на процеси.

Друг плюс е ускоряването на изданията. Непрекъсната доставка във финландското студио за разработка помогна увеличете скоростта на сглобяване на кода с 25%.

Потенциални трудности

Първият и основен проблем е необходимостта от възстановяване на познатите процеси. За да покажете предимствата на новия подход, струва си да преминете към CD постепенно, като не започнете с най-трудоемките приложения.

Вторият потенциален проблем е големият брой разклонения на кода. Последицата от „разклоняването“ е чести конфликти и допълнителна загуба на голямо количество време. Възможно решение - подход няма клонове.

По-специално, в някои компании основните трудности възникват при тестването - отнема твърде много време. Резултатите от тестовете често трябва да се анализират ръчно, но възможно решение може да бъде паралелизиране на тестовете в ранните етапи на внедряването на CD.

Трябва също така да обучите служителите да работят с нови инструменти - предварителната образователна програма ще спести усилия и време на разработчиците.

Помощ: какво е непрекъсната доставка
/flickr/ h.ger1969 / CC BY-SA

Инструменти

Ето няколко отворени инструмента за непрекъсната доставка:

  • GoCD — сървър за непрекъсната доставка в Java и JRuby on Rails. Позволява ви да контролирате целия процес на доставка на приложението: изграждане—тест—пускане. Инструментът се разпространява под лиценз Apache 2.0. Можете да го намерите на официалния сайт ръководство за настройка.
  • Capistrano — рамка за създаване на скриптове, които автоматизират внедряването на приложения в Ruby, Java или PHP. Capistrano може да изпълнява команди на отдалечена машина, като се свързва с нея чрез SSH. Работи с други инструменти за непрекъсната интеграция и доставка, като сървъра Integrity CI.
  • Gradle е мултиплатформен инструмент, който автоматизира целия цикъл на разработка на приложения. Gradle работи с Java, Python, C/C++, Scala и др. Има интеграция с Eclipse, IntelliJ и Jenkins.
  • търтей - CD платформа на езика Go. Дронът може да бъде внедрен на място или в облака. Инструментът е изграден върху контейнери и използва YAML файлове, за да ги управлява.
  • спинацер — платформа за непрекъснато доставяне на код в мулти-облачни системи. Разработен от Netflix, инженерите на Google изиграха голяма роля в разработването на инструмента. Инструкции за инсталация намерете го на официалния уебсайт.

Какво да прочетете в нашия корпоративен блог:

Източник: www.habr.com

Добавяне на нов коментар