04.07.22 19:44

Новости

Автор:

Администратор

7 методов devops для повышения производительности приложений

 Devops – сложная задача, но выбора между более быстрой разработкой и повышением надежности быть не должно. Подумайте о стратегии безопасности shifting left, улучшенной наблюдаемости,...

Devops – сложная задача, но выбора между более быстрой разработкой и повышением надежности быть не должно. Подумайте о стратегии безопасности shifting left, улучшенной наблюдаемости, платформах AIOps и многом другом.


Автор: Исаак Саколик, ведущий редактор InfoWorld


Devops в первую очередь связан с сотрудничеством между разработчиками и операторами для улучшения доставки и надежности приложений в процессе производства. Наиболее распространенные передовые практики направлены на замену ручных процедур, подверженных ошибкам и управляемых на границах между командами разработчиков и операторов, более надежной автоматизацией. К ним относятся автоматизация конвейера разработки с помощью CI/CD (непрерывная интеграция и непрерывная доставка), стандартизация конфигураций с помощью контейнеров и настройка инфраструктуры в виде кода. Что касается эксплуатации, то методы devops по повышению надежности приложений включают улучшение наблюдаемости приложений, усиление мониторинга и автоматизацию облачных и инфраструктурных операций.


Но как насчет повышения производительности приложений, баз данных, конвейеров передачи данных и облачной инфраструктуры? В этой статье эксперты определили семь возможностей, при которых методы и методологии devops могут повлиять на производительность и пользовательский опыт.


1. Внедряйте в приложения методы обеспечения безопасности с первого дня


Последнее, что нужно командам devops, – это развертывание новых возможностей с уязвимостями в системе безопасности. Сбой или ухудшение безопасности влияют на пользовательский опыт и создают серьезные проблемы для бизнеса. Наилучшей практикой devops является стратегия безопасности shifting left путем сотрудничества со специалистами информационной безопасности в отношении требований, тестирования на наличие уязвимостей кода в конвейерах CI/CD и внедрения других методов обеспечения безопасности при разработке программного обеспечения.


Майк Элиссен, старший девелопер адвокат в Akamai, говорит: «Важнейшим компонентом надежности приложений является доступность, и принятие соответствующих мер для надлежащей защиты приложения от атак веб-приложений, DDoS-атак и многого другого может означать разницу между пребыванием в сети и в автономном режиме».


Элиссен добавляет, что shifting left – это часть перехода от devops к devsecops. «Мы видим, что «shift left» в отношении добавления безопасности в devops становится все более заметным, что в конечном итоге создает более сильную культуру devsecops и делает больше разработчиков осведомленными и ответственными за безопасность своих приложений».


2. Стандартизируйте архитектурные и инфраструктурные проекты


Амир Розенберг, вице-президент по управлению продуктами Quali, называет проблему, которая влияет на производительность команды. «Многие команды devops обнаруживают, что им приходится упорядочивать хаос органически созданных определений инфраструктуры приложений, которые были добросовестно разработаны на раннем этапе, чтобы повысить эффективность работы команды в жизненном цикле разработки программного обеспечения», - говорит он.


Розенберг спрашивает, должны ли команды devops применять подход «сделай сам» к созданию сред или организация должна создавать стандарты. «Рекомендуемый подход заключается в формировании центральной группы для моделирования сред в форме чертежей, чтобы они были надежными, пригодными для повторного использования и соответствовали требованиям. Затем им нужна возможность распространять эти определения инфраструктуры, чтобы они были доступны для использования бизнес-участниками с помощью быстрого самообслуживания, независимо от того, интегрированы ли они в автоматизированный конвейер или выполняются вручную», - говорит он.


3. Обеспечьте наблюдаемость и непрерывное тестирование в конвейере CI/CD


Мэтт Солли, директор devops в 66degrees, считает, что CI/CD может делать больше, чем просто упаковывать и отправлять код. «Не все принципы devops так же привлекательны или очевидны, как непрерывная доставка или построение всего в виде кода, но они не менее важны. Непрерывная интеграция – это один из компонентов зрелого подхода devops, который может значительно повысить надежность приложения, но для его осмысленного построения требуются целеустремленность, дальновидность и время», - говорит он.


Солли признает, что для достижения целей в области надежности и производительности требуется не только видение, но и инвестиции в практику и оптимальную архитектуру. «Наблюдаемость – критически важный и дорогостоящий принцип, поскольку надежность не зависит от состояния «включено» или «выключено» и требует тщательного сбора данных. Со всеми сервисами облачных вычислений выбор правильного инструмента или сервиса для выполнения работы может обеспечить преимущества в надежности и производительности».


Что гибкие команды разработчиков должны внедрить в свои конвейеры для повышения производительности? Вот несколько рекомендаций:

* внедрите непрерывное тестирование перед увеличением частоты развертывания;
* рассмотрите возможность виртуализации сервисов для тестирования микросервисов и сторонних API;
* обеспечьте видимость конвейеров CI/CD, чтобы улучшить обнаружение ошибок и устранить проблемы с конвейером.


4. Управляйте развертываниями с помощью флагов функций и канареечных релизов


Развертывания не обязательно должны быть абсолютными переходами, когда все пользователи получают все изменения за один раз. Флаги функций в коде помогают настраивать и контролировать доступность функций, в то время как стратегии канареечного релиза позволяют командам devops медленно и методично внедрять новые возможности.


Джон Кодумал, технический директор и соучредитель LaunchDarkly, добавляет: «Управление функциями, в частности флагами функций, быстро становится неотъемлемой частью практики devops, которая повышает общую надежность и производительность приложений, позволяя разработчикам постоянно внедрять инновации. Используя флаги функций, разработчики могут тестировать обновления функций перед выпуском, чтобы устранять проблемы».


Элементы управления повышают надежность и производительность, а также помогают командам разработчиков минимизировать сбои. «Флаги функций повышают производительность, предоставляя командам разработчиков необходимые средства управления для обновления приложений без сбоев или простоев», - говорит Кодумал.


5. Установите строгие стандарты наблюдаемости и мониторинга


Сосредоточившись на операционной стороне обязанностей devops, командам следует рассмотреть несколько лучших практик для повышения производительности приложений, включая разработку стандартов наблюдаемости и улучшение мониторинга.


Фредерик Харпер, директор по связям с разработчиками в Mindee, говорит: «Devops должен внедрять строгие процессы мониторинга и наблюдения, чтобы гарантировать, что каждая часть приложения работает правильно и что серверные процессы выполняются бесперебойно. Защитив этот элемент, команды devops могут собирать ценную информацию, чтобы понять, как пользователи используют приложения, возможно, предотвратить будущие проблемы, упростить поддержку клиентов и улучшить бизнес-решения или архитектурные решения на основе реальных данных».


6. Расширьте мониторинг с помощью AIOps и автоматизации


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


Мохан Компелла, вице-президент по маркетингу продуктов в BigPanda, соглашается, что «платформы AIOps могут помочь командам devops сохранить автономность и гибкость инструментов, а также предоставить централизованным службам реагирования на инциденты видимость, необходимую им для того, чтобы быть первой линией защиты от сбоев».


7. Определите SLO и бюджеты ошибок


Команды Devops должны найти методы, которые приносят наибольшую пользу и устраняют риски. Это требует от команд оценки, изучения и совместной работы над приоритетами devops, что непросто, когда преимущества могут быть неосуществимы в течение нескольких месяцев или лет после внедрения практик и инструментов.


Одним из способов определения приоритетов является внедрение методов проектирования надежности сайта, определение целей уровня обслуживания (SLO) и использование бюджетов ошибок. Когда приложение или микросервис превышают свой бюджет ошибок, это сигнализирует команде devops о необходимости определить причины и сосредоточиться на решениях.


Кит Меркер, исполнительный директор Nobl9, говорит: «Цели на уровне обслуживания устанавливают четкие задачи для инженерных команд, которые позволяют им принимать более обоснованные решения о том, как расставить приоритеты в своей работе. Разработчики и IT-специалисты не могут быть просто ориентированы на технологии, но могут перейти к сервис-ориентированности».


У команд разработчиков много работы, и лучшие практики devops помогают им сбалансировать свое внимание между ускорением разработки и повышением надежности и производительности. Ключ к успеху может заключаться в определении формулировок проблем, обсуждении подходов, повторении решений и оценке воздействия.


Ссылка на источник