Ви з тих людей, хто розгортає Qlik-додатки шляхом простого експорту QVF, перейменування файлу та імпорту в цільове середовище? Якщо так — ви не одні! Фактично, у кожній Qlik-команді, з якою ми працювали, це поширена практика. І майже в кожному випадку їм доводилось мати справу з наслідками, коли щось йшло не так і потрібно було терміново розгорнути додаток, щоб виправити проблему. Тож усім, кому «не доводилось вручну видаляти зламане розгортання після спроби встановити QVF-файл під час критичного дедлайну» — вітаємо. Ви в меншості.
Те, що нам доводиться вручну розгортати оновлення на продакшн, не обов’язково означає, що все зламано. Ні, ручні розгортання працюють. Вони працюють, доки не перестають працювати. Вони перестають працювати, коли розгорнуто неправильну версію. Вони перестають працювати, коли п’ятничне розгортання ламає критичний дашборд, на який покладаються 200 користувачів у понеділок. Вони перестають працювати, коли потрібно відкотитися до попередньої версії — а відкочуватися нікуди.
Цей посібник описує процеси, необхідні для стабільного розгортання Qlik-середовищ при нестабільному середовищі розробки. Він стане в нагоді незалежно від того, чи ви єдиний розробник із п’ятьма додатками, чи команда з десяти людей, що керує понад 100 додатками.
Кожне розгортання Qlik має проходити через щонайменше три середовища:
Одне з найпоширеніших непорозумінь у світі DevOps — це ставлення до DEV і PROD як до одного сервера. Публікація в потік, який бачать кінцеві користувачі — це не процес розгортання, це просто публікація.
Найкраща практика: Ми рекомендуємо використовувати окремі сайти в Qlik Sense (або окремі тенанти в Qlik Cloud) для кожного середовища. Якщо бюджетні обмеження не дозволяють мати окремі сервери, рекомендуємо щонайменше окремі потоки та суворі права публікації.
Золоте правило: Жоден розробник не повинен мати права публікації в Production-потік. Крапка.
Один з найпоширеніших антипатернів розгортання Qlik:
Кожен крок у цьому ланцюжку — це ризик:
Найкраща практика: Завжди розробляйте у DEV-середовищі на сервері, а не на Desktop. Якщо це неможливо в конкретних ситуаціях, Desktop може використовуватися лише до моменту, коли додаток буде повторно розгорнуто на DEV-сервер для подальшого тестування перед просуванням у TEST-середовище.
Перед тим як будь-який додаток переміщується з одного середовища в інше, перевірте:
Письмовий чеклист допомагає виявити помилки та друкарські помилки, які часто просковзують через тріщини пам’яті. Його легко зробити ефективнішим: роздрукуйте його, прикріпіть над клавіатурою, щоб він завжди був перед очима, і використовуйте кожного разу.
Мінімально можливий контроль версій для Qlik-додатків:
Sales-Dashboard_v2.3_2026-03-15.qvfЦе не ідеально. Але це незрівнянно краще, ніж не мати жодної можливості відкотитися.
QVF-файли мають бінарний формат, тож ви не можете порівняти їх. Ви не можете переглянути changelog між версіями, скажімо, v2.2 та v2.3, і дізнатися, що змінилось. Якщо потрібно відкотитися до старішої версії, залишається лише сподіватися, що зміни між версіями не надто радикальні.
Усі ці методи мають недоліки. Найкращий підхід — розкласти додаток на читабельні JSON/YAML-джерела та зафіксувати їх у Git. Це дає справжній контроль версій вашого додатку. Усі зміни формул і змінних відображатимуться як однорядкові зміни в Git Diff, і ви зможете повноцінно створювати гілки та зливати код (як і з будь-яким іншим проєктним кодом у вашій компанії). Саме тут допоможе QOps — він трансформує бінарний формат Qlik у зручний для Git, читабельний формат.
Чітко визначте, як додатки переміщуються з одного середовища в інше, і зробіть цей процес достатньо простим для автоматизованих інструментів, але водночас зрозумілим для будь-якого члена команди, щоб він міг виконати розгортання вручну в екстреній ситуації, без залежності від «племінних знань».
Надійний процес просування виглядає так:
DEV → (export) → TEST → (validate) → PROD
↓ ↓
Change log Sign-off
оновлено необхідний
Для кожного просування:
Кому допомагає розділення обов’язків? Усім, чий сайт зазнає непередбачуваних змін після чергового «розгортання дня». Сенс додатку губиться, коли одна й та сама людина є і автором, і спеціалістом з розгортання. При кожному розгортанні завжди виникають друкарські помилки, пропущені змінні чи неправильні теги. Навіть наявність другої пари очей, що помічає ці дрібні помилки, значно підвищує надійність.
Одна з найскладніших частин розгортання Qlik: підключення до даних.
Ваш додаток вказує на базу даних розробки в DEV та на продакшн-базу в PROD. Коли ви експортуєте QVF з DEV та імпортуєте в PROD, посилання додатку включатимуть підключення до неправильної бази даних.
Варіанти вирішення:
Sales_DB у кожному середовищі. Однак на DEV воно вказує на dev-sql01, а на PROD — на prod-sql01.Мабуть, це очевидно, але ручне редагування підключень після кожного імпорту — це ненадійно і не масштабується.
«Працює на DEV» — це не підтвердження готовності до розгортання.
Перед просуванням у продакшн перевірте в TEST-середовищі:
Якщо ви не можете протестувати — ви не можете розгортати. Нетестоване розгортання в продакшн може коштувати досить дорого, щоб купити весь час у світі.
Для кожного розгортання в продакшн фіксуйте:
Цей журнал змін стає безцінним, коли:
Не має значення, як ви документуєте цю інформацію — спільна таблиця, wiki-сторінка чи навіть Git commit history цілком підійдуть.
Ручні розгортання не масштабуються. Це справедливо для невеликих організацій із 5 додатками та кількома адміністраторами, які готові дотримуватися невеликого чеклиста. Але з 50+ додатками у розгортуваному програмному середовищі та аналогічною кількістю людей, які намагаються розгортати щодня — помилки неминучі, а ручні процедури зрештою розвалюються.
Що можна автоматизувати у розгортаннях Qlik:
Повний CI/CD для Qlik Sense (чи будь-якого продукту Qlik) — тема, яка активно обговорюється, і з допомогою Repository API та можливостей QOps ми можемо підтвердити: повний CI/CD цілком реальний. Ось базова структура повного пайплайна:
Це не теорія — команди вже працюють за таким підходом сьогодні.
Це дуже просто. Кожного разу, коли ви розгортаєте щось у продакшн, ви маєте бути готові відповісти на запитання «Що буде, якщо це зламає продакшн?» Кожне розгортання має містити відповідь на це запитання як частину самого процесу розгортання.
Мінімальний план відкату:
Кращий план відкату:
DatalabsUa створює DevOps-інструменти для Qlik-аналітики. QOps забезпечує контроль версій на базі Git та автоматизацію CI/CD для Qlik Sense, Qlik Cloud та QlikView.
Коментарів поки немає.
Залишити коментар