Observability Engineering: 7 фактів для продуктивної роботи

Купа компаній перейняли практику DevOps, але не усі зробили це успішно. Дослідження Gartner показало, що 75% DevOps-ініціатив не відповідає очікуванням у 2022 році. Чому? Головною причиною вважають нехтування спостережливістю. 

Отже, говоримо про спостережливість у DevOps і чим це рішення відрізняється від моніторингу.

Спостережливість (observability) — що це?

У DevOps спостережливість належить до програмних інструментів і методологій, які допомагають командам Dev і Ops реєструвати, збирати, корелювати та аналізувати величезні обсяги даних. Це дає змогу ефективно контролювати, оновлювати та вдосконалювати програму, щоб взаємодія з клієнтами була кращою.

Три стовпи спостережливості:

  • Логи: інформація та події
  • Метрики: вимірювання конкретних показників і даних про ефективність
  • Трасування: реєстрація продуктивності наскрізного запиту під час виконання

Схоже на моніторинг, але це тільки на перший погляд. І ось чому 👇

Чим моніторинг відрізняється від спостережливості?

Ось як DORA визначає ці терміни:

  • Моніторинг — це інструмент або технічне рішення, яке дозволяє командам спостерігати та розуміти стан своїх систем. Моніторинг базується на зборі попередньо визначених наборів показників або журналів.
  • Спостережливість — це інструмент або технічне рішення, яке дозволяє командам активно налагоджувати свою систему. Спостережливість базується на вивченні властивостей і закономірностей, не визначених заздалегідь.

Якщо коротко, моніторинг забезпечує вимірювання обмеженого контексту, який може вказувати на більшу проблему з системою. Спостережливість пропонує набагато більш інтуїтивно зрозумілу та повну картину. Дані цього рішення допоможуть краще зрозуміти виробничі інциденти.

Дослідження DevOps Research and Assessment (DORA) показують, що комплексне рішення для моніторингу та спостережуваності разом із низкою інших технічних методів позитивно сприяє безперервній доставці.

Щоб добре виконувати моніторинг і спостереження, команди повинні мати:

  • Звіт про загальний стан систем. 
  • Звіт про стан системи на думку клієнтів. 
  • Моніторинг ключових показників бізнесу та системи.
  • Інструменти, які допоможуть зрозуміти та налагодити системи у продакшн середовищі.
  • Інструменти для пошуку інформації про те, що компанія не знала раніше.
  • Доступ до інструментів і даних, які відстежують та діагностують проблеми інфраструктури.

Про моніторинг Kubernetes читай тут.

Що варто знати про спостережливість?

Більшість розмов про спостережливість очолюють інженери таких компаній як Twitter і Netflix. Вони стикаються з серйозними проблемами керування системами, складність яких постійно зростає.

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

Щоб скористатися всіма перевагами спостережуваності, компанії повинні використовувати її на всіх рівнях організації. Але спочатку треба ознайомитися з деякими фактами про цей інструмент.

Факт 1. Спостережливість — це не просто модне слово

Це принципово новий спосіб для ІТ-організацій підійти до моніторингу та управління продуктивністю ПЗ. Загалом, спостережливість необхідна, щоб розуміти, що відбувається в складних, розподілених, швидкозмінних програмних середовищах, на які сьогодні зазвичай покладаються підприємства.

Сама по собі спостережливість не зможе розв’язувати всі проблеми управління ефективністю, з якими може зіткнутися організація.

В цьому відношенні спостережливість нічим не відрізняється від таких термінів, як «DevOps» і «Cloud Computing» — концепцій, які також іноді надмірно рекламують, але вони все ж мають стійкий і трансформаційний вплив на ІТ-індустрію.

Факт 2. Складніші системи = складніший аналіз їхньої ефективності

Термін бере свій початок у 1960-х роках, коли інженер і винахідник Рудольф Е. Калман опублікував наукову роботу про спостережуваність у галузі теорії управління. У наступні десятиліття це поняття стало важливою концепцією.

В середині 2010-х років практики в ІТ-індустрії почали значною мірою включати спостережливість у свою роботу. Виступи на конференціях, дописи в блогах про спостережливість від інженерів вебкомпаній — усе це зробило цей інструмент основним компонентом адміністрування.

Чому ІТ-індустрії знадобилося так багато часу, щоб почати впроваджувати спостережливість? Імовірне пояснення: у 2015 році розробникам та ІТ-інженерам доручили створювати, розгортати та керувати високодинамічними розподіленими системами більше, ніж будь-коли раніше. 

Ці системи стали на порядок складнішими, ніж їхні попередники. Мультихмарні мікросервісні додатки на основі Kubernetes витіснили монолітні програми та віртуальні машини. Зрештою організаціям потрібні були кращі засоби розуміння того, що відбувається в їхніх системах, і ці засоби мали використовувати не лише моніторинг. Тут і настав зоряний час спостережливості.

Факт 3. Спостережливість ≠ моніторинг 

Може виникнути спокуса вважати спостережливість синонімом до моніторингу. Ці два терміни дійсно дадуть розуміння того, що відбувається з ПЗ. Основна відмінність між ними:

  • моніторинг просто повідомляє, коли щось не так
  • спостережливість допомагає визначити, що не так і чому це сталося

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

Спостережливість корелює дані з різних систем, щоб забезпечити контекст для кожної проблеми, що виявляються через дані моніторингу.

Подібним чином спостережуваність відрізняється від телеметрії — збору даних із віддалених систем. Спостережуваність забезпечує контекст, необхідний для повної інтерпретації даних телеметрії. 

Отже, моніторинг і телеметрія є частиною процесів, які забезпечують спостережливість. Однак спостережливість йде глибше і забезпечує набагато вищий рівень дій.

Факт 4. Спостережливість підвищує ROI

Порівняно з методами керування продуктивністю додатків, які покладаються лише на такі процеси, як моніторинг і телеметрія, спостережливість дає ще кращі фінансові результати для бізнесу.

Частково це пояснюється тим, що спостережливість максимізує здатність команди швидко виявляти та усувати першопричину проблем продуктивності. Це означає менший час простою та менше проблем із продуктивністю, що впливають на клієнтів. Це дає вищі показники залученості та доходу.

Водночас спостережливість допомагає командам інженерів працювати швидше та розумніше. Інструменти спостереження допомагають командам витрачати менше часу на відстеження першопричини проблем і виконання незапланованої роботи. 

Своєю чергою, інженери мають більше часу, щоб впроваджувати нові функції або завдання, які покращують надійність. 

Факт 5. Спостережливість не залежить від системи

Спостережливість можна застосувати до будь-якого типу ІТ-середовища чи архітектури.

Наприклад, можна використовувати спостережливість, щоб співвіднести зміни продуктивності в монолітній програмі зі змінами в процесах CI/CD, які використовуються для створення цієї програми. Подібним чином спостережливість може допомогти надати практичну інформацію на локальному сервері або в приватному центрі обробки даних так само ефективно, як і в загальнодоступних хмарних середовищах.

Застарілі програми можуть не потребувати спостережуваності такою ж мірою, як хмарні додатки, але вони все одно можуть отримати значну користь. Це означає, що незалежно від типу додатків, якими керує бізнес, або які технологічні парадигми приймає, спостережливість може принести користь.

Факт  6. Чим більше даних, тим краще

Однією із поширених проблем, з якою стикаються команди інженерів під час керування ПЗ, є велика кількість даних. Якщо команда має більше даних, ніж може ефективно інтерпретувати, вона не принесе інженерам користі. 

Витрати на зберігання та обчислення для керування та обробки даних також можуть бути досить високими відносно ступеня розуміння, який генерує ця інформація.

Наявність великої кількості даних для спостережуваності є не ризиком, а радше перевагою. Оскільки цей інструмент може співвідносити різні набори даних ефективним і автоматизованим способом. 

Зрештою, основна мета спостережливості полягає в тому, щоб допомогти командам швидко виявити першопричину проблем і зрозуміти, як різні інциденти пов’язані одне з одним. 

Успішна спостережливість залежить не лише від збору даних із якомога більшої кількості джерел, а й від аналізу та кореляції даних з інших систем. Інформація з конвеєрів CI/CD, платформ обслуговування клієнтів тощо може допомогти надати повний контекст проблем продуктивності.

Факт 7. Спостережливість — це культура

Щоб отримати найбільшу цінність від спостережливості, слід включити спостережливість у культуру ІТ-організації. 

Хоча ні, не так.

Необхідно побудувати культуру, де інженери природно думають не просто «Що не так?», але й «Чому це не так?» І це вимагає підтримки спостереження з боку всіх зацікавлених сторін, у тому числі тих, хто займає керівні посади.

Як спостережливість впливає на DevOps?

Спостережливість не існує у вакуумі. Це як наслідок, так і невіддільна частина рухів DevOps, SRE та хмарних технологій. 

Робота команд DevOps і SRE полягає в тому, щоб зрозуміти виробничі системи та приборкати складність. Так що це природно, щоб вони піклувалися про спостережуваність систем, які вони створюють і запускають. 

  • SRE фокусується на управлінні послугами відповідно до цілей рівня обслуговування (SLO) і бюджетів помилок. 
  • DevOps зосереджується на управлінні послугами за допомогою міжфункціональних практик, де розробники несуть відповідальність за свій код у виробництві. 

Зрілі команди DevOps і SRE вимірюють будь-які видимі несправності, а потім детально вивчають збій за допомогою інструментів для спостереження. Замість того, щоб починати з безлічі сповіщень, у яких перелічуються потенційні причини збоїв, 

Окрім застосування спостережуваності для випадків використання зламів/виправлень, перспективні команди DevOps і SRE використовують такі інженерні методи, як: 

  • позначення функцій
  • постійна перевірка 
  • аналіз інцидентів 

Спостережливість посилює ці випадки використання, надаючи дані, необхідні для їх ефективної практики. 

Перехід до DevOps, SRE та власних хмарних практик породив потребу в такому рішенні, як спостережливість. Своєю чергою, спостережливість також розширила можливості команд, які перейняли її практику.

Ось курси, що допоможуть тобі нарешті розібратися в DevOps, щоб потім успішно використовувати необхідні технічні рішення.

І не забудь написати свої думки про спостережливість у коментарях 👇

Залишити відповідь

Дякуємо, що поділились