Поскольку Agile подходы стали более распространенным явлением, начал наблюдаться прогресс. Как только команды разработчиков (Dev) завершали свою работу, проект стал передаваться операционной команде (Ops) для развертывания, поддержки и текущего обслуживания. Тем не менее, по опыту той ранней эпохи были проблемы в том, что программное обеспечение часто работать нормально в среде разработчиков, но у него были проблемы с запуском продуктиве. Это создало много трений между командами разработчиков и Ops командами, так как ни одна команда не имела глубоких знаний о том, чем занимается другая команда.
Ближе к концу 2000-х годов в отрасли началось рождение DevOps благодаря группе заинтересованных сторон, которые начали совещаться о том, как построить лучшую связь между командами разработчиков и Ops; были созданы новые практики, которые привели к сдвигу в традиционном мышлении. DevOps движение создало культуру и атмосферу, в которой разработка, тестирование и доставка программного обеспечения должны были выполнятся быстро, регулярно и с большей надежностью. Этот культурный сдвиг привел к началу появления непрерывной интеграции (CI) и непрерывной доставки (CD), которые сегодня являются частью современного DevOps, как показано на рисунке
По сути, DevOps — это процессы, соединения, инструментов автоматизация на протяжении всей этапов: разработки, тестирования и доставки ПО. Но что более важно, DevOps — это инструменты автоматизации и другие инструменты, связанных с с созданием программного обеспечения. Тем не менее, одна вещь, которую DevOps не смог решить самостоятельно, как встраивать безопасность программного обеспечения на всех этапах развития программного обеспечения. Что касается безопасности программного обеспечения в обоих Agile и DevOps, было много болтовни о новом методе добавления безопасности в эти среды, называемом «сдвиг влево». Дальше рассмотрим эту концепцию.
Сдвиг влево против сдвига в центр
В индустрии разработки программного обеспечения термин «сдвиг влево» всплыл в результате организации, ожидания тестирования безопасности до конца процесса разработки, часто вызывая неожиданные задержки. Если вы тестируете свое программное обеспечение в поисках уязвимости безопасности в конце процесса разработки (справа), то существует рекомендация — сдвинуть тестирование дальше налево и быстрее провести тестирование безопасности — для сокращение задержек. Тем не менее, это имеет очень мало смысла в целом, так как DevOps не линейный, как методология Waterfall. DevOps это имеет круговую форму, как показано довольно хорошо на рисунке ниже.
Как видно на рисунке, DevOps на самом деле не имеет ни левой ни правой стороны в сравнении с более линейными процессами, используемыми в Waterfall. Вы скажите Dev слева и Ops справа, но DevOps больше похоже на петлю бесконечности у которой нет ни начала, ни конца.
Процесс Dev никогда не останавливается, и процесс Ops никогда не останавливается.
Лучшей рекомендацией будет смещение центра. Встраивать программные решения по безопасности в DevOps. Что ж
более подробно сдвиг в центр мы рассмотрим в следующей статье. Однако здесь это аналогия, которая может помочь лучше понять концепцию «сдвиг влево» и почему он не подходит для DevOps.
Линейный vs Круглый
Когда вы в поезде, и кто-то хочет сесть на поезд, что делает поезд? Поезд останавливается, пассажиры садятся,
и пассажиры выходят. Затем поезд начинает двигаться, только чтобы сделать то же самое дальше по дороге. Это не то что мы хотим для внедрения безопасности программного обеспечения в наши инициативы DevOps, скорее всего это будет не эффективно. Весь смысл CI и CD в том, что поезд никогда не должен останавливаться, и сдвиг влево просто не подходит. Вместо этого давайте посмотрите на лучшую аналогию, которая может намекнуть на новый метод добавления
безопасности в процессах DevOps.
Колесо обозрения London Eye — одно из самых высоких колес в мире. Интересная информация о London Eye — то, что когда аттракцион работает то движение колеса обозрения никогда не останавливается несмотря на то, есть ли пассажиры или нет. Люди встают, люди выходят, но колесо продолжает без колебаний вращаться. Никто в поездке не знает, кто сел или кто вышел, так как с точки зрения человека который едит на нем, нет никакого воздействия на его езду. Это способ, которым организации должны подумайте о том, чтобы добавить безопасность в программную среду DevOps —
способ, который никогда не останавливает процесс.
Концепция «сдвига влево» не подходит, поскольку это не имеет смысла, когда наблюдаешь знак бесконечности цикла на рисунке. Следовательно, как организации должны внедрять безопасность в DevOps? В следующем разделе рассмотрим это.