Высокая наблюдаемость позволяет сократить время и усилия разработчиков, требуемые для устранения проблем и оптимизации системы. CEO DevOps Institute Джейн Гролл приводит на портале TechBeacon мнения экспертов о способах, которые позволяют добиться повышения наблюдаемости систем.

В первую очередь необходимо четко понимать, что на самом деле означает такое понятие, как наблюдаемость системы. Возможно, самое точное толкование ему дает исследовательская компания DevOps Research and Assessment (DORA): «Это инструментарий или техническое решение, которое позволяет командам отлаживать свою систему в активном режиме. Наблюдаемость основана на изучении свойств и закономерностей, не определенных заранее».

Джош Атвелл, старший специалист Splunk по технологиям, объясняет спрос на наблюдаемость как реакцию на усложнение ИТ. Причиной для появления новых практик стала естественная сложность новых системных архитектур и стеков приложений. Предназначение наблюдаемости — вынести глубинную работу подсистем на поверхность. Например, внедрение облачных и новых пользовательских сервисов в сочетании с контейнеризацией приложений и новыми сервисами и API значительно увеличивает сложность, с которой сегодня сталкиваются ИТ-специалисты.

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

Это помогает улучшить базовые знания разработчиков и инженерных команд, и эти данные должны регулярно анализироваться для улучшения принятия решений. Но, как и все ИТ-системы, сама наблюдаемость должна быть предметом постоянного совершенствования через измерения и цикл обратной связи. Ниже приводятся лучшие практики, которые помогут улучшить наблюдаемость систем.

Начните с культуры

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

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

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

Чтобы добиться культурного сдвига в вашей организации, определите поток ценности и стремитесь к его постоянному улучшению. Тиффани Джачжа, менеджер по разработке Vox Media, говорит, что постоянное улучшение наблюдаемости означает никогда не останавливаться на достигнутом: «Если бы все остановились на конфигурациях на основе JSON, у нас не было бы YAML. Если бы мы остановились на YAML, у нас не было бы конфигураций на основе UI».

Микшируйте автоматизацию и AIOps

Что касается улучшения наблюдаемости систем, то автоматизация и AIOps демонстрируют многообещающий потенциал, говорит Хелен Бил, главный посол DevOps Institute: «Наблюдаемость создает огромные объемы данных — гораздо больше, чем человек может проанализировать для получения инсайтов».

Благодаря этому автоматизация и AIOps могут работать быстрее, чем человек, уверен Райан Шелдрейк, технический директор поставщика платформы безопасности Lacework: «Картирование в реальном времени на постоянной основе — единственный способ наблюдать за изменчивой, постоянно меняющейся, сложной структурой, которую команде SRE необходимо охватить».

Однако при использовании автоматизации, ИИ и других технологий, которые придают системам наблюдаемость, командам DevOps важно помнить несколько основных правил. Наблюдаемость достижима только тогда, когда разработчики предоставляют при разработке приложений необходимые оповещения и журналы, инструменты мониторинга, которые считывают и отображают эти данные, и инструменты автоматизации, которые могут принимать меры на основе данных и мониторинга, говорит Сушант Мехта, старший менеджер по разработке Diyar United. Чем более интегрированы эти ключевые аспекты, тем более эффективной и действенной будет наблюдаемость систем. А когда вы применяете автоматизацию и AIOps, возможности для улучшения безграничны.

Интегрируйте наблюдаемость в жизненный цикл разработки

Еще один способ улучшить наблюдаемость систем — интегрировать ее в каждый этап жизненного цикла разработки ПО. По словам Парвина Ароры, соучредителя и директора консалтинговой компании VVnT SeQuor, одним из способов сделать это является включение наблюдаемости в конвейер CI/CD.

Хотя за наблюдаемость и здоровье приложений обычно отвечают операционные команды, разработчики знают свой код лучше, чем кто-либо другой, говорит Супратип Банерджи, архитектор решений в компании по управлению инвестициями Principal Global Services: «Они знают, как код будет работать в производстве и как поэтапное внедрение конкретных целей наблюдаемости в конвейер CI/CD улучшит общий результат».

По словам Хосе Адана Ортиса, инженера по решениям компании Akamai Technologies, неспособность должным образом внедрить наблюдаемость в процесс разработки является причиной появления OpenTelemetry с протоколом OT Protocol. OpenTelemetry предоставляет оригинальный способ интеграции различных инструментов и провайдеров наблюдаемости для ее улучшения и расширения в одну высококачественную телеметрию во всем стеке.

«Интеграция и упрощение решений по наблюдаемости может сэкономить значительное количество времени и ресурсов ИТ-командам», — отмечает Банерджи.

Метод проб и ошибок

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

Кроме того, поскольку каждая система для команды или организации — уникальна, метода, который сделал бы всех их одинаково наблюдаемыми, не существует. Однако один из подходов к улучшению наблюдаемости систем — сделать наблюдаемым все, говорит Аншул Лалит, руководитель отдела технологий и трансформации поставщика ПО и услуг Kongsberg Digital: «Хорошее решение для обеспечения наблюдаемости даст представление о поведении системы во время выполнения, что позволит лучше принимать решения, отлаживать и повышать производительность».

Помните о своих целях

В конечном счете на устранение проблем и оптимизацию системы с высокой наблюдаемостью у разработчиков уходит меньше времени и усилий. Имея базовые знания о данных, анализируемых в системе, разработчики и инженерные команды могут принимать лучшие решения и более эффективно предоставлять бизнес-ценность клиентам. Именно поэтому вы должны постоянно стремиться к тому, чтобы сделать системы более наблюдаемыми, комплексными и эффективными. Автоматизация, AIOps или интеграция в конвейер CI/CD — это те способы, которые помогают улучшить наблюдаемость сейчас и в будущем.