Observability Engineering: 7 фактів для продуктивної роботи
Купа компаній перейняли практику DevOps, але не усі зробили це успішно. Дослідження Gartner показало, що 75% DevOps-ініціатив не відповідає очікуванням у 2022 році. Чому? Головною причиною вважають нехтування спостережуваністю.
Отже, говоримо про observability в DevOps і чим це рішення відрізняється від моніторингу.
Спостережуваність (observability) — що це?
У DevOps спостережливість належить до програмних інструментів і методологій, які допомагають командам Dev і Ops реєструвати, збирати, корелювати та аналізувати величезні обсяги даних. Це дає змогу ефективно контролювати, оновлювати та вдосконалювати програму, щоб взаємодія з клієнтами була кращою.
Три стовпи спостережуваності:
- Логи: інформація та події
- Метрики: вимірювання конкретних показників і даних про ефективність
- Трасування: реєстрація продуктивності наскрізного запиту під час виконання
Схоже на моніторинг, але це тільки на перший погляд. І ось чому 👇
Чим моніторинг відрізняється від спостережуваності?
Ось як DORA визначає ці терміни:
- Моніторинг — це інструмент або технічне рішення, яке дозволяє командам спостерігати та розуміти стан своїх систем. Моніторинг базується на зборі попередньо визначених наборів показників або журналів.
- Спостережуваність — це інструмент або технічне рішення, яке дозволяє командам активно налагоджувати свою систему. Спостережливість базується на вивченні властивостей і закономірностей, не визначених заздалегідь.
Якщо коротко, моніторинг забезпечує вимірювання обмеженого контексту, який може вказувати на більшу проблему з системою. Спостережуваність пропонує набагато більш інтуїтивно зрозумілу та повну картину. Дані цього рішення допоможуть краще зрозуміти виробничі інциденти.
Дослідження DevOps Research and Assessment (DORA) показують, що комплексне рішення для моніторингу та спостережуваності разом із низкою інших технічних методів позитивно сприяє безперервній доставці.
Щоб добре виконувати моніторинг і спостереження, команди повинні мати:
- Звіт про загальний стан систем.
- Звіт про стан системи на думку клієнтів.
- Моніторинг ключових показників бізнесу та системи.
- Інструменти, які допоможуть зрозуміти та налагодити системи у продакшн середовищі.
- Інструменти для пошуку інформації про те, що компанія не знала раніше.
- Доступ до інструментів і даних, які відстежують та діагностують проблеми інфраструктури.
Про моніторинг Kubernetes читай тут.
Що варто знати про спостережуваність?
Більшість розмов про observability очолюють інженери таких компаній як Twitter і Netflix. Вони стикаються з серйозними проблемами керування системами, складність яких постійно зростає.
Спостережуваність — оптимальне для тих, хто працює з клаудом, бо пропонує глибший рівень видимості, ніж стратегія моніторингу.
Щоб скористатися всіма перевагами observability, компанії повинні використовувати її на всіх рівнях організації. Але спочатку треба ознайомитися з деякими фактами про цей інструмент.
Факт 1. Observability — це не просто модне слово
Це принципово новий спосіб для ІТ-організацій підійти до моніторингу та управління продуктивністю ПЗ. Загалом, спостережуваність необхідна, щоб розуміти, що відбувається в складних, розподілених, швидкозмінних програмних середовищах, на які сьогодні зазвичай покладаються підприємства.
Сама по собі спостережуваність не зможе розв’язувати всі проблеми управління ефективністю, з якими може зіткнутися організація.
В цьому відношенні observability нічим не відрізняється від таких термінів, як «DevOps» і «Cloud Computing» — концепцій, які також іноді надмірно рекламують, але вони все ж мають стійкий і трансформаційний вплив на ІТ-індустрію.
Факт 2. Складніші системи = складніший аналіз їхньої ефективності
Термін бере свій початок у 1960-х роках, коли інженер і винахідник Рудольф Е. Калман опублікував наукову роботу про спостережуваність у галузі теорії управління. У наступні десятиліття це поняття стало важливою концепцією.
В середині 2010-х років практики в ІТ-індустрії почали значною мірою включати observability у свою роботу. Виступи на конференціях, дописи в блогах про спостережуваність від інженерів вебкомпаній — усе це зробило цей інструмент основним компонентом адміністрування.
Чому ІТ-індустрії знадобилося так багато часу, щоб почати впроваджувати observability? Імовірне пояснення: у 2015 році розробникам та ІТ-інженерам доручили створювати, розгортати та керувати високодинамічними розподіленими системами більше, ніж будь-коли раніше.
Ці системи стали на порядок складнішими, ніж їхні попередники. Мультихмарні мікросервісні додатки на основі Kubernetes витіснили монолітні програми та віртуальні машини. Зрештою організаціям потрібні були кращі засоби розуміння того, що відбувається в їхніх системах, і ці засоби мали використовувати не лише моніторинг. Тут і настав зоряний час спостережуваності.
Факт 3. Observability ≠ моніторинг
Може виникнути спокуса вважати спостережуваність синонімом до моніторингу. Ці два терміни дійсно дадуть розуміння того, що відбувається з ПЗ. Основна відмінність між ними:
- моніторинг просто повідомляє, коли щось не так
- спостережуваність допомагає визначити, що не так і чому це сталося
Observability досягає цього шляхом розширення процесів моніторингу, щоб отримати глибше розуміння складних систем. У той час як інструменти моніторингу зазвичай зосереджені лише на зборі даних й створенні сповіщень на основі аномалій або попередньо налаштованих тригерів.
Спостережливість корелює дані з різних систем, щоб забезпечити контекст для кожної проблеми, що виявляються через дані моніторингу.
Подібним чином спостережуваність відрізняється від телеметрії — збору даних із віддалених систем. Спостережуваність забезпечує контекст, необхідний для повної інтерпретації даних телеметрії.
Отже, моніторинг і телеметрія є частиною процесів, які забезпечують observability. Однак спостережуваність йде глибше і забезпечує набагато вищий рівень дій.
Факт 4. Спостережуваність підвищує ROI
Порівняно з методами керування продуктивністю додатків, які покладаються лише на такі процеси, як моніторинг і телеметрія, observability дає ще кращі фінансові результати для бізнесу.
Частково це пояснюється тим, що спостережуваність максимізує здатність команди швидко виявляти та усувати першопричину проблем продуктивності. Це означає менший час простою та менше проблем із продуктивністю, що впливають на клієнтів. Це дає вищі показники залученості та доходу.
Водночас observability допомагає командам інженерів працювати швидше та розумніше. Інструменти спостережуваності допомагають командам витрачати менше часу на відстеження першопричини проблем і виконання незапланованої роботи.
Своєю чергою, інженери мають більше часу, щоб впроваджувати нові функції або завдання, які покращують надійність.
Факт 5. Спостережуваність не залежить від системи
Observability можна застосувати до будь-якого типу ІТ-середовища чи архітектури.
Наприклад, можна використовувати спостережуваність, щоб співвіднести зміни продуктивності в монолітній програмі зі змінами в процесах CI/CD, які використовуються для створення цієї програми. Подібним чином observability може допомогти надати практичну інформацію на локальному сервері або в приватному центрі обробки даних так само ефективно, як і в загальнодоступних хмарних середовищах.
Застарілі програми можуть не потребувати спостережуваності такою ж мірою, як хмарні додатки, але вони все одно можуть отримати значну користь. Це означає, що незалежно від типу додатків, якими керує бізнес, або які технологічні парадигми приймає, observability може принести користь.
Факт 6. Чим більше даних, тим краще
Однією із поширених проблем, з якою стикаються команди інженерів під час керування ПЗ, є велика кількість даних. Якщо команда має більше даних, ніж може ефективно інтерпретувати, вона не принесе інженерам користі.
Витрати на зберігання та обчислення для керування та обробки даних також можуть бути досить високими відносно ступеня розуміння, який генерує ця інформація.
Наявність великої кількості даних для спостережуваності є не ризиком, а радше перевагою. Оскільки цей інструмент може співвідносити різні набори даних ефективним і автоматизованим способом.
Зрештою, основна мета observability полягає в тому, щоб допомогти командам швидко виявити першопричину проблем і зрозуміти, як різні інциденти пов’язані одне з одним.
Успішна спостережуваність залежить не лише від збору даних із якомога більшої кількості джерел, а й від аналізу та кореляції даних з інших систем. Інформація з конвеєрів CI/CD, платформ обслуговування клієнтів тощо може допомогти надати повний контекст проблем продуктивності.
Факт 7. Спостережуваність — це культура
Щоб отримати найбільшу цінність від observability, слід включити її у культуру ІТ-організації.
Хоча ні, не так.
Необхідно побудувати культуру, де інженери природно думають не просто «Що не так?», але й «Чому це не так?» І це вимагає підтримки спостережуваності з боку всіх зацікавлених сторін, у тому числі тих, хто займає керівні посади.
Як observability впливає на DevOps?
Спостережуваність не існує у вакуумі. Це як наслідок, так і невіддільна частина рухів DevOps, SRE та хмарних технологій.
Робота команд DevOps і SRE полягає в тому, щоб зрозуміти виробничі системи та приборкати складність. Так що це природно, щоб вони піклувалися про спостережуваність систем, які вони створюють і запускають.
- SRE фокусується на управлінні послугами відповідно до цілей рівня обслуговування (SLO) і бюджетів помилок.
- DevOps зосереджується на управлінні послугами за допомогою міжфункціональних практик, де розробники несуть відповідальність за свій код у виробництві.
Зрілі команди DevOps і SRE вимірюють будь-які видимі несправності, а потім детально вивчають збій за допомогою інструментів для observability. Замість того, щоб починати з безлічі сповіщень, у яких перелічуються потенційні причини збоїв,
Окрім застосування спостережуваності для випадків використання зламів/виправлень, перспективні команди DevOps і SRE використовують такі інженерні методи, як:
- позначення функцій
- постійна перевірка
- аналіз інцидентів
Спостережуваність посилює ці випадки використання, надаючи дані, необхідні для їх ефективної практики.
Перехід до DevOps, SRE та власних хмарних практик породив потребу в такому рішенні, як observability. Своєю чергою, спостережуваність також розширила можливості команд, які перейняли її практику.
Ось курси, що допоможуть тобі нарешті розібратися в DevOps, щоб потім успішно використовувати необхідні технічні рішення.
І не забудь написати свої думки про observability у коментарях 👇