1. Управление на бизнесОперации Преминаване към DevOps процеси: от линия до верига

От Емили Фрийман

Подходът DevOps включва цикъл за разлика от линия. Той позволява непрекъсната интеграция и непрекъсната доставка, получавайки постоянна обратна връзка по време на целия процес. Методологията на DevOps е само един пример за това как процесите са се развили.

Процесите на развитие коренно се промениха през последните няколко десетилетия и то с добра причина. През 60-те години Маргарет Хамилтън ръководи инженерния екип, който разработва софтуера за мисията Apollo 11. Не итеративно пускате хората в космоса - поне те не са били през 60-те години. Това не е област на софтуера, в която „неуспешно бързо“ се чувства като особено добър подход. Животът е на линия, да не говорим за милиони долари.

Хамилтън и нейните връстници трябваше да разработят софтуер, използвайки методологията на водопада. Изображението по-долу показва пример за процес на разработване на водопад (протичащ по права линия).

процес на водопад

Следващото изображение добавя фазите. Забележете как стрелките вървят в една посока. Те показват ясно начало и ясен край. Когато сте готови, сте готови. Така ли е?

Не. Колкото и много хора да искат да се отдалечат завинаги от части от своите кодови бази (или да ги убият с огън), те обикновено не получават привилегията.

Софтуерът, разработен от Хамилтън и нейния екип, постигна страхотен успех (разумно е да мислим, че те са разработени в Асамблея с нулеви помощници като съобщения за грешки). Не всички проекти обаче са еднакво успешни.

По-късно, където водопадът се провали, Agile успя. (DevOps се роди от движението на Agile.) Agile се стреми да вземе правия водопад и да го огъне в кръг, създавайки непрекъсната верига, чрез която вашият инженерен екип може итеративно и непрекъснато да се усъвършенства.

водопровод за развитие на водопад

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

DevOps схема

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

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

Петте етапа на жизнения цикъл на разработката на софтуер са

  • Планиране: Фазата на планиране на вашия процес на разработване на DevOps е може би най-важната за вашата мисия DevOps. Това ви настройва за успех или неуспех по пътя. Това е и най-плодородното време да се съберат всички. От всички това означава бизнес заинтересовани страни, продажби и маркетинг, инженеринг, продукт и други. Проектиране: В повечето компании фазата на проектиране се обединява във фазата на кодиране. Тази чудовищна амалгама от дизайн и код не позволява отделяне на архитектурната стратегия от изпълнението. Ако обаче оставите неща като дизайн на базата данни, логистика на API и ключов избор на инфраструктура до края на тръбопровода за разработка - или, може би по-лошото, на отделните разработчици, работещи върху отделни функции - бързо ще намерите кодовата база, която да бъде завита като вашия инженерен екип. Кодиране: Действителното развитие на функциите е лицето на процеса DevOps и получава цялата слава. Но това е една от най-малко важните стъпки в жизнения цикъл на развитието ви. В много отношения това е просто изпълнението на предходните области на вашия тръбопровод. Ако се направи добре, кодирането трябва да бъде сравнително прост и лесен процес.

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

  • Тестване: Тестването е област на вашия тръбопровод, в която инженери от всички области на опит могат да се гмуркат и да се включат, което дава уникална възможност за обучение за тестване, поддръжка и сигурност. Има много Шестте етапа от живота на разработката на софтуер различни видове тестове, за да се гарантира, че вашият софтуер работи както се очаква. Разгръщане: Разгръщането е етапът, който може би е най-тясно свързан с операциите. Традиционно вашият оперативен екип ще вземе кода, разработен от вашите разработчици и тестван от вашия екип за осигуряване на качество (QA) и след това ще го пусне на клиентите - като ги направи единствено отговорен за процеса на пускане. DevOps оказа огромно влияние в тази фаза на процеса на развитие. Освен това разполагането е една от областите, от които да намерите най-много инструменти за автоматизация, които да изтеглите. От гледна точка на DevOps, вашият приоритет е опростяването на процеса на внедряване, така че всеки инженер от вашия екип да може да разгърне своя код. Това не означава, че операциите нямат уникални знания или че оперативните екипи могат да бъдат разпуснати.

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

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

Първата част от изграждането на тръбопровод е да се третира линейно. Изграждате права линия с поставени етапи и контролни точки по пътя. В тази рамка можете да видите жизнения цикъл на разработката на софтуер като нещо, което стартирате и нещо, което завършвате. Любителите на водопадите биха се горделили.

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

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