Как попасть на production
DESCRIPTION
Когда говорят о программировании обычно имеют ввиду процесс написания кода. Редко говорят о том как мы запускаем результаты нашей работы в «дикий мир» production’а. В командах с развитыми build-package-deploy циклом с момента написания до момента начала работы кода на production происходит масса интересных вещей.TRANSCRIPT
Путь на production
Денис Баженов
Tuesday, May 22, 12
Путь ниндзи на production
Developer Production
Download
Upload
Tuesday, May 22, 12
Tuesday, May 22, 12
Tuesday, May 22, 12
index.php.bak.old.2кто_удалит_получит_по_морде.php
Tuesday, May 22, 12
Ниндзей быть невыгодно
Tuesday, May 22, 12
Релиз = исходники
Tuesday, May 22, 12
Релиз ≠ исходники
VCS Release
Tuesday, May 22, 12
Релиз ≠ исходники
Релиз обязан работать, исходники нет
Tuesday, May 22, 12
Что происходит?
Компиляция
Фильтрация и генерация ресурсов
Тестирование и верификация
Сборка
Публикация
Tuesday, May 22, 12
Хороший релиз
• работает!
• самодостаточен• обладает метаинформацией
• совместим с предыдущим релизом
Tuesday, May 22, 12
Tuesday, May 22, 12
Toolchain
• version control system
• build tool;
• репозиторий артефактов;
• Continuous Integration server.
Tuesday, May 22, 12
Continuous Integration
Tuesday, May 22, 12
Continuous Integration
VCS CI-server
CI-serverCI-serverBuild agents
poll
run
Tuesday, May 22, 12
Continuous Integration
Tuesday, May 22, 12
Continuous Integration
Tuesday, May 22, 12
Continuous Integration
Tuesday, May 22, 12
Continuous Integration
• не занимаются ресурсы dev. машин;
• более частые сборки;
• более сложные виды тестирования;
• может выступать в качестве репозитория артефактов
Tuesday, May 22, 12
VCSCI-server
Build Agent
Compile
Unit/Integration Testing
Package
Acceptance Testing
Publish
Static Analysis
Production
Maven
Developer
Tuesday, May 22, 12
На что еще стоит обратить внимание
Tuesday, May 22, 12
Pitfalls
• адекватный процесс тестирования;
• контроль времени требуемого на сборку;
• адекватные отчеты при проваленном релизе;
• разбиение release’а на отдельные стадии.
Tuesday, May 22, 12
Спасибо за внимание!Денис Баженов <[email protected]>@denis_bazhenovhttp://bazhenov.me
Tuesday, May 22, 12