Добре виконаний реліз стосується планування та спілкування. Тому перед проведенням релізу врахуйте ці питання:
Скільки часу може зайняти випуск, і чи існують якісь ризики для того, щоб люди продовжували взаємодіяти з моїм продуктом, поки випуск є Якщо є ризик для системи, подумайте про відключення системи в режимі офлайн та встановлення на її місце повідомлення "Система, яка зараз знаходиться на технічному обслуговуванні".
Чи є клієнти, які вам можуть знадобитися сповістити про випуск достроково? Чи потрібно мені розповідати їм про можливі перебої в службі або погіршення продуктивності під час випуску? Особисто я завжди помиляюся над тим, що надмірно спілкуватися та розповідати всім клієнтам про майбутнє вікно випуску чи обслуговування в публічному блозі чи подібному місці.
Які мої плани на випадок надзвичайних ситуацій повинні вийти з ладу? Наприклад, якщо випуск поганий, ми повинні повернутись назад і відновити систему таким чином, щоб мінімізувати будь-який час, коли ми перебуваємо в офлайні? І якщо так, чи добре задокументовані кроки щодо відколу випуску? Або я повинен мати потрібних людей за викликом або під рукою, щоб допомогти у вирішенні проблем у разі їх виникнення. Особисто я думаю, що найкращий спосіб підійти до планування будь-якого випуску - припустити, що з випуском щось піде не так. Таким чином я змусив себе продумати деякі з цих питань достроково.
Далі, коли мова йде про виконання випуску, один з найкращих способів забезпечити його безперебійне виконання - це практикувати, практикувати, практикувати та документувати все, що ви зустрінете на цьому шляху.. Отже, заздалегідь до розгортання нового коду у виробництві спочатку практикуйте розгортання коду у захищеному та належним чином середовищі інсталяції. Попросіть особу, яка буде відповідати за розгортання у виробництві, виконати тестове розгортання до постановки. Подумайте про це на своїй генеральній репетиції та поводьте себе так, як ви хочете, якщо це справжня річ. Документуйте все, що ви робите на кожному кроці; документуйте кожну команду, яку виконуєте, будь-який запущений SQL-код, будь-які файли, які ви модифікували, і те, як ви їх змінили, і для кожного кроку документуйте те, що ви очікуєте побачити, чи правильно виконана процедура. Якщо ви зіткнулися з якоюсь проблемою, задокументуйте, що ви зробили для її вирішення.
Тоді розгортання практики завершено, перегляньте свої замітки та перевірте, чи можете ви вдосконалити процес, щоб усунути помилки. Потім зробіть це все заново . Продовжуйте практикувати, поки виконання випуску не стане настільки ж рутинним, як слідування простим аркушам інструкцій, наприклад "увійдіть у цю машину, виконайте цю команду; потім увійдіть до бази даних та виконайте цю команду SQL; потім ..."
Перелічені вище - це те, що може зробити команда з управління операціями або випуском, щоб легко здійснити випуск. Але що може зробити інженерія, щоб мінімізувати ризики у випуску?
Тримайте випуски невеликими. Простіше кажучи, чим складніший набір змін коду, що містяться у випуску, тим більш ризикованим стане випуск. Зробіть команду операції прихильністю, плануючи мати більшу кількість невеликих випусків, а не меншу кількість великих релізів за той самий період часу.
Тест, тест, тест. Не випробовуйте свій код у вашому середовищі якості, а також використовуйте постановочне середовище для тестування програмного забезпечення. Часто трапляються помилки, які мають мало або нічого спільного з самим кодом, але, скоріше, мають першопричину, яка криється в конфігурації самого середовища (або деякої суміші двох). Щоб знайти ці проблеми, вам потрібно протестувати свій код у середовищі, яке тісно відображає виробництво, так само інсценізацію.
І як останнє слово, іноді найважливішим є не те, що ми робимо, щоб не допустити того, щоб справи пішли не так, а це те, як ми ведемо себе, коли вони йдуть не так. Тому я думаю, що важливо формувати культуру у вашій компанії на основі операційної прозорості. Не намагайтеся приховувати проблеми від клієнтів, будьте найближчі. Використовуйте Twitter активно, щоб повідомити клієнтам, чи є проблеми, про які ваша команда операторів зараз знає та працює над їх вирішенням ( Маяк в цьому дивний!). Подумайте про публікацію сторінки "статусу" для вашої послуги, на яку клієнти можуть посилатися, щоб дізнатися, чи щось не так ( TypePad пропонує чудовий приклад цього). Підсумок, завжди помиляється на стороні надмірного спілкування. Ваші клієнти будуть вдячні вам за це.