У який момент слід перейти на випуск збірки?


17

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

Я повністю підтримую цю ідею.

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

Отже, для людей, що дотримуються першого принципу, в який момент ви переходите від налагодження до випуску складання?

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

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


Дякую всім за відповіді. Гарна їжа для роздумів. Але я думаю, що "зміна складання залежить в основному від витрат на відтворення помилок" отримує галочку для очищення мого думкового процесу.
pdr

Відповіді:


5

Отже, для людей, що дотримуються першого принципу, в який момент ви переходите від налагодження до випуску складання?

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

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


3

Отже, для людей, що дотримуються першого принципу, в який момент ви переходите від налагодження до випуску складання?

Як тільки ми переходимо до якості, ми переходимо до випуску версій. Але коли-небудь ми будуємо версію build, наш процес збирання також будує налагоджувальну версію dlls. Це дозволяє нам швидко скидати налагоджувані dll у середовище QA та отримувати додаткову інформацію, якщо потрібно.

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


2

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

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

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

Однак ми намагаємось підтримувати або створювати ідентичне середовище, яке може відтворити таке середовище для повторного тестування. (Я знаю, що це не завжди банально), але все, що нам іноді потрібно, - це відтворити транзакції / входи.

Справа в тому, наскільки спокуса, вивільнення режиму налагодження не повинно бути у виробництві. Хоча я не скажу, що це правило.

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

Існує ще декілька практик, які дозволяють забезпечити, що сам процес побудови не зовсім несправний. Дивіться це: прості способи покращити якість випуску в середовищі RAD


2

У нас є машини для розробників, створені для створення налагоджень. Але як тільки розробники вводять код, в нашому середовищі постійної інтеграції (TeamCity) створюється пакет розгортання, який створений для випуску. Тому щоразу, коли ми вирішимо розгорнути QA, ми беремо останній пакет розгортання з сервера CI і виштовхуємо його, тому він завжди випускається, якщо він не знаходиться на машині розробки.

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

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