Які способи існувати для роз'єднання розгортання від випуску?


13

Один із способів безперервного розгортання - це від'єднання розгортання від випуску, тобто розгортання оновлень без активації змін негайно.

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

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

А як щодо візуальних змін? Наприклад, чи можете ви реалізувати щось подібне до прапора функції у CSS? Це навіть має сенс?


Піт Ходжсон багато писав про різні категорії перемикань функцій, включаючи виправлення, та інші ситуації, коли вони підходять. martinfowler.com/articles/feature-toggles.html
Євген

Відповіді:


7

Для програмного забезпечення в категорії веб-додатків, залежно від вашого інфра / постачальника хостингу, така розв'язка може бути можливою для переключення вхідного трафіку через (або розділити його між) різними розгорнутими версіями SW, практично охоплюючи будь-які зміни, які ви згадуєте: виправлення, візуалізація тощо.

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

Наприклад, програма Google Engine App Paas пропонує підтримку розподілу трафіку та міграції.

Від розділення трафіку :

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

З міграції трафіку :

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


5

Незважаючи на те, що з монолітами ви можете бути обмежені комутаторами, за допомогою мікросервісної архітектури ви можете розділити кожен пул розгортання вузлів, що надають послугу (тобто стручки). Потім ви активуєте розгортання нещодавно зміненого продукту в підмножині пулу і ретельно стежите за ним; Ви навіть можете вибрати, який обсяг пулу для розгортання змін, скажімо, наприклад, активувати зміну для 15% трафіку. Ви можете знайти в літературі функцію під назвою "прокатне оновлення".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.