Кубернетес в облаке: Руководство по наблюдаемости

Согласно пословице “Если вы не измеряете это, вы не можете этим управлятьДеминга, наблюдаемость и мониторинг — это наш способ измерять наши услуги.

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

Хотите освежить в памяти терминологию Kubernetes? Читайте Разгадывание Kubernetes за 5 минут.

Что такое Наблюдаемость в Kubernetes?

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

Три вещи, которые приходят на ум:

Метрики

Это числа, которые предоставляют данные о использовании ресурсов, уровне ошибок и производительности. Несколько популярных метрик — это использование CPU и использование памяти в процентах, а также дополнительная метаинформация о самих метриках (иногда называемая измерениями).

Логи

Журналы предоставляют подробную историю событий в вашей системе, таких как ошибки или действия пользователей. Они предоставляют контекст для устранения неполадок и понимания поведения приложения. Я уверен, что вы видели “журнал” раньше:

SystemVerilog

 

Трассы

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

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

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

Если вы еще не убедились в Наблюдаемости, я подытожу:

  1. Она гарантирует плавную и эффективную работу, выявляя узкие места в производительности.
  2. Улучшает устойчивость системы и помогает приложениям быстро восстанавливаться после сбоев (надеюсь).
  3. Непрерывный мониторинг позволяет командам рано обнаруживать аномалии, предотвращая нарушения безопасности и обеспечивая защиту конфиденциальных данных.
  4. Вы можете создать замечательную панель управления, которая поможет вам получить более глубокие идеи о производительности системы. Это даже может помочь вам сэкономить значительные инфраструктурные затраты (глядя на вас, AWS!).

Подождите, я также упомянул выше мониторинг. Что это такое и в чем разница?

Хотя наблюдаемость и мониторинг связаны между собой, они служат разным целям. Мониторинг включает настройку предварительных проверок/оповещений для обеспечения работы системы в пределах приемлемых параметров, ваших SLA/SLO. Наблюдаемость, с другой стороны, идет дальше, предоставляя всестороннее понимание поведения системы. Речь идет не только о знании, когда что-то ломается; это о понимании причин и способов, как это произошло. Как мониторинг, так и наблюдаемость необходимы для эффективного управления системой.

Вызов: OpenTelemetry

OpenTelemetry (также известный как OTel) – это ведущая открытая коллекция API, SDK и инструментов. Используйте его для инструментирования, генерации, сбора и экспорта телеметрических данных (метрики, журналы и трассировки), чтобы помочь вам анализировать производительность и поведение вашего программного обеспечения. OpenTelemetry интегрируется с многими популярными библиотеками и фреймворками, а также поддерживает инструментирование на основе кода и без него в различных средах Kubernetes.

Заключение

В заключение, Наблюдаемость – это не просто техническое требование, а стратегическая необходимость для организаций, стремящихся оставаться впереди на сегодняшнем конкурентном рынке. Используя правильные инструменты и стратегии, такие как OTel для унифицированного сбора данных, организации могут отслеживать, устранять неполадки и непрерывно оптимизировать свои приложения Kubernetes. Благодаря лучшей видимости производительности системы организации могут принимать решения на основе данных, улучшать надежность приложений и более эффективно достигать бизнес-целей.

Я не знаю, кто сказал это, но я люблю эту цитату: Прекратите догадываться, начните знать!

Source:
https://dzone.com/articles/the-must-have-guide-to-kubernetes-observability