Облачная видимость: выходите за рамки метрик и журналов, чтобы увидеть, что происходит
В сложном облачном мире мониторинг стал важнее, чем когда-либо. Облачные приложения все чаще распространяются в природе и поддерживаются широким спектром инструментов с открытым исходным кодом. Они размещены в нескольких облачных хранилищах и локальных центрах обработки данных. Мониторинг изменился с нескольких инструментов, предоставляемых поставщиком, на цепочки инструментов, включающие лучшие в своем классе инструменты. Ни один инструмент мониторинга не может сделать все это. Все эти переменные и факторы сделали мониторинг облачных приложений совершенно другим, но еще более мощным, чем когда-либо прежде. Давайте посмотрим, как мы можем выйти за рамки традиционных метрик и журналов мониторинга и найти способы получить более глубокую наблюдаемость и видимость в облаке.
Основы видимости в облаке: метрики и журналы
На заре вычислительной техники метрики и журналы были неотъемлемой частью управления приложениями. Они не уйдут в ближайшее время. Если вы полагаетесь на инструмент с открытым исходным кодом, такой как Nagios, или инструмент поставщика, такой как Splunk, вы знаете ценность метрик и журналов. Они необходимы для ежедневной оценки работоспособности системы и бесценны при устранении неполадок.
Метрики
Метрики — это числа, используемые для измерения производительности системы. Метрики существуют на каждом уровне стека приложений — инфраструктуры, сети и производительности приложений. Наиболее распространенные показатели измеряют время безотказной работы серверов, время, необходимое для выполнения сетевых запросов, и задержку в приложениях. Их лучше всего просматривать в виде аккуратных визуальных диаграмм и информационных панелей, и они являются отличной отправной точкой для любых целей мониторинга.

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

Современный анализ журналов радикально изменился, чтобы не отставать от возрастающей сложности приложений. Объем генерируемых журналов резко возрос. Больше журналов автоматически не означает больше информации. На самом деле паралич журналов — это неприятный побочный эффект модернизации приложений. Вот почему современные инструменты регистрации сосредоточены на выделении сигнала из шума. Поскольку большинство данных журналов являются обыденными и повторяющимися, лучшие инструменты выделяются из общей массы, поскольку способны идентифицировать иголку в стоге сена.
Необходимость углубиться в мониторинг видимости облака
В то время как метрики начинаются с «что», а журналы углубляются в «когда» и «где», святым Граалем облачной видимости является раскрытие «почему» — основной причины проблемы. Есть места, укромные уголки и закоулки, до которых не могут добраться обычные ванильные метрики и журналы. Давайте рассмотрим некоторые из способов, которыми вы можете пойти глубже, чем метрики и журналы, при мониторинге облачных приложений.
Гибридное облако и мультиоблако
Сегодня организации запускают приложения не в одном центре обработки данных, а в центре обработки данных и на нескольких облачных платформах. Гибридное облако (центр обработки данных + облако) и многооблачная среда (более одной облачной платформы) усложняют и усложняют мониторинг приложений, сети и инфраструктуры.
Рост сервисной сетки
Разработка облачных приложений предполагает использование Kubernetes и его экосистемы инструментов. Это включает в себя управление сетью как сервисной сеткой. Вместо простой связи «точка-точка» сервисная сетка требует связи «многие ко многим». Это разделяет задачи внутри сети и дает службам больше автономии. Однако модели коммуникации сложны, и их труднее отслеживать.
Решения для улучшения облачного мониторинга и видимости
Сложность инфраструктуры, сетей и стека приложений привела к появлению новых способов и подходов к мониторингу.
Метрики временных рядов с Prometheus
Традиционные инструменты мониторинга предоставляют метрики с интервалом в минуту или секунду. Эти метрики не обеспечивают необходимой детализации и гибкости, необходимых при мониторинге облачных приложений. Prometheus — это инструмент мониторинга серии таймеров с открытым исходным кодом, который отслеживает показатели с миллисекундными интервалами. Показатели записываются в виде непрерывного потока данных.
Prometheus извлекает метрики из конечных точек службы, а не полагается на агента для отправки метрик. После сбора данных Prometheus позволяет пользователю добавлять метки, чтобы любую метрику можно было просматривать более чем в одном измерении. Эти преимущества сделали Prometheus наиболее широко используемым инструментом мониторинга для Kubernetes.
Переключиться на сервисную сетку
В отличие от простых клиент-серверных приложений, сетевое взаимодействие для распределенных приложений микросервисов является сложным. Вместо индивидуальной связи сетевые запросы теперь относятся ко многим. Это значительно усложняет сетевые операции и мониторинг. Решение состоит в том, чтобы использовать современное решение Service Mesh, такое как Istio, которое действует как уровень абстракции над уровнем запросов TCP/IP и дает вам более детальный контроль над запросами.
Решение Service Mesh включает встроенную логику для таких вещей, как повторные попытки, тайм-ауты, балансировка нагрузки и обнаружение сервисов. Это не только улучшает управление запросами, но и обеспечивает более глубокую видимость каждого запроса. Инструменты Service Mesh также включают открытую архитектуру подключаемых модулей для отправки сетевых показателей и трассировок во внешние инструменты для надежного мониторинга. Это признак зрелой экосистемы, где обязанности разделены — один инструмент для управления запросами, а другой — для мониторинга запросов.
Агрегация и маршрутизация данных мониторинга
При наличии множества облачных местоположений и компонентов, которые необходимо отслеживать, мониторинг потоков данных похож на информационную магистраль, и этот трафик необходимо направлять соответствующим образом. Это привело к появлению инструментов агрегации и маршрутизации, таких как Fluentd и Logstash. Эти инструменты могут собирать данные журналов из нескольких источников и при необходимости направлять их в несколько пунктов назначения. Назначениями могут быть эксклюзивный инструмент ведения журнала или инструмент мониторинга или проприетарный внутренний инструмент в рамках предприятия.
Такие инструменты промежуточного программного обеспечения усложняют общую архитектуру, но они необходимы при мониторинге равноуровневого стека приложений. Конечно, идея не в том, чтобы переборщить с инструментами, а в том, чтобы использовать их с умом. Это компромисс между сложностью и контролем. Несмотря на растущую сложность, организациям необходим контроль и прозрачность облачных приложений, работающих в производственной среде.
Распределенная трассировка сетевых запросов
Метрики и журналы до сих пор были основным средством мониторинга операций. Однако благодаря облачным вычислениям сеть приобрела известность в виде сервисной сетки. Для этого требуется более глубокая видимость, чем могут обеспечить метрики и журналы. Введите распределенную трассировку. Трассировка — это количество времени, которое требуется для выполнения сетевого запроса. Одна трасса состоит из нескольких временных интервалов. Когда вы отслеживаете каждый диапазон, вы можете отслеживать точное путешествие каждого запроса по сети. Вы можете увидеть, к каким службам он обращается, где возникает задержка и где инициируются тайм-ауты. Это похоже на использование увеличительного стекла, чтобы глубже изучить любой запрос.
Jaeger — это ведущий инструмент распределенной трассировки с открытым исходным кодом в экосистеме Kubernetes. Он основан на модели, первоначально разработанной Zipkin. Он следует открытому стандарту под названием OpenTelemetry, который представляет собой проект песочницы CNCF и должен получить широкое распространение в отрасли.
Видимость в облаке: да, вам нужно больше, чем метрики и журналы
Если вы окунулись в мир облачных вычислений, вам необходимо изучить решения для мониторинга, выходящие за рамки метрик и журналов. Распределенные приложения создают новые проблемы для мониторинга, но, к счастью, существует множество вариантов мониторинга этих приложений, которые по-прежнему обеспечивают требуемый контроль и видимость. Хотя каждое решение, такое как Prometheus, Istio, Fluentd и Jaeger, является лучшим в своем деле, они наиболее эффективны при совместном использовании. Они обеспечивают облачную видимость в режиме реального времени, с высоким разрешением, полезную и готовую к работе.